[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/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();