tint: Fix HLSL texture queries and re-add textureNumLayers()

... overloads for texture cube arrays

FXC is telling porkies, when it says "The array element count
of GetDimensions on TextureCubeArray objects is unavailable
on ps_5_1".

The actual issue, as identified by Teodor Tanasoaia at Mozilla,
is that the argument needs to be unsigned.

In fact, *all* the texture queries should have used an unsigned
scalar or vector for the output value. This has been broken
forever!

This reverts commit bd9f6e66842ed986dfff3264326bb385d467c5f3.

Change-Id: I3e217bec17c6fd203cff618b143ebef3d8a61927
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/122980
Auto-Submit: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Dan Sinclair <dsinclair@chromium.org>
Commit-Queue: Dan Sinclair <dsinclair@chromium.org>
diff --git a/src/tint/ast/builtin_texture_helper_test.cc b/src/tint/ast/builtin_texture_helper_test.cc
index 6d6aa69..658b650 100644
--- a/src/tint/ast/builtin_texture_helper_test.cc
+++ b/src/tint/ast/builtin_texture_helper_test.cc
@@ -852,6 +852,17 @@
             /* returns value */ true,
         },
         {
+            ValidTextureOverload::kNumLayersCubeArray,
+            "textureNumLayers(t : texture_cube_array<f32>) -> u32",
+            TextureKind::kRegular,
+            type::SamplerKind::kSampler,
+            type::TextureDimension::kCubeArray,
+            TextureDataType::kF32,
+            "textureNumLayers",
+            [](ProgramBuilder* b) { return b->ExprList(kTextureName); },
+            /* returns value */ true,
+        },
+        {
             ValidTextureOverload::kNumLayersDepth2dArray,
             "textureNumLayers(t : texture_depth_2d_array) -> u32",
             TextureKind::kDepth,
@@ -863,6 +874,17 @@
             /* returns value */ true,
         },
         {
+            ValidTextureOverload::kNumLayersDepthCubeArray,
+            "textureNumLayers(t : texture_depth_cube_array) -> u32",
+            TextureKind::kDepth,
+            type::SamplerKind::kSampler,
+            type::TextureDimension::kCubeArray,
+            TextureDataType::kF32,
+            "textureNumLayers",
+            [](ProgramBuilder* b) { return b->ExprList(kTextureName); },
+            /* returns value */ true,
+        },
+        {
             ValidTextureOverload::kNumLayersStorageWO2dArray,
             "textureNumLayers(t : texture_storage_2d_array<rgba32float>) -> u32",
             tint::builtin::Access::kWrite,
diff --git a/src/tint/ast/builtin_texture_helper_test.h b/src/tint/ast/builtin_texture_helper_test.h
index 4e1e46f..738db0c 100644
--- a/src/tint/ast/builtin_texture_helper_test.h
+++ b/src/tint/ast/builtin_texture_helper_test.h
@@ -83,7 +83,9 @@
     kGatherCompareDepthCubeF32,
     kGatherCompareDepthCubeArrayF32,
     kNumLayers2dArray,
+    kNumLayersCubeArray,
     kNumLayersDepth2dArray,
+    kNumLayersDepthCubeArray,
     kNumLayersStorageWO2dArray,
     kNumLevels2d,
     kNumLevels2dArray,
diff --git a/src/tint/intrinsics.def b/src/tint/intrinsics.def
index 316d224..fae4ee4 100644
--- a/src/tint/intrinsics.def
+++ b/src/tint/intrinsics.def
@@ -739,7 +739,9 @@
 @must_use fn textureGatherCompare(texture: texture_depth_cube, sampler: sampler_comparison, coords: vec3<f32>, depth_ref: f32) -> vec4<f32>
 @must_use fn textureGatherCompare<A: iu32>(texture: texture_depth_cube_array, sampler: sampler_comparison, coords: vec3<f32>, array_index: A, depth_ref: f32) -> vec4<f32>
 @must_use fn textureNumLayers<T: fiu32>(texture: texture_2d_array<T>) -> u32
+@must_use fn textureNumLayers<T: fiu32>(texture: texture_cube_array<T>) -> u32
 @must_use fn textureNumLayers(texture: texture_depth_2d_array) -> u32
+@must_use fn textureNumLayers(texture: texture_depth_cube_array) -> u32
 @must_use fn textureNumLayers<F: texel_format, A: write>(texture: texture_storage_2d_array<F, A>) -> u32
 @must_use fn textureNumLevels<T: fiu32>(texture: texture_1d<T>) -> u32
 @must_use fn textureNumLevels<T: fiu32>(texture: texture_2d<T>) -> u32
diff --git a/src/tint/resolver/builtin_test.cc b/src/tint/resolver/builtin_test.cc
index 2bc024f..4e9e4bd 100644
--- a/src/tint/resolver/builtin_test.cc
+++ b/src/tint/resolver/builtin_test.cc
@@ -2263,7 +2263,9 @@
         case ValidTextureOverload::kGatherCompareDepthCubeArrayF32:
             return R"(textureGatherCompare(texture, sampler, coords, array_index, depth_ref))";
         case ValidTextureOverload::kNumLayers2dArray:
+        case ValidTextureOverload::kNumLayersCubeArray:
         case ValidTextureOverload::kNumLayersDepth2dArray:
+        case ValidTextureOverload::kNumLayersDepthCubeArray:
         case ValidTextureOverload::kNumLayersStorageWO2dArray:
             return R"(textureNumLayers(texture))";
         case ValidTextureOverload::kNumLevels2d:
diff --git a/src/tint/resolver/intrinsic_table.inl b/src/tint/resolver/intrinsic_table.inl
index 1683d27..895d489 100644
--- a/src/tint/resolver/intrinsic_table.inl
+++ b/src/tint/resolver/intrinsic_table.inl
@@ -7748,102 +7748,102 @@
   {
     /* [931] */
     /* usage */ ParameterUsage::kTexture,
-    /* matcher indices */ &kMatcherIndices[235],
+    /* matcher indices */ &kMatcherIndices[130],
   },
   {
     /* [932] */
     /* usage */ ParameterUsage::kTexture,
-    /* matcher indices */ &kMatcherIndices[58],
+    /* matcher indices */ &kMatcherIndices[235],
   },
   {
     /* [933] */
     /* usage */ ParameterUsage::kTexture,
-    /* matcher indices */ &kMatcherIndices[116],
+    /* matcher indices */ &kMatcherIndices[237],
   },
   {
     /* [934] */
     /* usage */ ParameterUsage::kTexture,
-    /* matcher indices */ &kMatcherIndices[118],
+    /* matcher indices */ &kMatcherIndices[58],
   },
   {
     /* [935] */
     /* usage */ ParameterUsage::kTexture,
-    /* matcher indices */ &kMatcherIndices[122],
+    /* matcher indices */ &kMatcherIndices[116],
   },
   {
     /* [936] */
     /* usage */ ParameterUsage::kTexture,
-    /* matcher indices */ &kMatcherIndices[124],
+    /* matcher indices */ &kMatcherIndices[118],
   },
   {
     /* [937] */
     /* usage */ ParameterUsage::kTexture,
-    /* matcher indices */ &kMatcherIndices[128],
+    /* matcher indices */ &kMatcherIndices[122],
   },
   {
     /* [938] */
     /* usage */ ParameterUsage::kTexture,
-    /* matcher indices */ &kMatcherIndices[130],
+    /* matcher indices */ &kMatcherIndices[124],
   },
   {
     /* [939] */
     /* usage */ ParameterUsage::kTexture,
-    /* matcher indices */ &kMatcherIndices[234],
+    /* matcher indices */ &kMatcherIndices[128],
   },
   {
     /* [940] */
     /* usage */ ParameterUsage::kTexture,
-    /* matcher indices */ &kMatcherIndices[235],
+    /* matcher indices */ &kMatcherIndices[130],
   },
   {
     /* [941] */
     /* usage */ ParameterUsage::kTexture,
-    /* matcher indices */ &kMatcherIndices[236],
+    /* matcher indices */ &kMatcherIndices[234],
   },
   {
     /* [942] */
     /* usage */ ParameterUsage::kTexture,
-    /* matcher indices */ &kMatcherIndices[237],
+    /* matcher indices */ &kMatcherIndices[235],
   },
   {
     /* [943] */
     /* usage */ ParameterUsage::kTexture,
-    /* matcher indices */ &kMatcherIndices[132],
+    /* matcher indices */ &kMatcherIndices[236],
   },
   {
     /* [944] */
     /* usage */ ParameterUsage::kTexture,
-    /* matcher indices */ &kMatcherIndices[238],
+    /* matcher indices */ &kMatcherIndices[237],
   },
   {
     /* [945] */
-    /* usage */ ParameterUsage::kNone,
-    /* matcher indices */ &kMatcherIndices[5],
+    /* usage */ ParameterUsage::kTexture,
+    /* matcher indices */ &kMatcherIndices[132],
   },
   {
     /* [946] */
-    /* usage */ ParameterUsage::kNone,
-    /* matcher indices */ &kMatcherIndices[3],
+    /* usage */ ParameterUsage::kTexture,
+    /* matcher indices */ &kMatcherIndices[238],
   },
   {
     /* [947] */
     /* usage */ ParameterUsage::kNone,
-    /* matcher indices */ &kMatcherIndices[39],
+    /* matcher indices */ &kMatcherIndices[5],
   },
   {
     /* [948] */
     /* usage */ ParameterUsage::kNone,
-    /* matcher indices */ &kMatcherIndices[37],
+    /* matcher indices */ &kMatcherIndices[3],
   },
   {
     /* [949] */
     /* usage */ ParameterUsage::kNone,
-    /* matcher indices */ &kMatcherIndices[3],
+    /* matcher indices */ &kMatcherIndices[39],
   },
   {
     /* [950] */
     /* usage */ ParameterUsage::kNone,
-    /* matcher indices */ &kMatcherIndices[34],
+    /* matcher indices */ &kMatcherIndices[37],
   },
   {
     /* [951] */
@@ -7858,17 +7858,17 @@
   {
     /* [953] */
     /* usage */ ParameterUsage::kNone,
-    /* matcher indices */ &kMatcherIndices[9],
+    /* matcher indices */ &kMatcherIndices[3],
   },
   {
     /* [954] */
     /* usage */ ParameterUsage::kNone,
-    /* matcher indices */ &kMatcherIndices[3],
+    /* matcher indices */ &kMatcherIndices[34],
   },
   {
     /* [955] */
     /* usage */ ParameterUsage::kNone,
-    /* matcher indices */ &kMatcherIndices[105],
+    /* matcher indices */ &kMatcherIndices[9],
   },
   {
     /* [956] */
@@ -7878,7 +7878,7 @@
   {
     /* [957] */
     /* usage */ ParameterUsage::kNone,
-    /* matcher indices */ &kMatcherIndices[42],
+    /* matcher indices */ &kMatcherIndices[105],
   },
   {
     /* [958] */
@@ -7888,7 +7888,7 @@
   {
     /* [959] */
     /* usage */ ParameterUsage::kNone,
-    /* matcher indices */ &kMatcherIndices[1],
+    /* matcher indices */ &kMatcherIndices[42],
   },
   {
     /* [960] */
@@ -7898,7 +7898,7 @@
   {
     /* [961] */
     /* usage */ ParameterUsage::kNone,
-    /* matcher indices */ &kMatcherIndices[39],
+    /* matcher indices */ &kMatcherIndices[1],
   },
   {
     /* [962] */
@@ -7908,7 +7908,7 @@
   {
     /* [963] */
     /* usage */ ParameterUsage::kNone,
-    /* matcher indices */ &kMatcherIndices[23],
+    /* matcher indices */ &kMatcherIndices[39],
   },
   {
     /* [964] */
@@ -7918,12 +7918,12 @@
   {
     /* [965] */
     /* usage */ ParameterUsage::kNone,
-    /* matcher indices */ &kMatcherIndices[158],
+    /* matcher indices */ &kMatcherIndices[23],
   },
   {
     /* [966] */
     /* usage */ ParameterUsage::kNone,
-    /* matcher indices */ &kMatcherIndices[158],
+    /* matcher indices */ &kMatcherIndices[3],
   },
   {
     /* [967] */
@@ -7943,22 +7943,22 @@
   {
     /* [970] */
     /* usage */ ParameterUsage::kNone,
-    /* matcher indices */ &kMatcherIndices[106],
+    /* matcher indices */ &kMatcherIndices[158],
   },
   {
     /* [971] */
     /* usage */ ParameterUsage::kNone,
-    /* matcher indices */ &kMatcherIndices[3],
+    /* matcher indices */ &kMatcherIndices[158],
   },
   {
     /* [972] */
     /* usage */ ParameterUsage::kNone,
-    /* matcher indices */ &kMatcherIndices[160],
+    /* matcher indices */ &kMatcherIndices[106],
   },
   {
     /* [973] */
     /* usage */ ParameterUsage::kNone,
-    /* matcher indices */ &kMatcherIndices[160],
+    /* matcher indices */ &kMatcherIndices[3],
   },
   {
     /* [974] */
@@ -7978,22 +7978,22 @@
   {
     /* [977] */
     /* usage */ ParameterUsage::kNone,
-    /* matcher indices */ &kMatcherIndices[134],
+    /* matcher indices */ &kMatcherIndices[160],
   },
   {
     /* [978] */
     /* usage */ ParameterUsage::kNone,
-    /* matcher indices */ &kMatcherIndices[3],
+    /* matcher indices */ &kMatcherIndices[160],
   },
   {
     /* [979] */
     /* usage */ ParameterUsage::kNone,
-    /* matcher indices */ &kMatcherIndices[172],
+    /* matcher indices */ &kMatcherIndices[134],
   },
   {
     /* [980] */
     /* usage */ ParameterUsage::kNone,
-    /* matcher indices */ &kMatcherIndices[172],
+    /* matcher indices */ &kMatcherIndices[3],
   },
   {
     /* [981] */
@@ -8013,141 +8013,151 @@
   {
     /* [984] */
     /* usage */ ParameterUsage::kNone,
-    /* matcher indices */ &kMatcherIndices[178],
+    /* matcher indices */ &kMatcherIndices[172],
   },
   {
     /* [985] */
     /* usage */ ParameterUsage::kNone,
-    /* matcher indices */ &kMatcherIndices[180],
+    /* matcher indices */ &kMatcherIndices[172],
   },
   {
     /* [986] */
     /* usage */ ParameterUsage::kNone,
-    /* matcher indices */ &kMatcherIndices[182],
+    /* matcher indices */ &kMatcherIndices[178],
   },
   {
     /* [987] */
     /* usage */ ParameterUsage::kNone,
-    /* matcher indices */ &kMatcherIndices[184],
+    /* matcher indices */ &kMatcherIndices[180],
   },
   {
     /* [988] */
     /* usage */ ParameterUsage::kNone,
-    /* matcher indices */ &kMatcherIndices[186],
+    /* matcher indices */ &kMatcherIndices[182],
   },
   {
     /* [989] */
     /* usage */ ParameterUsage::kNone,
-    /* matcher indices */ &kMatcherIndices[188],
+    /* matcher indices */ &kMatcherIndices[184],
   },
   {
     /* [990] */
     /* usage */ ParameterUsage::kNone,
-    /* matcher indices */ &kMatcherIndices[190],
+    /* matcher indices */ &kMatcherIndices[186],
   },
   {
     /* [991] */
     /* usage */ ParameterUsage::kNone,
-    /* matcher indices */ &kMatcherIndices[192],
+    /* matcher indices */ &kMatcherIndices[188],
   },
   {
     /* [992] */
     /* usage */ ParameterUsage::kNone,
-    /* matcher indices */ &kMatcherIndices[194],
+    /* matcher indices */ &kMatcherIndices[190],
   },
   {
     /* [993] */
     /* usage */ ParameterUsage::kNone,
-    /* matcher indices */ &kMatcherIndices[196],
+    /* matcher indices */ &kMatcherIndices[192],
   },
   {
     /* [994] */
     /* usage */ ParameterUsage::kNone,
-    /* matcher indices */ &kMatcherIndices[198],
+    /* matcher indices */ &kMatcherIndices[194],
   },
   {
     /* [995] */
     /* usage */ ParameterUsage::kNone,
-    /* matcher indices */ &kMatcherIndices[200],
+    /* matcher indices */ &kMatcherIndices[196],
   },
   {
     /* [996] */
     /* usage */ ParameterUsage::kNone,
-    /* matcher indices */ &kMatcherIndices[202],
+    /* matcher indices */ &kMatcherIndices[198],
   },
   {
     /* [997] */
     /* usage */ ParameterUsage::kNone,
-    /* matcher indices */ &kMatcherIndices[204],
+    /* matcher indices */ &kMatcherIndices[200],
   },
   {
     /* [998] */
     /* usage */ ParameterUsage::kNone,
-    /* matcher indices */ &kMatcherIndices[206],
+    /* matcher indices */ &kMatcherIndices[202],
   },
   {
     /* [999] */
     /* usage */ ParameterUsage::kNone,
-    /* matcher indices */ &kMatcherIndices[208],
+    /* matcher indices */ &kMatcherIndices[204],
   },
   {
     /* [1000] */
     /* usage */ ParameterUsage::kNone,
-    /* matcher indices */ &kMatcherIndices[210],
+    /* matcher indices */ &kMatcherIndices[206],
   },
   {
     /* [1001] */
     /* usage */ ParameterUsage::kNone,
-    /* matcher indices */ &kMatcherIndices[212],
+    /* matcher indices */ &kMatcherIndices[208],
   },
   {
     /* [1002] */
     /* usage */ ParameterUsage::kNone,
-    /* matcher indices */ &kMatcherIndices[214],
+    /* matcher indices */ &kMatcherIndices[210],
   },
   {
     /* [1003] */
     /* usage */ ParameterUsage::kNone,
-    /* matcher indices */ &kMatcherIndices[216],
+    /* matcher indices */ &kMatcherIndices[212],
   },
   {
     /* [1004] */
     /* usage */ ParameterUsage::kNone,
-    /* matcher indices */ &kMatcherIndices[218],
+    /* matcher indices */ &kMatcherIndices[214],
   },
   {
     /* [1005] */
     /* usage */ ParameterUsage::kNone,
-    /* matcher indices */ &kMatcherIndices[220],
+    /* matcher indices */ &kMatcherIndices[216],
   },
   {
     /* [1006] */
     /* usage */ ParameterUsage::kNone,
-    /* matcher indices */ &kMatcherIndices[222],
+    /* matcher indices */ &kMatcherIndices[218],
   },
   {
     /* [1007] */
     /* usage */ ParameterUsage::kNone,
-    /* matcher indices */ &kMatcherIndices[224],
+    /* matcher indices */ &kMatcherIndices[220],
   },
   {
     /* [1008] */
     /* usage */ ParameterUsage::kNone,
-    /* matcher indices */ &kMatcherIndices[226],
+    /* matcher indices */ &kMatcherIndices[222],
   },
   {
     /* [1009] */
     /* usage */ ParameterUsage::kNone,
-    /* matcher indices */ &kMatcherIndices[228],
+    /* matcher indices */ &kMatcherIndices[224],
   },
   {
     /* [1010] */
     /* usage */ ParameterUsage::kNone,
-    /* matcher indices */ &kMatcherIndices[230],
+    /* matcher indices */ &kMatcherIndices[226],
   },
   {
     /* [1011] */
     /* usage */ ParameterUsage::kNone,
+    /* matcher indices */ &kMatcherIndices[228],
+  },
+  {
+    /* [1012] */
+    /* usage */ ParameterUsage::kNone,
+    /* matcher indices */ &kMatcherIndices[230],
+  },
+  {
+    /* [1013] */
+    /* usage */ ParameterUsage::kNone,
     /* matcher indices */ &kMatcherIndices[106],
   },
 };
@@ -8910,7 +8920,7 @@
     /* num template numbers */ 0,
     /* template types */ &kTemplateTypes[36],
     /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[1012],
+    /* parameters */ &kParameters[1014],
     /* return matcher indices */ &kMatcherIndices[134],
     /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ &ConstEval::Zero,
@@ -8922,7 +8932,7 @@
     /* num template numbers */ 0,
     /* template types */ &kTemplateTypes[27],
     /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[977],
+    /* parameters */ &kParameters[979],
     /* return matcher indices */ &kMatcherIndices[134],
     /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ &ConstEval::Identity,
@@ -8934,7 +8944,7 @@
     /* num template numbers */ 0,
     /* template types */ &kTemplateTypes[27],
     /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[978],
+    /* parameters */ &kParameters[980],
     /* return matcher indices */ &kMatcherIndices[134],
     /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ &ConstEval::VecSplat,
@@ -9030,7 +9040,7 @@
     /* num template numbers */ 0,
     /* template types */ &kTemplateTypes[14],
     /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[979],
+    /* parameters */ &kParameters[981],
     /* return matcher indices */ &kMatcherIndices[114],
     /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ &ConstEval::Conv,
@@ -9042,7 +9052,7 @@
     /* num template numbers */ 0,
     /* template types */ &kTemplateTypes[16],
     /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[980],
+    /* parameters */ &kParameters[982],
     /* return matcher indices */ &kMatcherIndices[174],
     /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ &ConstEval::Conv,
@@ -9054,7 +9064,7 @@
     /* num template numbers */ 0,
     /* template types */ &kTemplateTypes[18],
     /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[981],
+    /* parameters */ &kParameters[983],
     /* return matcher indices */ &kMatcherIndices[154],
     /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ &ConstEval::Conv,
@@ -9066,7 +9076,7 @@
     /* num template numbers */ 0,
     /* template types */ &kTemplateTypes[20],
     /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[982],
+    /* parameters */ &kParameters[984],
     /* return matcher indices */ &kMatcherIndices[156],
     /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ &ConstEval::Conv,
@@ -9078,7 +9088,7 @@
     /* num template numbers */ 0,
     /* template types */ &kTemplateTypes[22],
     /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[983],
+    /* parameters */ &kParameters[985],
     /* return matcher indices */ &kMatcherIndices[176],
     /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ &ConstEval::Conv,
@@ -9546,7 +9556,7 @@
     /* num template numbers */ 0,
     /* template types */ &kTemplateTypes[36],
     /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[1012],
+    /* parameters */ &kParameters[1014],
     /* return matcher indices */ &kMatcherIndices[106],
     /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ &ConstEval::Zero,
@@ -9558,7 +9568,7 @@
     /* num template numbers */ 0,
     /* template types */ &kTemplateTypes[27],
     /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[970],
+    /* parameters */ &kParameters[972],
     /* return matcher indices */ &kMatcherIndices[106],
     /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ &ConstEval::Identity,
@@ -9570,7 +9580,7 @@
     /* num template numbers */ 0,
     /* template types */ &kTemplateTypes[27],
     /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[971],
+    /* parameters */ &kParameters[973],
     /* return matcher indices */ &kMatcherIndices[106],
     /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ &ConstEval::VecSplat,
@@ -9618,7 +9628,7 @@
     /* num template numbers */ 0,
     /* template types */ &kTemplateTypes[14],
     /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[972],
+    /* parameters */ &kParameters[974],
     /* return matcher indices */ &kMatcherIndices[138],
     /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ &ConstEval::Conv,
@@ -9630,7 +9640,7 @@
     /* num template numbers */ 0,
     /* template types */ &kTemplateTypes[16],
     /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[973],
+    /* parameters */ &kParameters[975],
     /* return matcher indices */ &kMatcherIndices[168],
     /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ &ConstEval::Conv,
@@ -9642,7 +9652,7 @@
     /* num template numbers */ 0,
     /* template types */ &kTemplateTypes[18],
     /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[974],
+    /* parameters */ &kParameters[976],
     /* return matcher indices */ &kMatcherIndices[148],
     /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ &ConstEval::Conv,
@@ -9654,7 +9664,7 @@
     /* num template numbers */ 0,
     /* template types */ &kTemplateTypes[20],
     /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[975],
+    /* parameters */ &kParameters[977],
     /* return matcher indices */ &kMatcherIndices[126],
     /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ &ConstEval::Conv,
@@ -9666,7 +9676,7 @@
     /* num template numbers */ 0,
     /* template types */ &kTemplateTypes[22],
     /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[976],
+    /* parameters */ &kParameters[978],
     /* return matcher indices */ &kMatcherIndices[170],
     /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ &ConstEval::Conv,
@@ -9678,7 +9688,7 @@
     /* num template numbers */ 0,
     /* template types */ &kTemplateTypes[0],
     /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[933],
+    /* parameters */ &kParameters[935],
     /* return matcher indices */ &kMatcherIndices[105],
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ nullptr,
@@ -9690,7 +9700,7 @@
     /* num template numbers */ 0,
     /* template types */ &kTemplateTypes[0],
     /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[934],
+    /* parameters */ &kParameters[936],
     /* return matcher indices */ &kMatcherIndices[105],
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ nullptr,
@@ -9702,7 +9712,7 @@
     /* num template numbers */ 0,
     /* template types */ &kTemplateTypes[0],
     /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[935],
+    /* parameters */ &kParameters[937],
     /* return matcher indices */ &kMatcherIndices[105],
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ nullptr,
@@ -9714,7 +9724,7 @@
     /* num template numbers */ 0,
     /* template types */ &kTemplateTypes[0],
     /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[936],
+    /* parameters */ &kParameters[938],
     /* return matcher indices */ &kMatcherIndices[105],
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ nullptr,
@@ -9726,7 +9736,7 @@
     /* num template numbers */ 0,
     /* template types */ &kTemplateTypes[0],
     /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[937],
+    /* parameters */ &kParameters[939],
     /* return matcher indices */ &kMatcherIndices[105],
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ nullptr,
@@ -9738,7 +9748,7 @@
     /* num template numbers */ 0,
     /* template types */ &kTemplateTypes[0],
     /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[938],
+    /* parameters */ &kParameters[940],
     /* return matcher indices */ &kMatcherIndices[105],
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ nullptr,
@@ -9750,7 +9760,7 @@
     /* num template numbers */ 0,
     /* template types */ &kTemplateTypes[38],
     /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[939],
+    /* parameters */ &kParameters[941],
     /* return matcher indices */ &kMatcherIndices[105],
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ nullptr,
@@ -9762,7 +9772,7 @@
     /* num template numbers */ 0,
     /* template types */ &kTemplateTypes[38],
     /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[940],
+    /* parameters */ &kParameters[942],
     /* return matcher indices */ &kMatcherIndices[105],
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ nullptr,
@@ -9774,7 +9784,7 @@
     /* num template numbers */ 0,
     /* template types */ &kTemplateTypes[38],
     /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[941],
+    /* parameters */ &kParameters[943],
     /* return matcher indices */ &kMatcherIndices[105],
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ nullptr,
@@ -9786,7 +9796,7 @@
     /* num template numbers */ 0,
     /* template types */ &kTemplateTypes[38],
     /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[942],
+    /* parameters */ &kParameters[944],
     /* return matcher indices */ &kMatcherIndices[105],
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ nullptr,
@@ -10014,7 +10024,7 @@
     /* num template numbers */ 0,
     /* template types */ &kTemplateTypes[36],
     /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[1012],
+    /* parameters */ &kParameters[1014],
     /* return matcher indices */ &kMatcherIndices[23],
     /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ &ConstEval::Zero,
@@ -10026,7 +10036,7 @@
     /* num template numbers */ 0,
     /* template types */ &kTemplateTypes[27],
     /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[963],
+    /* parameters */ &kParameters[965],
     /* return matcher indices */ &kMatcherIndices[23],
     /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ &ConstEval::Identity,
@@ -10038,7 +10048,7 @@
     /* num template numbers */ 0,
     /* template types */ &kTemplateTypes[27],
     /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[964],
+    /* parameters */ &kParameters[966],
     /* return matcher indices */ &kMatcherIndices[23],
     /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ &ConstEval::VecSplat,
@@ -10062,7 +10072,7 @@
     /* num template numbers */ 0,
     /* template types */ &kTemplateTypes[14],
     /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[965],
+    /* parameters */ &kParameters[967],
     /* return matcher indices */ &kMatcherIndices[112],
     /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ &ConstEval::Conv,
@@ -10074,7 +10084,7 @@
     /* num template numbers */ 0,
     /* template types */ &kTemplateTypes[16],
     /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[966],
+    /* parameters */ &kParameters[968],
     /* return matcher indices */ &kMatcherIndices[164],
     /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ &ConstEval::Conv,
@@ -10086,7 +10096,7 @@
     /* num template numbers */ 0,
     /* template types */ &kTemplateTypes[18],
     /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[967],
+    /* parameters */ &kParameters[969],
     /* return matcher indices */ &kMatcherIndices[136],
     /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ &ConstEval::Conv,
@@ -10098,7 +10108,7 @@
     /* num template numbers */ 0,
     /* template types */ &kTemplateTypes[20],
     /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[968],
+    /* parameters */ &kParameters[970],
     /* return matcher indices */ &kMatcherIndices[120],
     /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ &ConstEval::Conv,
@@ -10110,7 +10120,7 @@
     /* num template numbers */ 0,
     /* template types */ &kTemplateTypes[22],
     /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[969],
+    /* parameters */ &kParameters[971],
     /* return matcher indices */ &kMatcherIndices[166],
     /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ &ConstEval::Conv,
@@ -10530,7 +10540,7 @@
     /* num template numbers */ 0,
     /* template types */ &kTemplateTypes[37],
     /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[1012],
+    /* parameters */ &kParameters[1014],
     /* return matcher indices */ &kMatcherIndices[178],
     /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ &ConstEval::Zero,
@@ -10542,7 +10552,7 @@
     /* num template numbers */ 0,
     /* template types */ &kTemplateTypes[37],
     /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[984],
+    /* parameters */ &kParameters[986],
     /* return matcher indices */ &kMatcherIndices[178],
     /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ &ConstEval::Identity,
@@ -10578,7 +10588,7 @@
     /* num template numbers */ 0,
     /* template types */ &kTemplateTypes[16],
     /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[985],
+    /* parameters */ &kParameters[987],
     /* return matcher indices */ &kMatcherIndices[182],
     /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ &ConstEval::Conv,
@@ -10590,7 +10600,7 @@
     /* num template numbers */ 0,
     /* template types */ &kTemplateTypes[14],
     /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[986],
+    /* parameters */ &kParameters[988],
     /* return matcher indices */ &kMatcherIndices[180],
     /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ &ConstEval::Conv,
@@ -10602,7 +10612,7 @@
     /* num template numbers */ 0,
     /* template types */ &kTemplateTypes[37],
     /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[1012],
+    /* parameters */ &kParameters[1014],
     /* return matcher indices */ &kMatcherIndices[184],
     /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ &ConstEval::Zero,
@@ -10614,7 +10624,7 @@
     /* num template numbers */ 0,
     /* template types */ &kTemplateTypes[37],
     /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[987],
+    /* parameters */ &kParameters[989],
     /* return matcher indices */ &kMatcherIndices[184],
     /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ &ConstEval::Identity,
@@ -10650,7 +10660,7 @@
     /* num template numbers */ 0,
     /* template types */ &kTemplateTypes[16],
     /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[988],
+    /* parameters */ &kParameters[990],
     /* return matcher indices */ &kMatcherIndices[188],
     /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ &ConstEval::Conv,
@@ -10662,7 +10672,7 @@
     /* num template numbers */ 0,
     /* template types */ &kTemplateTypes[14],
     /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[989],
+    /* parameters */ &kParameters[991],
     /* return matcher indices */ &kMatcherIndices[186],
     /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ &ConstEval::Conv,
@@ -10674,7 +10684,7 @@
     /* num template numbers */ 0,
     /* template types */ &kTemplateTypes[37],
     /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[1012],
+    /* parameters */ &kParameters[1014],
     /* return matcher indices */ &kMatcherIndices[190],
     /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ &ConstEval::Zero,
@@ -10686,7 +10696,7 @@
     /* num template numbers */ 0,
     /* template types */ &kTemplateTypes[37],
     /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[990],
+    /* parameters */ &kParameters[992],
     /* return matcher indices */ &kMatcherIndices[190],
     /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ &ConstEval::Identity,
@@ -10722,7 +10732,7 @@
     /* num template numbers */ 0,
     /* template types */ &kTemplateTypes[16],
     /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[991],
+    /* parameters */ &kParameters[993],
     /* return matcher indices */ &kMatcherIndices[194],
     /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ &ConstEval::Conv,
@@ -10734,7 +10744,7 @@
     /* num template numbers */ 0,
     /* template types */ &kTemplateTypes[14],
     /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[992],
+    /* parameters */ &kParameters[994],
     /* return matcher indices */ &kMatcherIndices[192],
     /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ &ConstEval::Conv,
@@ -10746,7 +10756,7 @@
     /* num template numbers */ 0,
     /* template types */ &kTemplateTypes[37],
     /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[1012],
+    /* parameters */ &kParameters[1014],
     /* return matcher indices */ &kMatcherIndices[196],
     /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ &ConstEval::Zero,
@@ -10758,7 +10768,7 @@
     /* num template numbers */ 0,
     /* template types */ &kTemplateTypes[37],
     /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[993],
+    /* parameters */ &kParameters[995],
     /* return matcher indices */ &kMatcherIndices[196],
     /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ &ConstEval::Identity,
@@ -10794,7 +10804,7 @@
     /* num template numbers */ 0,
     /* template types */ &kTemplateTypes[16],
     /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[994],
+    /* parameters */ &kParameters[996],
     /* return matcher indices */ &kMatcherIndices[200],
     /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ &ConstEval::Conv,
@@ -10806,7 +10816,7 @@
     /* num template numbers */ 0,
     /* template types */ &kTemplateTypes[14],
     /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[995],
+    /* parameters */ &kParameters[997],
     /* return matcher indices */ &kMatcherIndices[198],
     /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ &ConstEval::Conv,
@@ -10818,7 +10828,7 @@
     /* num template numbers */ 0,
     /* template types */ &kTemplateTypes[37],
     /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[1012],
+    /* parameters */ &kParameters[1014],
     /* return matcher indices */ &kMatcherIndices[202],
     /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ &ConstEval::Zero,
@@ -10830,7 +10840,7 @@
     /* num template numbers */ 0,
     /* template types */ &kTemplateTypes[37],
     /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[996],
+    /* parameters */ &kParameters[998],
     /* return matcher indices */ &kMatcherIndices[202],
     /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ &ConstEval::Identity,
@@ -10866,7 +10876,7 @@
     /* num template numbers */ 0,
     /* template types */ &kTemplateTypes[16],
     /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[997],
+    /* parameters */ &kParameters[999],
     /* return matcher indices */ &kMatcherIndices[206],
     /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ &ConstEval::Conv,
@@ -10878,7 +10888,7 @@
     /* num template numbers */ 0,
     /* template types */ &kTemplateTypes[14],
     /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[998],
+    /* parameters */ &kParameters[1000],
     /* return matcher indices */ &kMatcherIndices[204],
     /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ &ConstEval::Conv,
@@ -10890,7 +10900,7 @@
     /* num template numbers */ 0,
     /* template types */ &kTemplateTypes[37],
     /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[1012],
+    /* parameters */ &kParameters[1014],
     /* return matcher indices */ &kMatcherIndices[208],
     /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ &ConstEval::Zero,
@@ -10902,7 +10912,7 @@
     /* num template numbers */ 0,
     /* template types */ &kTemplateTypes[37],
     /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[999],
+    /* parameters */ &kParameters[1001],
     /* return matcher indices */ &kMatcherIndices[208],
     /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ &ConstEval::Identity,
@@ -10938,7 +10948,7 @@
     /* num template numbers */ 0,
     /* template types */ &kTemplateTypes[16],
     /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[1000],
+    /* parameters */ &kParameters[1002],
     /* return matcher indices */ &kMatcherIndices[212],
     /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ &ConstEval::Conv,
@@ -10950,7 +10960,7 @@
     /* num template numbers */ 0,
     /* template types */ &kTemplateTypes[14],
     /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[1001],
+    /* parameters */ &kParameters[1003],
     /* return matcher indices */ &kMatcherIndices[210],
     /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ &ConstEval::Conv,
@@ -10962,7 +10972,7 @@
     /* num template numbers */ 0,
     /* template types */ &kTemplateTypes[37],
     /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[1012],
+    /* parameters */ &kParameters[1014],
     /* return matcher indices */ &kMatcherIndices[214],
     /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ &ConstEval::Zero,
@@ -10974,7 +10984,7 @@
     /* num template numbers */ 0,
     /* template types */ &kTemplateTypes[37],
     /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[1002],
+    /* parameters */ &kParameters[1004],
     /* return matcher indices */ &kMatcherIndices[214],
     /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ &ConstEval::Identity,
@@ -11010,7 +11020,7 @@
     /* num template numbers */ 0,
     /* template types */ &kTemplateTypes[16],
     /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[1003],
+    /* parameters */ &kParameters[1005],
     /* return matcher indices */ &kMatcherIndices[218],
     /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ &ConstEval::Conv,
@@ -11022,7 +11032,7 @@
     /* num template numbers */ 0,
     /* template types */ &kTemplateTypes[14],
     /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[1004],
+    /* parameters */ &kParameters[1006],
     /* return matcher indices */ &kMatcherIndices[216],
     /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ &ConstEval::Conv,
@@ -11034,7 +11044,7 @@
     /* num template numbers */ 0,
     /* template types */ &kTemplateTypes[37],
     /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[1012],
+    /* parameters */ &kParameters[1014],
     /* return matcher indices */ &kMatcherIndices[220],
     /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ &ConstEval::Zero,
@@ -11046,7 +11056,7 @@
     /* num template numbers */ 0,
     /* template types */ &kTemplateTypes[37],
     /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[1005],
+    /* parameters */ &kParameters[1007],
     /* return matcher indices */ &kMatcherIndices[220],
     /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ &ConstEval::Identity,
@@ -11082,7 +11092,7 @@
     /* num template numbers */ 0,
     /* template types */ &kTemplateTypes[16],
     /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[1006],
+    /* parameters */ &kParameters[1008],
     /* return matcher indices */ &kMatcherIndices[224],
     /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ &ConstEval::Conv,
@@ -11094,7 +11104,7 @@
     /* num template numbers */ 0,
     /* template types */ &kTemplateTypes[14],
     /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[1007],
+    /* parameters */ &kParameters[1009],
     /* return matcher indices */ &kMatcherIndices[222],
     /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ &ConstEval::Conv,
@@ -11106,7 +11116,7 @@
     /* num template numbers */ 0,
     /* template types */ &kTemplateTypes[37],
     /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[1012],
+    /* parameters */ &kParameters[1014],
     /* return matcher indices */ &kMatcherIndices[226],
     /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ &ConstEval::Zero,
@@ -11118,7 +11128,7 @@
     /* num template numbers */ 0,
     /* template types */ &kTemplateTypes[37],
     /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[1008],
+    /* parameters */ &kParameters[1010],
     /* return matcher indices */ &kMatcherIndices[226],
     /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ &ConstEval::Identity,
@@ -11154,7 +11164,7 @@
     /* num template numbers */ 0,
     /* template types */ &kTemplateTypes[16],
     /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[1009],
+    /* parameters */ &kParameters[1011],
     /* return matcher indices */ &kMatcherIndices[230],
     /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ &ConstEval::Conv,
@@ -11166,397 +11176,13 @@
     /* num template numbers */ 0,
     /* template types */ &kTemplateTypes[14],
     /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[1010],
+    /* parameters */ &kParameters[1012],
     /* return matcher indices */ &kMatcherIndices[228],
     /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ &ConstEval::Conv,
   },
   {
     /* [231] */
-    /* num parameters */ 2,
-    /* num template types */ 1,
-    /* num template numbers */ 0,
-    /* template types */ &kTemplateTypes[24],
-    /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[672],
-    /* return matcher indices */ &kMatcherIndices[3],
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* const eval */ &ConstEval::OpPlus,
-  },
-  {
-    /* [232] */
-    /* num parameters */ 2,
-    /* num template types */ 1,
-    /* num template numbers */ 1,
-    /* template types */ &kTemplateTypes[24],
-    /* template numbers */ &kTemplateNumbers[4],
-    /* parameters */ &kParameters[674],
-    /* return matcher indices */ &kMatcherIndices[34],
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* const eval */ &ConstEval::OpPlus,
-  },
-  {
-    /* [233] */
-    /* num parameters */ 2,
-    /* num template types */ 1,
-    /* num template numbers */ 1,
-    /* template types */ &kTemplateTypes[24],
-    /* template numbers */ &kTemplateNumbers[4],
-    /* parameters */ &kParameters[676],
-    /* return matcher indices */ &kMatcherIndices[34],
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* const eval */ &ConstEval::OpPlus,
-  },
-  {
-    /* [234] */
-    /* num parameters */ 2,
-    /* num template types */ 1,
-    /* num template numbers */ 1,
-    /* template types */ &kTemplateTypes[24],
-    /* template numbers */ &kTemplateNumbers[4],
-    /* parameters */ &kParameters[678],
-    /* return matcher indices */ &kMatcherIndices[34],
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* const eval */ &ConstEval::OpPlus,
-  },
-  {
-    /* [235] */
-    /* num parameters */ 2,
-    /* num template types */ 1,
-    /* num template numbers */ 2,
-    /* template types */ &kTemplateTypes[10],
-    /* template numbers */ &kTemplateNumbers[4],
-    /* parameters */ &kParameters[680],
-    /* return matcher indices */ &kMatcherIndices[14],
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* const eval */ &ConstEval::OpPlus,
-  },
-  {
-    /* [236] */
-    /* num parameters */ 2,
-    /* num template types */ 1,
-    /* num template numbers */ 0,
-    /* template types */ &kTemplateTypes[24],
-    /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[682],
-    /* return matcher indices */ &kMatcherIndices[3],
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* const eval */ &ConstEval::OpMinus,
-  },
-  {
-    /* [237] */
-    /* num parameters */ 2,
-    /* num template types */ 1,
-    /* num template numbers */ 1,
-    /* template types */ &kTemplateTypes[24],
-    /* template numbers */ &kTemplateNumbers[4],
-    /* parameters */ &kParameters[684],
-    /* return matcher indices */ &kMatcherIndices[34],
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* const eval */ &ConstEval::OpMinus,
-  },
-  {
-    /* [238] */
-    /* num parameters */ 2,
-    /* num template types */ 1,
-    /* num template numbers */ 1,
-    /* template types */ &kTemplateTypes[24],
-    /* template numbers */ &kTemplateNumbers[4],
-    /* parameters */ &kParameters[686],
-    /* return matcher indices */ &kMatcherIndices[34],
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* const eval */ &ConstEval::OpMinus,
-  },
-  {
-    /* [239] */
-    /* num parameters */ 2,
-    /* num template types */ 1,
-    /* num template numbers */ 1,
-    /* template types */ &kTemplateTypes[24],
-    /* template numbers */ &kTemplateNumbers[4],
-    /* parameters */ &kParameters[688],
-    /* return matcher indices */ &kMatcherIndices[34],
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* const eval */ &ConstEval::OpMinus,
-  },
-  {
-    /* [240] */
-    /* num parameters */ 2,
-    /* num template types */ 1,
-    /* num template numbers */ 2,
-    /* template types */ &kTemplateTypes[10],
-    /* template numbers */ &kTemplateNumbers[4],
-    /* parameters */ &kParameters[690],
-    /* return matcher indices */ &kMatcherIndices[14],
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* const eval */ &ConstEval::OpMinus,
-  },
-  {
-    /* [241] */
-    /* num parameters */ 2,
-    /* num template types */ 1,
-    /* num template numbers */ 0,
-    /* template types */ &kTemplateTypes[24],
-    /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[710],
-    /* return matcher indices */ &kMatcherIndices[3],
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* const eval */ &ConstEval::OpDivide,
-  },
-  {
-    /* [242] */
-    /* num parameters */ 2,
-    /* num template types */ 1,
-    /* num template numbers */ 1,
-    /* template types */ &kTemplateTypes[24],
-    /* template numbers */ &kTemplateNumbers[4],
-    /* parameters */ &kParameters[712],
-    /* return matcher indices */ &kMatcherIndices[34],
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* const eval */ &ConstEval::OpDivide,
-  },
-  {
-    /* [243] */
-    /* num parameters */ 2,
-    /* num template types */ 1,
-    /* num template numbers */ 1,
-    /* template types */ &kTemplateTypes[24],
-    /* template numbers */ &kTemplateNumbers[4],
-    /* parameters */ &kParameters[714],
-    /* return matcher indices */ &kMatcherIndices[34],
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* const eval */ &ConstEval::OpDivide,
-  },
-  {
-    /* [244] */
-    /* num parameters */ 2,
-    /* num template types */ 1,
-    /* num template numbers */ 1,
-    /* template types */ &kTemplateTypes[24],
-    /* template numbers */ &kTemplateNumbers[4],
-    /* parameters */ &kParameters[716],
-    /* return matcher indices */ &kMatcherIndices[34],
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* const eval */ &ConstEval::OpDivide,
-  },
-  {
-    /* [245] */
-    /* num parameters */ 2,
-    /* num template types */ 1,
-    /* num template numbers */ 0,
-    /* template types */ &kTemplateTypes[24],
-    /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[718],
-    /* return matcher indices */ &kMatcherIndices[3],
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* const eval */ &ConstEval::OpModulo,
-  },
-  {
-    /* [246] */
-    /* num parameters */ 2,
-    /* num template types */ 1,
-    /* num template numbers */ 1,
-    /* template types */ &kTemplateTypes[24],
-    /* template numbers */ &kTemplateNumbers[4],
-    /* parameters */ &kParameters[720],
-    /* return matcher indices */ &kMatcherIndices[34],
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* const eval */ &ConstEval::OpModulo,
-  },
-  {
-    /* [247] */
-    /* num parameters */ 2,
-    /* num template types */ 1,
-    /* num template numbers */ 1,
-    /* template types */ &kTemplateTypes[24],
-    /* template numbers */ &kTemplateNumbers[4],
-    /* parameters */ &kParameters[722],
-    /* return matcher indices */ &kMatcherIndices[34],
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* const eval */ &ConstEval::OpModulo,
-  },
-  {
-    /* [248] */
-    /* num parameters */ 2,
-    /* num template types */ 1,
-    /* num template numbers */ 1,
-    /* template types */ &kTemplateTypes[24],
-    /* template numbers */ &kTemplateNumbers[4],
-    /* parameters */ &kParameters[724],
-    /* return matcher indices */ &kMatcherIndices[34],
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* const eval */ &ConstEval::OpModulo,
-  },
-  {
-    /* [249] */
-    /* num parameters */ 2,
-    /* num template types */ 0,
-    /* num template numbers */ 0,
-    /* template types */ &kTemplateTypes[38],
-    /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[730],
-    /* return matcher indices */ &kMatcherIndices[39],
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* const eval */ &ConstEval::OpAnd,
-  },
-  {
-    /* [250] */
-    /* num parameters */ 2,
-    /* num template types */ 0,
-    /* num template numbers */ 1,
-    /* template types */ &kTemplateTypes[38],
-    /* template numbers */ &kTemplateNumbers[4],
-    /* parameters */ &kParameters[732],
-    /* return matcher indices */ &kMatcherIndices[37],
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* const eval */ &ConstEval::OpAnd,
-  },
-  {
-    /* [251] */
-    /* num parameters */ 2,
-    /* num template types */ 1,
-    /* num template numbers */ 0,
-    /* template types */ &kTemplateTypes[29],
-    /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[734],
-    /* return matcher indices */ &kMatcherIndices[3],
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* const eval */ &ConstEval::OpAnd,
-  },
-  {
-    /* [252] */
-    /* num parameters */ 2,
-    /* num template types */ 1,
-    /* num template numbers */ 1,
-    /* template types */ &kTemplateTypes[29],
-    /* template numbers */ &kTemplateNumbers[4],
-    /* parameters */ &kParameters[736],
-    /* return matcher indices */ &kMatcherIndices[34],
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* const eval */ &ConstEval::OpAnd,
-  },
-  {
-    /* [253] */
-    /* num parameters */ 2,
-    /* num template types */ 0,
-    /* num template numbers */ 0,
-    /* template types */ &kTemplateTypes[38],
-    /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[738],
-    /* return matcher indices */ &kMatcherIndices[39],
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* const eval */ &ConstEval::OpOr,
-  },
-  {
-    /* [254] */
-    /* num parameters */ 2,
-    /* num template types */ 0,
-    /* num template numbers */ 1,
-    /* template types */ &kTemplateTypes[38],
-    /* template numbers */ &kTemplateNumbers[4],
-    /* parameters */ &kParameters[740],
-    /* return matcher indices */ &kMatcherIndices[37],
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* const eval */ &ConstEval::OpOr,
-  },
-  {
-    /* [255] */
-    /* num parameters */ 2,
-    /* num template types */ 1,
-    /* num template numbers */ 0,
-    /* template types */ &kTemplateTypes[29],
-    /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[742],
-    /* return matcher indices */ &kMatcherIndices[3],
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* const eval */ &ConstEval::OpOr,
-  },
-  {
-    /* [256] */
-    /* num parameters */ 2,
-    /* num template types */ 1,
-    /* num template numbers */ 1,
-    /* template types */ &kTemplateTypes[29],
-    /* template numbers */ &kTemplateNumbers[4],
-    /* parameters */ &kParameters[744],
-    /* return matcher indices */ &kMatcherIndices[34],
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* const eval */ &ConstEval::OpOr,
-  },
-  {
-    /* [257] */
-    /* num parameters */ 3,
-    /* num template types */ 1,
-    /* num template numbers */ 0,
-    /* template types */ &kTemplateTypes[10],
-    /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[468],
-    /* return matcher indices */ &kMatcherIndices[3],
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* const eval */ &ConstEval::mix,
-  },
-  {
-    /* [258] */
-    /* num parameters */ 3,
-    /* num template types */ 1,
-    /* num template numbers */ 1,
-    /* template types */ &kTemplateTypes[10],
-    /* template numbers */ &kTemplateNumbers[4],
-    /* parameters */ &kParameters[471],
-    /* return matcher indices */ &kMatcherIndices[34],
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* const eval */ &ConstEval::mix,
-  },
-  {
-    /* [259] */
-    /* num parameters */ 3,
-    /* num template types */ 1,
-    /* num template numbers */ 1,
-    /* template types */ &kTemplateTypes[10],
-    /* template numbers */ &kTemplateNumbers[4],
-    /* parameters */ &kParameters[474],
-    /* return matcher indices */ &kMatcherIndices[34],
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* const eval */ &ConstEval::mix,
-  },
-  {
-    /* [260] */
-    /* num parameters */ 3,
-    /* num template types */ 1,
-    /* num template numbers */ 0,
-    /* template types */ &kTemplateTypes[27],
-    /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[480],
-    /* return matcher indices */ &kMatcherIndices[3],
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* const eval */ &ConstEval::select_bool,
-  },
-  {
-    /* [261] */
-    /* num parameters */ 3,
-    /* num template types */ 1,
-    /* num template numbers */ 1,
-    /* template types */ &kTemplateTypes[27],
-    /* template numbers */ &kTemplateNumbers[4],
-    /* parameters */ &kParameters[483],
-    /* return matcher indices */ &kMatcherIndices[34],
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* const eval */ &ConstEval::select_bool,
-  },
-  {
-    /* [262] */
-    /* num parameters */ 3,
-    /* num template types */ 1,
-    /* num template numbers */ 1,
-    /* template types */ &kTemplateTypes[27],
-    /* template numbers */ &kTemplateNumbers[4],
-    /* parameters */ &kParameters[486],
-    /* return matcher indices */ &kMatcherIndices[34],
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* const eval */ &ConstEval::select_boolvec,
-  },
-  {
-    /* [263] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 0,
@@ -11568,11 +11194,11 @@
     /* const eval */ nullptr,
   },
   {
-    /* [264] */
+    /* [232] */
     /* num parameters */ 1,
-    /* num template types */ 0,
+    /* num template types */ 1,
     /* num template numbers */ 0,
-    /* template types */ &kTemplateTypes[38],
+    /* template types */ &kTemplateTypes[0],
     /* template numbers */ &kTemplateNumbers[10],
     /* parameters */ &kParameters[931],
     /* return matcher indices */ &kMatcherIndices[105],
@@ -11580,199 +11206,607 @@
     /* const eval */ nullptr,
   },
   {
-    /* [265] */
+    /* [233] */
     /* num parameters */ 1,
     /* num template types */ 0,
-    /* num template numbers */ 2,
+    /* num template numbers */ 0,
     /* template types */ &kTemplateTypes[38],
-    /* template numbers */ &kTemplateNumbers[6],
+    /* template numbers */ &kTemplateNumbers[10],
     /* parameters */ &kParameters[932],
     /* return matcher indices */ &kMatcherIndices[105],
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ nullptr,
   },
   {
-    /* [266] */
-    /* num parameters */ 0,
+    /* [234] */
+    /* num parameters */ 1,
     /* num template types */ 0,
     /* num template numbers */ 0,
     /* template types */ &kTemplateTypes[38],
     /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[1012],
-    /* return matcher indices */ &kMatcherIndices[9],
-    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* const eval */ &ConstEval::Zero,
+    /* parameters */ &kParameters[933],
+    /* return matcher indices */ &kMatcherIndices[105],
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* const eval */ nullptr,
+  },
+  {
+    /* [235] */
+    /* num parameters */ 1,
+    /* num template types */ 0,
+    /* num template numbers */ 2,
+    /* template types */ &kTemplateTypes[38],
+    /* template numbers */ &kTemplateNumbers[6],
+    /* parameters */ &kParameters[934],
+    /* return matcher indices */ &kMatcherIndices[105],
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* const eval */ nullptr,
+  },
+  {
+    /* [236] */
+    /* num parameters */ 2,
+    /* num template types */ 1,
+    /* num template numbers */ 0,
+    /* template types */ &kTemplateTypes[24],
+    /* template numbers */ &kTemplateNumbers[10],
+    /* parameters */ &kParameters[672],
+    /* return matcher indices */ &kMatcherIndices[3],
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* const eval */ &ConstEval::OpPlus,
+  },
+  {
+    /* [237] */
+    /* num parameters */ 2,
+    /* num template types */ 1,
+    /* num template numbers */ 1,
+    /* template types */ &kTemplateTypes[24],
+    /* template numbers */ &kTemplateNumbers[4],
+    /* parameters */ &kParameters[674],
+    /* return matcher indices */ &kMatcherIndices[34],
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* const eval */ &ConstEval::OpPlus,
+  },
+  {
+    /* [238] */
+    /* num parameters */ 2,
+    /* num template types */ 1,
+    /* num template numbers */ 1,
+    /* template types */ &kTemplateTypes[24],
+    /* template numbers */ &kTemplateNumbers[4],
+    /* parameters */ &kParameters[676],
+    /* return matcher indices */ &kMatcherIndices[34],
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* const eval */ &ConstEval::OpPlus,
+  },
+  {
+    /* [239] */
+    /* num parameters */ 2,
+    /* num template types */ 1,
+    /* num template numbers */ 1,
+    /* template types */ &kTemplateTypes[24],
+    /* template numbers */ &kTemplateNumbers[4],
+    /* parameters */ &kParameters[678],
+    /* return matcher indices */ &kMatcherIndices[34],
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* const eval */ &ConstEval::OpPlus,
+  },
+  {
+    /* [240] */
+    /* num parameters */ 2,
+    /* num template types */ 1,
+    /* num template numbers */ 2,
+    /* template types */ &kTemplateTypes[10],
+    /* template numbers */ &kTemplateNumbers[4],
+    /* parameters */ &kParameters[680],
+    /* return matcher indices */ &kMatcherIndices[14],
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* const eval */ &ConstEval::OpPlus,
+  },
+  {
+    /* [241] */
+    /* num parameters */ 2,
+    /* num template types */ 1,
+    /* num template numbers */ 0,
+    /* template types */ &kTemplateTypes[24],
+    /* template numbers */ &kTemplateNumbers[10],
+    /* parameters */ &kParameters[682],
+    /* return matcher indices */ &kMatcherIndices[3],
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* const eval */ &ConstEval::OpMinus,
+  },
+  {
+    /* [242] */
+    /* num parameters */ 2,
+    /* num template types */ 1,
+    /* num template numbers */ 1,
+    /* template types */ &kTemplateTypes[24],
+    /* template numbers */ &kTemplateNumbers[4],
+    /* parameters */ &kParameters[684],
+    /* return matcher indices */ &kMatcherIndices[34],
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* const eval */ &ConstEval::OpMinus,
+  },
+  {
+    /* [243] */
+    /* num parameters */ 2,
+    /* num template types */ 1,
+    /* num template numbers */ 1,
+    /* template types */ &kTemplateTypes[24],
+    /* template numbers */ &kTemplateNumbers[4],
+    /* parameters */ &kParameters[686],
+    /* return matcher indices */ &kMatcherIndices[34],
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* const eval */ &ConstEval::OpMinus,
+  },
+  {
+    /* [244] */
+    /* num parameters */ 2,
+    /* num template types */ 1,
+    /* num template numbers */ 1,
+    /* template types */ &kTemplateTypes[24],
+    /* template numbers */ &kTemplateNumbers[4],
+    /* parameters */ &kParameters[688],
+    /* return matcher indices */ &kMatcherIndices[34],
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* const eval */ &ConstEval::OpMinus,
+  },
+  {
+    /* [245] */
+    /* num parameters */ 2,
+    /* num template types */ 1,
+    /* num template numbers */ 2,
+    /* template types */ &kTemplateTypes[10],
+    /* template numbers */ &kTemplateNumbers[4],
+    /* parameters */ &kParameters[690],
+    /* return matcher indices */ &kMatcherIndices[14],
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* const eval */ &ConstEval::OpMinus,
+  },
+  {
+    /* [246] */
+    /* num parameters */ 2,
+    /* num template types */ 1,
+    /* num template numbers */ 0,
+    /* template types */ &kTemplateTypes[24],
+    /* template numbers */ &kTemplateNumbers[10],
+    /* parameters */ &kParameters[710],
+    /* return matcher indices */ &kMatcherIndices[3],
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* const eval */ &ConstEval::OpDivide,
+  },
+  {
+    /* [247] */
+    /* num parameters */ 2,
+    /* num template types */ 1,
+    /* num template numbers */ 1,
+    /* template types */ &kTemplateTypes[24],
+    /* template numbers */ &kTemplateNumbers[4],
+    /* parameters */ &kParameters[712],
+    /* return matcher indices */ &kMatcherIndices[34],
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* const eval */ &ConstEval::OpDivide,
+  },
+  {
+    /* [248] */
+    /* num parameters */ 2,
+    /* num template types */ 1,
+    /* num template numbers */ 1,
+    /* template types */ &kTemplateTypes[24],
+    /* template numbers */ &kTemplateNumbers[4],
+    /* parameters */ &kParameters[714],
+    /* return matcher indices */ &kMatcherIndices[34],
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* const eval */ &ConstEval::OpDivide,
+  },
+  {
+    /* [249] */
+    /* num parameters */ 2,
+    /* num template types */ 1,
+    /* num template numbers */ 1,
+    /* template types */ &kTemplateTypes[24],
+    /* template numbers */ &kTemplateNumbers[4],
+    /* parameters */ &kParameters[716],
+    /* return matcher indices */ &kMatcherIndices[34],
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* const eval */ &ConstEval::OpDivide,
+  },
+  {
+    /* [250] */
+    /* num parameters */ 2,
+    /* num template types */ 1,
+    /* num template numbers */ 0,
+    /* template types */ &kTemplateTypes[24],
+    /* template numbers */ &kTemplateNumbers[10],
+    /* parameters */ &kParameters[718],
+    /* return matcher indices */ &kMatcherIndices[3],
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* const eval */ &ConstEval::OpModulo,
+  },
+  {
+    /* [251] */
+    /* num parameters */ 2,
+    /* num template types */ 1,
+    /* num template numbers */ 1,
+    /* template types */ &kTemplateTypes[24],
+    /* template numbers */ &kTemplateNumbers[4],
+    /* parameters */ &kParameters[720],
+    /* return matcher indices */ &kMatcherIndices[34],
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* const eval */ &ConstEval::OpModulo,
+  },
+  {
+    /* [252] */
+    /* num parameters */ 2,
+    /* num template types */ 1,
+    /* num template numbers */ 1,
+    /* template types */ &kTemplateTypes[24],
+    /* template numbers */ &kTemplateNumbers[4],
+    /* parameters */ &kParameters[722],
+    /* return matcher indices */ &kMatcherIndices[34],
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* const eval */ &ConstEval::OpModulo,
+  },
+  {
+    /* [253] */
+    /* num parameters */ 2,
+    /* num template types */ 1,
+    /* num template numbers */ 1,
+    /* template types */ &kTemplateTypes[24],
+    /* template numbers */ &kTemplateNumbers[4],
+    /* parameters */ &kParameters[724],
+    /* return matcher indices */ &kMatcherIndices[34],
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* const eval */ &ConstEval::OpModulo,
+  },
+  {
+    /* [254] */
+    /* num parameters */ 2,
+    /* num template types */ 0,
+    /* num template numbers */ 0,
+    /* template types */ &kTemplateTypes[38],
+    /* template numbers */ &kTemplateNumbers[10],
+    /* parameters */ &kParameters[730],
+    /* return matcher indices */ &kMatcherIndices[39],
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* const eval */ &ConstEval::OpAnd,
+  },
+  {
+    /* [255] */
+    /* num parameters */ 2,
+    /* num template types */ 0,
+    /* num template numbers */ 1,
+    /* template types */ &kTemplateTypes[38],
+    /* template numbers */ &kTemplateNumbers[4],
+    /* parameters */ &kParameters[732],
+    /* return matcher indices */ &kMatcherIndices[37],
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* const eval */ &ConstEval::OpAnd,
+  },
+  {
+    /* [256] */
+    /* num parameters */ 2,
+    /* num template types */ 1,
+    /* num template numbers */ 0,
+    /* template types */ &kTemplateTypes[29],
+    /* template numbers */ &kTemplateNumbers[10],
+    /* parameters */ &kParameters[734],
+    /* return matcher indices */ &kMatcherIndices[3],
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* const eval */ &ConstEval::OpAnd,
+  },
+  {
+    /* [257] */
+    /* num parameters */ 2,
+    /* num template types */ 1,
+    /* num template numbers */ 1,
+    /* template types */ &kTemplateTypes[29],
+    /* template numbers */ &kTemplateNumbers[4],
+    /* parameters */ &kParameters[736],
+    /* return matcher indices */ &kMatcherIndices[34],
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* const eval */ &ConstEval::OpAnd,
+  },
+  {
+    /* [258] */
+    /* num parameters */ 2,
+    /* num template types */ 0,
+    /* num template numbers */ 0,
+    /* template types */ &kTemplateTypes[38],
+    /* template numbers */ &kTemplateNumbers[10],
+    /* parameters */ &kParameters[738],
+    /* return matcher indices */ &kMatcherIndices[39],
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* const eval */ &ConstEval::OpOr,
+  },
+  {
+    /* [259] */
+    /* num parameters */ 2,
+    /* num template types */ 0,
+    /* num template numbers */ 1,
+    /* template types */ &kTemplateTypes[38],
+    /* template numbers */ &kTemplateNumbers[4],
+    /* parameters */ &kParameters[740],
+    /* return matcher indices */ &kMatcherIndices[37],
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* const eval */ &ConstEval::OpOr,
+  },
+  {
+    /* [260] */
+    /* num parameters */ 2,
+    /* num template types */ 1,
+    /* num template numbers */ 0,
+    /* template types */ &kTemplateTypes[29],
+    /* template numbers */ &kTemplateNumbers[10],
+    /* parameters */ &kParameters[742],
+    /* return matcher indices */ &kMatcherIndices[3],
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* const eval */ &ConstEval::OpOr,
+  },
+  {
+    /* [261] */
+    /* num parameters */ 2,
+    /* num template types */ 1,
+    /* num template numbers */ 1,
+    /* template types */ &kTemplateTypes[29],
+    /* template numbers */ &kTemplateNumbers[4],
+    /* parameters */ &kParameters[744],
+    /* return matcher indices */ &kMatcherIndices[34],
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* const eval */ &ConstEval::OpOr,
+  },
+  {
+    /* [262] */
+    /* num parameters */ 3,
+    /* num template types */ 1,
+    /* num template numbers */ 0,
+    /* template types */ &kTemplateTypes[10],
+    /* template numbers */ &kTemplateNumbers[10],
+    /* parameters */ &kParameters[468],
+    /* return matcher indices */ &kMatcherIndices[3],
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* const eval */ &ConstEval::mix,
+  },
+  {
+    /* [263] */
+    /* num parameters */ 3,
+    /* num template types */ 1,
+    /* num template numbers */ 1,
+    /* template types */ &kTemplateTypes[10],
+    /* template numbers */ &kTemplateNumbers[4],
+    /* parameters */ &kParameters[471],
+    /* return matcher indices */ &kMatcherIndices[34],
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* const eval */ &ConstEval::mix,
+  },
+  {
+    /* [264] */
+    /* num parameters */ 3,
+    /* num template types */ 1,
+    /* num template numbers */ 1,
+    /* template types */ &kTemplateTypes[10],
+    /* template numbers */ &kTemplateNumbers[4],
+    /* parameters */ &kParameters[474],
+    /* return matcher indices */ &kMatcherIndices[34],
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* const eval */ &ConstEval::mix,
+  },
+  {
+    /* [265] */
+    /* num parameters */ 3,
+    /* num template types */ 1,
+    /* num template numbers */ 0,
+    /* template types */ &kTemplateTypes[27],
+    /* template numbers */ &kTemplateNumbers[10],
+    /* parameters */ &kParameters[480],
+    /* return matcher indices */ &kMatcherIndices[3],
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* const eval */ &ConstEval::select_bool,
+  },
+  {
+    /* [266] */
+    /* num parameters */ 3,
+    /* num template types */ 1,
+    /* num template numbers */ 1,
+    /* template types */ &kTemplateTypes[27],
+    /* template numbers */ &kTemplateNumbers[4],
+    /* parameters */ &kParameters[483],
+    /* return matcher indices */ &kMatcherIndices[34],
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* const eval */ &ConstEval::select_bool,
   },
   {
     /* [267] */
-    /* num parameters */ 1,
-    /* num template types */ 0,
-    /* num template numbers */ 0,
-    /* template types */ &kTemplateTypes[38],
-    /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[953],
-    /* return matcher indices */ &kMatcherIndices[9],
-    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* const eval */ &ConstEval::Identity,
+    /* num parameters */ 3,
+    /* num template types */ 1,
+    /* num template numbers */ 1,
+    /* template types */ &kTemplateTypes[27],
+    /* template numbers */ &kTemplateNumbers[4],
+    /* parameters */ &kParameters[486],
+    /* return matcher indices */ &kMatcherIndices[34],
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* const eval */ &ConstEval::select_boolvec,
   },
   {
     /* [268] */
-    /* num parameters */ 1,
-    /* num template types */ 1,
-    /* num template numbers */ 0,
-    /* template types */ &kTemplateTypes[31],
-    /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[954],
-    /* return matcher indices */ &kMatcherIndices[9],
-    /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* const eval */ &ConstEval::Conv,
-  },
-  {
-    /* [269] */
     /* num parameters */ 0,
     /* num template types */ 0,
     /* num template numbers */ 0,
     /* template types */ &kTemplateTypes[38],
     /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[1012],
-    /* return matcher indices */ &kMatcherIndices[105],
+    /* parameters */ &kParameters[1014],
+    /* return matcher indices */ &kMatcherIndices[9],
     /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ &ConstEval::Zero,
   },
   {
-    /* [270] */
+    /* [269] */
     /* num parameters */ 1,
     /* num template types */ 0,
     /* num template numbers */ 0,
     /* template types */ &kTemplateTypes[38],
     /* template numbers */ &kTemplateNumbers[10],
     /* parameters */ &kParameters[955],
-    /* return matcher indices */ &kMatcherIndices[105],
+    /* return matcher indices */ &kMatcherIndices[9],
     /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ &ConstEval::Identity,
   },
   {
-    /* [271] */
+    /* [270] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 0,
-    /* template types */ &kTemplateTypes[32],
+    /* template types */ &kTemplateTypes[31],
     /* template numbers */ &kTemplateNumbers[10],
     /* parameters */ &kParameters[956],
-    /* return matcher indices */ &kMatcherIndices[105],
+    /* return matcher indices */ &kMatcherIndices[9],
     /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ &ConstEval::Conv,
   },
   {
-    /* [272] */
+    /* [271] */
     /* num parameters */ 0,
     /* num template types */ 0,
     /* num template numbers */ 0,
     /* template types */ &kTemplateTypes[38],
     /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[1012],
-    /* return matcher indices */ &kMatcherIndices[42],
+    /* parameters */ &kParameters[1014],
+    /* return matcher indices */ &kMatcherIndices[105],
     /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ &ConstEval::Zero,
   },
   {
-    /* [273] */
+    /* [272] */
     /* num parameters */ 1,
     /* num template types */ 0,
     /* num template numbers */ 0,
     /* template types */ &kTemplateTypes[38],
     /* template numbers */ &kTemplateNumbers[10],
     /* parameters */ &kParameters[957],
-    /* return matcher indices */ &kMatcherIndices[42],
+    /* return matcher indices */ &kMatcherIndices[105],
     /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ &ConstEval::Identity,
   },
   {
-    /* [274] */
+    /* [273] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 0,
-    /* template types */ &kTemplateTypes[33],
+    /* template types */ &kTemplateTypes[32],
     /* template numbers */ &kTemplateNumbers[10],
     /* parameters */ &kParameters[958],
-    /* return matcher indices */ &kMatcherIndices[42],
+    /* return matcher indices */ &kMatcherIndices[105],
     /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ &ConstEval::Conv,
   },
   {
-    /* [275] */
+    /* [274] */
     /* num parameters */ 0,
     /* num template types */ 0,
     /* num template numbers */ 0,
     /* template types */ &kTemplateTypes[38],
     /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[1012],
-    /* return matcher indices */ &kMatcherIndices[1],
+    /* parameters */ &kParameters[1014],
+    /* return matcher indices */ &kMatcherIndices[42],
     /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ &ConstEval::Zero,
   },
   {
-    /* [276] */
+    /* [275] */
     /* num parameters */ 1,
     /* num template types */ 0,
     /* num template numbers */ 0,
     /* template types */ &kTemplateTypes[38],
     /* template numbers */ &kTemplateNumbers[10],
     /* parameters */ &kParameters[959],
-    /* return matcher indices */ &kMatcherIndices[1],
+    /* return matcher indices */ &kMatcherIndices[42],
     /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ &ConstEval::Identity,
   },
   {
-    /* [277] */
+    /* [276] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 0,
-    /* template types */ &kTemplateTypes[34],
+    /* template types */ &kTemplateTypes[33],
     /* template numbers */ &kTemplateNumbers[10],
     /* parameters */ &kParameters[960],
-    /* return matcher indices */ &kMatcherIndices[1],
+    /* return matcher indices */ &kMatcherIndices[42],
     /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ &ConstEval::Conv,
   },
   {
-    /* [278] */
+    /* [277] */
     /* num parameters */ 0,
     /* num template types */ 0,
     /* num template numbers */ 0,
     /* template types */ &kTemplateTypes[38],
     /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[1012],
-    /* return matcher indices */ &kMatcherIndices[39],
+    /* parameters */ &kParameters[1014],
+    /* return matcher indices */ &kMatcherIndices[1],
     /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ &ConstEval::Zero,
   },
   {
-    /* [279] */
+    /* [278] */
     /* num parameters */ 1,
     /* num template types */ 0,
     /* num template numbers */ 0,
     /* template types */ &kTemplateTypes[38],
     /* template numbers */ &kTemplateNumbers[10],
     /* parameters */ &kParameters[961],
+    /* return matcher indices */ &kMatcherIndices[1],
+    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* const eval */ &ConstEval::Identity,
+  },
+  {
+    /* [279] */
+    /* num parameters */ 1,
+    /* num template types */ 1,
+    /* num template numbers */ 0,
+    /* template types */ &kTemplateTypes[34],
+    /* template numbers */ &kTemplateNumbers[10],
+    /* parameters */ &kParameters[962],
+    /* return matcher indices */ &kMatcherIndices[1],
+    /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* const eval */ &ConstEval::Conv,
+  },
+  {
+    /* [280] */
+    /* num parameters */ 0,
+    /* num template types */ 0,
+    /* num template numbers */ 0,
+    /* template types */ &kTemplateTypes[38],
+    /* template numbers */ &kTemplateNumbers[10],
+    /* parameters */ &kParameters[1014],
+    /* return matcher indices */ &kMatcherIndices[39],
+    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* const eval */ &ConstEval::Zero,
+  },
+  {
+    /* [281] */
+    /* num parameters */ 1,
+    /* num template types */ 0,
+    /* num template numbers */ 0,
+    /* template types */ &kTemplateTypes[38],
+    /* template numbers */ &kTemplateNumbers[10],
+    /* parameters */ &kParameters[963],
     /* return matcher indices */ &kMatcherIndices[39],
     /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ &ConstEval::Identity,
   },
   {
-    /* [280] */
+    /* [282] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 0,
     /* template types */ &kTemplateTypes[35],
     /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[962],
+    /* parameters */ &kParameters[964],
     /* return matcher indices */ &kMatcherIndices[39],
     /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ &ConstEval::Conv,
   },
   {
-    /* [281] */
+    /* [283] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 0,
@@ -11784,7 +11818,7 @@
     /* const eval */ &ConstEval::abs,
   },
   {
-    /* [282] */
+    /* [284] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 1,
@@ -11796,7 +11830,7 @@
     /* const eval */ &ConstEval::abs,
   },
   {
-    /* [283] */
+    /* [285] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 0,
@@ -11808,7 +11842,7 @@
     /* const eval */ &ConstEval::acos,
   },
   {
-    /* [284] */
+    /* [286] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 1,
@@ -11820,7 +11854,7 @@
     /* const eval */ &ConstEval::acos,
   },
   {
-    /* [285] */
+    /* [287] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 0,
@@ -11832,7 +11866,7 @@
     /* const eval */ &ConstEval::acosh,
   },
   {
-    /* [286] */
+    /* [288] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 1,
@@ -11844,7 +11878,7 @@
     /* const eval */ &ConstEval::acosh,
   },
   {
-    /* [287] */
+    /* [289] */
     /* num parameters */ 1,
     /* num template types */ 0,
     /* num template numbers */ 0,
@@ -11856,7 +11890,7 @@
     /* const eval */ &ConstEval::all,
   },
   {
-    /* [288] */
+    /* [290] */
     /* num parameters */ 1,
     /* num template types */ 0,
     /* num template numbers */ 1,
@@ -11868,7 +11902,7 @@
     /* const eval */ &ConstEval::all,
   },
   {
-    /* [289] */
+    /* [291] */
     /* num parameters */ 1,
     /* num template types */ 0,
     /* num template numbers */ 0,
@@ -11880,7 +11914,7 @@
     /* const eval */ &ConstEval::any,
   },
   {
-    /* [290] */
+    /* [292] */
     /* num parameters */ 1,
     /* num template types */ 0,
     /* num template numbers */ 1,
@@ -11892,7 +11926,7 @@
     /* const eval */ &ConstEval::any,
   },
   {
-    /* [291] */
+    /* [293] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 0,
@@ -11904,7 +11938,7 @@
     /* const eval */ &ConstEval::asin,
   },
   {
-    /* [292] */
+    /* [294] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 1,
@@ -11916,7 +11950,7 @@
     /* const eval */ &ConstEval::asin,
   },
   {
-    /* [293] */
+    /* [295] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 0,
@@ -11928,7 +11962,7 @@
     /* const eval */ &ConstEval::asinh,
   },
   {
-    /* [294] */
+    /* [296] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 1,
@@ -11940,7 +11974,7 @@
     /* const eval */ &ConstEval::asinh,
   },
   {
-    /* [295] */
+    /* [297] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 0,
@@ -11952,7 +11986,7 @@
     /* const eval */ &ConstEval::atan,
   },
   {
-    /* [296] */
+    /* [298] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 1,
@@ -11964,7 +11998,7 @@
     /* const eval */ &ConstEval::atan,
   },
   {
-    /* [297] */
+    /* [299] */
     /* num parameters */ 2,
     /* num template types */ 1,
     /* num template numbers */ 0,
@@ -11976,7 +12010,7 @@
     /* const eval */ &ConstEval::atan2,
   },
   {
-    /* [298] */
+    /* [300] */
     /* num parameters */ 2,
     /* num template types */ 1,
     /* num template numbers */ 1,
@@ -11988,7 +12022,7 @@
     /* const eval */ &ConstEval::atan2,
   },
   {
-    /* [299] */
+    /* [301] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 0,
@@ -12000,7 +12034,7 @@
     /* const eval */ &ConstEval::atanh,
   },
   {
-    /* [300] */
+    /* [302] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 1,
@@ -12012,7 +12046,7 @@
     /* const eval */ &ConstEval::atanh,
   },
   {
-    /* [301] */
+    /* [303] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 0,
@@ -12024,7 +12058,7 @@
     /* const eval */ &ConstEval::ceil,
   },
   {
-    /* [302] */
+    /* [304] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 1,
@@ -12036,7 +12070,7 @@
     /* const eval */ &ConstEval::ceil,
   },
   {
-    /* [303] */
+    /* [305] */
     /* num parameters */ 3,
     /* num template types */ 1,
     /* num template numbers */ 0,
@@ -12048,7 +12082,7 @@
     /* const eval */ &ConstEval::clamp,
   },
   {
-    /* [304] */
+    /* [306] */
     /* num parameters */ 3,
     /* num template types */ 1,
     /* num template numbers */ 1,
@@ -12060,7 +12094,7 @@
     /* const eval */ &ConstEval::clamp,
   },
   {
-    /* [305] */
+    /* [307] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 0,
@@ -12072,7 +12106,7 @@
     /* const eval */ &ConstEval::cos,
   },
   {
-    /* [306] */
+    /* [308] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 1,
@@ -12084,7 +12118,7 @@
     /* const eval */ &ConstEval::cos,
   },
   {
-    /* [307] */
+    /* [309] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 0,
@@ -12096,7 +12130,7 @@
     /* const eval */ &ConstEval::cosh,
   },
   {
-    /* [308] */
+    /* [310] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 1,
@@ -12108,7 +12142,7 @@
     /* const eval */ &ConstEval::cosh,
   },
   {
-    /* [309] */
+    /* [311] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 0,
@@ -12120,7 +12154,7 @@
     /* const eval */ &ConstEval::countLeadingZeros,
   },
   {
-    /* [310] */
+    /* [312] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 1,
@@ -12132,7 +12166,7 @@
     /* const eval */ &ConstEval::countLeadingZeros,
   },
   {
-    /* [311] */
+    /* [313] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 0,
@@ -12144,7 +12178,7 @@
     /* const eval */ &ConstEval::countOneBits,
   },
   {
-    /* [312] */
+    /* [314] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 1,
@@ -12156,7 +12190,7 @@
     /* const eval */ &ConstEval::countOneBits,
   },
   {
-    /* [313] */
+    /* [315] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 0,
@@ -12168,7 +12202,7 @@
     /* const eval */ &ConstEval::countTrailingZeros,
   },
   {
-    /* [314] */
+    /* [316] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 1,
@@ -12180,7 +12214,7 @@
     /* const eval */ &ConstEval::countTrailingZeros,
   },
   {
-    /* [315] */
+    /* [317] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 0,
@@ -12192,7 +12226,7 @@
     /* const eval */ &ConstEval::degrees,
   },
   {
-    /* [316] */
+    /* [318] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 1,
@@ -12204,7 +12238,7 @@
     /* const eval */ &ConstEval::degrees,
   },
   {
-    /* [317] */
+    /* [319] */
     /* num parameters */ 2,
     /* num template types */ 1,
     /* num template numbers */ 0,
@@ -12216,7 +12250,7 @@
     /* const eval */ &ConstEval::distance,
   },
   {
-    /* [318] */
+    /* [320] */
     /* num parameters */ 2,
     /* num template types */ 1,
     /* num template numbers */ 1,
@@ -12228,7 +12262,7 @@
     /* const eval */ &ConstEval::distance,
   },
   {
-    /* [319] */
+    /* [321] */
     /* num parameters */ 1,
     /* num template types */ 0,
     /* num template numbers */ 0,
@@ -12240,7 +12274,7 @@
     /* const eval */ nullptr,
   },
   {
-    /* [320] */
+    /* [322] */
     /* num parameters */ 1,
     /* num template types */ 0,
     /* num template numbers */ 1,
@@ -12252,7 +12286,7 @@
     /* const eval */ nullptr,
   },
   {
-    /* [321] */
+    /* [323] */
     /* num parameters */ 1,
     /* num template types */ 0,
     /* num template numbers */ 0,
@@ -12264,7 +12298,7 @@
     /* const eval */ nullptr,
   },
   {
-    /* [322] */
+    /* [324] */
     /* num parameters */ 1,
     /* num template types */ 0,
     /* num template numbers */ 1,
@@ -12276,7 +12310,7 @@
     /* const eval */ nullptr,
   },
   {
-    /* [323] */
+    /* [325] */
     /* num parameters */ 1,
     /* num template types */ 0,
     /* num template numbers */ 0,
@@ -12288,7 +12322,7 @@
     /* const eval */ nullptr,
   },
   {
-    /* [324] */
+    /* [326] */
     /* num parameters */ 1,
     /* num template types */ 0,
     /* num template numbers */ 1,
@@ -12300,7 +12334,7 @@
     /* const eval */ nullptr,
   },
   {
-    /* [325] */
+    /* [327] */
     /* num parameters */ 1,
     /* num template types */ 0,
     /* num template numbers */ 0,
@@ -12312,7 +12346,7 @@
     /* const eval */ nullptr,
   },
   {
-    /* [326] */
+    /* [328] */
     /* num parameters */ 1,
     /* num template types */ 0,
     /* num template numbers */ 1,
@@ -12324,7 +12358,7 @@
     /* const eval */ nullptr,
   },
   {
-    /* [327] */
+    /* [329] */
     /* num parameters */ 1,
     /* num template types */ 0,
     /* num template numbers */ 0,
@@ -12336,7 +12370,7 @@
     /* const eval */ nullptr,
   },
   {
-    /* [328] */
+    /* [330] */
     /* num parameters */ 1,
     /* num template types */ 0,
     /* num template numbers */ 1,
@@ -12348,7 +12382,7 @@
     /* const eval */ nullptr,
   },
   {
-    /* [329] */
+    /* [331] */
     /* num parameters */ 1,
     /* num template types */ 0,
     /* num template numbers */ 0,
@@ -12360,7 +12394,7 @@
     /* const eval */ nullptr,
   },
   {
-    /* [330] */
+    /* [332] */
     /* num parameters */ 1,
     /* num template types */ 0,
     /* num template numbers */ 1,
@@ -12372,7 +12406,7 @@
     /* const eval */ nullptr,
   },
   {
-    /* [331] */
+    /* [333] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 0,
@@ -12384,7 +12418,7 @@
     /* const eval */ &ConstEval::exp,
   },
   {
-    /* [332] */
+    /* [334] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 1,
@@ -12396,7 +12430,7 @@
     /* const eval */ &ConstEval::exp,
   },
   {
-    /* [333] */
+    /* [335] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 0,
@@ -12408,7 +12442,7 @@
     /* const eval */ &ConstEval::exp2,
   },
   {
-    /* [334] */
+    /* [336] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 1,
@@ -12420,7 +12454,7 @@
     /* const eval */ &ConstEval::exp2,
   },
   {
-    /* [335] */
+    /* [337] */
     /* num parameters */ 3,
     /* num template types */ 1,
     /* num template numbers */ 0,
@@ -12432,7 +12466,7 @@
     /* const eval */ &ConstEval::extractBits,
   },
   {
-    /* [336] */
+    /* [338] */
     /* num parameters */ 3,
     /* num template types */ 1,
     /* num template numbers */ 1,
@@ -12444,7 +12478,7 @@
     /* const eval */ &ConstEval::extractBits,
   },
   {
-    /* [337] */
+    /* [339] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 0,
@@ -12456,7 +12490,7 @@
     /* const eval */ &ConstEval::firstLeadingBit,
   },
   {
-    /* [338] */
+    /* [340] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 1,
@@ -12468,7 +12502,7 @@
     /* const eval */ &ConstEval::firstLeadingBit,
   },
   {
-    /* [339] */
+    /* [341] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 0,
@@ -12480,7 +12514,7 @@
     /* const eval */ &ConstEval::firstTrailingBit,
   },
   {
-    /* [340] */
+    /* [342] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 1,
@@ -12492,7 +12526,7 @@
     /* const eval */ &ConstEval::firstTrailingBit,
   },
   {
-    /* [341] */
+    /* [343] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 0,
@@ -12504,7 +12538,7 @@
     /* const eval */ &ConstEval::floor,
   },
   {
-    /* [342] */
+    /* [344] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 1,
@@ -12516,7 +12550,7 @@
     /* const eval */ &ConstEval::floor,
   },
   {
-    /* [343] */
+    /* [345] */
     /* num parameters */ 3,
     /* num template types */ 1,
     /* num template numbers */ 0,
@@ -12528,7 +12562,7 @@
     /* const eval */ &ConstEval::fma,
   },
   {
-    /* [344] */
+    /* [346] */
     /* num parameters */ 3,
     /* num template types */ 1,
     /* num template numbers */ 1,
@@ -12540,7 +12574,7 @@
     /* const eval */ &ConstEval::fma,
   },
   {
-    /* [345] */
+    /* [347] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 0,
@@ -12552,7 +12586,7 @@
     /* const eval */ &ConstEval::fract,
   },
   {
-    /* [346] */
+    /* [348] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 1,
@@ -12564,7 +12598,7 @@
     /* const eval */ &ConstEval::fract,
   },
   {
-    /* [347] */
+    /* [349] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 0,
@@ -12576,7 +12610,7 @@
     /* const eval */ &ConstEval::frexp,
   },
   {
-    /* [348] */
+    /* [350] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 1,
@@ -12588,7 +12622,7 @@
     /* const eval */ &ConstEval::frexp,
   },
   {
-    /* [349] */
+    /* [351] */
     /* num parameters */ 1,
     /* num template types */ 0,
     /* num template numbers */ 0,
@@ -12600,7 +12634,7 @@
     /* const eval */ nullptr,
   },
   {
-    /* [350] */
+    /* [352] */
     /* num parameters */ 1,
     /* num template types */ 0,
     /* num template numbers */ 1,
@@ -12612,7 +12646,7 @@
     /* const eval */ nullptr,
   },
   {
-    /* [351] */
+    /* [353] */
     /* num parameters */ 1,
     /* num template types */ 0,
     /* num template numbers */ 0,
@@ -12624,7 +12658,7 @@
     /* const eval */ nullptr,
   },
   {
-    /* [352] */
+    /* [354] */
     /* num parameters */ 1,
     /* num template types */ 0,
     /* num template numbers */ 1,
@@ -12636,7 +12670,7 @@
     /* const eval */ nullptr,
   },
   {
-    /* [353] */
+    /* [355] */
     /* num parameters */ 1,
     /* num template types */ 0,
     /* num template numbers */ 0,
@@ -12648,7 +12682,7 @@
     /* const eval */ nullptr,
   },
   {
-    /* [354] */
+    /* [356] */
     /* num parameters */ 1,
     /* num template types */ 0,
     /* num template numbers */ 1,
@@ -12660,7 +12694,7 @@
     /* const eval */ nullptr,
   },
   {
-    /* [355] */
+    /* [357] */
     /* num parameters */ 4,
     /* num template types */ 1,
     /* num template numbers */ 0,
@@ -12672,7 +12706,7 @@
     /* const eval */ &ConstEval::insertBits,
   },
   {
-    /* [356] */
+    /* [358] */
     /* num parameters */ 4,
     /* num template types */ 1,
     /* num template numbers */ 1,
@@ -12684,7 +12718,7 @@
     /* const eval */ &ConstEval::insertBits,
   },
   {
-    /* [357] */
+    /* [359] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 0,
@@ -12696,7 +12730,7 @@
     /* const eval */ &ConstEval::inverseSqrt,
   },
   {
-    /* [358] */
+    /* [360] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 1,
@@ -12708,7 +12742,7 @@
     /* const eval */ &ConstEval::inverseSqrt,
   },
   {
-    /* [359] */
+    /* [361] */
     /* num parameters */ 2,
     /* num template types */ 2,
     /* num template numbers */ 0,
@@ -12720,7 +12754,7 @@
     /* const eval */ &ConstEval::ldexp,
   },
   {
-    /* [360] */
+    /* [362] */
     /* num parameters */ 2,
     /* num template types */ 2,
     /* num template numbers */ 1,
@@ -12732,7 +12766,7 @@
     /* const eval */ &ConstEval::ldexp,
   },
   {
-    /* [361] */
+    /* [363] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 0,
@@ -12744,7 +12778,7 @@
     /* const eval */ &ConstEval::length,
   },
   {
-    /* [362] */
+    /* [364] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 1,
@@ -12756,7 +12790,7 @@
     /* const eval */ &ConstEval::length,
   },
   {
-    /* [363] */
+    /* [365] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 0,
@@ -12768,7 +12802,7 @@
     /* const eval */ &ConstEval::log,
   },
   {
-    /* [364] */
+    /* [366] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 1,
@@ -12780,7 +12814,7 @@
     /* const eval */ &ConstEval::log,
   },
   {
-    /* [365] */
+    /* [367] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 0,
@@ -12792,7 +12826,7 @@
     /* const eval */ &ConstEval::log2,
   },
   {
-    /* [366] */
+    /* [368] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 1,
@@ -12804,7 +12838,7 @@
     /* const eval */ &ConstEval::log2,
   },
   {
-    /* [367] */
+    /* [369] */
     /* num parameters */ 2,
     /* num template types */ 1,
     /* num template numbers */ 0,
@@ -12816,7 +12850,7 @@
     /* const eval */ &ConstEval::max,
   },
   {
-    /* [368] */
+    /* [370] */
     /* num parameters */ 2,
     /* num template types */ 1,
     /* num template numbers */ 1,
@@ -12828,7 +12862,7 @@
     /* const eval */ &ConstEval::max,
   },
   {
-    /* [369] */
+    /* [371] */
     /* num parameters */ 2,
     /* num template types */ 1,
     /* num template numbers */ 0,
@@ -12840,7 +12874,7 @@
     /* const eval */ &ConstEval::min,
   },
   {
-    /* [370] */
+    /* [372] */
     /* num parameters */ 2,
     /* num template types */ 1,
     /* num template numbers */ 1,
@@ -12852,7 +12886,7 @@
     /* const eval */ &ConstEval::min,
   },
   {
-    /* [371] */
+    /* [373] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 0,
@@ -12864,7 +12898,7 @@
     /* const eval */ &ConstEval::modf,
   },
   {
-    /* [372] */
+    /* [374] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 1,
@@ -12876,7 +12910,7 @@
     /* const eval */ &ConstEval::modf,
   },
   {
-    /* [373] */
+    /* [375] */
     /* num parameters */ 2,
     /* num template types */ 1,
     /* num template numbers */ 0,
@@ -12888,7 +12922,7 @@
     /* const eval */ &ConstEval::pow,
   },
   {
-    /* [374] */
+    /* [376] */
     /* num parameters */ 2,
     /* num template types */ 1,
     /* num template numbers */ 1,
@@ -12900,7 +12934,7 @@
     /* const eval */ &ConstEval::pow,
   },
   {
-    /* [375] */
+    /* [377] */
     /* num parameters */ 1,
     /* num template types */ 0,
     /* num template numbers */ 0,
@@ -12912,7 +12946,7 @@
     /* const eval */ &ConstEval::quantizeToF16,
   },
   {
-    /* [376] */
+    /* [378] */
     /* num parameters */ 1,
     /* num template types */ 0,
     /* num template numbers */ 1,
@@ -12924,7 +12958,7 @@
     /* const eval */ &ConstEval::quantizeToF16,
   },
   {
-    /* [377] */
+    /* [379] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 0,
@@ -12936,7 +12970,7 @@
     /* const eval */ &ConstEval::radians,
   },
   {
-    /* [378] */
+    /* [380] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 1,
@@ -12948,7 +12982,7 @@
     /* const eval */ &ConstEval::radians,
   },
   {
-    /* [379] */
+    /* [381] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 0,
@@ -12960,7 +12994,7 @@
     /* const eval */ &ConstEval::reverseBits,
   },
   {
-    /* [380] */
+    /* [382] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 1,
@@ -12972,7 +13006,7 @@
     /* const eval */ &ConstEval::reverseBits,
   },
   {
-    /* [381] */
+    /* [383] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 0,
@@ -12984,7 +13018,7 @@
     /* const eval */ &ConstEval::round,
   },
   {
-    /* [382] */
+    /* [384] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 1,
@@ -12996,7 +13030,7 @@
     /* const eval */ &ConstEval::round,
   },
   {
-    /* [383] */
+    /* [385] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 0,
@@ -13008,7 +13042,7 @@
     /* const eval */ &ConstEval::saturate,
   },
   {
-    /* [384] */
+    /* [386] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 1,
@@ -13020,7 +13054,7 @@
     /* const eval */ &ConstEval::saturate,
   },
   {
-    /* [385] */
+    /* [387] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 0,
@@ -13032,7 +13066,7 @@
     /* const eval */ &ConstEval::sign,
   },
   {
-    /* [386] */
+    /* [388] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 1,
@@ -13044,7 +13078,7 @@
     /* const eval */ &ConstEval::sign,
   },
   {
-    /* [387] */
+    /* [389] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 0,
@@ -13056,7 +13090,7 @@
     /* const eval */ &ConstEval::sin,
   },
   {
-    /* [388] */
+    /* [390] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 1,
@@ -13068,7 +13102,7 @@
     /* const eval */ &ConstEval::sin,
   },
   {
-    /* [389] */
+    /* [391] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 0,
@@ -13080,7 +13114,7 @@
     /* const eval */ &ConstEval::sinh,
   },
   {
-    /* [390] */
+    /* [392] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 1,
@@ -13092,7 +13126,7 @@
     /* const eval */ &ConstEval::sinh,
   },
   {
-    /* [391] */
+    /* [393] */
     /* num parameters */ 3,
     /* num template types */ 1,
     /* num template numbers */ 0,
@@ -13104,7 +13138,7 @@
     /* const eval */ &ConstEval::smoothstep,
   },
   {
-    /* [392] */
+    /* [394] */
     /* num parameters */ 3,
     /* num template types */ 1,
     /* num template numbers */ 1,
@@ -13116,7 +13150,7 @@
     /* const eval */ &ConstEval::smoothstep,
   },
   {
-    /* [393] */
+    /* [395] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 0,
@@ -13128,7 +13162,7 @@
     /* const eval */ &ConstEval::sqrt,
   },
   {
-    /* [394] */
+    /* [396] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 1,
@@ -13140,7 +13174,7 @@
     /* const eval */ &ConstEval::sqrt,
   },
   {
-    /* [395] */
+    /* [397] */
     /* num parameters */ 2,
     /* num template types */ 1,
     /* num template numbers */ 0,
@@ -13152,7 +13186,7 @@
     /* const eval */ &ConstEval::step,
   },
   {
-    /* [396] */
+    /* [398] */
     /* num parameters */ 2,
     /* num template types */ 1,
     /* num template numbers */ 1,
@@ -13164,7 +13198,7 @@
     /* const eval */ &ConstEval::step,
   },
   {
-    /* [397] */
+    /* [399] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 0,
@@ -13176,7 +13210,7 @@
     /* const eval */ &ConstEval::tan,
   },
   {
-    /* [398] */
+    /* [400] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 1,
@@ -13188,7 +13222,7 @@
     /* const eval */ &ConstEval::tan,
   },
   {
-    /* [399] */
+    /* [401] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 0,
@@ -13200,7 +13234,7 @@
     /* const eval */ &ConstEval::tanh,
   },
   {
-    /* [400] */
+    /* [402] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 1,
@@ -13212,7 +13246,7 @@
     /* const eval */ &ConstEval::tanh,
   },
   {
-    /* [401] */
+    /* [403] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 0,
@@ -13224,7 +13258,7 @@
     /* const eval */ &ConstEval::trunc,
   },
   {
-    /* [402] */
+    /* [404] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 1,
@@ -13236,31 +13270,31 @@
     /* const eval */ &ConstEval::trunc,
   },
   {
-    /* [403] */
+    /* [405] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 0,
     /* template types */ &kTemplateTypes[0],
     /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[943],
+    /* parameters */ &kParameters[945],
     /* return matcher indices */ &kMatcherIndices[105],
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ nullptr,
   },
   {
-    /* [404] */
+    /* [406] */
     /* num parameters */ 1,
     /* num template types */ 0,
     /* num template numbers */ 0,
     /* template types */ &kTemplateTypes[38],
     /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[944],
+    /* parameters */ &kParameters[946],
     /* return matcher indices */ &kMatcherIndices[105],
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ nullptr,
   },
   {
-    /* [405] */
+    /* [407] */
     /* num parameters */ 3,
     /* num template types */ 0,
     /* num template numbers */ 0,
@@ -13272,7 +13306,7 @@
     /* const eval */ nullptr,
   },
   {
-    /* [406] */
+    /* [408] */
     /* num parameters */ 3,
     /* num template types */ 0,
     /* num template numbers */ 0,
@@ -13284,79 +13318,79 @@
     /* const eval */ nullptr,
   },
   {
-    /* [407] */
+    /* [409] */
     /* num parameters */ 1,
     /* num template types */ 0,
     /* num template numbers */ 0,
     /* template types */ &kTemplateTypes[38],
     /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[947],
+    /* parameters */ &kParameters[949],
     /* return matcher indices */ &kMatcherIndices[39],
     /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ &ConstEval::OpNot,
   },
   {
-    /* [408] */
+    /* [410] */
     /* num parameters */ 1,
     /* num template types */ 0,
     /* num template numbers */ 1,
     /* template types */ &kTemplateTypes[38],
     /* template numbers */ &kTemplateNumbers[4],
-    /* parameters */ &kParameters[948],
+    /* parameters */ &kParameters[950],
     /* return matcher indices */ &kMatcherIndices[37],
     /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ &ConstEval::OpNot,
   },
   {
-    /* [409] */
-    /* num parameters */ 1,
-    /* num template types */ 1,
-    /* num template numbers */ 0,
-    /* template types */ &kTemplateTypes[29],
-    /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[949],
-    /* return matcher indices */ &kMatcherIndices[3],
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* const eval */ &ConstEval::OpComplement,
-  },
-  {
-    /* [410] */
-    /* num parameters */ 1,
-    /* num template types */ 1,
-    /* num template numbers */ 1,
-    /* template types */ &kTemplateTypes[29],
-    /* template numbers */ &kTemplateNumbers[4],
-    /* parameters */ &kParameters[950],
-    /* return matcher indices */ &kMatcherIndices[34],
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* const eval */ &ConstEval::OpComplement,
-  },
-  {
     /* [411] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 0,
-    /* template types */ &kTemplateTypes[28],
+    /* template types */ &kTemplateTypes[29],
     /* template numbers */ &kTemplateNumbers[10],
     /* parameters */ &kParameters[951],
     /* return matcher indices */ &kMatcherIndices[3],
     /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* const eval */ &ConstEval::OpUnaryMinus,
+    /* const eval */ &ConstEval::OpComplement,
   },
   {
     /* [412] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 1,
-    /* template types */ &kTemplateTypes[28],
+    /* template types */ &kTemplateTypes[29],
     /* template numbers */ &kTemplateNumbers[4],
     /* parameters */ &kParameters[952],
     /* return matcher indices */ &kMatcherIndices[34],
     /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* const eval */ &ConstEval::OpComplement,
+  },
+  {
+    /* [413] */
+    /* num parameters */ 1,
+    /* num template types */ 1,
+    /* num template numbers */ 0,
+    /* template types */ &kTemplateTypes[28],
+    /* template numbers */ &kTemplateNumbers[10],
+    /* parameters */ &kParameters[953],
+    /* return matcher indices */ &kMatcherIndices[3],
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* const eval */ &ConstEval::OpUnaryMinus,
+  },
+  {
+    /* [414] */
+    /* num parameters */ 1,
+    /* num template types */ 1,
+    /* num template numbers */ 1,
+    /* template types */ &kTemplateTypes[28],
+    /* template numbers */ &kTemplateNumbers[4],
+    /* parameters */ &kParameters[954],
+    /* return matcher indices */ &kMatcherIndices[34],
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ &ConstEval::OpUnaryMinus,
   },
   {
-    /* [413] */
+    /* [415] */
     /* num parameters */ 2,
     /* num template types */ 1,
     /* num template numbers */ 0,
@@ -13368,7 +13402,7 @@
     /* const eval */ &ConstEval::OpXor,
   },
   {
-    /* [414] */
+    /* [416] */
     /* num parameters */ 2,
     /* num template types */ 1,
     /* num template numbers */ 1,
@@ -13380,7 +13414,7 @@
     /* const eval */ &ConstEval::OpXor,
   },
   {
-    /* [415] */
+    /* [417] */
     /* num parameters */ 2,
     /* num template types */ 1,
     /* num template numbers */ 0,
@@ -13392,7 +13426,7 @@
     /* const eval */ &ConstEval::OpEqual,
   },
   {
-    /* [416] */
+    /* [418] */
     /* num parameters */ 2,
     /* num template types */ 1,
     /* num template numbers */ 1,
@@ -13404,7 +13438,7 @@
     /* const eval */ &ConstEval::OpEqual,
   },
   {
-    /* [417] */
+    /* [419] */
     /* num parameters */ 2,
     /* num template types */ 1,
     /* num template numbers */ 0,
@@ -13416,7 +13450,7 @@
     /* const eval */ &ConstEval::OpNotEqual,
   },
   {
-    /* [418] */
+    /* [420] */
     /* num parameters */ 2,
     /* num template types */ 1,
     /* num template numbers */ 1,
@@ -13428,7 +13462,7 @@
     /* const eval */ &ConstEval::OpNotEqual,
   },
   {
-    /* [419] */
+    /* [421] */
     /* num parameters */ 2,
     /* num template types */ 1,
     /* num template numbers */ 0,
@@ -13440,7 +13474,7 @@
     /* const eval */ &ConstEval::OpLessThan,
   },
   {
-    /* [420] */
+    /* [422] */
     /* num parameters */ 2,
     /* num template types */ 1,
     /* num template numbers */ 1,
@@ -13452,7 +13486,7 @@
     /* const eval */ &ConstEval::OpLessThan,
   },
   {
-    /* [421] */
+    /* [423] */
     /* num parameters */ 2,
     /* num template types */ 1,
     /* num template numbers */ 0,
@@ -13464,7 +13498,7 @@
     /* const eval */ &ConstEval::OpGreaterThan,
   },
   {
-    /* [422] */
+    /* [424] */
     /* num parameters */ 2,
     /* num template types */ 1,
     /* num template numbers */ 1,
@@ -13476,7 +13510,7 @@
     /* const eval */ &ConstEval::OpGreaterThan,
   },
   {
-    /* [423] */
+    /* [425] */
     /* num parameters */ 2,
     /* num template types */ 1,
     /* num template numbers */ 0,
@@ -13488,7 +13522,7 @@
     /* const eval */ &ConstEval::OpLessThanEqual,
   },
   {
-    /* [424] */
+    /* [426] */
     /* num parameters */ 2,
     /* num template types */ 1,
     /* num template numbers */ 1,
@@ -13500,7 +13534,7 @@
     /* const eval */ &ConstEval::OpLessThanEqual,
   },
   {
-    /* [425] */
+    /* [427] */
     /* num parameters */ 2,
     /* num template types */ 1,
     /* num template numbers */ 0,
@@ -13512,7 +13546,7 @@
     /* const eval */ &ConstEval::OpGreaterThanEqual,
   },
   {
-    /* [426] */
+    /* [428] */
     /* num parameters */ 2,
     /* num template types */ 1,
     /* num template numbers */ 1,
@@ -13524,7 +13558,7 @@
     /* const eval */ &ConstEval::OpGreaterThanEqual,
   },
   {
-    /* [427] */
+    /* [429] */
     /* num parameters */ 2,
     /* num template types */ 1,
     /* num template numbers */ 0,
@@ -13536,7 +13570,7 @@
     /* const eval */ &ConstEval::OpShiftLeft,
   },
   {
-    /* [428] */
+    /* [430] */
     /* num parameters */ 2,
     /* num template types */ 1,
     /* num template numbers */ 1,
@@ -13548,7 +13582,7 @@
     /* const eval */ &ConstEval::OpShiftLeft,
   },
   {
-    /* [429] */
+    /* [431] */
     /* num parameters */ 2,
     /* num template types */ 1,
     /* num template numbers */ 0,
@@ -13560,7 +13594,7 @@
     /* const eval */ &ConstEval::OpShiftRight,
   },
   {
-    /* [430] */
+    /* [432] */
     /* num parameters */ 2,
     /* num template types */ 1,
     /* num template numbers */ 1,
@@ -13572,7 +13606,7 @@
     /* const eval */ &ConstEval::OpShiftRight,
   },
   {
-    /* [431] */
+    /* [433] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 1,
@@ -13584,7 +13618,7 @@
     /* const eval */ nullptr,
   },
   {
-    /* [432] */
+    /* [434] */
     /* num parameters */ 2,
     /* num template types */ 1,
     /* num template numbers */ 0,
@@ -13596,7 +13630,7 @@
     /* const eval */ &ConstEval::cross,
   },
   {
-    /* [433] */
+    /* [435] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 1,
@@ -13608,7 +13642,7 @@
     /* const eval */ &ConstEval::determinant,
   },
   {
-    /* [434] */
+    /* [436] */
     /* num parameters */ 2,
     /* num template types */ 1,
     /* num template numbers */ 1,
@@ -13620,7 +13654,7 @@
     /* const eval */ &ConstEval::dot,
   },
   {
-    /* [435] */
+    /* [437] */
     /* num parameters */ 2,
     /* num template types */ 0,
     /* num template numbers */ 0,
@@ -13632,7 +13666,7 @@
     /* const eval */ nullptr,
   },
   {
-    /* [436] */
+    /* [438] */
     /* num parameters */ 2,
     /* num template types */ 0,
     /* num template numbers */ 0,
@@ -13644,7 +13678,7 @@
     /* const eval */ nullptr,
   },
   {
-    /* [437] */
+    /* [439] */
     /* num parameters */ 3,
     /* num template types */ 1,
     /* num template numbers */ 1,
@@ -13656,7 +13690,7 @@
     /* const eval */ &ConstEval::faceForward,
   },
   {
-    /* [438] */
+    /* [440] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 1,
@@ -13668,7 +13702,7 @@
     /* const eval */ &ConstEval::normalize,
   },
   {
-    /* [439] */
+    /* [441] */
     /* num parameters */ 1,
     /* num template types */ 0,
     /* num template numbers */ 0,
@@ -13680,7 +13714,7 @@
     /* const eval */ &ConstEval::pack2x16float,
   },
   {
-    /* [440] */
+    /* [442] */
     /* num parameters */ 1,
     /* num template types */ 0,
     /* num template numbers */ 0,
@@ -13692,7 +13726,7 @@
     /* const eval */ &ConstEval::pack2x16snorm,
   },
   {
-    /* [441] */
+    /* [443] */
     /* num parameters */ 1,
     /* num template types */ 0,
     /* num template numbers */ 0,
@@ -13704,7 +13738,7 @@
     /* const eval */ &ConstEval::pack2x16unorm,
   },
   {
-    /* [442] */
+    /* [444] */
     /* num parameters */ 1,
     /* num template types */ 0,
     /* num template numbers */ 0,
@@ -13716,7 +13750,7 @@
     /* const eval */ &ConstEval::pack4x8snorm,
   },
   {
-    /* [443] */
+    /* [445] */
     /* num parameters */ 1,
     /* num template types */ 0,
     /* num template numbers */ 0,
@@ -13728,7 +13762,7 @@
     /* const eval */ &ConstEval::pack4x8unorm,
   },
   {
-    /* [444] */
+    /* [446] */
     /* num parameters */ 2,
     /* num template types */ 1,
     /* num template numbers */ 1,
@@ -13740,7 +13774,7 @@
     /* const eval */ &ConstEval::reflect,
   },
   {
-    /* [445] */
+    /* [447] */
     /* num parameters */ 3,
     /* num template types */ 1,
     /* num template numbers */ 1,
@@ -13752,19 +13786,19 @@
     /* const eval */ &ConstEval::refract,
   },
   {
-    /* [446] */
+    /* [448] */
     /* num parameters */ 0,
     /* num template types */ 0,
     /* num template numbers */ 0,
     /* template types */ &kTemplateTypes[38],
     /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[1012],
+    /* parameters */ &kParameters[1014],
     /* return matcher indices */ nullptr,
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsComputePipeline),
     /* const eval */ nullptr,
   },
   {
-    /* [447] */
+    /* [449] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 2,
@@ -13776,7 +13810,7 @@
     /* const eval */ &ConstEval::transpose,
   },
   {
-    /* [448] */
+    /* [450] */
     /* num parameters */ 1,
     /* num template types */ 0,
     /* num template numbers */ 0,
@@ -13788,7 +13822,7 @@
     /* const eval */ &ConstEval::unpack2x16float,
   },
   {
-    /* [449] */
+    /* [451] */
     /* num parameters */ 1,
     /* num template types */ 0,
     /* num template numbers */ 0,
@@ -13800,7 +13834,7 @@
     /* const eval */ &ConstEval::unpack2x16snorm,
   },
   {
-    /* [450] */
+    /* [452] */
     /* num parameters */ 1,
     /* num template types */ 0,
     /* num template numbers */ 0,
@@ -13812,7 +13846,7 @@
     /* const eval */ &ConstEval::unpack2x16unorm,
   },
   {
-    /* [451] */
+    /* [453] */
     /* num parameters */ 1,
     /* num template types */ 0,
     /* num template numbers */ 0,
@@ -13824,7 +13858,7 @@
     /* const eval */ &ConstEval::unpack4x8snorm,
   },
   {
-    /* [452] */
+    /* [454] */
     /* num parameters */ 1,
     /* num template types */ 0,
     /* num template numbers */ 0,
@@ -13836,19 +13870,19 @@
     /* const eval */ &ConstEval::unpack4x8unorm,
   },
   {
-    /* [453] */
+    /* [455] */
     /* num parameters */ 0,
     /* num template types */ 0,
     /* num template numbers */ 0,
     /* template types */ &kTemplateTypes[38],
     /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[1012],
+    /* parameters */ &kParameters[1014],
     /* return matcher indices */ nullptr,
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsComputePipeline),
     /* const eval */ nullptr,
   },
   {
-    /* [454] */
+    /* [456] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 0,
@@ -13860,37 +13894,13 @@
     /* const eval */ nullptr,
   },
   {
-    /* [455] */
+    /* [457] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 1,
     /* template types */ &kTemplateTypes[26],
     /* template numbers */ &kTemplateNumbers[9],
-    /* parameters */ &kParameters[945],
-    /* return matcher indices */ &kMatcherIndices[3],
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
-    /* const eval */ nullptr,
-  },
-  {
-    /* [456] */
-    /* num parameters */ 2,
-    /* num template types */ 1,
-    /* num template numbers */ 1,
-    /* template types */ &kTemplateTypes[26],
-    /* template numbers */ &kTemplateNumbers[9],
-    /* parameters */ &kParameters[654],
-    /* return matcher indices */ nullptr,
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
-    /* const eval */ nullptr,
-  },
-  {
-    /* [457] */
-    /* num parameters */ 2,
-    /* num template types */ 1,
-    /* num template numbers */ 1,
-    /* template types */ &kTemplateTypes[26],
-    /* template numbers */ &kTemplateNumbers[9],
-    /* parameters */ &kParameters[656],
+    /* parameters */ &kParameters[947],
     /* return matcher indices */ &kMatcherIndices[3],
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
     /* const eval */ nullptr,
@@ -13902,8 +13912,8 @@
     /* num template numbers */ 1,
     /* template types */ &kTemplateTypes[26],
     /* template numbers */ &kTemplateNumbers[9],
-    /* parameters */ &kParameters[658],
-    /* return matcher indices */ &kMatcherIndices[3],
+    /* parameters */ &kParameters[654],
+    /* return matcher indices */ nullptr,
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
     /* const eval */ nullptr,
   },
@@ -13914,7 +13924,7 @@
     /* num template numbers */ 1,
     /* template types */ &kTemplateTypes[26],
     /* template numbers */ &kTemplateNumbers[9],
-    /* parameters */ &kParameters[660],
+    /* parameters */ &kParameters[656],
     /* return matcher indices */ &kMatcherIndices[3],
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
     /* const eval */ nullptr,
@@ -13926,7 +13936,7 @@
     /* num template numbers */ 1,
     /* template types */ &kTemplateTypes[26],
     /* template numbers */ &kTemplateNumbers[9],
-    /* parameters */ &kParameters[662],
+    /* parameters */ &kParameters[658],
     /* return matcher indices */ &kMatcherIndices[3],
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
     /* const eval */ nullptr,
@@ -13938,7 +13948,7 @@
     /* num template numbers */ 1,
     /* template types */ &kTemplateTypes[26],
     /* template numbers */ &kTemplateNumbers[9],
-    /* parameters */ &kParameters[664],
+    /* parameters */ &kParameters[660],
     /* return matcher indices */ &kMatcherIndices[3],
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
     /* const eval */ nullptr,
@@ -13950,7 +13960,7 @@
     /* num template numbers */ 1,
     /* template types */ &kTemplateTypes[26],
     /* template numbers */ &kTemplateNumbers[9],
-    /* parameters */ &kParameters[666],
+    /* parameters */ &kParameters[662],
     /* return matcher indices */ &kMatcherIndices[3],
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
     /* const eval */ nullptr,
@@ -13962,7 +13972,7 @@
     /* num template numbers */ 1,
     /* template types */ &kTemplateTypes[26],
     /* template numbers */ &kTemplateNumbers[9],
-    /* parameters */ &kParameters[668],
+    /* parameters */ &kParameters[664],
     /* return matcher indices */ &kMatcherIndices[3],
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
     /* const eval */ nullptr,
@@ -13974,13 +13984,37 @@
     /* num template numbers */ 1,
     /* template types */ &kTemplateTypes[26],
     /* template numbers */ &kTemplateNumbers[9],
-    /* parameters */ &kParameters[670],
+    /* parameters */ &kParameters[666],
     /* return matcher indices */ &kMatcherIndices[3],
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
     /* const eval */ nullptr,
   },
   {
     /* [465] */
+    /* num parameters */ 2,
+    /* num template types */ 1,
+    /* num template numbers */ 1,
+    /* template types */ &kTemplateTypes[26],
+    /* template numbers */ &kTemplateNumbers[9],
+    /* parameters */ &kParameters[668],
+    /* return matcher indices */ &kMatcherIndices[3],
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
+    /* const eval */ nullptr,
+  },
+  {
+    /* [466] */
+    /* num parameters */ 2,
+    /* num template types */ 1,
+    /* num template numbers */ 1,
+    /* template types */ &kTemplateTypes[26],
+    /* template numbers */ &kTemplateNumbers[9],
+    /* parameters */ &kParameters[670],
+    /* return matcher indices */ &kMatcherIndices[3],
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
+    /* const eval */ nullptr,
+  },
+  {
+    /* [467] */
     /* num parameters */ 3,
     /* num template types */ 1,
     /* num template numbers */ 1,
@@ -13992,19 +14026,19 @@
     /* const eval */ nullptr,
   },
   {
-    /* [466] */
+    /* [468] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 0,
     /* template types */ &kTemplateTypes[25],
     /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[946],
+    /* parameters */ &kParameters[948],
     /* return matcher indices */ &kMatcherIndices[3],
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
     /* const eval */ &ConstEval::Identity,
   },
   {
-    /* [467] */
+    /* [469] */
     /* num parameters */ 2,
     /* num template types */ 0,
     /* num template numbers */ 0,
@@ -14016,7 +14050,7 @@
     /* const eval */ &ConstEval::OpLogicalAnd,
   },
   {
-    /* [468] */
+    /* [470] */
     /* num parameters */ 2,
     /* num template types */ 0,
     /* num template numbers */ 0,
@@ -14028,13 +14062,13 @@
     /* const eval */ &ConstEval::OpLogicalOr,
   },
   {
-    /* [469] */
+    /* [471] */
     /* num parameters */ 1,
     /* num template types */ 1,
     /* num template numbers */ 0,
     /* template types */ &kTemplateTypes[36],
     /* template numbers */ &kTemplateNumbers[10],
-    /* parameters */ &kParameters[1011],
+    /* parameters */ &kParameters[1013],
     /* return matcher indices */ &kMatcherIndices[232],
     /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* const eval */ &ConstEval::Conv,
@@ -14047,357 +14081,357 @@
     /* fn abs<T : fia_fiu32_f16>(T) -> T */
     /* fn abs<N : num, T : fia_fiu32_f16>(vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ &kOverloads[281],
+    /* overloads */ &kOverloads[283],
   },
   {
     /* [1] */
     /* fn acos<T : fa_f32_f16>(@test_value(0.96891242171) T) -> T */
     /* fn acos<N : num, T : fa_f32_f16>(@test_value(0.96891242171) vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ &kOverloads[283],
+    /* overloads */ &kOverloads[285],
   },
   {
     /* [2] */
     /* fn acosh<T : fa_f32_f16>(@test_value(1.5430806348) T) -> T */
     /* fn acosh<N : num, T : fa_f32_f16>(@test_value(1.5430806348) vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ &kOverloads[285],
+    /* overloads */ &kOverloads[287],
   },
   {
     /* [3] */
     /* fn all(bool) -> bool */
     /* fn all<N : num>(vec<N, bool>) -> bool */
     /* num overloads */ 2,
-    /* overloads */ &kOverloads[287],
+    /* overloads */ &kOverloads[289],
   },
   {
     /* [4] */
     /* fn any(bool) -> bool */
     /* fn any<N : num>(vec<N, bool>) -> bool */
     /* num overloads */ 2,
-    /* overloads */ &kOverloads[289],
+    /* overloads */ &kOverloads[291],
   },
   {
     /* [5] */
     /* fn arrayLength<T, A : access>(ptr<storage, array<T>, A>) -> u32 */
     /* num overloads */ 1,
-    /* overloads */ &kOverloads[431],
+    /* overloads */ &kOverloads[433],
   },
   {
     /* [6] */
     /* fn asin<T : fa_f32_f16>(@test_value(0.479425538604) T) -> T */
     /* fn asin<N : num, T : fa_f32_f16>(@test_value(0.479425538604) vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ &kOverloads[291],
+    /* overloads */ &kOverloads[293],
   },
   {
     /* [7] */
     /* fn asinh<T : fa_f32_f16>(T) -> T */
     /* fn asinh<N : num, T : fa_f32_f16>(vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ &kOverloads[293],
+    /* overloads */ &kOverloads[295],
   },
   {
     /* [8] */
     /* fn atan<T : fa_f32_f16>(T) -> T */
     /* fn atan<N : num, T : fa_f32_f16>(vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ &kOverloads[295],
+    /* overloads */ &kOverloads[297],
   },
   {
     /* [9] */
     /* fn atan2<T : fa_f32_f16>(T, T) -> T */
     /* fn atan2<T : fa_f32_f16, N : num>(vec<N, T>, vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ &kOverloads[297],
+    /* overloads */ &kOverloads[299],
   },
   {
     /* [10] */
     /* fn atanh<T : fa_f32_f16>(@test_value(0.5) T) -> T */
     /* fn atanh<N : num, T : fa_f32_f16>(@test_value(0.5) vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ &kOverloads[299],
+    /* overloads */ &kOverloads[301],
   },
   {
     /* [11] */
     /* fn ceil<T : fa_f32_f16>(@test_value(1.5) T) -> T */
     /* fn ceil<N : num, T : fa_f32_f16>(@test_value(1.5) vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ &kOverloads[301],
+    /* overloads */ &kOverloads[303],
   },
   {
     /* [12] */
     /* fn clamp<T : fia_fiu32_f16>(T, T, T) -> T */
     /* fn clamp<T : fia_fiu32_f16, N : num>(vec<N, T>, vec<N, T>, vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ &kOverloads[303],
+    /* overloads */ &kOverloads[305],
   },
   {
     /* [13] */
     /* fn cos<T : fa_f32_f16>(@test_value(0) T) -> T */
     /* fn cos<N : num, T : fa_f32_f16>(@test_value(0) vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ &kOverloads[305],
+    /* overloads */ &kOverloads[307],
   },
   {
     /* [14] */
     /* fn cosh<T : fa_f32_f16>(@test_value(0) T) -> T */
     /* fn cosh<N : num, T : fa_f32_f16>(@test_value(0) vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ &kOverloads[307],
+    /* overloads */ &kOverloads[309],
   },
   {
     /* [15] */
     /* fn countLeadingZeros<T : iu32>(T) -> T */
     /* fn countLeadingZeros<N : num, T : iu32>(vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ &kOverloads[309],
+    /* overloads */ &kOverloads[311],
   },
   {
     /* [16] */
     /* fn countOneBits<T : iu32>(T) -> T */
     /* fn countOneBits<N : num, T : iu32>(vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ &kOverloads[311],
+    /* overloads */ &kOverloads[313],
   },
   {
     /* [17] */
     /* fn countTrailingZeros<T : iu32>(T) -> T */
     /* fn countTrailingZeros<N : num, T : iu32>(vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ &kOverloads[313],
+    /* overloads */ &kOverloads[315],
   },
   {
     /* [18] */
     /* fn cross<T : fa_f32_f16>(vec3<T>, vec3<T>) -> vec3<T> */
     /* num overloads */ 1,
-    /* overloads */ &kOverloads[432],
+    /* overloads */ &kOverloads[434],
   },
   {
     /* [19] */
     /* fn degrees<T : fa_f32_f16>(T) -> T */
     /* fn degrees<N : num, T : fa_f32_f16>(vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ &kOverloads[315],
+    /* overloads */ &kOverloads[317],
   },
   {
     /* [20] */
     /* fn determinant<N : num, T : fa_f32_f16>(mat<N, N, T>) -> T */
     /* num overloads */ 1,
-    /* overloads */ &kOverloads[433],
+    /* overloads */ &kOverloads[435],
   },
   {
     /* [21] */
     /* fn distance<T : fa_f32_f16>(T, T) -> T */
     /* fn distance<N : num, T : fa_f32_f16>(vec<N, T>, vec<N, T>) -> T */
     /* num overloads */ 2,
-    /* overloads */ &kOverloads[317],
+    /* overloads */ &kOverloads[319],
   },
   {
     /* [22] */
     /* fn dot<N : num, T : fia_fiu32_f16>(vec<N, T>, vec<N, T>) -> T */
     /* num overloads */ 1,
-    /* overloads */ &kOverloads[434],
+    /* overloads */ &kOverloads[436],
   },
   {
     /* [23] */
     /* fn dot4I8Packed(u32, u32) -> i32 */
     /* num overloads */ 1,
-    /* overloads */ &kOverloads[435],
+    /* overloads */ &kOverloads[437],
   },
   {
     /* [24] */
     /* fn dot4U8Packed(u32, u32) -> u32 */
     /* num overloads */ 1,
-    /* overloads */ &kOverloads[436],
+    /* overloads */ &kOverloads[438],
   },
   {
     /* [25] */
     /* fn dpdx(f32) -> f32 */
     /* fn dpdx<N : num>(vec<N, f32>) -> vec<N, f32> */
     /* num overloads */ 2,
-    /* overloads */ &kOverloads[319],
+    /* overloads */ &kOverloads[321],
   },
   {
     /* [26] */
     /* fn dpdxCoarse(f32) -> f32 */
     /* fn dpdxCoarse<N : num>(vec<N, f32>) -> vec<N, f32> */
     /* num overloads */ 2,
-    /* overloads */ &kOverloads[321],
+    /* overloads */ &kOverloads[323],
   },
   {
     /* [27] */
     /* fn dpdxFine(f32) -> f32 */
     /* fn dpdxFine<N : num>(vec<N, f32>) -> vec<N, f32> */
     /* num overloads */ 2,
-    /* overloads */ &kOverloads[323],
+    /* overloads */ &kOverloads[325],
   },
   {
     /* [28] */
     /* fn dpdy(f32) -> f32 */
     /* fn dpdy<N : num>(vec<N, f32>) -> vec<N, f32> */
     /* num overloads */ 2,
-    /* overloads */ &kOverloads[325],
+    /* overloads */ &kOverloads[327],
   },
   {
     /* [29] */
     /* fn dpdyCoarse(f32) -> f32 */
     /* fn dpdyCoarse<N : num>(vec<N, f32>) -> vec<N, f32> */
     /* num overloads */ 2,
-    /* overloads */ &kOverloads[327],
+    /* overloads */ &kOverloads[329],
   },
   {
     /* [30] */
     /* fn dpdyFine(f32) -> f32 */
     /* fn dpdyFine<N : num>(vec<N, f32>) -> vec<N, f32> */
     /* num overloads */ 2,
-    /* overloads */ &kOverloads[329],
+    /* overloads */ &kOverloads[331],
   },
   {
     /* [31] */
     /* fn exp<T : fa_f32_f16>(T) -> T */
     /* fn exp<N : num, T : fa_f32_f16>(vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ &kOverloads[331],
+    /* overloads */ &kOverloads[333],
   },
   {
     /* [32] */
     /* fn exp2<T : fa_f32_f16>(T) -> T */
     /* fn exp2<N : num, T : fa_f32_f16>(vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ &kOverloads[333],
+    /* overloads */ &kOverloads[335],
   },
   {
     /* [33] */
     /* fn extractBits<T : iu32>(T, u32, u32) -> T */
     /* fn extractBits<N : num, T : iu32>(vec<N, T>, u32, u32) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ &kOverloads[335],
+    /* overloads */ &kOverloads[337],
   },
   {
     /* [34] */
     /* fn faceForward<N : num, T : fa_f32_f16>(vec<N, T>, vec<N, T>, vec<N, T>) -> vec<N, T> */
     /* num overloads */ 1,
-    /* overloads */ &kOverloads[437],
+    /* overloads */ &kOverloads[439],
   },
   {
     /* [35] */
     /* fn firstLeadingBit<T : iu32>(T) -> T */
     /* fn firstLeadingBit<N : num, T : iu32>(vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ &kOverloads[337],
+    /* overloads */ &kOverloads[339],
   },
   {
     /* [36] */
     /* fn firstTrailingBit<T : iu32>(T) -> T */
     /* fn firstTrailingBit<N : num, T : iu32>(vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ &kOverloads[339],
+    /* overloads */ &kOverloads[341],
   },
   {
     /* [37] */
     /* fn floor<T : fa_f32_f16>(@test_value(1.5) T) -> T */
     /* fn floor<N : num, T : fa_f32_f16>(@test_value(1.5) vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ &kOverloads[341],
+    /* overloads */ &kOverloads[343],
   },
   {
     /* [38] */
     /* fn fma<T : fa_f32_f16>(T, T, T) -> T */
     /* fn fma<N : num, T : fa_f32_f16>(vec<N, T>, vec<N, T>, vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ &kOverloads[343],
+    /* overloads */ &kOverloads[345],
   },
   {
     /* [39] */
     /* fn fract<T : fa_f32_f16>(@test_value(1.25) T) -> T */
     /* fn fract<N : num, T : fa_f32_f16>(@test_value(1.25) vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ &kOverloads[345],
+    /* overloads */ &kOverloads[347],
   },
   {
     /* [40] */
     /* fn frexp<T : fa_f32_f16>(T) -> __frexp_result<T> */
     /* fn frexp<N : num, T : fa_f32_f16>(vec<N, T>) -> __frexp_result_vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ &kOverloads[347],
+    /* overloads */ &kOverloads[349],
   },
   {
     /* [41] */
     /* fn fwidth(f32) -> f32 */
     /* fn fwidth<N : num>(vec<N, f32>) -> vec<N, f32> */
     /* num overloads */ 2,
-    /* overloads */ &kOverloads[349],
+    /* overloads */ &kOverloads[351],
   },
   {
     /* [42] */
     /* fn fwidthCoarse(f32) -> f32 */
     /* fn fwidthCoarse<N : num>(vec<N, f32>) -> vec<N, f32> */
     /* num overloads */ 2,
-    /* overloads */ &kOverloads[351],
+    /* overloads */ &kOverloads[353],
   },
   {
     /* [43] */
     /* fn fwidthFine(f32) -> f32 */
     /* fn fwidthFine<N : num>(vec<N, f32>) -> vec<N, f32> */
     /* num overloads */ 2,
-    /* overloads */ &kOverloads[353],
+    /* overloads */ &kOverloads[355],
   },
   {
     /* [44] */
     /* fn insertBits<T : iu32>(T, T, u32, u32) -> T */
     /* fn insertBits<N : num, T : iu32>(vec<N, T>, vec<N, T>, u32, u32) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ &kOverloads[355],
+    /* overloads */ &kOverloads[357],
   },
   {
     /* [45] */
     /* fn inverseSqrt<T : fa_f32_f16>(T) -> T */
     /* fn inverseSqrt<N : num, T : fa_f32_f16>(vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ &kOverloads[357],
+    /* overloads */ &kOverloads[359],
   },
   {
     /* [46] */
     /* fn ldexp<T : fa_f32_f16, U : ia_i32>(T, U) -> T */
     /* fn ldexp<N : num, T : fa_f32_f16, U : ia_i32>(vec<N, T>, vec<N, U>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ &kOverloads[359],
+    /* overloads */ &kOverloads[361],
   },
   {
     /* [47] */
     /* fn length<T : fa_f32_f16>(@test_value(0) T) -> T */
     /* fn length<N : num, T : fa_f32_f16>(@test_value(0) vec<N, T>) -> T */
     /* num overloads */ 2,
-    /* overloads */ &kOverloads[361],
+    /* overloads */ &kOverloads[363],
   },
   {
     /* [48] */
     /* fn log<T : fa_f32_f16>(T) -> T */
     /* fn log<N : num, T : fa_f32_f16>(vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ &kOverloads[363],
+    /* overloads */ &kOverloads[365],
   },
   {
     /* [49] */
     /* fn log2<T : fa_f32_f16>(T) -> T */
     /* fn log2<N : num, T : fa_f32_f16>(vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ &kOverloads[365],
+    /* overloads */ &kOverloads[367],
   },
   {
     /* [50] */
     /* fn max<T : fia_fiu32_f16>(T, T) -> T */
     /* fn max<N : num, T : fia_fiu32_f16>(vec<N, T>, vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ &kOverloads[367],
+    /* overloads */ &kOverloads[369],
   },
   {
     /* [51] */
     /* fn min<T : fia_fiu32_f16>(T, T) -> T */
     /* fn min<N : num, T : fia_fiu32_f16>(vec<N, T>, vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ &kOverloads[369],
+    /* overloads */ &kOverloads[371],
   },
   {
     /* [52] */
@@ -14405,104 +14439,104 @@
     /* fn mix<N : num, T : fa_f32_f16>(vec<N, T>, vec<N, T>, vec<N, T>) -> vec<N, T> */
     /* fn mix<N : num, T : fa_f32_f16>(vec<N, T>, vec<N, T>, T) -> vec<N, T> */
     /* num overloads */ 3,
-    /* overloads */ &kOverloads[257],
+    /* overloads */ &kOverloads[262],
   },
   {
     /* [53] */
     /* fn modf<T : fa_f32_f16>(@test_value(-1.5) T) -> __modf_result<T> */
     /* fn modf<N : num, T : fa_f32_f16>(@test_value(-1.5) vec<N, T>) -> __modf_result_vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ &kOverloads[371],
+    /* overloads */ &kOverloads[373],
   },
   {
     /* [54] */
     /* fn normalize<N : num, T : fa_f32_f16>(vec<N, T>) -> vec<N, T> */
     /* num overloads */ 1,
-    /* overloads */ &kOverloads[438],
+    /* overloads */ &kOverloads[440],
   },
   {
     /* [55] */
     /* fn pack2x16float(vec2<f32>) -> u32 */
     /* num overloads */ 1,
-    /* overloads */ &kOverloads[439],
+    /* overloads */ &kOverloads[441],
   },
   {
     /* [56] */
     /* fn pack2x16snorm(vec2<f32>) -> u32 */
     /* num overloads */ 1,
-    /* overloads */ &kOverloads[440],
+    /* overloads */ &kOverloads[442],
   },
   {
     /* [57] */
     /* fn pack2x16unorm(vec2<f32>) -> u32 */
     /* num overloads */ 1,
-    /* overloads */ &kOverloads[441],
+    /* overloads */ &kOverloads[443],
   },
   {
     /* [58] */
     /* fn pack4x8snorm(vec4<f32>) -> u32 */
     /* num overloads */ 1,
-    /* overloads */ &kOverloads[442],
+    /* overloads */ &kOverloads[444],
   },
   {
     /* [59] */
     /* fn pack4x8unorm(vec4<f32>) -> u32 */
     /* num overloads */ 1,
-    /* overloads */ &kOverloads[443],
+    /* overloads */ &kOverloads[445],
   },
   {
     /* [60] */
     /* fn pow<T : fa_f32_f16>(T, T) -> T */
     /* fn pow<N : num, T : fa_f32_f16>(vec<N, T>, vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ &kOverloads[373],
+    /* overloads */ &kOverloads[375],
   },
   {
     /* [61] */
     /* fn quantizeToF16(f32) -> f32 */
     /* fn quantizeToF16<N : num>(vec<N, f32>) -> vec<N, f32> */
     /* num overloads */ 2,
-    /* overloads */ &kOverloads[375],
+    /* overloads */ &kOverloads[377],
   },
   {
     /* [62] */
     /* fn radians<T : fa_f32_f16>(T) -> T */
     /* fn radians<N : num, T : fa_f32_f16>(vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ &kOverloads[377],
+    /* overloads */ &kOverloads[379],
   },
   {
     /* [63] */
     /* fn reflect<N : num, T : fa_f32_f16>(vec<N, T>, vec<N, T>) -> vec<N, T> */
     /* num overloads */ 1,
-    /* overloads */ &kOverloads[444],
+    /* overloads */ &kOverloads[446],
   },
   {
     /* [64] */
     /* fn refract<N : num, T : fa_f32_f16>(vec<N, T>, vec<N, T>, T) -> vec<N, T> */
     /* num overloads */ 1,
-    /* overloads */ &kOverloads[445],
+    /* overloads */ &kOverloads[447],
   },
   {
     /* [65] */
     /* fn reverseBits<T : iu32>(T) -> T */
     /* fn reverseBits<N : num, T : iu32>(vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ &kOverloads[379],
+    /* overloads */ &kOverloads[381],
   },
   {
     /* [66] */
     /* fn round<T : fa_f32_f16>(@test_value(3.5) T) -> T */
     /* fn round<N : num, T : fa_f32_f16>(@test_value(3.5) vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ &kOverloads[381],
+    /* overloads */ &kOverloads[383],
   },
   {
     /* [67] */
     /* fn saturate<T : fa_f32_f16>(@test_value(2) T) -> T */
     /* fn saturate<T : fa_f32_f16, N : num>(@test_value(2) vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ &kOverloads[383],
+    /* overloads */ &kOverloads[385],
   },
   {
     /* [68] */
@@ -14510,124 +14544,124 @@
     /* fn select<T : scalar, N : num>(vec<N, T>, vec<N, T>, bool) -> vec<N, T> */
     /* fn select<N : num, T : scalar>(vec<N, T>, vec<N, T>, vec<N, bool>) -> vec<N, T> */
     /* num overloads */ 3,
-    /* overloads */ &kOverloads[260],
+    /* overloads */ &kOverloads[265],
   },
   {
     /* [69] */
     /* fn sign<T : fia_fi32_f16>(T) -> T */
     /* fn sign<N : num, T : fia_fi32_f16>(vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ &kOverloads[385],
+    /* overloads */ &kOverloads[387],
   },
   {
     /* [70] */
     /* fn sin<T : fa_f32_f16>(@test_value(1.57079632679) T) -> T */
     /* fn sin<N : num, T : fa_f32_f16>(@test_value(1.57079632679) vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ &kOverloads[387],
+    /* overloads */ &kOverloads[389],
   },
   {
     /* [71] */
     /* fn sinh<T : fa_f32_f16>(T) -> T */
     /* fn sinh<N : num, T : fa_f32_f16>(vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ &kOverloads[389],
+    /* overloads */ &kOverloads[391],
   },
   {
     /* [72] */
     /* fn smoothstep<T : fa_f32_f16>(@test_value(2) T, @test_value(4) T, @test_value(3) T) -> T */
     /* fn smoothstep<N : num, T : fa_f32_f16>(@test_value(2) vec<N, T>, @test_value(4) vec<N, T>, @test_value(3) vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ &kOverloads[391],
+    /* overloads */ &kOverloads[393],
   },
   {
     /* [73] */
     /* fn sqrt<T : fa_f32_f16>(T) -> T */
     /* fn sqrt<N : num, T : fa_f32_f16>(vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ &kOverloads[393],
+    /* overloads */ &kOverloads[395],
   },
   {
     /* [74] */
     /* fn step<T : fa_f32_f16>(T, T) -> T */
     /* fn step<N : num, T : fa_f32_f16>(vec<N, T>, vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ &kOverloads[395],
+    /* overloads */ &kOverloads[397],
   },
   {
     /* [75] */
     /* fn storageBarrier() */
     /* num overloads */ 1,
-    /* overloads */ &kOverloads[446],
+    /* overloads */ &kOverloads[448],
   },
   {
     /* [76] */
     /* fn tan<T : fa_f32_f16>(T) -> T */
     /* fn tan<N : num, T : fa_f32_f16>(vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ &kOverloads[397],
+    /* overloads */ &kOverloads[399],
   },
   {
     /* [77] */
     /* fn tanh<T : fa_f32_f16>(T) -> T */
     /* fn tanh<N : num, T : fa_f32_f16>(vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ &kOverloads[399],
+    /* overloads */ &kOverloads[401],
   },
   {
     /* [78] */
     /* fn transpose<M : num, N : num, T : fa_f32_f16>(mat<M, N, T>) -> mat<N, M, T> */
     /* num overloads */ 1,
-    /* overloads */ &kOverloads[447],
+    /* overloads */ &kOverloads[449],
   },
   {
     /* [79] */
     /* fn trunc<T : fa_f32_f16>(@test_value(1.5) T) -> T */
     /* fn trunc<N : num, T : fa_f32_f16>(@test_value(1.5) vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ &kOverloads[401],
+    /* overloads */ &kOverloads[403],
   },
   {
     /* [80] */
     /* fn unpack2x16float(u32) -> vec2<f32> */
     /* num overloads */ 1,
-    /* overloads */ &kOverloads[448],
+    /* overloads */ &kOverloads[450],
   },
   {
     /* [81] */
     /* fn unpack2x16snorm(u32) -> vec2<f32> */
     /* num overloads */ 1,
-    /* overloads */ &kOverloads[449],
+    /* overloads */ &kOverloads[451],
   },
   {
     /* [82] */
     /* fn unpack2x16unorm(u32) -> vec2<f32> */
     /* num overloads */ 1,
-    /* overloads */ &kOverloads[450],
+    /* overloads */ &kOverloads[452],
   },
   {
     /* [83] */
     /* fn unpack4x8snorm(u32) -> vec4<f32> */
     /* num overloads */ 1,
-    /* overloads */ &kOverloads[451],
+    /* overloads */ &kOverloads[453],
   },
   {
     /* [84] */
     /* fn unpack4x8unorm(u32) -> vec4<f32> */
     /* num overloads */ 1,
-    /* overloads */ &kOverloads[452],
+    /* overloads */ &kOverloads[454],
   },
   {
     /* [85] */
     /* fn workgroupBarrier() */
     /* num overloads */ 1,
-    /* overloads */ &kOverloads[453],
+    /* overloads */ &kOverloads[455],
   },
   {
     /* [86] */
     /* fn workgroupUniformLoad<T>(ptr<workgroup, T, read_write>) -> T */
     /* num overloads */ 1,
-    /* overloads */ &kOverloads[454],
+    /* overloads */ &kOverloads[456],
   },
   {
     /* [87] */
@@ -14692,10 +14726,12 @@
   {
     /* [90] */
     /* fn textureNumLayers<T : fiu32>(texture: texture_2d_array<T>) -> u32 */
+    /* fn textureNumLayers<T : fiu32>(texture: texture_cube_array<T>) -> u32 */
     /* fn textureNumLayers(texture: texture_depth_2d_array) -> u32 */
+    /* fn textureNumLayers(texture: texture_depth_cube_array) -> u32 */
     /* fn textureNumLayers<F : texel_format, A : write>(texture: texture_storage_2d_array<F, A>) -> u32 */
-    /* num overloads */ 3,
-    /* overloads */ &kOverloads[263],
+    /* num overloads */ 5,
+    /* overloads */ &kOverloads[231],
   },
   {
     /* [91] */
@@ -14717,7 +14753,7 @@
     /* fn textureNumSamples<T : fiu32>(texture: texture_multisampled_2d<T>) -> u32 */
     /* fn textureNumSamples(texture: texture_depth_multisampled_2d) -> u32 */
     /* num overloads */ 2,
-    /* overloads */ &kOverloads[403],
+    /* overloads */ &kOverloads[405],
   },
   {
     /* [93] */
@@ -14811,7 +14847,7 @@
     /* fn textureSampleBaseClampToEdge(texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>) -> vec4<f32> */
     /* fn textureSampleBaseClampToEdge(texture: texture_external, sampler: sampler, coords: vec2<f32>) -> vec4<f32> */
     /* num overloads */ 2,
-    /* overloads */ &kOverloads[405],
+    /* overloads */ &kOverloads[407],
   },
   {
     /* [100] */
@@ -14848,73 +14884,73 @@
     /* [102] */
     /* fn atomicLoad<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>) -> T */
     /* num overloads */ 1,
-    /* overloads */ &kOverloads[455],
+    /* overloads */ &kOverloads[457],
   },
   {
     /* [103] */
     /* fn atomicStore<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) */
     /* num overloads */ 1,
-    /* overloads */ &kOverloads[456],
+    /* overloads */ &kOverloads[458],
   },
   {
     /* [104] */
     /* fn atomicAdd<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) -> T */
     /* num overloads */ 1,
-    /* overloads */ &kOverloads[457],
+    /* overloads */ &kOverloads[459],
   },
   {
     /* [105] */
     /* fn atomicSub<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) -> T */
     /* num overloads */ 1,
-    /* overloads */ &kOverloads[458],
+    /* overloads */ &kOverloads[460],
   },
   {
     /* [106] */
     /* fn atomicMax<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) -> T */
     /* num overloads */ 1,
-    /* overloads */ &kOverloads[459],
+    /* overloads */ &kOverloads[461],
   },
   {
     /* [107] */
     /* fn atomicMin<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) -> T */
     /* num overloads */ 1,
-    /* overloads */ &kOverloads[460],
+    /* overloads */ &kOverloads[462],
   },
   {
     /* [108] */
     /* fn atomicAnd<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) -> T */
     /* num overloads */ 1,
-    /* overloads */ &kOverloads[461],
+    /* overloads */ &kOverloads[463],
   },
   {
     /* [109] */
     /* fn atomicOr<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) -> T */
     /* num overloads */ 1,
-    /* overloads */ &kOverloads[462],
+    /* overloads */ &kOverloads[464],
   },
   {
     /* [110] */
     /* fn atomicXor<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) -> T */
     /* num overloads */ 1,
-    /* overloads */ &kOverloads[463],
+    /* overloads */ &kOverloads[465],
   },
   {
     /* [111] */
     /* fn atomicExchange<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) -> T */
     /* num overloads */ 1,
-    /* overloads */ &kOverloads[464],
+    /* overloads */ &kOverloads[466],
   },
   {
     /* [112] */
     /* fn atomicCompareExchangeWeak<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T, T) -> __atomic_compare_exchange_result<T> */
     /* num overloads */ 1,
-    /* overloads */ &kOverloads[465],
+    /* overloads */ &kOverloads[467],
   },
   {
     /* [113] */
     /* fn _tint_materialize<T>(T) -> T */
     /* num overloads */ 1,
-    /* overloads */ &kOverloads[466],
+    /* overloads */ &kOverloads[468],
   },
 };
 
@@ -14924,21 +14960,21 @@
     /* op !(bool) -> bool */
     /* op !<N : num>(vec<N, bool>) -> vec<N, bool> */
     /* num overloads */ 2,
-    /* overloads */ &kOverloads[407],
+    /* overloads */ &kOverloads[409],
   },
   {
     /* [1] */
     /* op ~<T : ia_iu32>(T) -> T */
     /* op ~<T : ia_iu32, N : num>(vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ &kOverloads[409],
+    /* overloads */ &kOverloads[411],
   },
   {
     /* [2] */
     /* op -<T : fia_fi32_f16>(T) -> T */
     /* op -<T : fia_fi32_f16, N : num>(vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ &kOverloads[411],
+    /* overloads */ &kOverloads[413],
   },
 };
 constexpr uint8_t kUnaryOperatorNot = 0;
@@ -14954,7 +14990,7 @@
     /* op +<T : fia_fiu32_f16, N : num>(T, vec<N, T>) -> vec<N, T> */
     /* op +<T : fa_f32_f16, N : num, M : num>(mat<N, M, T>, mat<N, M, T>) -> mat<N, M, T> */
     /* num overloads */ 5,
-    /* overloads */ &kOverloads[231],
+    /* overloads */ &kOverloads[236],
   },
   {
     /* [1] */
@@ -14964,7 +15000,7 @@
     /* op -<T : fia_fiu32_f16, N : num>(T, vec<N, T>) -> vec<N, T> */
     /* op -<T : fa_f32_f16, N : num, M : num>(mat<N, M, T>, mat<N, M, T>) -> mat<N, M, T> */
     /* num overloads */ 5,
-    /* overloads */ &kOverloads[236],
+    /* overloads */ &kOverloads[241],
   },
   {
     /* [2] */
@@ -14987,7 +15023,7 @@
     /* op /<T : fia_fiu32_f16, N : num>(vec<N, T>, T) -> vec<N, T> */
     /* op /<T : fia_fiu32_f16, N : num>(T, vec<N, T>) -> vec<N, T> */
     /* num overloads */ 4,
-    /* overloads */ &kOverloads[241],
+    /* overloads */ &kOverloads[246],
   },
   {
     /* [4] */
@@ -14996,14 +15032,14 @@
     /* op %<T : fia_fiu32_f16, N : num>(vec<N, T>, T) -> vec<N, T> */
     /* op %<T : fia_fiu32_f16, N : num>(T, vec<N, T>) -> vec<N, T> */
     /* num overloads */ 4,
-    /* overloads */ &kOverloads[245],
+    /* overloads */ &kOverloads[250],
   },
   {
     /* [5] */
     /* op ^<T : ia_iu32>(T, T) -> T */
     /* op ^<T : ia_iu32, N : num>(vec<N, T>, vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ &kOverloads[413],
+    /* overloads */ &kOverloads[415],
   },
   {
     /* [6] */
@@ -15012,7 +15048,7 @@
     /* op &<T : ia_iu32>(T, T) -> T */
     /* op &<T : ia_iu32, N : num>(vec<N, T>, vec<N, T>) -> vec<N, T> */
     /* num overloads */ 4,
-    /* overloads */ &kOverloads[249],
+    /* overloads */ &kOverloads[254],
   },
   {
     /* [7] */
@@ -15021,75 +15057,75 @@
     /* op |<T : ia_iu32>(T, T) -> T */
     /* op |<T : ia_iu32, N : num>(vec<N, T>, vec<N, T>) -> vec<N, T> */
     /* num overloads */ 4,
-    /* overloads */ &kOverloads[253],
+    /* overloads */ &kOverloads[258],
   },
   {
     /* [8] */
     /* op &&(bool, bool) -> bool */
     /* num overloads */ 1,
-    /* overloads */ &kOverloads[467],
+    /* overloads */ &kOverloads[469],
   },
   {
     /* [9] */
     /* op ||(bool, bool) -> bool */
     /* num overloads */ 1,
-    /* overloads */ &kOverloads[468],
+    /* overloads */ &kOverloads[470],
   },
   {
     /* [10] */
     /* op ==<T : scalar>(T, T) -> bool */
     /* op ==<T : scalar, N : num>(vec<N, T>, vec<N, T>) -> vec<N, bool> */
     /* num overloads */ 2,
-    /* overloads */ &kOverloads[415],
+    /* overloads */ &kOverloads[417],
   },
   {
     /* [11] */
     /* op !=<T : scalar>(T, T) -> bool */
     /* op !=<T : scalar, N : num>(vec<N, T>, vec<N, T>) -> vec<N, bool> */
     /* num overloads */ 2,
-    /* overloads */ &kOverloads[417],
+    /* overloads */ &kOverloads[419],
   },
   {
     /* [12] */
     /* op <<T : fia_fiu32_f16>(T, T) -> bool */
     /* op <<T : fia_fiu32_f16, N : num>(vec<N, T>, vec<N, T>) -> vec<N, bool> */
     /* num overloads */ 2,
-    /* overloads */ &kOverloads[419],
+    /* overloads */ &kOverloads[421],
   },
   {
     /* [13] */
     /* op ><T : fia_fiu32_f16>(T, T) -> bool */
     /* op ><T : fia_fiu32_f16, N : num>(vec<N, T>, vec<N, T>) -> vec<N, bool> */
     /* num overloads */ 2,
-    /* overloads */ &kOverloads[421],
+    /* overloads */ &kOverloads[423],
   },
   {
     /* [14] */
     /* op <=<T : fia_fiu32_f16>(T, T) -> bool */
     /* op <=<T : fia_fiu32_f16, N : num>(vec<N, T>, vec<N, T>) -> vec<N, bool> */
     /* num overloads */ 2,
-    /* overloads */ &kOverloads[423],
+    /* overloads */ &kOverloads[425],
   },
   {
     /* [15] */
     /* op >=<T : fia_fiu32_f16>(T, T) -> bool */
     /* op >=<T : fiu32_f16, N : num>(vec<N, T>, vec<N, T>) -> vec<N, bool> */
     /* num overloads */ 2,
-    /* overloads */ &kOverloads[425],
+    /* overloads */ &kOverloads[427],
   },
   {
     /* [16] */
     /* op <<<T : ia_iu32>(T, u32) -> T */
     /* op <<<T : ia_iu32, N : num>(vec<N, T>, vec<N, u32>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ &kOverloads[427],
+    /* overloads */ &kOverloads[429],
   },
   {
     /* [17] */
     /* op >><T : ia_iu32>(T, u32) -> T */
     /* op >><T : ia_iu32, N : num>(vec<N, T>, vec<N, u32>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ &kOverloads[429],
+    /* overloads */ &kOverloads[431],
   },
 };
 constexpr uint8_t kBinaryOperatorPlus = 0;
@@ -15118,7 +15154,7 @@
     /* ctor i32(i32) -> i32 */
     /* conv i32<T : scalar_no_i32>(T) -> i32 */
     /* num overloads */ 3,
-    /* overloads */ &kOverloads[266],
+    /* overloads */ &kOverloads[268],
   },
   {
     /* [1] */
@@ -15126,7 +15162,7 @@
     /* ctor u32(u32) -> u32 */
     /* conv u32<T : scalar_no_u32>(T) -> u32 */
     /* num overloads */ 3,
-    /* overloads */ &kOverloads[269],
+    /* overloads */ &kOverloads[271],
   },
   {
     /* [2] */
@@ -15134,7 +15170,7 @@
     /* ctor f32(f32) -> f32 */
     /* conv f32<T : scalar_no_f32>(T) -> f32 */
     /* num overloads */ 3,
-    /* overloads */ &kOverloads[272],
+    /* overloads */ &kOverloads[274],
   },
   {
     /* [3] */
@@ -15142,7 +15178,7 @@
     /* ctor f16(f16) -> f16 */
     /* conv f16<T : scalar_no_f16>(T) -> f16 */
     /* num overloads */ 3,
-    /* overloads */ &kOverloads[275],
+    /* overloads */ &kOverloads[277],
   },
   {
     /* [4] */
@@ -15150,7 +15186,7 @@
     /* ctor bool(bool) -> bool */
     /* conv bool<T : scalar_no_bool>(T) -> bool */
     /* num overloads */ 3,
-    /* overloads */ &kOverloads[278],
+    /* overloads */ &kOverloads[280],
   },
   {
     /* [5] */
@@ -15305,7 +15341,7 @@
     /* [17] */
     /* conv packedVec3<T : concrete_scalar>(vec3<T>) -> packedVec3<T> */
     /* num overloads */ 1,
-    /* overloads */ &kOverloads[469],
+    /* overloads */ &kOverloads[471],
   },
 };
 
diff --git a/src/tint/writer/glsl/generator_impl_builtin_texture_test.cc b/src/tint/writer/glsl/generator_impl_builtin_texture_test.cc
index bbb3848..040adfe 100644
--- a/src/tint/writer/glsl/generator_impl_builtin_texture_test.cc
+++ b/src/tint/writer/glsl/generator_impl_builtin_texture_test.cc
@@ -98,6 +98,8 @@
             return R"(textureGather(Texture_Sampler, vec4(1.0f, 2.0f, 3.0f, float(4u)), 5.0f))";
         case ValidTextureOverload::kNumLayers2dArray:
         case ValidTextureOverload::kNumLayersDepth2dArray:
+        case ValidTextureOverload::kNumLayersCubeArray:
+        case ValidTextureOverload::kNumLayersDepthCubeArray:
             return {"textureSize"};
         case ValidTextureOverload::kNumLayersStorageWO2dArray:
             return {"imageSize"};
diff --git a/src/tint/writer/hlsl/generator_impl.cc b/src/tint/writer/hlsl/generator_impl.cc
index f0247c4..3acafe1 100644
--- a/src/tint/writer/hlsl/generator_impl.cc
+++ b/src/tint/writer/hlsl/generator_impl.cc
@@ -2427,9 +2427,9 @@
             // Declare a variable to hold the queried texture info
             auto dims = UniqueIdentifier(kTempNamePrefix);
             if (num_dimensions == 1) {
-                line() << "int " << dims << ";";
+                line() << "uint " << dims << ";";
             } else {
-                line() << "int" << num_dimensions << " " << dims << ";";
+                line() << "uint" << num_dimensions << " " << dims << ";";
             }
 
             {  // texture.GetDimensions(...)
diff --git a/src/tint/writer/hlsl/generator_impl_builtin_texture_test.cc b/src/tint/writer/hlsl/generator_impl_builtin_texture_test.cc
index 6751790..4d7165b4 100644
--- a/src/tint/writer/hlsl/generator_impl_builtin_texture_test.cc
+++ b/src/tint/writer/hlsl/generator_impl_builtin_texture_test.cc
@@ -170,6 +170,8 @@
             return R"(tint_symbol.GatherCmp(tint_symbol_1, float4(1.0f, 2.0f, 3.0f, float(4u)), 5.0f))";
         case ValidTextureOverload::kNumLayers2dArray:
         case ValidTextureOverload::kNumLayersDepth2dArray:
+        case ValidTextureOverload::kNumLayersCubeArray:
+        case ValidTextureOverload::kNumLayersDepthCubeArray:
         case ValidTextureOverload::kNumLayersStorageWO2dArray:
             return {
                 R"(int3 tint_tmp;
diff --git a/src/tint/writer/msl/generator_impl_builtin_texture_test.cc b/src/tint/writer/msl/generator_impl_builtin_texture_test.cc
index 7beee1a..730fe99 100644
--- a/src/tint/writer/msl/generator_impl_builtin_texture_test.cc
+++ b/src/tint/writer/msl/generator_impl_builtin_texture_test.cc
@@ -90,7 +90,9 @@
         case ValidTextureOverload::kGatherCompareDepthCubeArrayF32:
             return R"(Texture.gather_compare(Sampler, float3(1.0f, 2.0f, 3.0f), 4u, 5.0f))";
         case ValidTextureOverload::kNumLayers2dArray:
+        case ValidTextureOverload::kNumLayersCubeArray:
         case ValidTextureOverload::kNumLayersDepth2dArray:
+        case ValidTextureOverload::kNumLayersDepthCubeArray:
         case ValidTextureOverload::kNumLayersStorageWO2dArray:
             return R"(Texture.get_array_size())";
         case ValidTextureOverload::kNumLevels2d:
diff --git a/src/tint/writer/spirv/builder_builtin_texture_test.cc b/src/tint/writer/spirv/builder_builtin_texture_test.cc
index 766b78b..4697582 100644
--- a/src/tint/writer/spirv/builder_builtin_texture_test.cc
+++ b/src/tint/writer/spirv/builder_builtin_texture_test.cc
@@ -1132,6 +1132,29 @@
                     R"(
 OpCapability ImageQuery
 )"};
+        case ValidTextureOverload::kNumLayersCubeArray:
+            return {R"(
+%4 = OpTypeFloat 32
+%3 = OpTypeImage %4 Cube 0 1 0 1 Unknown
+%2 = OpTypePointer UniformConstant %3
+%1 = OpVariable %2 UniformConstant
+%7 = OpTypeSampler
+%6 = OpTypePointer UniformConstant %7
+%5 = OpVariable %6 UniformConstant
+%9 = OpTypeInt 32 0
+%11 = OpTypeVector %9 3
+%13 = OpTypeInt 32 1
+%14 = OpConstant %13 0
+)",
+                    R"(
+%12 = OpLoad %3 %1
+%10 = OpImageQuerySizeLod %11 %12 %14
+%8 = OpCompositeExtract %9 %10 2
+)",
+                    R"(
+OpCapability SampledCubeArray
+OpCapability ImageQuery
+)"};
         case ValidTextureOverload::kNumLayersDepth2dArray:
             return {R"(
 %4 = OpTypeFloat 32
@@ -1154,6 +1177,29 @@
                     R"(
 OpCapability ImageQuery
 )"};
+        case ValidTextureOverload::kNumLayersDepthCubeArray:
+            return {R"(
+%4 = OpTypeFloat 32
+%3 = OpTypeImage %4 Cube 0 1 0 1 Unknown
+%2 = OpTypePointer UniformConstant %3
+%1 = OpVariable %2 UniformConstant
+%7 = OpTypeSampler
+%6 = OpTypePointer UniformConstant %7
+%5 = OpVariable %6 UniformConstant
+%9 = OpTypeInt 32 0
+%11 = OpTypeVector %9 3
+%13 = OpTypeInt 32 1
+%14 = OpConstant %13 0
+)",
+                    R"(
+%12 = OpLoad %3 %1
+%10 = OpImageQuerySizeLod %11 %12 %14
+%8 = OpCompositeExtract %9 %10 2
+)",
+                    R"(
+OpCapability SampledCubeArray
+OpCapability ImageQuery
+)"};
         case ValidTextureOverload::kNumLayersStorageWO2dArray:
             return {R"(
 %4 = OpTypeFloat 32
diff --git a/test/tint/bug/tint/1739.wgsl.expected.dxc.hlsl b/test/tint/bug/tint/1739.wgsl.expected.dxc.hlsl
index 1e3fa45..e71fad6 100644
--- a/test/tint/bug/tint/1739.wgsl.expected.dxc.hlsl
+++ b/test/tint/bug/tint/1739.wgsl.expected.dxc.hlsl
@@ -40,22 +40,22 @@
   const int2 coord1 = (coord >> (1u).xx);
   float3 color = float3(0.0f, 0.0f, 0.0f);
   if ((params.numPlanes == 1u)) {
-    int3 tint_tmp;
+    uint3 tint_tmp;
     plane0.GetDimensions(0, tint_tmp.x, tint_tmp.y, tint_tmp.z);
     const uint level_idx = min(0u, (tint_tmp.z - 1u));
-    int3 tint_tmp_1;
+    uint3 tint_tmp_1;
     plane0.GetDimensions(level_idx, tint_tmp_1.x, tint_tmp_1.y, tint_tmp_1.z);
     color = plane0.Load(int3(tint_clamp(coord, (0).xx, int2((tint_tmp_1.xy - (1u).xx))), int(level_idx))).rgb;
   } else {
-    int3 tint_tmp_2;
+    uint3 tint_tmp_2;
     plane0.GetDimensions(0, tint_tmp_2.x, tint_tmp_2.y, tint_tmp_2.z);
     const uint level_idx_1 = min(0u, (tint_tmp_2.z - 1u));
-    int3 tint_tmp_3;
+    uint3 tint_tmp_3;
     plane1.GetDimensions(0, tint_tmp_3.x, tint_tmp_3.y, tint_tmp_3.z);
     const uint level_idx_2 = min(0u, (tint_tmp_3.z - 1u));
-    int3 tint_tmp_4;
+    uint3 tint_tmp_4;
     plane0.GetDimensions(level_idx_1, tint_tmp_4.x, tint_tmp_4.y, tint_tmp_4.z);
-    int3 tint_tmp_5;
+    uint3 tint_tmp_5;
     plane1.GetDimensions(level_idx_2, tint_tmp_5.x, tint_tmp_5.y, tint_tmp_5.z);
     color = mul(params.yuvToRgbConversionMatrix, float4(plane0.Load(int3(tint_clamp(coord, (0).xx, int2((tint_tmp_4.xy - (1u).xx))), int(level_idx_1))).r, plane1.Load(int3(tint_clamp(coord1, (0).xx, int2((tint_tmp_5.xy - (1u).xx))), int(level_idx_2))).rg, 1.0f));
   }
@@ -114,11 +114,11 @@
 [numthreads(1, 1, 1)]
 void main() {
   float4 red = textureLoadExternal(t, ext_tex_plane_1, (10).xx, ext_tex_params_load(0u));
-  int2 tint_tmp_6;
+  uint2 tint_tmp_6;
   outImage.GetDimensions(tint_tmp_6.x, tint_tmp_6.y);
   outImage[tint_clamp((0).xx, (0).xx, int2((tint_tmp_6 - (1u).xx)))] = red;
   float4 green = textureLoadExternal(t, ext_tex_plane_1, int2(70, 118), ext_tex_params_load(0u));
-  int2 tint_tmp_7;
+  uint2 tint_tmp_7;
   outImage.GetDimensions(tint_tmp_7.x, tint_tmp_7.y);
   outImage[tint_clamp(int2(1, 0), (0).xx, int2((tint_tmp_7 - (1u).xx)))] = green;
   return;
diff --git a/test/tint/bug/tint/1739.wgsl.expected.fxc.hlsl b/test/tint/bug/tint/1739.wgsl.expected.fxc.hlsl
index 1e3fa45..e71fad6 100644
--- a/test/tint/bug/tint/1739.wgsl.expected.fxc.hlsl
+++ b/test/tint/bug/tint/1739.wgsl.expected.fxc.hlsl
@@ -40,22 +40,22 @@
   const int2 coord1 = (coord >> (1u).xx);
   float3 color = float3(0.0f, 0.0f, 0.0f);
   if ((params.numPlanes == 1u)) {
-    int3 tint_tmp;
+    uint3 tint_tmp;
     plane0.GetDimensions(0, tint_tmp.x, tint_tmp.y, tint_tmp.z);
     const uint level_idx = min(0u, (tint_tmp.z - 1u));
-    int3 tint_tmp_1;
+    uint3 tint_tmp_1;
     plane0.GetDimensions(level_idx, tint_tmp_1.x, tint_tmp_1.y, tint_tmp_1.z);
     color = plane0.Load(int3(tint_clamp(coord, (0).xx, int2((tint_tmp_1.xy - (1u).xx))), int(level_idx))).rgb;
   } else {
-    int3 tint_tmp_2;
+    uint3 tint_tmp_2;
     plane0.GetDimensions(0, tint_tmp_2.x, tint_tmp_2.y, tint_tmp_2.z);
     const uint level_idx_1 = min(0u, (tint_tmp_2.z - 1u));
-    int3 tint_tmp_3;
+    uint3 tint_tmp_3;
     plane1.GetDimensions(0, tint_tmp_3.x, tint_tmp_3.y, tint_tmp_3.z);
     const uint level_idx_2 = min(0u, (tint_tmp_3.z - 1u));
-    int3 tint_tmp_4;
+    uint3 tint_tmp_4;
     plane0.GetDimensions(level_idx_1, tint_tmp_4.x, tint_tmp_4.y, tint_tmp_4.z);
-    int3 tint_tmp_5;
+    uint3 tint_tmp_5;
     plane1.GetDimensions(level_idx_2, tint_tmp_5.x, tint_tmp_5.y, tint_tmp_5.z);
     color = mul(params.yuvToRgbConversionMatrix, float4(plane0.Load(int3(tint_clamp(coord, (0).xx, int2((tint_tmp_4.xy - (1u).xx))), int(level_idx_1))).r, plane1.Load(int3(tint_clamp(coord1, (0).xx, int2((tint_tmp_5.xy - (1u).xx))), int(level_idx_2))).rg, 1.0f));
   }
@@ -114,11 +114,11 @@
 [numthreads(1, 1, 1)]
 void main() {
   float4 red = textureLoadExternal(t, ext_tex_plane_1, (10).xx, ext_tex_params_load(0u));
-  int2 tint_tmp_6;
+  uint2 tint_tmp_6;
   outImage.GetDimensions(tint_tmp_6.x, tint_tmp_6.y);
   outImage[tint_clamp((0).xx, (0).xx, int2((tint_tmp_6 - (1u).xx)))] = red;
   float4 green = textureLoadExternal(t, ext_tex_plane_1, int2(70, 118), ext_tex_params_load(0u));
-  int2 tint_tmp_7;
+  uint2 tint_tmp_7;
   outImage.GetDimensions(tint_tmp_7.x, tint_tmp_7.y);
   outImage[tint_clamp(int2(1, 0), (0).xx, int2((tint_tmp_7 - (1u).xx)))] = green;
   return;
diff --git a/test/tint/bug/tint/534.wgsl.expected.dxc.hlsl b/test/tint/bug/tint/534.wgsl.expected.dxc.hlsl
index 518d19c..11026c0 100644
--- a/test/tint/bug/tint/534.wgsl.expected.dxc.hlsl
+++ b/test/tint/bug/tint/534.wgsl.expected.dxc.hlsl
@@ -18,7 +18,7 @@
 };
 
 void main_inner(uint3 GlobalInvocationID) {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   src.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 size = tint_tmp;
   uint2 dstTexCoord = GlobalInvocationID.xy;
diff --git a/test/tint/bug/tint/534.wgsl.expected.fxc.hlsl b/test/tint/bug/tint/534.wgsl.expected.fxc.hlsl
index 518d19c..11026c0 100644
--- a/test/tint/bug/tint/534.wgsl.expected.fxc.hlsl
+++ b/test/tint/bug/tint/534.wgsl.expected.fxc.hlsl
@@ -18,7 +18,7 @@
 };
 
 void main_inner(uint3 GlobalInvocationID) {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   src.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 size = tint_tmp;
   uint2 dstTexCoord = GlobalInvocationID.xy;
diff --git a/test/tint/bug/tint/913.wgsl.expected.dxc.hlsl b/test/tint/bug/tint/913.wgsl.expected.dxc.hlsl
index 721ec13..4150d66 100644
--- a/test/tint/bug/tint/913.wgsl.expected.dxc.hlsl
+++ b/test/tint/bug/tint/913.wgsl.expected.dxc.hlsl
@@ -14,10 +14,10 @@
 };
 
 void main_inner(uint3 GlobalInvocationID) {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   src.GetDimensions(tint_tmp.x, tint_tmp.y);
   const uint2 srcSize = tint_tmp;
-  int2 tint_tmp_1;
+  uint2 tint_tmp_1;
   tint_symbol.GetDimensions(tint_tmp_1.x, tint_tmp_1.y);
   const uint2 dstSize = tint_tmp_1;
   const uint2 dstTexCoord = uint2(GlobalInvocationID.xy);
diff --git a/test/tint/bug/tint/913.wgsl.expected.fxc.hlsl b/test/tint/bug/tint/913.wgsl.expected.fxc.hlsl
index 721ec13..4150d66 100644
--- a/test/tint/bug/tint/913.wgsl.expected.fxc.hlsl
+++ b/test/tint/bug/tint/913.wgsl.expected.fxc.hlsl
@@ -14,10 +14,10 @@
 };
 
 void main_inner(uint3 GlobalInvocationID) {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   src.GetDimensions(tint_tmp.x, tint_tmp.y);
   const uint2 srcSize = tint_tmp;
-  int2 tint_tmp_1;
+  uint2 tint_tmp_1;
   tint_symbol.GetDimensions(tint_tmp_1.x, tint_tmp_1.y);
   const uint2 dstSize = tint_tmp_1;
   const uint2 dstTexCoord = uint2(GlobalInvocationID.xy);
diff --git a/test/tint/bug/tint/942.wgsl.expected.dxc.hlsl b/test/tint/bug/tint/942.wgsl.expected.dxc.hlsl
index 8b20a87..6401a30 100644
--- a/test/tint/bug/tint/942.wgsl.expected.dxc.hlsl
+++ b/test/tint/bug/tint/942.wgsl.expected.dxc.hlsl
@@ -30,7 +30,7 @@
   }
   GroupMemoryBarrierWithGroupSync();
   const uint filterOffset = tint_div((params[0].x - 1u), 2u);
-  int3 tint_tmp;
+  uint3 tint_tmp;
   inputTex.GetDimensions(0, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   const uint2 dims = tint_tmp.xy;
   const uint2 baseIndex = (((WorkGroupID.xy * uint2(params[0].y, 4u)) + (LocalInvocationID.xy * uint2(4u, 1u))) - uint2(filterOffset, 0u));
diff --git a/test/tint/bug/tint/942.wgsl.expected.fxc.hlsl b/test/tint/bug/tint/942.wgsl.expected.fxc.hlsl
index 8b20a87..6401a30 100644
--- a/test/tint/bug/tint/942.wgsl.expected.fxc.hlsl
+++ b/test/tint/bug/tint/942.wgsl.expected.fxc.hlsl
@@ -30,7 +30,7 @@
   }
   GroupMemoryBarrierWithGroupSync();
   const uint filterOffset = tint_div((params[0].x - 1u), 2u);
-  int3 tint_tmp;
+  uint3 tint_tmp;
   inputTex.GetDimensions(0, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   const uint2 dims = tint_tmp.xy;
   const uint2 baseIndex = (((WorkGroupID.xy * uint2(params[0].y, 4u)) + (LocalInvocationID.xy * uint2(4u, 1u))) - uint2(filterOffset, 0u));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/00348c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/00348c.wgsl.expected.dxc.hlsl
index 855ccf0..c243f98 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/00348c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/00348c.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_00348c() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/00348c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/00348c.wgsl.expected.fxc.hlsl
index 855ccf0..c243f98 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/00348c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/00348c.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_00348c() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/022903.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/022903.wgsl.expected.dxc.hlsl
index ff6f1d3..0c9806b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/022903.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/022903.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_022903() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(1u, tint_tmp.x, tint_tmp.y);
   uint res = tint_tmp.x;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/022903.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/022903.wgsl.expected.fxc.hlsl
index ff6f1d3..0c9806b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/022903.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/022903.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_022903() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(1u, tint_tmp.x, tint_tmp.y);
   uint res = tint_tmp.x;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0890c6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/0890c6.wgsl.expected.dxc.hlsl
index 91d2ebf..2ad2881 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0890c6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/0890c6.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_0890c6() {
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(1u, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint3 res = tint_tmp.xyz;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0890c6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/0890c6.wgsl.expected.fxc.hlsl
index 91d2ebf..2ad2881 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0890c6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/0890c6.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_0890c6() {
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(1u, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint3 res = tint_tmp.xyz;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/09140b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/09140b.wgsl.expected.dxc.hlsl
index 952acac..a3c6522 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/09140b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/09140b.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_09140b() {
-  int tint_tmp;
+  uint tint_tmp;
   arg_0.GetDimensions(tint_tmp);
   uint res = tint_tmp;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/09140b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/09140b.wgsl.expected.fxc.hlsl
index 952acac..a3c6522 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/09140b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/09140b.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_09140b() {
-  int tint_tmp;
+  uint tint_tmp;
   arg_0.GetDimensions(tint_tmp);
   uint res = tint_tmp;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0baa0d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/0baa0d.wgsl.expected.dxc.hlsl
index 3348dc8..8201074 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0baa0d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/0baa0d.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_0baa0d() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0baa0d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/0baa0d.wgsl.expected.fxc.hlsl
index 3348dc8..8201074 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0baa0d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/0baa0d.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_0baa0d() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0c0b0c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/0c0b0c.wgsl.expected.dxc.hlsl
index 5782c8b..51f9c6b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0c0b0c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/0c0b0c.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_0c0b0c() {
-  int tint_tmp;
+  uint tint_tmp;
   arg_0.GetDimensions(tint_tmp);
   uint res = tint_tmp;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0c0b0c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/0c0b0c.wgsl.expected.fxc.hlsl
index 5782c8b..51f9c6b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0c0b0c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/0c0b0c.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_0c0b0c() {
-  int tint_tmp;
+  uint tint_tmp;
   arg_0.GetDimensions(tint_tmp);
   uint res = tint_tmp;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0ff9a4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/0ff9a4.wgsl.expected.dxc.hlsl
index e5d136c..26b466b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0ff9a4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/0ff9a4.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_0ff9a4() {
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(1, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0ff9a4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/0ff9a4.wgsl.expected.fxc.hlsl
index e5d136c..26b466b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0ff9a4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/0ff9a4.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_0ff9a4() {
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(1, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/13f8db.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/13f8db.wgsl.expected.dxc.hlsl
index 77489a8..d42c217 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/13f8db.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/13f8db.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_13f8db() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(1u, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/13f8db.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/13f8db.wgsl.expected.fxc.hlsl
index 77489a8..d42c217 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/13f8db.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/13f8db.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_13f8db() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(1u, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/1417dd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/1417dd.wgsl.expected.dxc.hlsl
index dfe4130..d5f7933 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/1417dd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/1417dd.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_1417dd() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/1417dd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/1417dd.wgsl.expected.fxc.hlsl
index dfe4130..d5f7933 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/1417dd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/1417dd.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_1417dd() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/15aa17.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/15aa17.wgsl.expected.dxc.hlsl
index 1dacd60..e2cd8f5 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/15aa17.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/15aa17.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_15aa17() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint3 res = tint_tmp;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/15aa17.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/15aa17.wgsl.expected.fxc.hlsl
index 1dacd60..e2cd8f5 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/15aa17.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/15aa17.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_15aa17() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint3 res = tint_tmp;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/15b577.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/15b577.wgsl.expected.dxc.hlsl
index 02393a4..7e9cd6a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/15b577.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/15b577.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_15b577() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(1, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/15b577.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/15b577.wgsl.expected.fxc.hlsl
index 02393a4..7e9cd6a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/15b577.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/15b577.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_15b577() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(1, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/1a2be7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/1a2be7.wgsl.expected.dxc.hlsl
index da22afe..b44af6d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/1a2be7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/1a2be7.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_1a2be7() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint3 res = tint_tmp;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/1a2be7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/1a2be7.wgsl.expected.fxc.hlsl
index da22afe..b44af6d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/1a2be7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/1a2be7.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_1a2be7() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint3 res = tint_tmp;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/1bc428.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/1bc428.wgsl.expected.dxc.hlsl
index 67d98e5..4a28aad 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/1bc428.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/1bc428.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_1bc428() {
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(1, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint3 res = tint_tmp.xyz;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/1bc428.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/1bc428.wgsl.expected.fxc.hlsl
index 67d98e5..4a28aad 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/1bc428.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/1bc428.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_1bc428() {
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(1, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint3 res = tint_tmp.xyz;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/1bd78c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/1bd78c.wgsl.expected.dxc.hlsl
index 7b50f8e..d58ec81 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/1bd78c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/1bd78c.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_1bd78c() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(1, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/1bd78c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/1bd78c.wgsl.expected.fxc.hlsl
index 7b50f8e..d58ec81 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/1bd78c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/1bd78c.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_1bd78c() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(1, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/224113.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/224113.wgsl.expected.dxc.hlsl
index 09dda04..b4b3926 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/224113.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/224113.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_224113() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/224113.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/224113.wgsl.expected.fxc.hlsl
index 09dda04..b4b3926 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/224113.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/224113.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_224113() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/22b5b6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/22b5b6.wgsl.expected.dxc.hlsl
index 62539d3..c2592a6 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/22b5b6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/22b5b6.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_22b5b6() {
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(1, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/22b5b6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/22b5b6.wgsl.expected.fxc.hlsl
index 62539d3..c2592a6 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/22b5b6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/22b5b6.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_22b5b6() {
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(1, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/24db07.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/24db07.wgsl.expected.dxc.hlsl
index 3c7a779..622ba5f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/24db07.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/24db07.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_24db07() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/24db07.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/24db07.wgsl.expected.fxc.hlsl
index 3c7a779..622ba5f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/24db07.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/24db07.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_24db07() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/2674d8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/2674d8.wgsl.expected.dxc.hlsl
index 936d0d1..6f415cf 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/2674d8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/2674d8.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_2674d8() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/2674d8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/2674d8.wgsl.expected.fxc.hlsl
index 936d0d1..6f415cf 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/2674d8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/2674d8.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_2674d8() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/26d6bf.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/26d6bf.wgsl.expected.dxc.hlsl
index 8786629..20f02ee 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/26d6bf.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/26d6bf.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_26d6bf() {
-  int tint_tmp;
+  uint tint_tmp;
   arg_0.GetDimensions(tint_tmp);
   uint res = tint_tmp;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/26d6bf.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/26d6bf.wgsl.expected.fxc.hlsl
index 8786629..20f02ee 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/26d6bf.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/26d6bf.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_26d6bf() {
-  int tint_tmp;
+  uint tint_tmp;
   arg_0.GetDimensions(tint_tmp);
   uint res = tint_tmp;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/2e443d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/2e443d.wgsl.expected.dxc.hlsl
index b3f97bd..b6e3eaa 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/2e443d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/2e443d.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_2e443d() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(1, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/2e443d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/2e443d.wgsl.expected.fxc.hlsl
index b3f97bd..b6e3eaa 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/2e443d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/2e443d.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_2e443d() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(1, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/2fd2a4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/2fd2a4.wgsl.expected.dxc.hlsl
index f1aa2f0..717f56c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/2fd2a4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/2fd2a4.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_2fd2a4() {
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(1, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/2fd2a4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/2fd2a4.wgsl.expected.fxc.hlsl
index f1aa2f0..717f56c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/2fd2a4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/2fd2a4.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_2fd2a4() {
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(1, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/31799c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/31799c.wgsl.expected.dxc.hlsl
index e3e5922..9c9a843 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/31799c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/31799c.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_31799c() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint3 res = tint_tmp;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/31799c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/31799c.wgsl.expected.fxc.hlsl
index e3e5922..9c9a843 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/31799c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/31799c.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_31799c() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint3 res = tint_tmp;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/346fee.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/346fee.wgsl.expected.dxc.hlsl
index ecae695d..6282a12 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/346fee.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/346fee.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_346fee() {
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(1u, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/346fee.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/346fee.wgsl.expected.fxc.hlsl
index ecae695d..6282a12 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/346fee.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/346fee.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_346fee() {
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(1u, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/35a7e5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/35a7e5.wgsl.expected.dxc.hlsl
index 605aec4..9ab98e9 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/35a7e5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/35a7e5.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_35a7e5() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint3 res = tint_tmp;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/35a7e5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/35a7e5.wgsl.expected.fxc.hlsl
index 605aec4..9ab98e9 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/35a7e5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/35a7e5.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_35a7e5() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint3 res = tint_tmp;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/35ee69.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/35ee69.wgsl.expected.dxc.hlsl
index 60a836b..dd62780 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/35ee69.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/35ee69.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_35ee69() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint3 res = tint_tmp;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/35ee69.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/35ee69.wgsl.expected.fxc.hlsl
index 60a836b..dd62780 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/35ee69.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/35ee69.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_35ee69() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint3 res = tint_tmp;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/378a65.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/378a65.wgsl.expected.dxc.hlsl
index ae34c64..33667a4 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/378a65.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/378a65.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_378a65() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/378a65.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/378a65.wgsl.expected.fxc.hlsl
index ae34c64..33667a4 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/378a65.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/378a65.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_378a65() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/382b16.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/382b16.wgsl.expected.dxc.hlsl
index 345d5e3..3ff7b83 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/382b16.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/382b16.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_382b16() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(1u, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/382b16.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/382b16.wgsl.expected.fxc.hlsl
index 345d5e3..3ff7b83 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/382b16.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/382b16.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_382b16() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(1u, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3963d0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/3963d0.wgsl.expected.dxc.hlsl
index db86ea3..9f9d89a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3963d0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3963d0.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_3963d0() {
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(1u, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3963d0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/3963d0.wgsl.expected.fxc.hlsl
index db86ea3..9f9d89a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3963d0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3963d0.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_3963d0() {
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(1u, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3a5bb1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/3a5bb1.wgsl.expected.dxc.hlsl
index 9c61cb5..049ad0e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3a5bb1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3a5bb1.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_3a5bb1() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint3 res = tint_tmp;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3a5bb1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/3a5bb1.wgsl.expected.fxc.hlsl
index 9c61cb5..049ad0e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3a5bb1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3a5bb1.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_3a5bb1() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint3 res = tint_tmp;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3a7b69.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/3a7b69.wgsl.expected.dxc.hlsl
index f0d9399..6c52ac8 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3a7b69.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3a7b69.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_3a7b69() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3a7b69.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/3a7b69.wgsl.expected.fxc.hlsl
index f0d9399..6c52ac8 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3a7b69.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3a7b69.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_3a7b69() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3af3e7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/3af3e7.wgsl.expected.dxc.hlsl
index 07dc5bf..741592e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3af3e7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3af3e7.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_3af3e7() {
-  int tint_tmp;
+  uint tint_tmp;
   arg_0.GetDimensions(tint_tmp);
   uint res = tint_tmp;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3af3e7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/3af3e7.wgsl.expected.fxc.hlsl
index 07dc5bf..741592e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3af3e7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3af3e7.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_3af3e7() {
-  int tint_tmp;
+  uint tint_tmp;
   arg_0.GetDimensions(tint_tmp);
   uint res = tint_tmp;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3b38f6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/3b38f6.wgsl.expected.dxc.hlsl
index d57f3cc..254d722 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3b38f6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3b38f6.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_3b38f6() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3b38f6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/3b38f6.wgsl.expected.fxc.hlsl
index d57f3cc..254d722 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3b38f6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3b38f6.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_3b38f6() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3baab5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/3baab5.wgsl.expected.dxc.hlsl
index 3c98fab..194560a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3baab5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3baab5.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_3baab5() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3baab5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/3baab5.wgsl.expected.fxc.hlsl
index 3c98fab..194560a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3baab5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3baab5.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_3baab5() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3c66f0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/3c66f0.wgsl.expected.dxc.hlsl
index 822b301..78bca9d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3c66f0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3c66f0.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_3c66f0() {
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(1, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3c66f0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/3c66f0.wgsl.expected.fxc.hlsl
index 822b301..78bca9d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3c66f0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3c66f0.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_3c66f0() {
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(1, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3f3474.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/3f3474.wgsl.expected.dxc.hlsl
index c760629..ed5fc6c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3f3474.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3f3474.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_3f3474() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3f3474.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/3f3474.wgsl.expected.fxc.hlsl
index c760629..ed5fc6c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3f3474.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3f3474.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_3f3474() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3fc3dc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/3fc3dc.wgsl.expected.dxc.hlsl
index 197585c..b9c0cab 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3fc3dc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3fc3dc.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_3fc3dc() {
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(1u, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3fc3dc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/3fc3dc.wgsl.expected.fxc.hlsl
index 197585c..b9c0cab 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3fc3dc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3fc3dc.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_3fc3dc() {
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(1u, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/40c671.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/40c671.wgsl.expected.dxc.hlsl
index a7b6577..dfb75ec 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/40c671.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/40c671.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_40c671() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint3 res = tint_tmp;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/40c671.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/40c671.wgsl.expected.fxc.hlsl
index a7b6577..dfb75ec 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/40c671.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/40c671.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_40c671() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint3 res = tint_tmp;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/40ecf4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/40ecf4.wgsl.expected.dxc.hlsl
index 92a33d2..1f50145 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/40ecf4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/40ecf4.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_40ecf4() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/40ecf4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/40ecf4.wgsl.expected.fxc.hlsl
index 92a33d2..1f50145 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/40ecf4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/40ecf4.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_40ecf4() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/41545f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/41545f.wgsl.expected.dxc.hlsl
index 29c7b39..460ca8f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/41545f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/41545f.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_41545f() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/41545f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/41545f.wgsl.expected.fxc.hlsl
index 29c7b39..460ca8f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/41545f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/41545f.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_41545f() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/439651.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/439651.wgsl.expected.dxc.hlsl
index 0791df3..c5e353b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/439651.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/439651.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_439651() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/439651.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/439651.wgsl.expected.fxc.hlsl
index 0791df3..c5e353b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/439651.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/439651.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_439651() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/445376.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/445376.wgsl.expected.dxc.hlsl
index faac13c..4743f75 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/445376.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/445376.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_445376() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/445376.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/445376.wgsl.expected.fxc.hlsl
index faac13c..4743f75 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/445376.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/445376.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_445376() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/44b358.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/44b358.wgsl.expected.dxc.hlsl
index 15ac4e0..c45daf7 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/44b358.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/44b358.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_44b358() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint3 res = tint_tmp;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/44b358.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/44b358.wgsl.expected.fxc.hlsl
index 15ac4e0..c45daf7 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/44b358.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/44b358.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_44b358() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint3 res = tint_tmp;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/452fc1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/452fc1.wgsl.expected.dxc.hlsl
index c8fb5c4..383abad 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/452fc1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/452fc1.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_452fc1() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/452fc1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/452fc1.wgsl.expected.fxc.hlsl
index c8fb5c4..383abad 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/452fc1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/452fc1.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_452fc1() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/46f0fc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/46f0fc.wgsl.expected.dxc.hlsl
index 01626be..979a43d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/46f0fc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/46f0fc.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_46f0fc() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/46f0fc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/46f0fc.wgsl.expected.fxc.hlsl
index 01626be..979a43d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/46f0fc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/46f0fc.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_46f0fc() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/49a067.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/49a067.wgsl.expected.dxc.hlsl
index 18e4e05..87a33d6 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/49a067.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/49a067.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_49a067() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(1, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/49a067.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/49a067.wgsl.expected.fxc.hlsl
index 18e4e05..87a33d6 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/49a067.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/49a067.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_49a067() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(1, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4acec7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/4acec7.wgsl.expected.dxc.hlsl
index 892ce52..ab6c2ff 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4acec7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/4acec7.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_4acec7() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4acec7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/4acec7.wgsl.expected.fxc.hlsl
index 892ce52..ab6c2ff 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4acec7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/4acec7.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_4acec7() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4b26ef.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/4b26ef.wgsl.expected.dxc.hlsl
index 3259dbf..fb2f301 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4b26ef.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/4b26ef.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_4b26ef() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint3 res = tint_tmp;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4b26ef.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/4b26ef.wgsl.expected.fxc.hlsl
index 3259dbf..fb2f301 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4b26ef.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/4b26ef.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_4b26ef() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint3 res = tint_tmp;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4be71b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/4be71b.wgsl.expected.dxc.hlsl
index 841ffce..47a38d9 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4be71b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/4be71b.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_4be71b() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4be71b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/4be71b.wgsl.expected.fxc.hlsl
index 841ffce..47a38d9 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4be71b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/4be71b.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_4be71b() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/528c0e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/528c0e.wgsl.expected.dxc.hlsl
index 40bb972..261251e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/528c0e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/528c0e.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_528c0e() {
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(1u, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/528c0e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/528c0e.wgsl.expected.fxc.hlsl
index 40bb972..261251e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/528c0e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/528c0e.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_528c0e() {
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(1u, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/58a82d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/58a82d.wgsl.expected.dxc.hlsl
index 2ed6397..0138351 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/58a82d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/58a82d.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_58a82d() {
-  int tint_tmp;
+  uint tint_tmp;
   arg_0.GetDimensions(tint_tmp);
   uint res = tint_tmp;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/58a82d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/58a82d.wgsl.expected.fxc.hlsl
index 2ed6397..0138351 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/58a82d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/58a82d.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_58a82d() {
-  int tint_tmp;
+  uint tint_tmp;
   arg_0.GetDimensions(tint_tmp);
   uint res = tint_tmp;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/591981.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/591981.wgsl.expected.dxc.hlsl
index 7dfc27c..140b258 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/591981.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/591981.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_591981() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint3 res = tint_tmp;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/591981.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/591981.wgsl.expected.fxc.hlsl
index 7dfc27c..140b258 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/591981.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/591981.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_591981() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint3 res = tint_tmp;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/599ab5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/599ab5.wgsl.expected.dxc.hlsl
index 40179f0..855b11d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/599ab5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/599ab5.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_599ab5() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/599ab5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/599ab5.wgsl.expected.fxc.hlsl
index 40179f0..855b11d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/599ab5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/599ab5.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_599ab5() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/5b4b10.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/5b4b10.wgsl.expected.dxc.hlsl
index 5c7a574..6ab9a57 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/5b4b10.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/5b4b10.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_5b4b10() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint3 res = tint_tmp;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/5b4b10.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/5b4b10.wgsl.expected.fxc.hlsl
index 5c7a574..6ab9a57 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/5b4b10.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/5b4b10.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_5b4b10() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint3 res = tint_tmp;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/5df042.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/5df042.wgsl.expected.dxc.hlsl
index f596ae7..e1efe14 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/5df042.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/5df042.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_5df042() {
-  int tint_tmp;
+  uint tint_tmp;
   arg_0.GetDimensions(tint_tmp);
   uint res = tint_tmp;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/5df042.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/5df042.wgsl.expected.fxc.hlsl
index f596ae7..e1efe14 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/5df042.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/5df042.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_5df042() {
-  int tint_tmp;
+  uint tint_tmp;
   arg_0.GetDimensions(tint_tmp);
   uint res = tint_tmp;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/607979.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/607979.wgsl.expected.dxc.hlsl
index b95cf0f..ef4c480 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/607979.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/607979.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_607979() {
-  int tint_tmp;
+  uint tint_tmp;
   arg_0.GetDimensions(tint_tmp);
   uint res = tint_tmp;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/607979.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/607979.wgsl.expected.fxc.hlsl
index b95cf0f..ef4c480 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/607979.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/607979.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_607979() {
-  int tint_tmp;
+  uint tint_tmp;
   arg_0.GetDimensions(tint_tmp);
   uint res = tint_tmp;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/62cb5a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/62cb5a.wgsl.expected.dxc.hlsl
index 5804de5..1165489 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/62cb5a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/62cb5a.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_62cb5a() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/62cb5a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/62cb5a.wgsl.expected.fxc.hlsl
index 5804de5..1165489 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/62cb5a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/62cb5a.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_62cb5a() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/64dc74.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/64dc74.wgsl.expected.dxc.hlsl
index f468770..ac015b5 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/64dc74.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/64dc74.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_64dc74() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(1u, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/64dc74.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/64dc74.wgsl.expected.fxc.hlsl
index f468770..ac015b5 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/64dc74.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/64dc74.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_64dc74() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(1u, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/674058.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/674058.wgsl.expected.dxc.hlsl
index 83533a7..1f929b3 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/674058.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/674058.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_674058() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/674058.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/674058.wgsl.expected.fxc.hlsl
index 83533a7..1f929b3 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/674058.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/674058.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_674058() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/6e6c7a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/6e6c7a.wgsl.expected.dxc.hlsl
index 189d1cf..bf7d88e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/6e6c7a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/6e6c7a.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_6e6c7a() {
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(1u, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint3 res = tint_tmp.xyz;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/6e6c7a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/6e6c7a.wgsl.expected.fxc.hlsl
index 189d1cf..bf7d88e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/6e6c7a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/6e6c7a.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_6e6c7a() {
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(1u, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint3 res = tint_tmp.xyz;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/6f1b5d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/6f1b5d.wgsl.expected.dxc.hlsl
index 2dc2f80..f315aa4 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/6f1b5d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/6f1b5d.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_6f1b5d() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(1, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/6f1b5d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/6f1b5d.wgsl.expected.fxc.hlsl
index 2dc2f80..f315aa4 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/6f1b5d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/6f1b5d.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_6f1b5d() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(1, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7228de.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/7228de.wgsl.expected.dxc.hlsl
index 3a11a45..b102e87 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7228de.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7228de.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_7228de() {
-  int tint_tmp;
+  uint tint_tmp;
   arg_0.GetDimensions(tint_tmp);
   uint res = tint_tmp;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7228de.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/7228de.wgsl.expected.fxc.hlsl
index 3a11a45..b102e87 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7228de.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7228de.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_7228de() {
-  int tint_tmp;
+  uint tint_tmp;
   arg_0.GetDimensions(tint_tmp);
   uint res = tint_tmp;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/756031.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/756031.wgsl.expected.dxc.hlsl
index 46e387f..18e4729 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/756031.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/756031.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_756031() {
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(1, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint3 res = tint_tmp.xyz;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/756031.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/756031.wgsl.expected.fxc.hlsl
index 46e387f..18e4729 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/756031.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/756031.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_756031() {
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(1, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint3 res = tint_tmp.xyz;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/756304.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/756304.wgsl.expected.dxc.hlsl
index 204f352..c3c73f9 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/756304.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/756304.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_756304() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/756304.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/756304.wgsl.expected.fxc.hlsl
index 204f352..c3c73f9 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/756304.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/756304.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_756304() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/79d168.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/79d168.wgsl.expected.dxc.hlsl
index df4ec89..86c1289 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/79d168.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/79d168.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_79d168() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(1, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/79d168.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/79d168.wgsl.expected.fxc.hlsl
index df4ec89..86c1289 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/79d168.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/79d168.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_79d168() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(1, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7a3890.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/7a3890.wgsl.expected.dxc.hlsl
index c8937c5..3050274 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7a3890.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7a3890.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_7a3890() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint3 res = tint_tmp;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7a3890.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/7a3890.wgsl.expected.fxc.hlsl
index c8937c5..3050274 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7a3890.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7a3890.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_7a3890() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint3 res = tint_tmp;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7a9e30.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/7a9e30.wgsl.expected.dxc.hlsl
index 3699610..f82dcd4 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7a9e30.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7a9e30.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_7a9e30() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7a9e30.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/7a9e30.wgsl.expected.fxc.hlsl
index 3699610..f82dcd4 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7a9e30.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7a9e30.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_7a9e30() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/84f363.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/84f363.wgsl.expected.dxc.hlsl
index 9d8e922..7c8484e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/84f363.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/84f363.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_84f363() {
-  int tint_tmp;
+  uint tint_tmp;
   arg_0.GetDimensions(tint_tmp);
   uint res = tint_tmp;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/84f363.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/84f363.wgsl.expected.fxc.hlsl
index 9d8e922..7c8484e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/84f363.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/84f363.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_84f363() {
-  int tint_tmp;
+  uint tint_tmp;
   arg_0.GetDimensions(tint_tmp);
   uint res = tint_tmp;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/867ead.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/867ead.wgsl.expected.dxc.hlsl
index c2a6d6f..bbe51af 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/867ead.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/867ead.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_867ead() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/867ead.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/867ead.wgsl.expected.fxc.hlsl
index c2a6d6f..bbe51af 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/867ead.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/867ead.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_867ead() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/879b73.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/879b73.wgsl.expected.dxc.hlsl
index 31c0232..d833ba0 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/879b73.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/879b73.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_879b73() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/879b73.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/879b73.wgsl.expected.fxc.hlsl
index 31c0232..d833ba0 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/879b73.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/879b73.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_879b73() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8a35f9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/8a35f9.wgsl.expected.dxc.hlsl
index 2f33d98..46fb738 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8a35f9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8a35f9.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_8a35f9() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8a35f9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/8a35f9.wgsl.expected.fxc.hlsl
index 2f33d98..46fb738 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8a35f9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8a35f9.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_8a35f9() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8efd47.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/8efd47.wgsl.expected.dxc.hlsl
index 94483c9..7e4e32f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8efd47.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8efd47.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_8efd47() {
-  int tint_tmp;
+  uint tint_tmp;
   arg_0.GetDimensions(tint_tmp);
   uint res = tint_tmp;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8efd47.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/8efd47.wgsl.expected.fxc.hlsl
index 94483c9..7e4e32f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8efd47.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8efd47.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_8efd47() {
-  int tint_tmp;
+  uint tint_tmp;
   arg_0.GetDimensions(tint_tmp);
   uint res = tint_tmp;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/902179.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/902179.wgsl.expected.dxc.hlsl
index 6b6d788..906e5f9 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/902179.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/902179.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_902179() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint3 res = tint_tmp;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/902179.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/902179.wgsl.expected.fxc.hlsl
index 6b6d788..906e5f9 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/902179.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/902179.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_902179() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint3 res = tint_tmp;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/90dd74.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/90dd74.wgsl.expected.dxc.hlsl
index 8837cdc..1820699 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/90dd74.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/90dd74.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_90dd74() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/90dd74.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/90dd74.wgsl.expected.fxc.hlsl
index 8837cdc..1820699 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/90dd74.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/90dd74.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_90dd74() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/920006.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/920006.wgsl.expected.dxc.hlsl
index 86e139c..d53ad3a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/920006.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/920006.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_920006() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(1, tint_tmp.x, tint_tmp.y);
   uint res = tint_tmp.x;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/920006.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/920006.wgsl.expected.fxc.hlsl
index 86e139c..d53ad3a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/920006.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/920006.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_920006() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(1, tint_tmp.x, tint_tmp.y);
   uint res = tint_tmp.x;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/92552e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/92552e.wgsl.expected.dxc.hlsl
index 9dc17c8..c916a67 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/92552e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/92552e.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_92552e() {
-  int tint_tmp;
+  uint tint_tmp;
   arg_0.GetDimensions(tint_tmp);
   uint res = tint_tmp;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/92552e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/92552e.wgsl.expected.fxc.hlsl
index 9dc17c8..c916a67 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/92552e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/92552e.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_92552e() {
-  int tint_tmp;
+  uint tint_tmp;
   arg_0.GetDimensions(tint_tmp);
   uint res = tint_tmp;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9573f3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/9573f3.wgsl.expected.dxc.hlsl
index da0578f..153391d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9573f3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9573f3.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_9573f3() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9573f3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/9573f3.wgsl.expected.fxc.hlsl
index da0578f..153391d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9573f3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9573f3.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_9573f3() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/965645.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/965645.wgsl.expected.dxc.hlsl
index 02f369c..2049b6f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/965645.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/965645.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_965645() {
-  int tint_tmp;
+  uint tint_tmp;
   arg_0.GetDimensions(tint_tmp);
   uint res = tint_tmp;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/965645.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/965645.wgsl.expected.fxc.hlsl
index 02f369c..2049b6f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/965645.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/965645.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_965645() {
-  int tint_tmp;
+  uint tint_tmp;
   arg_0.GetDimensions(tint_tmp);
   uint res = tint_tmp;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/98b2d3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/98b2d3.wgsl.expected.dxc.hlsl
index 23a73ef..9e43ffc 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/98b2d3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/98b2d3.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_98b2d3() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/98b2d3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/98b2d3.wgsl.expected.fxc.hlsl
index 23a73ef..9e43ffc 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/98b2d3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/98b2d3.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_98b2d3() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/991ea9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/991ea9.wgsl.expected.dxc.hlsl
index f81cddd..2bfa529 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/991ea9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/991ea9.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_991ea9() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(1u, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/991ea9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/991ea9.wgsl.expected.fxc.hlsl
index f81cddd..2bfa529 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/991ea9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/991ea9.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_991ea9() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(1u, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9b223b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/9b223b.wgsl.expected.dxc.hlsl
index 010ea15..1f939fa 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9b223b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9b223b.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_9b223b() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9b223b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/9b223b.wgsl.expected.fxc.hlsl
index 010ea15..1f939fa 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9b223b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9b223b.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_9b223b() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9baf27.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/9baf27.wgsl.expected.dxc.hlsl
index 9df5640..e19368c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9baf27.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9baf27.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_9baf27() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(1u, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9baf27.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/9baf27.wgsl.expected.fxc.hlsl
index 9df5640..e19368c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9baf27.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9baf27.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_9baf27() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(1u, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9c7a00.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/9c7a00.wgsl.expected.dxc.hlsl
index b3df338..1c347dd 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9c7a00.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9c7a00.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_9c7a00() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(1u, tint_tmp.x, tint_tmp.y);
   uint res = tint_tmp.x;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9c7a00.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/9c7a00.wgsl.expected.fxc.hlsl
index b3df338..1c347dd 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9c7a00.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9c7a00.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_9c7a00() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(1u, tint_tmp.x, tint_tmp.y);
   uint res = tint_tmp.x;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9cd4ca.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/9cd4ca.wgsl.expected.dxc.hlsl
index 1595906..d98f96c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9cd4ca.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9cd4ca.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_9cd4ca() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(1, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9cd4ca.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/9cd4ca.wgsl.expected.fxc.hlsl
index 1595906..d98f96c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9cd4ca.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9cd4ca.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_9cd4ca() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(1, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9cd8ad.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/9cd8ad.wgsl.expected.dxc.hlsl
index c6ac61a..bbc6ee2 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9cd8ad.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9cd8ad.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_9cd8ad() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint3 res = tint_tmp;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9cd8ad.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/9cd8ad.wgsl.expected.fxc.hlsl
index c6ac61a..bbc6ee2 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9cd8ad.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9cd8ad.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_9cd8ad() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint3 res = tint_tmp;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9e0794.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/9e0794.wgsl.expected.dxc.hlsl
index a47e53b..1edca52 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9e0794.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9e0794.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_9e0794() {
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(1, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9e0794.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/9e0794.wgsl.expected.fxc.hlsl
index a47e53b..1edca52 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9e0794.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9e0794.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_9e0794() {
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(1, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9fcc3b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/9fcc3b.wgsl.expected.dxc.hlsl
index b86e550..20335af 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9fcc3b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9fcc3b.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_9fcc3b() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9fcc3b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/9fcc3b.wgsl.expected.fxc.hlsl
index b86e550..20335af 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9fcc3b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9fcc3b.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_9fcc3b() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a1598a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/a1598a.wgsl.expected.dxc.hlsl
index 1c85709..7b385a7 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a1598a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a1598a.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_a1598a() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a1598a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/a1598a.wgsl.expected.fxc.hlsl
index 1c85709..7b385a7 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a1598a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a1598a.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_a1598a() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a2ba5e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/a2ba5e.wgsl.expected.dxc.hlsl
index 1259fc2..89fb6f8 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a2ba5e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a2ba5e.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_a2ba5e() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(1, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a2ba5e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/a2ba5e.wgsl.expected.fxc.hlsl
index 1259fc2..89fb6f8 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a2ba5e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a2ba5e.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_a2ba5e() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(1, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a48049.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/a48049.wgsl.expected.dxc.hlsl
index 209e739..79143cd 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a48049.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a48049.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_a48049() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(1u, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a48049.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/a48049.wgsl.expected.fxc.hlsl
index 209e739..79143cd 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a48049.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a48049.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_a48049() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(1u, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a4cd56.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/a4cd56.wgsl.expected.dxc.hlsl
index 085c160..1bc1e5e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a4cd56.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a4cd56.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_a4cd56() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a4cd56.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/a4cd56.wgsl.expected.fxc.hlsl
index 085c160..1bc1e5e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a4cd56.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a4cd56.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_a4cd56() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/aa4353.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/aa4353.wgsl.expected.dxc.hlsl
index dabce86..a6b1473 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/aa4353.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/aa4353.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_aa4353() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/aa4353.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/aa4353.wgsl.expected.fxc.hlsl
index dabce86..a6b1473 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/aa4353.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/aa4353.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_aa4353() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/aac604.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/aac604.wgsl.expected.dxc.hlsl
index e282eae..1b6f338 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/aac604.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/aac604.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_aac604() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(1u, tint_tmp.x, tint_tmp.y);
   uint res = tint_tmp.x;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/aac604.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/aac604.wgsl.expected.fxc.hlsl
index e282eae..1b6f338 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/aac604.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/aac604.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_aac604() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(1u, tint_tmp.x, tint_tmp.y);
   uint res = tint_tmp.x;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ad7d3b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/ad7d3b.wgsl.expected.dxc.hlsl
index 09ea033..119ac27 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ad7d3b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/ad7d3b.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_ad7d3b() {
-  int tint_tmp;
+  uint tint_tmp;
   arg_0.GetDimensions(tint_tmp);
   uint res = tint_tmp;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ad7d3b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/ad7d3b.wgsl.expected.fxc.hlsl
index 09ea033..119ac27 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ad7d3b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/ad7d3b.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_ad7d3b() {
-  int tint_tmp;
+  uint tint_tmp;
   arg_0.GetDimensions(tint_tmp);
   uint res = tint_tmp;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/af46ab.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/af46ab.wgsl.expected.dxc.hlsl
index 5dc5b3c..a9c92a6 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/af46ab.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/af46ab.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_af46ab() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/af46ab.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/af46ab.wgsl.expected.fxc.hlsl
index 5dc5b3c..a9c92a6 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/af46ab.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/af46ab.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_af46ab() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b3ab5e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/b3ab5e.wgsl.expected.dxc.hlsl
index 20b522c..684920c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b3ab5e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b3ab5e.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_b3ab5e() {
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(1, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b3ab5e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/b3ab5e.wgsl.expected.fxc.hlsl
index 20b522c..684920c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b3ab5e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b3ab5e.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_b3ab5e() {
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(1, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b46d97.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/b46d97.wgsl.expected.dxc.hlsl
index 848ff83..a8e3bf6 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b46d97.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b46d97.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_b46d97() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(1, tint_tmp.x, tint_tmp.y);
   uint res = tint_tmp.x;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b46d97.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/b46d97.wgsl.expected.fxc.hlsl
index 848ff83..a8e3bf6 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b46d97.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b46d97.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_b46d97() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(1, tint_tmp.x, tint_tmp.y);
   uint res = tint_tmp.x;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b51345.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/b51345.wgsl.expected.dxc.hlsl
index fd3b25d..0d6b1da 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b51345.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b51345.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_b51345() {
-  int tint_tmp;
+  uint tint_tmp;
   arg_0.GetDimensions(tint_tmp);
   uint res = tint_tmp;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b51345.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/b51345.wgsl.expected.fxc.hlsl
index fd3b25d..0d6b1da 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b51345.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b51345.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_b51345() {
-  int tint_tmp;
+  uint tint_tmp;
   arg_0.GetDimensions(tint_tmp);
   uint res = tint_tmp;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/bb95d9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/bb95d9.wgsl.expected.dxc.hlsl
index a778a68..3f20e4d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/bb95d9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/bb95d9.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_bb95d9() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint3 res = tint_tmp;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/bb95d9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/bb95d9.wgsl.expected.fxc.hlsl
index a778a68..3f20e4d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/bb95d9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/bb95d9.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_bb95d9() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint3 res = tint_tmp;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/bbe285.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/bbe285.wgsl.expected.dxc.hlsl
index 47573e3..04691f4 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/bbe285.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/bbe285.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_bbe285() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/bbe285.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/bbe285.wgsl.expected.fxc.hlsl
index 47573e3..04691f4 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/bbe285.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/bbe285.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_bbe285() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/bd94c8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/bd94c8.wgsl.expected.dxc.hlsl
index 0ecd802..6f2d977 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/bd94c8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/bd94c8.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_bd94c8() {
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(1u, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/bd94c8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/bd94c8.wgsl.expected.fxc.hlsl
index 0ecd802..6f2d977 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/bd94c8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/bd94c8.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_bd94c8() {
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(1u, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c1dbf6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/c1dbf6.wgsl.expected.dxc.hlsl
index 2dfe016..eb1a0c5 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c1dbf6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c1dbf6.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_c1dbf6() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c1dbf6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/c1dbf6.wgsl.expected.fxc.hlsl
index 2dfe016..eb1a0c5 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c1dbf6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c1dbf6.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_c1dbf6() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c2cdd3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/c2cdd3.wgsl.expected.dxc.hlsl
index 4ccb110..bdb0d02 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c2cdd3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c2cdd3.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_c2cdd3() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c2cdd3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/c2cdd3.wgsl.expected.fxc.hlsl
index 4ccb110..bdb0d02 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c2cdd3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c2cdd3.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_c2cdd3() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c44fc1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/c44fc1.wgsl.expected.dxc.hlsl
index e1378ab..2103c4a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c44fc1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c44fc1.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_c44fc1() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c44fc1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/c44fc1.wgsl.expected.fxc.hlsl
index e1378ab..2103c4a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c44fc1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c44fc1.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_c44fc1() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c5a36e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/c5a36e.wgsl.expected.dxc.hlsl
index eafd25f..a3fd000 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c5a36e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c5a36e.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_c5a36e() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c5a36e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/c5a36e.wgsl.expected.fxc.hlsl
index eafd25f..a3fd000 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c5a36e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c5a36e.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_c5a36e() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c871f3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/c871f3.wgsl.expected.dxc.hlsl
index 7300f83..4aa2346 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c871f3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c871f3.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_c871f3() {
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(1u, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint3 res = tint_tmp.xyz;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c871f3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/c871f3.wgsl.expected.fxc.hlsl
index 7300f83..4aa2346 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c871f3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c871f3.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_c871f3() {
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(1u, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint3 res = tint_tmp.xyz;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/cad3b7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/cad3b7.wgsl.expected.dxc.hlsl
index 7f40ae4..f6a1c05 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/cad3b7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/cad3b7.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_cad3b7() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/cad3b7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/cad3b7.wgsl.expected.fxc.hlsl
index 7f40ae4..f6a1c05 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/cad3b7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/cad3b7.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_cad3b7() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/cc947b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/cc947b.wgsl.expected.dxc.hlsl
index 6f83758..5d8a0fe 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/cc947b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/cc947b.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_cc947b() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint3 res = tint_tmp;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/cc947b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/cc947b.wgsl.expected.fxc.hlsl
index 6f83758..5d8a0fe 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/cc947b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/cc947b.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_cc947b() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint3 res = tint_tmp;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/cdc6c9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/cdc6c9.wgsl.expected.dxc.hlsl
index e85dfad..cfe88f9 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/cdc6c9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/cdc6c9.wgsl.expected.dxc.hlsl
@@ -6,7 +6,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_cdc6c9() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/cdc6c9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/cdc6c9.wgsl.expected.fxc.hlsl
index e85dfad..cfe88f9 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/cdc6c9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/cdc6c9.wgsl.expected.fxc.hlsl
@@ -6,7 +6,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_cdc6c9() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/cf2b50.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/cf2b50.wgsl.expected.dxc.hlsl
index 2fa305d..327d6c2 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/cf2b50.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/cf2b50.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_cf2b50() {
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(1u, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/cf2b50.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/cf2b50.wgsl.expected.fxc.hlsl
index 2fa305d..327d6c2 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/cf2b50.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/cf2b50.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_cf2b50() {
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(1u, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d08a94.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/d08a94.wgsl.expected.dxc.hlsl
index 6f219a8..c5c6aa9 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d08a94.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d08a94.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_d08a94() {
-  int tint_tmp;
+  uint tint_tmp;
   arg_0.GetDimensions(tint_tmp);
   uint res = tint_tmp;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d08a94.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/d08a94.wgsl.expected.fxc.hlsl
index 6f219a8..c5c6aa9 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d08a94.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d08a94.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_d08a94() {
-  int tint_tmp;
+  uint tint_tmp;
   arg_0.GetDimensions(tint_tmp);
   uint res = tint_tmp;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d1b882.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/d1b882.wgsl.expected.dxc.hlsl
index 42884be..fe6ab2d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d1b882.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d1b882.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_d1b882() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d1b882.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/d1b882.wgsl.expected.fxc.hlsl
index 42884be..fe6ab2d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d1b882.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d1b882.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_d1b882() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d3accd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/d3accd.wgsl.expected.dxc.hlsl
index 32c5321..f8de5c4 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d3accd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d3accd.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_d3accd() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(1u, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d3accd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/d3accd.wgsl.expected.fxc.hlsl
index 32c5321..f8de5c4 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d3accd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d3accd.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_d3accd() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(1u, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d63c28.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/d63c28.wgsl.expected.dxc.hlsl
index 2ef3dad..e16be6e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d63c28.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d63c28.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_d63c28() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d63c28.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/d63c28.wgsl.expected.fxc.hlsl
index 2ef3dad..e16be6e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d63c28.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d63c28.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_d63c28() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d8ba68.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/d8ba68.wgsl.expected.dxc.hlsl
index da923bb..a23a423 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d8ba68.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d8ba68.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_d8ba68() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d8ba68.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/d8ba68.wgsl.expected.fxc.hlsl
index da923bb..a23a423 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d8ba68.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d8ba68.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_d8ba68() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d8f887.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/d8f887.wgsl.expected.dxc.hlsl
index c9a5d13..a188695 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d8f887.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d8f887.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_d8f887() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint3 res = tint_tmp;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d8f887.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/d8f887.wgsl.expected.fxc.hlsl
index c9a5d13..a188695 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d8f887.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d8f887.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_d8f887() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint3 res = tint_tmp;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/da30d2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/da30d2.wgsl.expected.dxc.hlsl
index e44b491..20101bf 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/da30d2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/da30d2.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_da30d2() {
-  int tint_tmp;
+  uint tint_tmp;
   arg_0.GetDimensions(tint_tmp);
   uint res = tint_tmp;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/da30d2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/da30d2.wgsl.expected.fxc.hlsl
index e44b491..20101bf 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/da30d2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/da30d2.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_da30d2() {
-  int tint_tmp;
+  uint tint_tmp;
   arg_0.GetDimensions(tint_tmp);
   uint res = tint_tmp;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/dc83ce.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/dc83ce.wgsl.expected.dxc.hlsl
index f68d917..49e661b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/dc83ce.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/dc83ce.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_dc83ce() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/dc83ce.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/dc83ce.wgsl.expected.fxc.hlsl
index f68d917..49e661b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/dc83ce.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/dc83ce.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_dc83ce() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/dee461.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/dee461.wgsl.expected.dxc.hlsl
index d92e6a4..663f3dc 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/dee461.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/dee461.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_dee461() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/dee461.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/dee461.wgsl.expected.fxc.hlsl
index d92e6a4..663f3dc 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/dee461.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/dee461.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_dee461() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/dfdc32.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/dfdc32.wgsl.expected.dxc.hlsl
index ecf5030..3686aff 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/dfdc32.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/dfdc32.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_dfdc32() {
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(1, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/dfdc32.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/dfdc32.wgsl.expected.fxc.hlsl
index ecf5030..3686aff 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/dfdc32.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/dfdc32.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_dfdc32() {
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(1, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e122fe.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/e122fe.wgsl.expected.dxc.hlsl
index d7d15fe..4b96787 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e122fe.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e122fe.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_e122fe() {
-  int tint_tmp;
+  uint tint_tmp;
   arg_0.GetDimensions(tint_tmp);
   uint res = tint_tmp;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e122fe.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/e122fe.wgsl.expected.fxc.hlsl
index d7d15fe..4b96787 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e122fe.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e122fe.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_e122fe() {
-  int tint_tmp;
+  uint tint_tmp;
   arg_0.GetDimensions(tint_tmp);
   uint res = tint_tmp;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e18a8b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/e18a8b.wgsl.expected.dxc.hlsl
index 0dbfe33..75b74c0 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e18a8b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e18a8b.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_e18a8b() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(1u, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e18a8b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/e18a8b.wgsl.expected.fxc.hlsl
index 0dbfe33..75b74c0 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e18a8b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e18a8b.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_e18a8b() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(1u, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e4bfd2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/e4bfd2.wgsl.expected.dxc.hlsl
index f7a2d79..983edc4 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e4bfd2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e4bfd2.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_e4bfd2() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e4bfd2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/e4bfd2.wgsl.expected.fxc.hlsl
index f7a2d79..983edc4 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e4bfd2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e4bfd2.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_e4bfd2() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e4e310.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/e4e310.wgsl.expected.dxc.hlsl
index d4756ac..e746b7e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e4e310.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e4e310.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_e4e310() {
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(1u, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e4e310.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/e4e310.wgsl.expected.fxc.hlsl
index d4756ac..e746b7e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e4e310.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e4e310.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_e4e310() {
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(1u, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e5a203.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/e5a203.wgsl.expected.dxc.hlsl
index 4d5ec48..0db7d7d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e5a203.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e5a203.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_e5a203() {
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(1, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint3 res = tint_tmp.xyz;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e5a203.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/e5a203.wgsl.expected.fxc.hlsl
index 4d5ec48..0db7d7d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e5a203.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e5a203.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_e5a203() {
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(1, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint3 res = tint_tmp.xyz;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e738f4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/e738f4.wgsl.expected.dxc.hlsl
index 8838504..47e99eb 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e738f4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e738f4.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_e738f4() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint3 res = tint_tmp;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e738f4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/e738f4.wgsl.expected.fxc.hlsl
index 8838504..47e99eb 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e738f4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e738f4.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_e738f4() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint3 res = tint_tmp;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e99308.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/e99308.wgsl.expected.dxc.hlsl
index 7e11ef7..fb869e3 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e99308.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e99308.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_e99308() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e99308.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/e99308.wgsl.expected.fxc.hlsl
index 7e11ef7..fb869e3 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e99308.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e99308.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_e99308() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ea066c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/ea066c.wgsl.expected.dxc.hlsl
index d637b21..70dda32 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ea066c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/ea066c.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_ea066c() {
-  int tint_tmp;
+  uint tint_tmp;
   arg_0.GetDimensions(tint_tmp);
   uint res = tint_tmp;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ea066c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/ea066c.wgsl.expected.fxc.hlsl
index d637b21..70dda32 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ea066c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/ea066c.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_ea066c() {
-  int tint_tmp;
+  uint tint_tmp;
   arg_0.GetDimensions(tint_tmp);
   uint res = tint_tmp;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ea25bc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/ea25bc.wgsl.expected.dxc.hlsl
index e24f03a..7697dcd 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ea25bc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/ea25bc.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_ea25bc() {
-  int tint_tmp;
+  uint tint_tmp;
   arg_0.GetDimensions(tint_tmp);
   uint res = tint_tmp;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ea25bc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/ea25bc.wgsl.expected.fxc.hlsl
index e24f03a..7697dcd 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ea25bc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/ea25bc.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_ea25bc() {
-  int tint_tmp;
+  uint tint_tmp;
   arg_0.GetDimensions(tint_tmp);
   uint res = tint_tmp;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/eafe19.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/eafe19.wgsl.expected.dxc.hlsl
index 3fcffe5..0b13c87 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/eafe19.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/eafe19.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_eafe19() {
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(1u, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/eafe19.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/eafe19.wgsl.expected.fxc.hlsl
index 3fcffe5..0b13c87 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/eafe19.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/eafe19.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_eafe19() {
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(1u, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/eb03b1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/eb03b1.wgsl.expected.dxc.hlsl
index 18c0859..f270b86 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/eb03b1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/eb03b1.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_eb03b1() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/eb03b1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/eb03b1.wgsl.expected.fxc.hlsl
index 18c0859..f270b86 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/eb03b1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/eb03b1.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_eb03b1() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ef2e58.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/ef2e58.wgsl.expected.dxc.hlsl
index 89d7a1e..f630e9c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ef2e58.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/ef2e58.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_ef2e58() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint3 res = tint_tmp;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ef2e58.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/ef2e58.wgsl.expected.fxc.hlsl
index 89d7a1e..f630e9c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ef2e58.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/ef2e58.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_ef2e58() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint3 res = tint_tmp;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f17acd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/f17acd.wgsl.expected.dxc.hlsl
index 40aba7c..9c0da4e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f17acd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f17acd.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_f17acd() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(1, tint_tmp.x, tint_tmp.y);
   uint res = tint_tmp.x;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f17acd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/f17acd.wgsl.expected.fxc.hlsl
index 40aba7c..9c0da4e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f17acd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f17acd.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_f17acd() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(1, tint_tmp.x, tint_tmp.y);
   uint res = tint_tmp.x;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f264a3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/f264a3.wgsl.expected.dxc.hlsl
index dff7fb5..7ea41cc 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f264a3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f264a3.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_f264a3() {
-  int tint_tmp;
+  uint tint_tmp;
   arg_0.GetDimensions(tint_tmp);
   uint res = tint_tmp;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f264a3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/f264a3.wgsl.expected.fxc.hlsl
index dff7fb5..7ea41cc 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f264a3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f264a3.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_f264a3() {
-  int tint_tmp;
+  uint tint_tmp;
   arg_0.GetDimensions(tint_tmp);
   uint res = tint_tmp;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f3a2ac.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/f3a2ac.wgsl.expected.dxc.hlsl
index 8090856..766bcbd 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f3a2ac.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f3a2ac.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_f3a2ac() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint3 res = tint_tmp;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f3a2ac.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/f3a2ac.wgsl.expected.fxc.hlsl
index 8090856..766bcbd 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f3a2ac.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f3a2ac.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_f3a2ac() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint3 res = tint_tmp;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f4e469.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/f4e469.wgsl.expected.dxc.hlsl
index 361588c..e11b029 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f4e469.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f4e469.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_f4e469() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f4e469.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/f4e469.wgsl.expected.fxc.hlsl
index 361588c..e11b029 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f4e469.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f4e469.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_f4e469() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f626b3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/f626b3.wgsl.expected.dxc.hlsl
index a428815..d6da2f3 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f626b3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f626b3.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_f626b3() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f626b3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/f626b3.wgsl.expected.fxc.hlsl
index a428815..d6da2f3 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f626b3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f626b3.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_f626b3() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f8522e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/f8522e.wgsl.expected.dxc.hlsl
index 67b1a26..d108123 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f8522e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f8522e.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_f8522e() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f8522e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/f8522e.wgsl.expected.fxc.hlsl
index 67b1a26..d108123 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f8522e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f8522e.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_f8522e() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/fbb15a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/fbb15a.wgsl.expected.dxc.hlsl
index afc4457..d411c87 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/fbb15a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/fbb15a.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_fbb15a() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/fbb15a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/fbb15a.wgsl.expected.fxc.hlsl
index afc4457..d411c87 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/fbb15a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/fbb15a.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_fbb15a() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/fdf6e9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/fdf6e9.wgsl.expected.dxc.hlsl
index 69f4e3f..5e084b1 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/fdf6e9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/fdf6e9.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_fdf6e9() {
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(1, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureDimensions/fdf6e9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/fdf6e9.wgsl.expected.fxc.hlsl
index 69f4e3f..5e084b1 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/fdf6e9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/fdf6e9.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_fdf6e9() {
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(1, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/014a3b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/014a3b.wgsl.expected.dxc.hlsl
index 2e51013..870ebf7 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/014a3b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/014a3b.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLayers_014a3b() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/014a3b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/014a3b.wgsl.expected.fxc.hlsl
index 2e51013..870ebf7 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/014a3b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/014a3b.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLayers_014a3b() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/071ebc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/071ebc.wgsl.expected.dxc.hlsl
index 21687b3..abb0f8a 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/071ebc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/071ebc.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLayers_071ebc() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/071ebc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/071ebc.wgsl.expected.fxc.hlsl
index 21687b3..abb0f8a 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/071ebc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/071ebc.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLayers_071ebc() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/0ec222.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/0ec222.wgsl.expected.dxc.hlsl
index d4585bf..fe1ec91 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/0ec222.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/0ec222.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLayers_0ec222() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/0ec222.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/0ec222.wgsl.expected.fxc.hlsl
index d4585bf..fe1ec91 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/0ec222.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/0ec222.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLayers_0ec222() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/1f858a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/1f858a.wgsl.expected.dxc.hlsl
index 4c51864..6d4a1ac 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/1f858a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/1f858a.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLayers_1f858a() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/1f858a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/1f858a.wgsl.expected.fxc.hlsl
index 4c51864..6d4a1ac 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/1f858a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/1f858a.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLayers_1f858a() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/3465ec.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/3465ec.wgsl.expected.dxc.hlsl
index b966ed6..829eabb 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/3465ec.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/3465ec.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLayers_3465ec() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/3465ec.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/3465ec.wgsl.expected.fxc.hlsl
index b966ed6..829eabb 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/3465ec.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/3465ec.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLayers_3465ec() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/34cefa.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/34cefa.wgsl
new file mode 100644
index 0000000..2930d93
--- /dev/null
+++ b/test/tint/builtins/gen/literal/textureNumLayers/34cefa.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2022 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/src/cmd/gen
+// using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_cube_array<f32>;
+
+// fn textureNumLayers(texture: texture_cube_array<f32>) -> u32
+fn textureNumLayers_34cefa() {
+  var res: u32 = textureNumLayers(arg_0);
+  prevent_dce = res;
+}
+@group(2) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+@vertex
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureNumLayers_34cefa();
+  return vec4<f32>();
+}
+
+@fragment
+fn fragment_main() {
+  textureNumLayers_34cefa();
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  textureNumLayers_34cefa();
+}
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/34cefa.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/34cefa.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..7942bb6
--- /dev/null
+++ b/test/tint/builtins/gen/literal/textureNumLayers/34cefa.wgsl.expected.dxc.hlsl
@@ -0,0 +1,36 @@
+TextureCubeArray<float4> arg_0 : register(t0, space1);
+RWByteAddressBuffer prevent_dce : register(u0, space2);
+
+void textureNumLayers_34cefa() {
+  uint3 tint_tmp;
+  arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
+  uint res = tint_tmp.z;
+  prevent_dce.Store(0u, asuint(res));
+}
+
+struct tint_symbol {
+  float4 value : SV_Position;
+};
+
+float4 vertex_main_inner() {
+  textureNumLayers_34cefa();
+  return (0.0f).xxxx;
+}
+
+tint_symbol vertex_main() {
+  const float4 inner_result = vertex_main_inner();
+  tint_symbol wrapper_result = (tint_symbol)0;
+  wrapper_result.value = inner_result;
+  return wrapper_result;
+}
+
+void fragment_main() {
+  textureNumLayers_34cefa();
+  return;
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureNumLayers_34cefa();
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/34cefa.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/34cefa.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..7942bb6
--- /dev/null
+++ b/test/tint/builtins/gen/literal/textureNumLayers/34cefa.wgsl.expected.fxc.hlsl
@@ -0,0 +1,36 @@
+TextureCubeArray<float4> arg_0 : register(t0, space1);
+RWByteAddressBuffer prevent_dce : register(u0, space2);
+
+void textureNumLayers_34cefa() {
+  uint3 tint_tmp;
+  arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
+  uint res = tint_tmp.z;
+  prevent_dce.Store(0u, asuint(res));
+}
+
+struct tint_symbol {
+  float4 value : SV_Position;
+};
+
+float4 vertex_main_inner() {
+  textureNumLayers_34cefa();
+  return (0.0f).xxxx;
+}
+
+tint_symbol vertex_main() {
+  const float4 inner_result = vertex_main_inner();
+  tint_symbol wrapper_result = (tint_symbol)0;
+  wrapper_result.value = inner_result;
+  return wrapper_result;
+}
+
+void fragment_main() {
+  textureNumLayers_34cefa();
+  return;
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureNumLayers_34cefa();
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/34cefa.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/34cefa.wgsl.expected.glsl
new file mode 100644
index 0000000..6cf0e2a
--- /dev/null
+++ b/test/tint/builtins/gen/literal/textureNumLayers/34cefa.wgsl.expected.glsl
@@ -0,0 +1,75 @@
+SKIP: FAILED
+
+#version 310 es
+
+uniform highp samplerCubeArray arg_0_1;
+void textureNumLayers_34cefa() {
+  uint res = uint(textureSize(arg_0_1, 0).z);
+}
+
+vec4 vertex_main() {
+  textureNumLayers_34cefa();
+  return vec4(0.0f);
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
+Error parsing GLSL shader:
+ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
+ERROR: 2 compilation errors.  No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCubeArray arg_0_1;
+void textureNumLayers_34cefa() {
+  uint res = uint(textureSize(arg_0_1, 0).z);
+}
+
+void fragment_main() {
+  textureNumLayers_34cefa();
+}
+
+void main() {
+  fragment_main();
+  return;
+}
+Error parsing GLSL shader:
+ERROR: 0:4: 'samplerCubeArray' : Reserved word. 
+ERROR: 0:4: '' : compilation terminated 
+ERROR: 2 compilation errors.  No code generated.
+
+
+
+#version 310 es
+
+uniform highp samplerCubeArray arg_0_1;
+void textureNumLayers_34cefa() {
+  uint res = uint(textureSize(arg_0_1, 0).z);
+}
+
+void compute_main() {
+  textureNumLayers_34cefa();
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  compute_main();
+  return;
+}
+Error parsing GLSL shader:
+ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
+ERROR: 2 compilation errors.  No code generated.
+
+
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/34cefa.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureNumLayers/34cefa.wgsl.expected.msl
new file mode 100644
index 0000000..53180de
--- /dev/null
+++ b/test/tint/builtins/gen/literal/textureNumLayers/34cefa.wgsl.expected.msl
@@ -0,0 +1,34 @@
+#include <metal_stdlib>
+
+using namespace metal;
+void textureNumLayers_34cefa(texturecube_array<float, access::sample> tint_symbol_1, device uint* const tint_symbol_2) {
+  uint res = tint_symbol_1.get_array_size();
+  *(tint_symbol_2) = res;
+}
+
+struct tint_symbol {
+  float4 value [[position]];
+};
+
+float4 vertex_main_inner(texturecube_array<float, access::sample> tint_symbol_3, device uint* const tint_symbol_4) {
+  textureNumLayers_34cefa(tint_symbol_3, tint_symbol_4);
+  return float4(0.0f);
+}
+
+vertex tint_symbol vertex_main(texturecube_array<float, access::sample> tint_symbol_5 [[texture(0)]], device uint* tint_symbol_6 [[buffer(0)]]) {
+  float4 const inner_result = vertex_main_inner(tint_symbol_5, tint_symbol_6);
+  tint_symbol wrapper_result = {};
+  wrapper_result.value = inner_result;
+  return wrapper_result;
+}
+
+fragment void fragment_main(texturecube_array<float, access::sample> tint_symbol_7 [[texture(0)]], device uint* tint_symbol_8 [[buffer(0)]]) {
+  textureNumLayers_34cefa(tint_symbol_7, tint_symbol_8);
+  return;
+}
+
+kernel void compute_main(texturecube_array<float, access::sample> tint_symbol_9 [[texture(0)]], device uint* tint_symbol_10 [[buffer(0)]]) {
+  textureNumLayers_34cefa(tint_symbol_9, tint_symbol_10);
+  return;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/34cefa.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumLayers/34cefa.wgsl.expected.spvasm
new file mode 100644
index 0000000..73c157d
--- /dev/null
+++ b/test/tint/builtins/gen/literal/textureNumLayers/34cefa.wgsl.expected.spvasm
@@ -0,0 +1,94 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 47
+; Schema: 0
+               OpCapability Shader
+               OpCapability SampledCubeArray
+               OpCapability ImageQuery
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+               OpEntryPoint Fragment %fragment_main "fragment_main"
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %fragment_main OriginUpperLeft
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
+               OpName %arg_0 "arg_0"
+               OpName %prevent_dce_block "prevent_dce_block"
+               OpMemberName %prevent_dce_block 0 "inner"
+               OpName %prevent_dce "prevent_dce"
+               OpName %textureNumLayers_34cefa "textureNumLayers_34cefa"
+               OpName %res "res"
+               OpName %vertex_main_inner "vertex_main_inner"
+               OpName %vertex_main "vertex_main"
+               OpName %fragment_main "fragment_main"
+               OpName %compute_main "compute_main"
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %prevent_dce_block Block
+               OpMemberDecorate %prevent_dce_block 0 Offset 0
+               OpDecorate %prevent_dce DescriptorSet 2
+               OpDecorate %prevent_dce Binding 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+         %11 = OpTypeImage %float Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+       %uint = OpTypeInt 32 0
+%prevent_dce_block = OpTypeStruct %uint
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+       %void = OpTypeVoid
+         %16 = OpTypeFunction %void
+     %v3uint = OpTypeVector %uint 3
+        %int = OpTypeInt 32 1
+      %int_0 = OpConstant %int 0
+%_ptr_Function_uint = OpTypePointer Function %uint
+         %28 = OpConstantNull %uint
+     %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
+         %33 = OpTypeFunction %v4float
+    %float_1 = OpConstant %float 1
+%textureNumLayers_34cefa = OpFunction %void None %16
+         %19 = OpLabel
+        %res = OpVariable %_ptr_Function_uint Function %28
+         %23 = OpLoad %11 %arg_0
+         %21 = OpImageQuerySizeLod %v3uint %23 %int_0
+         %20 = OpCompositeExtract %uint %21 2
+               OpStore %res %20
+         %31 = OpAccessChain %_ptr_StorageBuffer_uint %prevent_dce %uint_0
+         %32 = OpLoad %uint %res
+               OpStore %31 %32
+               OpReturn
+               OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %33
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureNumLayers_34cefa
+               OpReturnValue %5
+               OpFunctionEnd
+%vertex_main = OpFunction %void None %16
+         %38 = OpLabel
+         %39 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %39
+               OpStore %vertex_point_size %float_1
+               OpReturn
+               OpFunctionEnd
+%fragment_main = OpFunction %void None %16
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureNumLayers_34cefa
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %16
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %textureNumLayers_34cefa
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/34cefa.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/34cefa.wgsl.expected.wgsl
new file mode 100644
index 0000000..3020f5e
--- /dev/null
+++ b/test/tint/builtins/gen/literal/textureNumLayers/34cefa.wgsl.expected.wgsl
@@ -0,0 +1,24 @@
+@group(1) @binding(0) var arg_0 : texture_cube_array<f32>;
+
+fn textureNumLayers_34cefa() {
+  var res : u32 = textureNumLayers(arg_0);
+  prevent_dce = res;
+}
+
+@group(2) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+@vertex
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureNumLayers_34cefa();
+  return vec4<f32>();
+}
+
+@fragment
+fn fragment_main() {
+  textureNumLayers_34cefa();
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  textureNumLayers_34cefa();
+}
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/3580ab.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/3580ab.wgsl.expected.dxc.hlsl
index d47a7c6..e8d1355 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/3580ab.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/3580ab.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLayers_3580ab() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/3580ab.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/3580ab.wgsl.expected.fxc.hlsl
index d47a7c6..e8d1355 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/3580ab.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/3580ab.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLayers_3580ab() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/48ef47.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/48ef47.wgsl
new file mode 100644
index 0000000..3cfb9f7
--- /dev/null
+++ b/test/tint/builtins/gen/literal/textureNumLayers/48ef47.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2022 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/src/cmd/gen
+// using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_depth_cube_array;
+
+// fn textureNumLayers(texture: texture_depth_cube_array) -> u32
+fn textureNumLayers_48ef47() {
+  var res: u32 = textureNumLayers(arg_0);
+  prevent_dce = res;
+}
+@group(2) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+@vertex
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureNumLayers_48ef47();
+  return vec4<f32>();
+}
+
+@fragment
+fn fragment_main() {
+  textureNumLayers_48ef47();
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  textureNumLayers_48ef47();
+}
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/48ef47.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/48ef47.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..4edb79c
--- /dev/null
+++ b/test/tint/builtins/gen/literal/textureNumLayers/48ef47.wgsl.expected.dxc.hlsl
@@ -0,0 +1,36 @@
+TextureCubeArray arg_0 : register(t0, space1);
+RWByteAddressBuffer prevent_dce : register(u0, space2);
+
+void textureNumLayers_48ef47() {
+  uint3 tint_tmp;
+  arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
+  uint res = tint_tmp.z;
+  prevent_dce.Store(0u, asuint(res));
+}
+
+struct tint_symbol {
+  float4 value : SV_Position;
+};
+
+float4 vertex_main_inner() {
+  textureNumLayers_48ef47();
+  return (0.0f).xxxx;
+}
+
+tint_symbol vertex_main() {
+  const float4 inner_result = vertex_main_inner();
+  tint_symbol wrapper_result = (tint_symbol)0;
+  wrapper_result.value = inner_result;
+  return wrapper_result;
+}
+
+void fragment_main() {
+  textureNumLayers_48ef47();
+  return;
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureNumLayers_48ef47();
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/48ef47.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/48ef47.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..4edb79c
--- /dev/null
+++ b/test/tint/builtins/gen/literal/textureNumLayers/48ef47.wgsl.expected.fxc.hlsl
@@ -0,0 +1,36 @@
+TextureCubeArray arg_0 : register(t0, space1);
+RWByteAddressBuffer prevent_dce : register(u0, space2);
+
+void textureNumLayers_48ef47() {
+  uint3 tint_tmp;
+  arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
+  uint res = tint_tmp.z;
+  prevent_dce.Store(0u, asuint(res));
+}
+
+struct tint_symbol {
+  float4 value : SV_Position;
+};
+
+float4 vertex_main_inner() {
+  textureNumLayers_48ef47();
+  return (0.0f).xxxx;
+}
+
+tint_symbol vertex_main() {
+  const float4 inner_result = vertex_main_inner();
+  tint_symbol wrapper_result = (tint_symbol)0;
+  wrapper_result.value = inner_result;
+  return wrapper_result;
+}
+
+void fragment_main() {
+  textureNumLayers_48ef47();
+  return;
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureNumLayers_48ef47();
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/48ef47.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/48ef47.wgsl.expected.glsl
new file mode 100644
index 0000000..406b57c
--- /dev/null
+++ b/test/tint/builtins/gen/literal/textureNumLayers/48ef47.wgsl.expected.glsl
@@ -0,0 +1,75 @@
+SKIP: FAILED
+
+#version 310 es
+
+uniform highp samplerCubeArray arg_0_1;
+void textureNumLayers_48ef47() {
+  uint res = uint(textureSize(arg_0_1, 0).z);
+}
+
+vec4 vertex_main() {
+  textureNumLayers_48ef47();
+  return vec4(0.0f);
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
+Error parsing GLSL shader:
+ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
+ERROR: 2 compilation errors.  No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCubeArray arg_0_1;
+void textureNumLayers_48ef47() {
+  uint res = uint(textureSize(arg_0_1, 0).z);
+}
+
+void fragment_main() {
+  textureNumLayers_48ef47();
+}
+
+void main() {
+  fragment_main();
+  return;
+}
+Error parsing GLSL shader:
+ERROR: 0:4: 'samplerCubeArray' : Reserved word. 
+ERROR: 0:4: '' : compilation terminated 
+ERROR: 2 compilation errors.  No code generated.
+
+
+
+#version 310 es
+
+uniform highp samplerCubeArray arg_0_1;
+void textureNumLayers_48ef47() {
+  uint res = uint(textureSize(arg_0_1, 0).z);
+}
+
+void compute_main() {
+  textureNumLayers_48ef47();
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  compute_main();
+  return;
+}
+Error parsing GLSL shader:
+ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
+ERROR: 2 compilation errors.  No code generated.
+
+
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/48ef47.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureNumLayers/48ef47.wgsl.expected.msl
new file mode 100644
index 0000000..894adfa
--- /dev/null
+++ b/test/tint/builtins/gen/literal/textureNumLayers/48ef47.wgsl.expected.msl
@@ -0,0 +1,34 @@
+#include <metal_stdlib>
+
+using namespace metal;
+void textureNumLayers_48ef47(depthcube_array<float, access::sample> tint_symbol_1, device uint* const tint_symbol_2) {
+  uint res = tint_symbol_1.get_array_size();
+  *(tint_symbol_2) = res;
+}
+
+struct tint_symbol {
+  float4 value [[position]];
+};
+
+float4 vertex_main_inner(depthcube_array<float, access::sample> tint_symbol_3, device uint* const tint_symbol_4) {
+  textureNumLayers_48ef47(tint_symbol_3, tint_symbol_4);
+  return float4(0.0f);
+}
+
+vertex tint_symbol vertex_main(depthcube_array<float, access::sample> tint_symbol_5 [[texture(0)]], device uint* tint_symbol_6 [[buffer(0)]]) {
+  float4 const inner_result = vertex_main_inner(tint_symbol_5, tint_symbol_6);
+  tint_symbol wrapper_result = {};
+  wrapper_result.value = inner_result;
+  return wrapper_result;
+}
+
+fragment void fragment_main(depthcube_array<float, access::sample> tint_symbol_7 [[texture(0)]], device uint* tint_symbol_8 [[buffer(0)]]) {
+  textureNumLayers_48ef47(tint_symbol_7, tint_symbol_8);
+  return;
+}
+
+kernel void compute_main(depthcube_array<float, access::sample> tint_symbol_9 [[texture(0)]], device uint* tint_symbol_10 [[buffer(0)]]) {
+  textureNumLayers_48ef47(tint_symbol_9, tint_symbol_10);
+  return;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/48ef47.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumLayers/48ef47.wgsl.expected.spvasm
new file mode 100644
index 0000000..9716ce6
--- /dev/null
+++ b/test/tint/builtins/gen/literal/textureNumLayers/48ef47.wgsl.expected.spvasm
@@ -0,0 +1,94 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 47
+; Schema: 0
+               OpCapability Shader
+               OpCapability SampledCubeArray
+               OpCapability ImageQuery
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+               OpEntryPoint Fragment %fragment_main "fragment_main"
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %fragment_main OriginUpperLeft
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
+               OpName %arg_0 "arg_0"
+               OpName %prevent_dce_block "prevent_dce_block"
+               OpMemberName %prevent_dce_block 0 "inner"
+               OpName %prevent_dce "prevent_dce"
+               OpName %textureNumLayers_48ef47 "textureNumLayers_48ef47"
+               OpName %res "res"
+               OpName %vertex_main_inner "vertex_main_inner"
+               OpName %vertex_main "vertex_main"
+               OpName %fragment_main "fragment_main"
+               OpName %compute_main "compute_main"
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %prevent_dce_block Block
+               OpMemberDecorate %prevent_dce_block 0 Offset 0
+               OpDecorate %prevent_dce DescriptorSet 2
+               OpDecorate %prevent_dce Binding 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+         %11 = OpTypeImage %float Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+       %uint = OpTypeInt 32 0
+%prevent_dce_block = OpTypeStruct %uint
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+       %void = OpTypeVoid
+         %16 = OpTypeFunction %void
+     %v3uint = OpTypeVector %uint 3
+        %int = OpTypeInt 32 1
+      %int_0 = OpConstant %int 0
+%_ptr_Function_uint = OpTypePointer Function %uint
+         %28 = OpConstantNull %uint
+     %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
+         %33 = OpTypeFunction %v4float
+    %float_1 = OpConstant %float 1
+%textureNumLayers_48ef47 = OpFunction %void None %16
+         %19 = OpLabel
+        %res = OpVariable %_ptr_Function_uint Function %28
+         %23 = OpLoad %11 %arg_0
+         %21 = OpImageQuerySizeLod %v3uint %23 %int_0
+         %20 = OpCompositeExtract %uint %21 2
+               OpStore %res %20
+         %31 = OpAccessChain %_ptr_StorageBuffer_uint %prevent_dce %uint_0
+         %32 = OpLoad %uint %res
+               OpStore %31 %32
+               OpReturn
+               OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %33
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureNumLayers_48ef47
+               OpReturnValue %5
+               OpFunctionEnd
+%vertex_main = OpFunction %void None %16
+         %38 = OpLabel
+         %39 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %39
+               OpStore %vertex_point_size %float_1
+               OpReturn
+               OpFunctionEnd
+%fragment_main = OpFunction %void None %16
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureNumLayers_48ef47
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %16
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %textureNumLayers_48ef47
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/48ef47.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/48ef47.wgsl.expected.wgsl
new file mode 100644
index 0000000..1cadf28
--- /dev/null
+++ b/test/tint/builtins/gen/literal/textureNumLayers/48ef47.wgsl.expected.wgsl
@@ -0,0 +1,24 @@
+@group(1) @binding(0) var arg_0 : texture_depth_cube_array;
+
+fn textureNumLayers_48ef47() {
+  var res : u32 = textureNumLayers(arg_0);
+  prevent_dce = res;
+}
+
+@group(2) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+@vertex
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureNumLayers_48ef47();
+  return vec4<f32>();
+}
+
+@fragment
+fn fragment_main() {
+  textureNumLayers_48ef47();
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  textureNumLayers_48ef47();
+}
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/4c4333.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/4c4333.wgsl.expected.dxc.hlsl
index f68a984..2e738f2 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/4c4333.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/4c4333.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLayers_4c4333() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/4c4333.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/4c4333.wgsl.expected.fxc.hlsl
index f68a984..2e738f2 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/4c4333.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/4c4333.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLayers_4c4333() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/59eb57.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/59eb57.wgsl.expected.dxc.hlsl
index 350ae83..e96c3ac 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/59eb57.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/59eb57.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLayers_59eb57() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/59eb57.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/59eb57.wgsl.expected.fxc.hlsl
index 350ae83..e96c3ac 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/59eb57.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/59eb57.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLayers_59eb57() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/61bd23.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/61bd23.wgsl.expected.dxc.hlsl
index 9a565a2..2a8c94e 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/61bd23.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/61bd23.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLayers_61bd23() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/61bd23.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/61bd23.wgsl.expected.fxc.hlsl
index 9a565a2..2a8c94e 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/61bd23.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/61bd23.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLayers_61bd23() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/6b4321.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/6b4321.wgsl
new file mode 100644
index 0000000..a182e19
--- /dev/null
+++ b/test/tint/builtins/gen/literal/textureNumLayers/6b4321.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2022 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/src/cmd/gen
+// using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_cube_array<i32>;
+
+// fn textureNumLayers(texture: texture_cube_array<i32>) -> u32
+fn textureNumLayers_6b4321() {
+  var res: u32 = textureNumLayers(arg_0);
+  prevent_dce = res;
+}
+@group(2) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+@vertex
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureNumLayers_6b4321();
+  return vec4<f32>();
+}
+
+@fragment
+fn fragment_main() {
+  textureNumLayers_6b4321();
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  textureNumLayers_6b4321();
+}
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/6b4321.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/6b4321.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..79b115d
--- /dev/null
+++ b/test/tint/builtins/gen/literal/textureNumLayers/6b4321.wgsl.expected.dxc.hlsl
@@ -0,0 +1,36 @@
+TextureCubeArray<int4> arg_0 : register(t0, space1);
+RWByteAddressBuffer prevent_dce : register(u0, space2);
+
+void textureNumLayers_6b4321() {
+  uint3 tint_tmp;
+  arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
+  uint res = tint_tmp.z;
+  prevent_dce.Store(0u, asuint(res));
+}
+
+struct tint_symbol {
+  float4 value : SV_Position;
+};
+
+float4 vertex_main_inner() {
+  textureNumLayers_6b4321();
+  return (0.0f).xxxx;
+}
+
+tint_symbol vertex_main() {
+  const float4 inner_result = vertex_main_inner();
+  tint_symbol wrapper_result = (tint_symbol)0;
+  wrapper_result.value = inner_result;
+  return wrapper_result;
+}
+
+void fragment_main() {
+  textureNumLayers_6b4321();
+  return;
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureNumLayers_6b4321();
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/6b4321.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/6b4321.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..79b115d
--- /dev/null
+++ b/test/tint/builtins/gen/literal/textureNumLayers/6b4321.wgsl.expected.fxc.hlsl
@@ -0,0 +1,36 @@
+TextureCubeArray<int4> arg_0 : register(t0, space1);
+RWByteAddressBuffer prevent_dce : register(u0, space2);
+
+void textureNumLayers_6b4321() {
+  uint3 tint_tmp;
+  arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
+  uint res = tint_tmp.z;
+  prevent_dce.Store(0u, asuint(res));
+}
+
+struct tint_symbol {
+  float4 value : SV_Position;
+};
+
+float4 vertex_main_inner() {
+  textureNumLayers_6b4321();
+  return (0.0f).xxxx;
+}
+
+tint_symbol vertex_main() {
+  const float4 inner_result = vertex_main_inner();
+  tint_symbol wrapper_result = (tint_symbol)0;
+  wrapper_result.value = inner_result;
+  return wrapper_result;
+}
+
+void fragment_main() {
+  textureNumLayers_6b4321();
+  return;
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureNumLayers_6b4321();
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/6b4321.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/6b4321.wgsl.expected.glsl
new file mode 100644
index 0000000..9fd427f
--- /dev/null
+++ b/test/tint/builtins/gen/literal/textureNumLayers/6b4321.wgsl.expected.glsl
@@ -0,0 +1,75 @@
+SKIP: FAILED
+
+#version 310 es
+
+uniform highp isamplerCubeArray arg_0_1;
+void textureNumLayers_6b4321() {
+  uint res = uint(textureSize(arg_0_1, 0).z);
+}
+
+vec4 vertex_main() {
+  textureNumLayers_6b4321();
+  return vec4(0.0f);
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
+Error parsing GLSL shader:
+ERROR: 0:3: 'isamplerCubeArray' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
+ERROR: 2 compilation errors.  No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp isamplerCubeArray arg_0_1;
+void textureNumLayers_6b4321() {
+  uint res = uint(textureSize(arg_0_1, 0).z);
+}
+
+void fragment_main() {
+  textureNumLayers_6b4321();
+}
+
+void main() {
+  fragment_main();
+  return;
+}
+Error parsing GLSL shader:
+ERROR: 0:4: 'isamplerCubeArray' : Reserved word. 
+ERROR: 0:4: '' : compilation terminated 
+ERROR: 2 compilation errors.  No code generated.
+
+
+
+#version 310 es
+
+uniform highp isamplerCubeArray arg_0_1;
+void textureNumLayers_6b4321() {
+  uint res = uint(textureSize(arg_0_1, 0).z);
+}
+
+void compute_main() {
+  textureNumLayers_6b4321();
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  compute_main();
+  return;
+}
+Error parsing GLSL shader:
+ERROR: 0:3: 'isamplerCubeArray' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
+ERROR: 2 compilation errors.  No code generated.
+
+
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/6b4321.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureNumLayers/6b4321.wgsl.expected.msl
new file mode 100644
index 0000000..b944ae9
--- /dev/null
+++ b/test/tint/builtins/gen/literal/textureNumLayers/6b4321.wgsl.expected.msl
@@ -0,0 +1,34 @@
+#include <metal_stdlib>
+
+using namespace metal;
+void textureNumLayers_6b4321(texturecube_array<int, access::sample> tint_symbol_1, device uint* const tint_symbol_2) {
+  uint res = tint_symbol_1.get_array_size();
+  *(tint_symbol_2) = res;
+}
+
+struct tint_symbol {
+  float4 value [[position]];
+};
+
+float4 vertex_main_inner(texturecube_array<int, access::sample> tint_symbol_3, device uint* const tint_symbol_4) {
+  textureNumLayers_6b4321(tint_symbol_3, tint_symbol_4);
+  return float4(0.0f);
+}
+
+vertex tint_symbol vertex_main(texturecube_array<int, access::sample> tint_symbol_5 [[texture(0)]], device uint* tint_symbol_6 [[buffer(0)]]) {
+  float4 const inner_result = vertex_main_inner(tint_symbol_5, tint_symbol_6);
+  tint_symbol wrapper_result = {};
+  wrapper_result.value = inner_result;
+  return wrapper_result;
+}
+
+fragment void fragment_main(texturecube_array<int, access::sample> tint_symbol_7 [[texture(0)]], device uint* tint_symbol_8 [[buffer(0)]]) {
+  textureNumLayers_6b4321(tint_symbol_7, tint_symbol_8);
+  return;
+}
+
+kernel void compute_main(texturecube_array<int, access::sample> tint_symbol_9 [[texture(0)]], device uint* tint_symbol_10 [[buffer(0)]]) {
+  textureNumLayers_6b4321(tint_symbol_9, tint_symbol_10);
+  return;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/6b4321.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumLayers/6b4321.wgsl.expected.spvasm
new file mode 100644
index 0000000..08ca55c
--- /dev/null
+++ b/test/tint/builtins/gen/literal/textureNumLayers/6b4321.wgsl.expected.spvasm
@@ -0,0 +1,94 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 47
+; Schema: 0
+               OpCapability Shader
+               OpCapability SampledCubeArray
+               OpCapability ImageQuery
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+               OpEntryPoint Fragment %fragment_main "fragment_main"
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %fragment_main OriginUpperLeft
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
+               OpName %arg_0 "arg_0"
+               OpName %prevent_dce_block "prevent_dce_block"
+               OpMemberName %prevent_dce_block 0 "inner"
+               OpName %prevent_dce "prevent_dce"
+               OpName %textureNumLayers_6b4321 "textureNumLayers_6b4321"
+               OpName %res "res"
+               OpName %vertex_main_inner "vertex_main_inner"
+               OpName %vertex_main "vertex_main"
+               OpName %fragment_main "fragment_main"
+               OpName %compute_main "compute_main"
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %prevent_dce_block Block
+               OpMemberDecorate %prevent_dce_block 0 Offset 0
+               OpDecorate %prevent_dce DescriptorSet 2
+               OpDecorate %prevent_dce Binding 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+        %int = OpTypeInt 32 1
+         %11 = OpTypeImage %int Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+       %uint = OpTypeInt 32 0
+%prevent_dce_block = OpTypeStruct %uint
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+       %void = OpTypeVoid
+         %17 = OpTypeFunction %void
+     %v3uint = OpTypeVector %uint 3
+      %int_0 = OpConstant %int 0
+%_ptr_Function_uint = OpTypePointer Function %uint
+         %28 = OpConstantNull %uint
+     %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
+         %33 = OpTypeFunction %v4float
+    %float_1 = OpConstant %float 1
+%textureNumLayers_6b4321 = OpFunction %void None %17
+         %20 = OpLabel
+        %res = OpVariable %_ptr_Function_uint Function %28
+         %24 = OpLoad %11 %arg_0
+         %22 = OpImageQuerySizeLod %v3uint %24 %int_0
+         %21 = OpCompositeExtract %uint %22 2
+               OpStore %res %21
+         %31 = OpAccessChain %_ptr_StorageBuffer_uint %prevent_dce %uint_0
+         %32 = OpLoad %uint %res
+               OpStore %31 %32
+               OpReturn
+               OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %33
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureNumLayers_6b4321
+               OpReturnValue %5
+               OpFunctionEnd
+%vertex_main = OpFunction %void None %17
+         %38 = OpLabel
+         %39 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %39
+               OpStore %vertex_point_size %float_1
+               OpReturn
+               OpFunctionEnd
+%fragment_main = OpFunction %void None %17
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureNumLayers_6b4321
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %17
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %textureNumLayers_6b4321
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/6b4321.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/6b4321.wgsl.expected.wgsl
new file mode 100644
index 0000000..0fca392
--- /dev/null
+++ b/test/tint/builtins/gen/literal/textureNumLayers/6b4321.wgsl.expected.wgsl
@@ -0,0 +1,24 @@
+@group(1) @binding(0) var arg_0 : texture_cube_array<i32>;
+
+fn textureNumLayers_6b4321() {
+  var res : u32 = textureNumLayers(arg_0);
+  prevent_dce = res;
+}
+
+@group(2) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+@vertex
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureNumLayers_6b4321();
+  return vec4<f32>();
+}
+
+@fragment
+fn fragment_main() {
+  textureNumLayers_6b4321();
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  textureNumLayers_6b4321();
+}
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/77be7b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/77be7b.wgsl.expected.dxc.hlsl
index 283dc9c..874cb79 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/77be7b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/77be7b.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLayers_77be7b() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/77be7b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/77be7b.wgsl.expected.fxc.hlsl
index 283dc9c..874cb79 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/77be7b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/77be7b.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLayers_77be7b() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/7f28cf.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/7f28cf.wgsl.expected.dxc.hlsl
index 7429e92..2ee0e49 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/7f28cf.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/7f28cf.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLayers_7f28cf() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/7f28cf.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/7f28cf.wgsl.expected.fxc.hlsl
index 7429e92..2ee0e49 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/7f28cf.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/7f28cf.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLayers_7f28cf() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/878dea.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/878dea.wgsl.expected.dxc.hlsl
index 2ea7b75..a0c230c 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/878dea.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/878dea.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLayers_878dea() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/878dea.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/878dea.wgsl.expected.fxc.hlsl
index 2ea7b75..a0c230c 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/878dea.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/878dea.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLayers_878dea() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/87faad.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/87faad.wgsl.expected.dxc.hlsl
index b3c201d..c91257f 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/87faad.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/87faad.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLayers_87faad() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/87faad.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/87faad.wgsl.expected.fxc.hlsl
index b3c201d..c91257f 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/87faad.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/87faad.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLayers_87faad() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/8ac32a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/8ac32a.wgsl.expected.dxc.hlsl
index a0b679a..c9a293f 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/8ac32a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/8ac32a.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLayers_8ac32a() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/8ac32a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/8ac32a.wgsl.expected.fxc.hlsl
index a0b679a..c9a293f 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/8ac32a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/8ac32a.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLayers_8ac32a() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/8bd987.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/8bd987.wgsl.expected.dxc.hlsl
index d83e727..3fb1f60 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/8bd987.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/8bd987.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLayers_8bd987() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/8bd987.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/8bd987.wgsl.expected.fxc.hlsl
index d83e727..3fb1f60 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/8bd987.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/8bd987.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLayers_8bd987() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/8dbf23.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/8dbf23.wgsl.expected.dxc.hlsl
index cbff36e..637cef3 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/8dbf23.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/8dbf23.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLayers_8dbf23() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/8dbf23.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/8dbf23.wgsl.expected.fxc.hlsl
index cbff36e..637cef3 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/8dbf23.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/8dbf23.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLayers_8dbf23() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/9695c6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/9695c6.wgsl.expected.dxc.hlsl
index 48d7d57..17a9aca 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/9695c6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/9695c6.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLayers_9695c6() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/9695c6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/9695c6.wgsl.expected.fxc.hlsl
index 48d7d57..17a9aca 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/9695c6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/9695c6.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLayers_9695c6() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/98a9cf.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/98a9cf.wgsl.expected.dxc.hlsl
index c13f3aa..76a17e3 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/98a9cf.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/98a9cf.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLayers_98a9cf() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/98a9cf.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/98a9cf.wgsl.expected.fxc.hlsl
index c13f3aa..76a17e3 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/98a9cf.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/98a9cf.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLayers_98a9cf() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/a9d3f5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/a9d3f5.wgsl.expected.dxc.hlsl
index d14e5ea..593320f 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/a9d3f5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/a9d3f5.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLayers_a9d3f5() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/a9d3f5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/a9d3f5.wgsl.expected.fxc.hlsl
index d14e5ea..593320f 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/a9d3f5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/a9d3f5.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLayers_a9d3f5() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/c1eca9.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/c1eca9.wgsl
new file mode 100644
index 0000000..8bdfe84
--- /dev/null
+++ b/test/tint/builtins/gen/literal/textureNumLayers/c1eca9.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2022 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/src/cmd/gen
+// using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_cube_array<u32>;
+
+// fn textureNumLayers(texture: texture_cube_array<u32>) -> u32
+fn textureNumLayers_c1eca9() {
+  var res: u32 = textureNumLayers(arg_0);
+  prevent_dce = res;
+}
+@group(2) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+@vertex
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureNumLayers_c1eca9();
+  return vec4<f32>();
+}
+
+@fragment
+fn fragment_main() {
+  textureNumLayers_c1eca9();
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  textureNumLayers_c1eca9();
+}
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/c1eca9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/c1eca9.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..db69c6b
--- /dev/null
+++ b/test/tint/builtins/gen/literal/textureNumLayers/c1eca9.wgsl.expected.dxc.hlsl
@@ -0,0 +1,36 @@
+TextureCubeArray<uint4> arg_0 : register(t0, space1);
+RWByteAddressBuffer prevent_dce : register(u0, space2);
+
+void textureNumLayers_c1eca9() {
+  uint3 tint_tmp;
+  arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
+  uint res = tint_tmp.z;
+  prevent_dce.Store(0u, asuint(res));
+}
+
+struct tint_symbol {
+  float4 value : SV_Position;
+};
+
+float4 vertex_main_inner() {
+  textureNumLayers_c1eca9();
+  return (0.0f).xxxx;
+}
+
+tint_symbol vertex_main() {
+  const float4 inner_result = vertex_main_inner();
+  tint_symbol wrapper_result = (tint_symbol)0;
+  wrapper_result.value = inner_result;
+  return wrapper_result;
+}
+
+void fragment_main() {
+  textureNumLayers_c1eca9();
+  return;
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureNumLayers_c1eca9();
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/c1eca9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/c1eca9.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..db69c6b
--- /dev/null
+++ b/test/tint/builtins/gen/literal/textureNumLayers/c1eca9.wgsl.expected.fxc.hlsl
@@ -0,0 +1,36 @@
+TextureCubeArray<uint4> arg_0 : register(t0, space1);
+RWByteAddressBuffer prevent_dce : register(u0, space2);
+
+void textureNumLayers_c1eca9() {
+  uint3 tint_tmp;
+  arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
+  uint res = tint_tmp.z;
+  prevent_dce.Store(0u, asuint(res));
+}
+
+struct tint_symbol {
+  float4 value : SV_Position;
+};
+
+float4 vertex_main_inner() {
+  textureNumLayers_c1eca9();
+  return (0.0f).xxxx;
+}
+
+tint_symbol vertex_main() {
+  const float4 inner_result = vertex_main_inner();
+  tint_symbol wrapper_result = (tint_symbol)0;
+  wrapper_result.value = inner_result;
+  return wrapper_result;
+}
+
+void fragment_main() {
+  textureNumLayers_c1eca9();
+  return;
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureNumLayers_c1eca9();
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/c1eca9.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/c1eca9.wgsl.expected.glsl
new file mode 100644
index 0000000..367aaab
--- /dev/null
+++ b/test/tint/builtins/gen/literal/textureNumLayers/c1eca9.wgsl.expected.glsl
@@ -0,0 +1,75 @@
+SKIP: FAILED
+
+#version 310 es
+
+uniform highp usamplerCubeArray arg_0_1;
+void textureNumLayers_c1eca9() {
+  uint res = uint(textureSize(arg_0_1, 0).z);
+}
+
+vec4 vertex_main() {
+  textureNumLayers_c1eca9();
+  return vec4(0.0f);
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
+Error parsing GLSL shader:
+ERROR: 0:3: 'usamplerCubeArray' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
+ERROR: 2 compilation errors.  No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp usamplerCubeArray arg_0_1;
+void textureNumLayers_c1eca9() {
+  uint res = uint(textureSize(arg_0_1, 0).z);
+}
+
+void fragment_main() {
+  textureNumLayers_c1eca9();
+}
+
+void main() {
+  fragment_main();
+  return;
+}
+Error parsing GLSL shader:
+ERROR: 0:4: 'usamplerCubeArray' : Reserved word. 
+ERROR: 0:4: '' : compilation terminated 
+ERROR: 2 compilation errors.  No code generated.
+
+
+
+#version 310 es
+
+uniform highp usamplerCubeArray arg_0_1;
+void textureNumLayers_c1eca9() {
+  uint res = uint(textureSize(arg_0_1, 0).z);
+}
+
+void compute_main() {
+  textureNumLayers_c1eca9();
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  compute_main();
+  return;
+}
+Error parsing GLSL shader:
+ERROR: 0:3: 'usamplerCubeArray' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
+ERROR: 2 compilation errors.  No code generated.
+
+
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/c1eca9.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureNumLayers/c1eca9.wgsl.expected.msl
new file mode 100644
index 0000000..eebf927
--- /dev/null
+++ b/test/tint/builtins/gen/literal/textureNumLayers/c1eca9.wgsl.expected.msl
@@ -0,0 +1,34 @@
+#include <metal_stdlib>
+
+using namespace metal;
+void textureNumLayers_c1eca9(texturecube_array<uint, access::sample> tint_symbol_1, device uint* const tint_symbol_2) {
+  uint res = tint_symbol_1.get_array_size();
+  *(tint_symbol_2) = res;
+}
+
+struct tint_symbol {
+  float4 value [[position]];
+};
+
+float4 vertex_main_inner(texturecube_array<uint, access::sample> tint_symbol_3, device uint* const tint_symbol_4) {
+  textureNumLayers_c1eca9(tint_symbol_3, tint_symbol_4);
+  return float4(0.0f);
+}
+
+vertex tint_symbol vertex_main(texturecube_array<uint, access::sample> tint_symbol_5 [[texture(0)]], device uint* tint_symbol_6 [[buffer(0)]]) {
+  float4 const inner_result = vertex_main_inner(tint_symbol_5, tint_symbol_6);
+  tint_symbol wrapper_result = {};
+  wrapper_result.value = inner_result;
+  return wrapper_result;
+}
+
+fragment void fragment_main(texturecube_array<uint, access::sample> tint_symbol_7 [[texture(0)]], device uint* tint_symbol_8 [[buffer(0)]]) {
+  textureNumLayers_c1eca9(tint_symbol_7, tint_symbol_8);
+  return;
+}
+
+kernel void compute_main(texturecube_array<uint, access::sample> tint_symbol_9 [[texture(0)]], device uint* tint_symbol_10 [[buffer(0)]]) {
+  textureNumLayers_c1eca9(tint_symbol_9, tint_symbol_10);
+  return;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/c1eca9.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumLayers/c1eca9.wgsl.expected.spvasm
new file mode 100644
index 0000000..aaac1d1
--- /dev/null
+++ b/test/tint/builtins/gen/literal/textureNumLayers/c1eca9.wgsl.expected.spvasm
@@ -0,0 +1,94 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 47
+; Schema: 0
+               OpCapability Shader
+               OpCapability SampledCubeArray
+               OpCapability ImageQuery
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+               OpEntryPoint Fragment %fragment_main "fragment_main"
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %fragment_main OriginUpperLeft
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
+               OpName %arg_0 "arg_0"
+               OpName %prevent_dce_block "prevent_dce_block"
+               OpMemberName %prevent_dce_block 0 "inner"
+               OpName %prevent_dce "prevent_dce"
+               OpName %textureNumLayers_c1eca9 "textureNumLayers_c1eca9"
+               OpName %res "res"
+               OpName %vertex_main_inner "vertex_main_inner"
+               OpName %vertex_main "vertex_main"
+               OpName %fragment_main "fragment_main"
+               OpName %compute_main "compute_main"
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %prevent_dce_block Block
+               OpMemberDecorate %prevent_dce_block 0 Offset 0
+               OpDecorate %prevent_dce DescriptorSet 2
+               OpDecorate %prevent_dce Binding 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+       %uint = OpTypeInt 32 0
+         %11 = OpTypeImage %uint Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+%prevent_dce_block = OpTypeStruct %uint
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+       %void = OpTypeVoid
+         %16 = OpTypeFunction %void
+     %v3uint = OpTypeVector %uint 3
+        %int = OpTypeInt 32 1
+      %int_0 = OpConstant %int 0
+%_ptr_Function_uint = OpTypePointer Function %uint
+         %28 = OpConstantNull %uint
+     %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
+         %33 = OpTypeFunction %v4float
+    %float_1 = OpConstant %float 1
+%textureNumLayers_c1eca9 = OpFunction %void None %16
+         %19 = OpLabel
+        %res = OpVariable %_ptr_Function_uint Function %28
+         %23 = OpLoad %11 %arg_0
+         %21 = OpImageQuerySizeLod %v3uint %23 %int_0
+         %20 = OpCompositeExtract %uint %21 2
+               OpStore %res %20
+         %31 = OpAccessChain %_ptr_StorageBuffer_uint %prevent_dce %uint_0
+         %32 = OpLoad %uint %res
+               OpStore %31 %32
+               OpReturn
+               OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %33
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureNumLayers_c1eca9
+               OpReturnValue %5
+               OpFunctionEnd
+%vertex_main = OpFunction %void None %16
+         %38 = OpLabel
+         %39 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %39
+               OpStore %vertex_point_size %float_1
+               OpReturn
+               OpFunctionEnd
+%fragment_main = OpFunction %void None %16
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureNumLayers_c1eca9
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %16
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %textureNumLayers_c1eca9
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/c1eca9.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/c1eca9.wgsl.expected.wgsl
new file mode 100644
index 0000000..d2cba71
--- /dev/null
+++ b/test/tint/builtins/gen/literal/textureNumLayers/c1eca9.wgsl.expected.wgsl
@@ -0,0 +1,24 @@
+@group(1) @binding(0) var arg_0 : texture_cube_array<u32>;
+
+fn textureNumLayers_c1eca9() {
+  var res : u32 = textureNumLayers(arg_0);
+  prevent_dce = res;
+}
+
+@group(2) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+@vertex
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureNumLayers_c1eca9();
+  return vec4<f32>();
+}
+
+@fragment
+fn fragment_main() {
+  textureNumLayers_c1eca9();
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  textureNumLayers_c1eca9();
+}
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/d75a0b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/d75a0b.wgsl.expected.dxc.hlsl
index 22a44ee..123d33c 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/d75a0b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/d75a0b.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLayers_d75a0b() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/d75a0b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/d75a0b.wgsl.expected.fxc.hlsl
index 22a44ee..123d33c 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/d75a0b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/d75a0b.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLayers_d75a0b() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/de8087.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/de8087.wgsl.expected.dxc.hlsl
index 515081d..43067c5 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/de8087.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/de8087.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLayers_de8087() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/de8087.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/de8087.wgsl.expected.fxc.hlsl
index 515081d..43067c5 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/de8087.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/de8087.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLayers_de8087() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/181090.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/181090.wgsl.expected.dxc.hlsl
index 13c1604..76c2e69 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/181090.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/181090.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLevels_181090() {
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(0, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint res = tint_tmp.w;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/181090.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/181090.wgsl.expected.fxc.hlsl
index 13c1604..76c2e69 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/181090.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/181090.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLevels_181090() {
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(0, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint res = tint_tmp.w;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/1a3fa9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/1a3fa9.wgsl.expected.dxc.hlsl
index 0c746e4..bfc49d0 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/1a3fa9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/1a3fa9.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLevels_1a3fa9() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(0, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/1a3fa9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/1a3fa9.wgsl.expected.fxc.hlsl
index 0c746e4..bfc49d0 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/1a3fa9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/1a3fa9.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLevels_1a3fa9() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(0, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/1a7fc3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/1a7fc3.wgsl.expected.dxc.hlsl
index 6e53b9d..0d2da36 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/1a7fc3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/1a7fc3.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLevels_1a7fc3() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(0, tint_tmp.x, tint_tmp.y);
   uint res = tint_tmp.y;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/1a7fc3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/1a7fc3.wgsl.expected.fxc.hlsl
index 6e53b9d..0d2da36 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/1a7fc3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/1a7fc3.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLevels_1a7fc3() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(0, tint_tmp.x, tint_tmp.y);
   uint res = tint_tmp.y;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/2267d8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/2267d8.wgsl.expected.dxc.hlsl
index c3235ba..3580cb6 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/2267d8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/2267d8.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLevels_2267d8() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(0, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/2267d8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/2267d8.wgsl.expected.fxc.hlsl
index c3235ba..3580cb6 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/2267d8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/2267d8.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLevels_2267d8() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(0, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/24b2c6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/24b2c6.wgsl.expected.dxc.hlsl
index 3fd1c1f..e8f01d2 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/24b2c6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/24b2c6.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLevels_24b2c6() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(0, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/24b2c6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/24b2c6.wgsl.expected.fxc.hlsl
index 3fd1c1f..e8f01d2 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/24b2c6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/24b2c6.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLevels_24b2c6() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(0, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/2bea6c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/2bea6c.wgsl.expected.dxc.hlsl
index 6b5dac1..b6fc9a7 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/2bea6c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/2bea6c.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLevels_2bea6c() {
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(0, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint res = tint_tmp.w;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/2bea6c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/2bea6c.wgsl.expected.fxc.hlsl
index 6b5dac1..b6fc9a7 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/2bea6c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/2bea6c.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLevels_2bea6c() {
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(0, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint res = tint_tmp.w;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/2df1ab.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/2df1ab.wgsl.expected.dxc.hlsl
index 75ff97e..5591016 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/2df1ab.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/2df1ab.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLevels_2df1ab() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(0, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/2df1ab.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/2df1ab.wgsl.expected.fxc.hlsl
index 75ff97e..5591016 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/2df1ab.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/2df1ab.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLevels_2df1ab() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(0, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/46dbd8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/46dbd8.wgsl.expected.dxc.hlsl
index a6639f1..af0c23e 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/46dbd8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/46dbd8.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLevels_46dbd8() {
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(0, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint res = tint_tmp.w;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/46dbd8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/46dbd8.wgsl.expected.fxc.hlsl
index a6639f1..af0c23e 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/46dbd8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/46dbd8.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLevels_46dbd8() {
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(0, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint res = tint_tmp.w;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/60d9b8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/60d9b8.wgsl.expected.dxc.hlsl
index ea35f1f..bd71aaa 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/60d9b8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/60d9b8.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLevels_60d9b8() {
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(0, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint res = tint_tmp.w;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/60d9b8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/60d9b8.wgsl.expected.fxc.hlsl
index ea35f1f..bd71aaa 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/60d9b8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/60d9b8.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLevels_60d9b8() {
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(0, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint res = tint_tmp.w;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/903920.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/903920.wgsl.expected.dxc.hlsl
index 3751631..b1357f0 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/903920.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/903920.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLevels_903920() {
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(0, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint res = tint_tmp.w;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/903920.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/903920.wgsl.expected.fxc.hlsl
index 3751631..b1357f0 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/903920.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/903920.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLevels_903920() {
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(0, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint res = tint_tmp.w;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/9a1a65.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/9a1a65.wgsl.expected.dxc.hlsl
index a002c04..d18ba6d 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/9a1a65.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/9a1a65.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLevels_9a1a65() {
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(0, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint res = tint_tmp.w;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/9a1a65.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/9a1a65.wgsl.expected.fxc.hlsl
index a002c04..d18ba6d 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/9a1a65.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/9a1a65.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLevels_9a1a65() {
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(0, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint res = tint_tmp.w;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/adc783.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/adc783.wgsl.expected.dxc.hlsl
index f9a0a2b..097b595 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/adc783.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/adc783.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLevels_adc783() {
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(0, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint res = tint_tmp.w;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/adc783.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/adc783.wgsl.expected.fxc.hlsl
index f9a0a2b..097b595 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/adc783.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/adc783.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLevels_adc783() {
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(0, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint res = tint_tmp.w;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/ae911c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/ae911c.wgsl.expected.dxc.hlsl
index 37f639b..09236e9 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/ae911c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/ae911c.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLevels_ae911c() {
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(0, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint res = tint_tmp.w;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/ae911c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/ae911c.wgsl.expected.fxc.hlsl
index 37f639b..09236e9 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/ae911c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/ae911c.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLevels_ae911c() {
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(0, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint res = tint_tmp.w;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/c386c8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/c386c8.wgsl.expected.dxc.hlsl
index ef724e1..15fee50 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/c386c8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/c386c8.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLevels_c386c8() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(0, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/c386c8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/c386c8.wgsl.expected.fxc.hlsl
index ef724e1..15fee50 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/c386c8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/c386c8.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLevels_c386c8() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(0, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/c399f9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/c399f9.wgsl.expected.dxc.hlsl
index d4ce86c..bc83071 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/c399f9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/c399f9.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLevels_c399f9() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(0, tint_tmp.x, tint_tmp.y);
   uint res = tint_tmp.y;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/c399f9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/c399f9.wgsl.expected.fxc.hlsl
index d4ce86c..bc83071 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/c399f9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/c399f9.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLevels_c399f9() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(0, tint_tmp.x, tint_tmp.y);
   uint res = tint_tmp.y;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/c8c25c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/c8c25c.wgsl.expected.dxc.hlsl
index 6743680..8e2b4bd 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/c8c25c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/c8c25c.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLevels_c8c25c() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(0, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/c8c25c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/c8c25c.wgsl.expected.fxc.hlsl
index 6743680..8e2b4bd 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/c8c25c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/c8c25c.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLevels_c8c25c() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(0, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/d63126.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/d63126.wgsl.expected.dxc.hlsl
index 60c007f..cd5c738 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/d63126.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/d63126.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLevels_d63126() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(0, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/d63126.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/d63126.wgsl.expected.fxc.hlsl
index 60c007f..cd5c738 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/d63126.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/d63126.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLevels_d63126() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(0, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/d8f73b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/d8f73b.wgsl.expected.dxc.hlsl
index 11cdebb..d6491e2 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/d8f73b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/d8f73b.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLevels_d8f73b() {
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(0, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint res = tint_tmp.w;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/d8f73b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/d8f73b.wgsl.expected.fxc.hlsl
index 11cdebb..d6491e2 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/d8f73b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/d8f73b.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLevels_d8f73b() {
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(0, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint res = tint_tmp.w;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/ef7944.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/ef7944.wgsl.expected.dxc.hlsl
index 98c63e3..08e07f2 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/ef7944.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/ef7944.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLevels_ef7944() {
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(0, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint res = tint_tmp.w;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/ef7944.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/ef7944.wgsl.expected.fxc.hlsl
index 98c63e3..08e07f2 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/ef7944.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/ef7944.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLevels_ef7944() {
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(0, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint res = tint_tmp.w;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/efd6df.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/efd6df.wgsl.expected.dxc.hlsl
index 966eba3..c6ef272 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/efd6df.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/efd6df.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLevels_efd6df() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(0, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/efd6df.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/efd6df.wgsl.expected.fxc.hlsl
index 966eba3..c6ef272 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/efd6df.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/efd6df.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLevels_efd6df() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(0, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/f742c0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/f742c0.wgsl.expected.dxc.hlsl
index b9333cb..a6428d6 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/f742c0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/f742c0.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLevels_f742c0() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(0, tint_tmp.x, tint_tmp.y);
   uint res = tint_tmp.y;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/f742c0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/f742c0.wgsl.expected.fxc.hlsl
index b9333cb..a6428d6 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/f742c0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/f742c0.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLevels_f742c0() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(0, tint_tmp.x, tint_tmp.y);
   uint res = tint_tmp.y;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/fe2171.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/fe2171.wgsl.expected.dxc.hlsl
index 30809fa..af8ca21 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/fe2171.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/fe2171.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLevels_fe2171() {
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(0, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint res = tint_tmp.w;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/fe2171.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/fe2171.wgsl.expected.fxc.hlsl
index 30809fa..af8ca21 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/fe2171.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/fe2171.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLevels_fe2171() {
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(0, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint res = tint_tmp.w;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumSamples/50f399.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumSamples/50f399.wgsl.expected.dxc.hlsl
index 3238202..c19bab7 100644
--- a/test/tint/builtins/gen/literal/textureNumSamples/50f399.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumSamples/50f399.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumSamples_50f399() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumSamples/50f399.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumSamples/50f399.wgsl.expected.fxc.hlsl
index 3238202..c19bab7 100644
--- a/test/tint/builtins/gen/literal/textureNumSamples/50f399.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumSamples/50f399.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumSamples_50f399() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumSamples/c1a777.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumSamples/c1a777.wgsl.expected.dxc.hlsl
index 480fde4..26d9873 100644
--- a/test/tint/builtins/gen/literal/textureNumSamples/c1a777.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumSamples/c1a777.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumSamples_c1a777() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumSamples/c1a777.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumSamples/c1a777.wgsl.expected.fxc.hlsl
index 480fde4..26d9873 100644
--- a/test/tint/builtins/gen/literal/textureNumSamples/c1a777.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumSamples/c1a777.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumSamples_c1a777() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumSamples/dbb799.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumSamples/dbb799.wgsl.expected.dxc.hlsl
index 99e1f67..e0f4514 100644
--- a/test/tint/builtins/gen/literal/textureNumSamples/dbb799.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumSamples/dbb799.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumSamples_dbb799() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumSamples/dbb799.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumSamples/dbb799.wgsl.expected.fxc.hlsl
index 99e1f67..e0f4514 100644
--- a/test/tint/builtins/gen/literal/textureNumSamples/dbb799.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumSamples/dbb799.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumSamples_dbb799() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumSamples/ecd321.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumSamples/ecd321.wgsl.expected.dxc.hlsl
index 658aa82..21e1d50 100644
--- a/test/tint/builtins/gen/literal/textureNumSamples/ecd321.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumSamples/ecd321.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumSamples_ecd321() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureNumSamples/ecd321.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumSamples/ecd321.wgsl.expected.fxc.hlsl
index 658aa82..21e1d50 100644
--- a/test/tint/builtins/gen/literal/textureNumSamples/ecd321.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumSamples/ecd321.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumSamples_ecd321() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.dxc.hlsl
index 92065b2..308c0d8 100644
--- a/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.dxc.hlsl
@@ -34,12 +34,12 @@
 
 float4 textureSampleExternal(Texture2D<float4> plane0, Texture2D<float4> plane1, SamplerState smp, float2 coord, ExternalTextureParams params) {
   const float2 modifiedCoords = mul(float3(coord, 1.0f), params.coordTransformationMatrix);
-  int3 tint_tmp;
+  uint3 tint_tmp;
   plane0.GetDimensions(0, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   const float2 plane0_dims = float2(tint_tmp.xy);
   const float2 plane0_half_texel = ((0.5f).xx / plane0_dims);
   const float2 plane0_clamped = clamp(modifiedCoords, plane0_half_texel, (1.0f - plane0_half_texel));
-  int3 tint_tmp_1;
+  uint3 tint_tmp_1;
   plane1.GetDimensions(0, tint_tmp_1.x, tint_tmp_1.y, tint_tmp_1.z);
   const float2 plane1_dims = float2(tint_tmp_1.xy);
   const float2 plane1_half_texel = ((0.5f).xx / plane1_dims);
diff --git a/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.fxc.hlsl
index 92065b2..308c0d8 100644
--- a/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.fxc.hlsl
@@ -34,12 +34,12 @@
 
 float4 textureSampleExternal(Texture2D<float4> plane0, Texture2D<float4> plane1, SamplerState smp, float2 coord, ExternalTextureParams params) {
   const float2 modifiedCoords = mul(float3(coord, 1.0f), params.coordTransformationMatrix);
-  int3 tint_tmp;
+  uint3 tint_tmp;
   plane0.GetDimensions(0, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   const float2 plane0_dims = float2(tint_tmp.xy);
   const float2 plane0_half_texel = ((0.5f).xx / plane0_dims);
   const float2 plane0_clamped = clamp(modifiedCoords, plane0_half_texel, (1.0f - plane0_half_texel));
-  int3 tint_tmp_1;
+  uint3 tint_tmp_1;
   plane1.GetDimensions(0, tint_tmp_1.x, tint_tmp_1.y, tint_tmp_1.z);
   const float2 plane1_dims = float2(tint_tmp_1.xy);
   const float2 plane1_half_texel = ((0.5f).xx / plane1_dims);
diff --git a/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.dxc.hlsl
index f7997fa..2936d36 100644
--- a/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 float4 tint_textureSampleBaseClampToEdge(Texture2D<float4> t, SamplerState s, float2 coord) {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   t.GetDimensions(0, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   const float2 dims = float2(tint_tmp.xy);
   const float2 half_texel = ((0.5f).xx / dims);
diff --git a/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.fxc.hlsl
index f7997fa..2936d36 100644
--- a/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 float4 tint_textureSampleBaseClampToEdge(Texture2D<float4> t, SamplerState s, float2 coord) {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   t.GetDimensions(0, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   const float2 dims = float2(tint_tmp.xy);
   const float2 half_texel = ((0.5f).xx / dims);
diff --git a/test/tint/builtins/gen/var/textureDimensions/00348c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/00348c.wgsl.expected.dxc.hlsl
index 855ccf0..c243f98 100644
--- a/test/tint/builtins/gen/var/textureDimensions/00348c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/00348c.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_00348c() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/00348c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/00348c.wgsl.expected.fxc.hlsl
index 855ccf0..c243f98 100644
--- a/test/tint/builtins/gen/var/textureDimensions/00348c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/00348c.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_00348c() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/022903.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/022903.wgsl.expected.dxc.hlsl
index 9bc59ed..2a8418a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/022903.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/022903.wgsl.expected.dxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_022903() {
   uint arg_1 = 1u;
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(arg_1, tint_tmp.x, tint_tmp.y);
   uint res = tint_tmp.x;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/022903.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/022903.wgsl.expected.fxc.hlsl
index 9bc59ed..2a8418a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/022903.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/022903.wgsl.expected.fxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_022903() {
   uint arg_1 = 1u;
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(arg_1, tint_tmp.x, tint_tmp.y);
   uint res = tint_tmp.x;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/0890c6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/0890c6.wgsl.expected.dxc.hlsl
index ad723b3..00cfbaf 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0890c6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/0890c6.wgsl.expected.dxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_0890c6() {
   uint arg_1 = 1u;
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(arg_1, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint3 res = tint_tmp.xyz;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/0890c6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/0890c6.wgsl.expected.fxc.hlsl
index ad723b3..00cfbaf 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0890c6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/0890c6.wgsl.expected.fxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_0890c6() {
   uint arg_1 = 1u;
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(arg_1, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint3 res = tint_tmp.xyz;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/09140b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/09140b.wgsl.expected.dxc.hlsl
index 952acac..a3c6522 100644
--- a/test/tint/builtins/gen/var/textureDimensions/09140b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/09140b.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_09140b() {
-  int tint_tmp;
+  uint tint_tmp;
   arg_0.GetDimensions(tint_tmp);
   uint res = tint_tmp;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/09140b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/09140b.wgsl.expected.fxc.hlsl
index 952acac..a3c6522 100644
--- a/test/tint/builtins/gen/var/textureDimensions/09140b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/09140b.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_09140b() {
-  int tint_tmp;
+  uint tint_tmp;
   arg_0.GetDimensions(tint_tmp);
   uint res = tint_tmp;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/0baa0d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/0baa0d.wgsl.expected.dxc.hlsl
index 3348dc8..8201074 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0baa0d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/0baa0d.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_0baa0d() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/0baa0d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/0baa0d.wgsl.expected.fxc.hlsl
index 3348dc8..8201074 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0baa0d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/0baa0d.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_0baa0d() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/0c0b0c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/0c0b0c.wgsl.expected.dxc.hlsl
index 5782c8b..51f9c6b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0c0b0c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/0c0b0c.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_0c0b0c() {
-  int tint_tmp;
+  uint tint_tmp;
   arg_0.GetDimensions(tint_tmp);
   uint res = tint_tmp;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/0c0b0c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/0c0b0c.wgsl.expected.fxc.hlsl
index 5782c8b..51f9c6b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0c0b0c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/0c0b0c.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_0c0b0c() {
-  int tint_tmp;
+  uint tint_tmp;
   arg_0.GetDimensions(tint_tmp);
   uint res = tint_tmp;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/0ff9a4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/0ff9a4.wgsl.expected.dxc.hlsl
index accd6f5..ecd1141 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0ff9a4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/0ff9a4.wgsl.expected.dxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_0ff9a4() {
   int arg_1 = 1;
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(arg_1, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/0ff9a4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/0ff9a4.wgsl.expected.fxc.hlsl
index accd6f5..ecd1141 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0ff9a4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/0ff9a4.wgsl.expected.fxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_0ff9a4() {
   int arg_1 = 1;
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(arg_1, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/13f8db.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/13f8db.wgsl.expected.dxc.hlsl
index 97d1d35..4525b63 100644
--- a/test/tint/builtins/gen/var/textureDimensions/13f8db.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/13f8db.wgsl.expected.dxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_13f8db() {
   uint arg_1 = 1u;
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(arg_1, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/13f8db.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/13f8db.wgsl.expected.fxc.hlsl
index 97d1d35..4525b63 100644
--- a/test/tint/builtins/gen/var/textureDimensions/13f8db.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/13f8db.wgsl.expected.fxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_13f8db() {
   uint arg_1 = 1u;
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(arg_1, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/1417dd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/1417dd.wgsl.expected.dxc.hlsl
index dfe4130..d5f7933 100644
--- a/test/tint/builtins/gen/var/textureDimensions/1417dd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/1417dd.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_1417dd() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/1417dd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/1417dd.wgsl.expected.fxc.hlsl
index dfe4130..d5f7933 100644
--- a/test/tint/builtins/gen/var/textureDimensions/1417dd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/1417dd.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_1417dd() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/15aa17.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/15aa17.wgsl.expected.dxc.hlsl
index 1dacd60..e2cd8f5 100644
--- a/test/tint/builtins/gen/var/textureDimensions/15aa17.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/15aa17.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_15aa17() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint3 res = tint_tmp;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/15aa17.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/15aa17.wgsl.expected.fxc.hlsl
index 1dacd60..e2cd8f5 100644
--- a/test/tint/builtins/gen/var/textureDimensions/15aa17.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/15aa17.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_15aa17() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint3 res = tint_tmp;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/15b577.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/15b577.wgsl.expected.dxc.hlsl
index 10c6641..7399b9b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/15b577.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/15b577.wgsl.expected.dxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_15b577() {
   int arg_1 = 1;
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(arg_1, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/15b577.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/15b577.wgsl.expected.fxc.hlsl
index 10c6641..7399b9b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/15b577.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/15b577.wgsl.expected.fxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_15b577() {
   int arg_1 = 1;
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(arg_1, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/1a2be7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/1a2be7.wgsl.expected.dxc.hlsl
index da22afe..b44af6d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/1a2be7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/1a2be7.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_1a2be7() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint3 res = tint_tmp;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/1a2be7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/1a2be7.wgsl.expected.fxc.hlsl
index da22afe..b44af6d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/1a2be7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/1a2be7.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_1a2be7() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint3 res = tint_tmp;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/1bc428.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/1bc428.wgsl.expected.dxc.hlsl
index 2bac266..fc0948a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/1bc428.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/1bc428.wgsl.expected.dxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_1bc428() {
   int arg_1 = 1;
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(arg_1, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint3 res = tint_tmp.xyz;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/1bc428.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/1bc428.wgsl.expected.fxc.hlsl
index 2bac266..fc0948a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/1bc428.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/1bc428.wgsl.expected.fxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_1bc428() {
   int arg_1 = 1;
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(arg_1, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint3 res = tint_tmp.xyz;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/1bd78c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/1bd78c.wgsl.expected.dxc.hlsl
index ce09a3b..b2091f1 100644
--- a/test/tint/builtins/gen/var/textureDimensions/1bd78c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/1bd78c.wgsl.expected.dxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_1bd78c() {
   int arg_1 = 1;
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(arg_1, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/1bd78c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/1bd78c.wgsl.expected.fxc.hlsl
index ce09a3b..b2091f1 100644
--- a/test/tint/builtins/gen/var/textureDimensions/1bd78c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/1bd78c.wgsl.expected.fxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_1bd78c() {
   int arg_1 = 1;
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(arg_1, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/224113.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/224113.wgsl.expected.dxc.hlsl
index 09dda04..b4b3926 100644
--- a/test/tint/builtins/gen/var/textureDimensions/224113.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/224113.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_224113() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/224113.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/224113.wgsl.expected.fxc.hlsl
index 09dda04..b4b3926 100644
--- a/test/tint/builtins/gen/var/textureDimensions/224113.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/224113.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_224113() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/22b5b6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/22b5b6.wgsl.expected.dxc.hlsl
index 751cce3..ee93266 100644
--- a/test/tint/builtins/gen/var/textureDimensions/22b5b6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/22b5b6.wgsl.expected.dxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_22b5b6() {
   int arg_1 = 1;
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(arg_1, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/22b5b6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/22b5b6.wgsl.expected.fxc.hlsl
index 751cce3..ee93266 100644
--- a/test/tint/builtins/gen/var/textureDimensions/22b5b6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/22b5b6.wgsl.expected.fxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_22b5b6() {
   int arg_1 = 1;
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(arg_1, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/24db07.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/24db07.wgsl.expected.dxc.hlsl
index 3c7a779..622ba5f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/24db07.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/24db07.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_24db07() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/24db07.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/24db07.wgsl.expected.fxc.hlsl
index 3c7a779..622ba5f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/24db07.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/24db07.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_24db07() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/2674d8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/2674d8.wgsl.expected.dxc.hlsl
index 936d0d1..6f415cf 100644
--- a/test/tint/builtins/gen/var/textureDimensions/2674d8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/2674d8.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_2674d8() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/2674d8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/2674d8.wgsl.expected.fxc.hlsl
index 936d0d1..6f415cf 100644
--- a/test/tint/builtins/gen/var/textureDimensions/2674d8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/2674d8.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_2674d8() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/26d6bf.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/26d6bf.wgsl.expected.dxc.hlsl
index 8786629..20f02ee 100644
--- a/test/tint/builtins/gen/var/textureDimensions/26d6bf.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/26d6bf.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_26d6bf() {
-  int tint_tmp;
+  uint tint_tmp;
   arg_0.GetDimensions(tint_tmp);
   uint res = tint_tmp;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/26d6bf.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/26d6bf.wgsl.expected.fxc.hlsl
index 8786629..20f02ee 100644
--- a/test/tint/builtins/gen/var/textureDimensions/26d6bf.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/26d6bf.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_26d6bf() {
-  int tint_tmp;
+  uint tint_tmp;
   arg_0.GetDimensions(tint_tmp);
   uint res = tint_tmp;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/2e443d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/2e443d.wgsl.expected.dxc.hlsl
index 0df721b..918596d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/2e443d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/2e443d.wgsl.expected.dxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_2e443d() {
   int arg_1 = 1;
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(arg_1, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/2e443d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/2e443d.wgsl.expected.fxc.hlsl
index 0df721b..918596d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/2e443d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/2e443d.wgsl.expected.fxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_2e443d() {
   int arg_1 = 1;
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(arg_1, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/2fd2a4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/2fd2a4.wgsl.expected.dxc.hlsl
index d21d84e..aeedad3 100644
--- a/test/tint/builtins/gen/var/textureDimensions/2fd2a4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/2fd2a4.wgsl.expected.dxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_2fd2a4() {
   int arg_1 = 1;
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(arg_1, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/2fd2a4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/2fd2a4.wgsl.expected.fxc.hlsl
index d21d84e..aeedad3 100644
--- a/test/tint/builtins/gen/var/textureDimensions/2fd2a4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/2fd2a4.wgsl.expected.fxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_2fd2a4() {
   int arg_1 = 1;
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(arg_1, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/31799c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/31799c.wgsl.expected.dxc.hlsl
index e3e5922..9c9a843 100644
--- a/test/tint/builtins/gen/var/textureDimensions/31799c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/31799c.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_31799c() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint3 res = tint_tmp;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/31799c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/31799c.wgsl.expected.fxc.hlsl
index e3e5922..9c9a843 100644
--- a/test/tint/builtins/gen/var/textureDimensions/31799c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/31799c.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_31799c() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint3 res = tint_tmp;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/346fee.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/346fee.wgsl.expected.dxc.hlsl
index e7f767c..64c5f96 100644
--- a/test/tint/builtins/gen/var/textureDimensions/346fee.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/346fee.wgsl.expected.dxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_346fee() {
   uint arg_1 = 1u;
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(arg_1, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/346fee.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/346fee.wgsl.expected.fxc.hlsl
index e7f767c..64c5f96 100644
--- a/test/tint/builtins/gen/var/textureDimensions/346fee.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/346fee.wgsl.expected.fxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_346fee() {
   uint arg_1 = 1u;
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(arg_1, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/35a7e5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/35a7e5.wgsl.expected.dxc.hlsl
index 605aec4..9ab98e9 100644
--- a/test/tint/builtins/gen/var/textureDimensions/35a7e5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/35a7e5.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_35a7e5() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint3 res = tint_tmp;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/35a7e5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/35a7e5.wgsl.expected.fxc.hlsl
index 605aec4..9ab98e9 100644
--- a/test/tint/builtins/gen/var/textureDimensions/35a7e5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/35a7e5.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_35a7e5() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint3 res = tint_tmp;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/35ee69.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/35ee69.wgsl.expected.dxc.hlsl
index 60a836b..dd62780 100644
--- a/test/tint/builtins/gen/var/textureDimensions/35ee69.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/35ee69.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_35ee69() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint3 res = tint_tmp;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/35ee69.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/35ee69.wgsl.expected.fxc.hlsl
index 60a836b..dd62780 100644
--- a/test/tint/builtins/gen/var/textureDimensions/35ee69.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/35ee69.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_35ee69() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint3 res = tint_tmp;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/378a65.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/378a65.wgsl.expected.dxc.hlsl
index ae34c64..33667a4 100644
--- a/test/tint/builtins/gen/var/textureDimensions/378a65.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/378a65.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_378a65() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/378a65.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/378a65.wgsl.expected.fxc.hlsl
index ae34c64..33667a4 100644
--- a/test/tint/builtins/gen/var/textureDimensions/378a65.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/378a65.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_378a65() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/382b16.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/382b16.wgsl.expected.dxc.hlsl
index b83ff30..54bbd0b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/382b16.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/382b16.wgsl.expected.dxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_382b16() {
   uint arg_1 = 1u;
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(arg_1, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/382b16.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/382b16.wgsl.expected.fxc.hlsl
index b83ff30..54bbd0b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/382b16.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/382b16.wgsl.expected.fxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_382b16() {
   uint arg_1 = 1u;
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(arg_1, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/3963d0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/3963d0.wgsl.expected.dxc.hlsl
index fe36ee8..acd22a6 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3963d0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3963d0.wgsl.expected.dxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_3963d0() {
   uint arg_1 = 1u;
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(arg_1, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/3963d0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/3963d0.wgsl.expected.fxc.hlsl
index fe36ee8..acd22a6 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3963d0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3963d0.wgsl.expected.fxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_3963d0() {
   uint arg_1 = 1u;
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(arg_1, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/3a5bb1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/3a5bb1.wgsl.expected.dxc.hlsl
index 9c61cb5..049ad0e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3a5bb1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3a5bb1.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_3a5bb1() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint3 res = tint_tmp;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/3a5bb1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/3a5bb1.wgsl.expected.fxc.hlsl
index 9c61cb5..049ad0e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3a5bb1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3a5bb1.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_3a5bb1() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint3 res = tint_tmp;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/3a7b69.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/3a7b69.wgsl.expected.dxc.hlsl
index f0d9399..6c52ac8 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3a7b69.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3a7b69.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_3a7b69() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/3a7b69.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/3a7b69.wgsl.expected.fxc.hlsl
index f0d9399..6c52ac8 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3a7b69.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3a7b69.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_3a7b69() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/3af3e7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/3af3e7.wgsl.expected.dxc.hlsl
index 07dc5bf..741592e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3af3e7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3af3e7.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_3af3e7() {
-  int tint_tmp;
+  uint tint_tmp;
   arg_0.GetDimensions(tint_tmp);
   uint res = tint_tmp;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/3af3e7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/3af3e7.wgsl.expected.fxc.hlsl
index 07dc5bf..741592e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3af3e7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3af3e7.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_3af3e7() {
-  int tint_tmp;
+  uint tint_tmp;
   arg_0.GetDimensions(tint_tmp);
   uint res = tint_tmp;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/3b38f6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/3b38f6.wgsl.expected.dxc.hlsl
index d57f3cc..254d722 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3b38f6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3b38f6.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_3b38f6() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/3b38f6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/3b38f6.wgsl.expected.fxc.hlsl
index d57f3cc..254d722 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3b38f6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3b38f6.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_3b38f6() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/3baab5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/3baab5.wgsl.expected.dxc.hlsl
index 3c98fab..194560a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3baab5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3baab5.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_3baab5() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/3baab5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/3baab5.wgsl.expected.fxc.hlsl
index 3c98fab..194560a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3baab5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3baab5.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_3baab5() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/3c66f0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/3c66f0.wgsl.expected.dxc.hlsl
index 23c82f1..6628172 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3c66f0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3c66f0.wgsl.expected.dxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_3c66f0() {
   int arg_1 = 1;
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(arg_1, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/3c66f0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/3c66f0.wgsl.expected.fxc.hlsl
index 23c82f1..6628172 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3c66f0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3c66f0.wgsl.expected.fxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_3c66f0() {
   int arg_1 = 1;
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(arg_1, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/3f3474.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/3f3474.wgsl.expected.dxc.hlsl
index c760629..ed5fc6c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3f3474.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3f3474.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_3f3474() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/3f3474.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/3f3474.wgsl.expected.fxc.hlsl
index c760629..ed5fc6c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3f3474.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3f3474.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_3f3474() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/3fc3dc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/3fc3dc.wgsl.expected.dxc.hlsl
index 95d7257..6feaaee 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3fc3dc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3fc3dc.wgsl.expected.dxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_3fc3dc() {
   uint arg_1 = 1u;
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(arg_1, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/3fc3dc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/3fc3dc.wgsl.expected.fxc.hlsl
index 95d7257..6feaaee 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3fc3dc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3fc3dc.wgsl.expected.fxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_3fc3dc() {
   uint arg_1 = 1u;
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(arg_1, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/40c671.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/40c671.wgsl.expected.dxc.hlsl
index a7b6577..dfb75ec 100644
--- a/test/tint/builtins/gen/var/textureDimensions/40c671.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/40c671.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_40c671() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint3 res = tint_tmp;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/40c671.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/40c671.wgsl.expected.fxc.hlsl
index a7b6577..dfb75ec 100644
--- a/test/tint/builtins/gen/var/textureDimensions/40c671.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/40c671.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_40c671() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint3 res = tint_tmp;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/40ecf4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/40ecf4.wgsl.expected.dxc.hlsl
index 92a33d2..1f50145 100644
--- a/test/tint/builtins/gen/var/textureDimensions/40ecf4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/40ecf4.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_40ecf4() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/40ecf4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/40ecf4.wgsl.expected.fxc.hlsl
index 92a33d2..1f50145 100644
--- a/test/tint/builtins/gen/var/textureDimensions/40ecf4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/40ecf4.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_40ecf4() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/41545f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/41545f.wgsl.expected.dxc.hlsl
index 29c7b39..460ca8f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/41545f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/41545f.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_41545f() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/41545f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/41545f.wgsl.expected.fxc.hlsl
index 29c7b39..460ca8f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/41545f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/41545f.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_41545f() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/439651.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/439651.wgsl.expected.dxc.hlsl
index 0791df3..c5e353b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/439651.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/439651.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_439651() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/439651.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/439651.wgsl.expected.fxc.hlsl
index 0791df3..c5e353b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/439651.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/439651.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_439651() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/445376.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/445376.wgsl.expected.dxc.hlsl
index faac13c..4743f75 100644
--- a/test/tint/builtins/gen/var/textureDimensions/445376.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/445376.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_445376() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/445376.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/445376.wgsl.expected.fxc.hlsl
index faac13c..4743f75 100644
--- a/test/tint/builtins/gen/var/textureDimensions/445376.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/445376.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_445376() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/44b358.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/44b358.wgsl.expected.dxc.hlsl
index 15ac4e0..c45daf7 100644
--- a/test/tint/builtins/gen/var/textureDimensions/44b358.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/44b358.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_44b358() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint3 res = tint_tmp;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/44b358.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/44b358.wgsl.expected.fxc.hlsl
index 15ac4e0..c45daf7 100644
--- a/test/tint/builtins/gen/var/textureDimensions/44b358.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/44b358.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_44b358() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint3 res = tint_tmp;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/452fc1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/452fc1.wgsl.expected.dxc.hlsl
index c8fb5c4..383abad 100644
--- a/test/tint/builtins/gen/var/textureDimensions/452fc1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/452fc1.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_452fc1() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/452fc1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/452fc1.wgsl.expected.fxc.hlsl
index c8fb5c4..383abad 100644
--- a/test/tint/builtins/gen/var/textureDimensions/452fc1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/452fc1.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_452fc1() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/46f0fc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/46f0fc.wgsl.expected.dxc.hlsl
index 01626be..979a43d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/46f0fc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/46f0fc.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_46f0fc() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/46f0fc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/46f0fc.wgsl.expected.fxc.hlsl
index 01626be..979a43d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/46f0fc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/46f0fc.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_46f0fc() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/49a067.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/49a067.wgsl.expected.dxc.hlsl
index f0dbf8f..5b9a16f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/49a067.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/49a067.wgsl.expected.dxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_49a067() {
   int arg_1 = 1;
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(arg_1, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/49a067.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/49a067.wgsl.expected.fxc.hlsl
index f0dbf8f..5b9a16f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/49a067.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/49a067.wgsl.expected.fxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_49a067() {
   int arg_1 = 1;
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(arg_1, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/4acec7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/4acec7.wgsl.expected.dxc.hlsl
index 892ce52..ab6c2ff 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4acec7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/4acec7.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_4acec7() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/4acec7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/4acec7.wgsl.expected.fxc.hlsl
index 892ce52..ab6c2ff 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4acec7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/4acec7.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_4acec7() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/4b26ef.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/4b26ef.wgsl.expected.dxc.hlsl
index 3259dbf..fb2f301 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4b26ef.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/4b26ef.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_4b26ef() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint3 res = tint_tmp;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/4b26ef.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/4b26ef.wgsl.expected.fxc.hlsl
index 3259dbf..fb2f301 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4b26ef.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/4b26ef.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_4b26ef() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint3 res = tint_tmp;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/4be71b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/4be71b.wgsl.expected.dxc.hlsl
index 841ffce..47a38d9 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4be71b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/4be71b.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_4be71b() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/4be71b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/4be71b.wgsl.expected.fxc.hlsl
index 841ffce..47a38d9 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4be71b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/4be71b.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_4be71b() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/528c0e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/528c0e.wgsl.expected.dxc.hlsl
index f89e06d..091a679 100644
--- a/test/tint/builtins/gen/var/textureDimensions/528c0e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/528c0e.wgsl.expected.dxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_528c0e() {
   uint arg_1 = 1u;
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(arg_1, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/528c0e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/528c0e.wgsl.expected.fxc.hlsl
index f89e06d..091a679 100644
--- a/test/tint/builtins/gen/var/textureDimensions/528c0e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/528c0e.wgsl.expected.fxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_528c0e() {
   uint arg_1 = 1u;
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(arg_1, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/58a82d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/58a82d.wgsl.expected.dxc.hlsl
index 2ed6397..0138351 100644
--- a/test/tint/builtins/gen/var/textureDimensions/58a82d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/58a82d.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_58a82d() {
-  int tint_tmp;
+  uint tint_tmp;
   arg_0.GetDimensions(tint_tmp);
   uint res = tint_tmp;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/58a82d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/58a82d.wgsl.expected.fxc.hlsl
index 2ed6397..0138351 100644
--- a/test/tint/builtins/gen/var/textureDimensions/58a82d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/58a82d.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_58a82d() {
-  int tint_tmp;
+  uint tint_tmp;
   arg_0.GetDimensions(tint_tmp);
   uint res = tint_tmp;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/591981.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/591981.wgsl.expected.dxc.hlsl
index 7dfc27c..140b258 100644
--- a/test/tint/builtins/gen/var/textureDimensions/591981.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/591981.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_591981() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint3 res = tint_tmp;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/591981.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/591981.wgsl.expected.fxc.hlsl
index 7dfc27c..140b258 100644
--- a/test/tint/builtins/gen/var/textureDimensions/591981.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/591981.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_591981() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint3 res = tint_tmp;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/599ab5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/599ab5.wgsl.expected.dxc.hlsl
index 40179f0..855b11d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/599ab5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/599ab5.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_599ab5() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/599ab5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/599ab5.wgsl.expected.fxc.hlsl
index 40179f0..855b11d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/599ab5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/599ab5.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_599ab5() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/5b4b10.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/5b4b10.wgsl.expected.dxc.hlsl
index 5c7a574..6ab9a57 100644
--- a/test/tint/builtins/gen/var/textureDimensions/5b4b10.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/5b4b10.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_5b4b10() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint3 res = tint_tmp;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/5b4b10.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/5b4b10.wgsl.expected.fxc.hlsl
index 5c7a574..6ab9a57 100644
--- a/test/tint/builtins/gen/var/textureDimensions/5b4b10.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/5b4b10.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_5b4b10() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint3 res = tint_tmp;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/5df042.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/5df042.wgsl.expected.dxc.hlsl
index f596ae7..e1efe14 100644
--- a/test/tint/builtins/gen/var/textureDimensions/5df042.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/5df042.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_5df042() {
-  int tint_tmp;
+  uint tint_tmp;
   arg_0.GetDimensions(tint_tmp);
   uint res = tint_tmp;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/5df042.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/5df042.wgsl.expected.fxc.hlsl
index f596ae7..e1efe14 100644
--- a/test/tint/builtins/gen/var/textureDimensions/5df042.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/5df042.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_5df042() {
-  int tint_tmp;
+  uint tint_tmp;
   arg_0.GetDimensions(tint_tmp);
   uint res = tint_tmp;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/607979.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/607979.wgsl.expected.dxc.hlsl
index b95cf0f..ef4c480 100644
--- a/test/tint/builtins/gen/var/textureDimensions/607979.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/607979.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_607979() {
-  int tint_tmp;
+  uint tint_tmp;
   arg_0.GetDimensions(tint_tmp);
   uint res = tint_tmp;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/607979.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/607979.wgsl.expected.fxc.hlsl
index b95cf0f..ef4c480 100644
--- a/test/tint/builtins/gen/var/textureDimensions/607979.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/607979.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_607979() {
-  int tint_tmp;
+  uint tint_tmp;
   arg_0.GetDimensions(tint_tmp);
   uint res = tint_tmp;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/62cb5a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/62cb5a.wgsl.expected.dxc.hlsl
index 5804de5..1165489 100644
--- a/test/tint/builtins/gen/var/textureDimensions/62cb5a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/62cb5a.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_62cb5a() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/62cb5a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/62cb5a.wgsl.expected.fxc.hlsl
index 5804de5..1165489 100644
--- a/test/tint/builtins/gen/var/textureDimensions/62cb5a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/62cb5a.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_62cb5a() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/64dc74.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/64dc74.wgsl.expected.dxc.hlsl
index c4406ea..e3dcc93 100644
--- a/test/tint/builtins/gen/var/textureDimensions/64dc74.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/64dc74.wgsl.expected.dxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_64dc74() {
   uint arg_1 = 1u;
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(arg_1, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/64dc74.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/64dc74.wgsl.expected.fxc.hlsl
index c4406ea..e3dcc93 100644
--- a/test/tint/builtins/gen/var/textureDimensions/64dc74.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/64dc74.wgsl.expected.fxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_64dc74() {
   uint arg_1 = 1u;
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(arg_1, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/674058.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/674058.wgsl.expected.dxc.hlsl
index 83533a7..1f929b3 100644
--- a/test/tint/builtins/gen/var/textureDimensions/674058.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/674058.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_674058() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/674058.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/674058.wgsl.expected.fxc.hlsl
index 83533a7..1f929b3 100644
--- a/test/tint/builtins/gen/var/textureDimensions/674058.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/674058.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_674058() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/6e6c7a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/6e6c7a.wgsl.expected.dxc.hlsl
index fab56e4..c011956 100644
--- a/test/tint/builtins/gen/var/textureDimensions/6e6c7a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/6e6c7a.wgsl.expected.dxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_6e6c7a() {
   uint arg_1 = 1u;
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(arg_1, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint3 res = tint_tmp.xyz;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/6e6c7a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/6e6c7a.wgsl.expected.fxc.hlsl
index fab56e4..c011956 100644
--- a/test/tint/builtins/gen/var/textureDimensions/6e6c7a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/6e6c7a.wgsl.expected.fxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_6e6c7a() {
   uint arg_1 = 1u;
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(arg_1, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint3 res = tint_tmp.xyz;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/6f1b5d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/6f1b5d.wgsl.expected.dxc.hlsl
index e1b3aa9..41306c4 100644
--- a/test/tint/builtins/gen/var/textureDimensions/6f1b5d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/6f1b5d.wgsl.expected.dxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_6f1b5d() {
   int arg_1 = 1;
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(arg_1, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/6f1b5d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/6f1b5d.wgsl.expected.fxc.hlsl
index e1b3aa9..41306c4 100644
--- a/test/tint/builtins/gen/var/textureDimensions/6f1b5d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/6f1b5d.wgsl.expected.fxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_6f1b5d() {
   int arg_1 = 1;
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(arg_1, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/7228de.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/7228de.wgsl.expected.dxc.hlsl
index 3a11a45..b102e87 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7228de.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/7228de.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_7228de() {
-  int tint_tmp;
+  uint tint_tmp;
   arg_0.GetDimensions(tint_tmp);
   uint res = tint_tmp;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/7228de.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/7228de.wgsl.expected.fxc.hlsl
index 3a11a45..b102e87 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7228de.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/7228de.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_7228de() {
-  int tint_tmp;
+  uint tint_tmp;
   arg_0.GetDimensions(tint_tmp);
   uint res = tint_tmp;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/756031.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/756031.wgsl.expected.dxc.hlsl
index 92409aa..8a83167 100644
--- a/test/tint/builtins/gen/var/textureDimensions/756031.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/756031.wgsl.expected.dxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_756031() {
   int arg_1 = 1;
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(arg_1, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint3 res = tint_tmp.xyz;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/756031.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/756031.wgsl.expected.fxc.hlsl
index 92409aa..8a83167 100644
--- a/test/tint/builtins/gen/var/textureDimensions/756031.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/756031.wgsl.expected.fxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_756031() {
   int arg_1 = 1;
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(arg_1, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint3 res = tint_tmp.xyz;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/756304.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/756304.wgsl.expected.dxc.hlsl
index 204f352..c3c73f9 100644
--- a/test/tint/builtins/gen/var/textureDimensions/756304.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/756304.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_756304() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/756304.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/756304.wgsl.expected.fxc.hlsl
index 204f352..c3c73f9 100644
--- a/test/tint/builtins/gen/var/textureDimensions/756304.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/756304.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_756304() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/79d168.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/79d168.wgsl.expected.dxc.hlsl
index 018ef08..b365862 100644
--- a/test/tint/builtins/gen/var/textureDimensions/79d168.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/79d168.wgsl.expected.dxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_79d168() {
   int arg_1 = 1;
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(arg_1, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/79d168.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/79d168.wgsl.expected.fxc.hlsl
index 018ef08..b365862 100644
--- a/test/tint/builtins/gen/var/textureDimensions/79d168.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/79d168.wgsl.expected.fxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_79d168() {
   int arg_1 = 1;
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(arg_1, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/7a3890.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/7a3890.wgsl.expected.dxc.hlsl
index c8937c5..3050274 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7a3890.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/7a3890.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_7a3890() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint3 res = tint_tmp;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/7a3890.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/7a3890.wgsl.expected.fxc.hlsl
index c8937c5..3050274 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7a3890.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/7a3890.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_7a3890() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint3 res = tint_tmp;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/7a9e30.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/7a9e30.wgsl.expected.dxc.hlsl
index 3699610..f82dcd4 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7a9e30.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/7a9e30.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_7a9e30() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/7a9e30.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/7a9e30.wgsl.expected.fxc.hlsl
index 3699610..f82dcd4 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7a9e30.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/7a9e30.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_7a9e30() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/84f363.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/84f363.wgsl.expected.dxc.hlsl
index 9d8e922..7c8484e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/84f363.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/84f363.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_84f363() {
-  int tint_tmp;
+  uint tint_tmp;
   arg_0.GetDimensions(tint_tmp);
   uint res = tint_tmp;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/84f363.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/84f363.wgsl.expected.fxc.hlsl
index 9d8e922..7c8484e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/84f363.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/84f363.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_84f363() {
-  int tint_tmp;
+  uint tint_tmp;
   arg_0.GetDimensions(tint_tmp);
   uint res = tint_tmp;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/867ead.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/867ead.wgsl.expected.dxc.hlsl
index c2a6d6f..bbe51af 100644
--- a/test/tint/builtins/gen/var/textureDimensions/867ead.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/867ead.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_867ead() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/867ead.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/867ead.wgsl.expected.fxc.hlsl
index c2a6d6f..bbe51af 100644
--- a/test/tint/builtins/gen/var/textureDimensions/867ead.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/867ead.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_867ead() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/879b73.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/879b73.wgsl.expected.dxc.hlsl
index 31c0232..d833ba0 100644
--- a/test/tint/builtins/gen/var/textureDimensions/879b73.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/879b73.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_879b73() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/879b73.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/879b73.wgsl.expected.fxc.hlsl
index 31c0232..d833ba0 100644
--- a/test/tint/builtins/gen/var/textureDimensions/879b73.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/879b73.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_879b73() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/8a35f9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/8a35f9.wgsl.expected.dxc.hlsl
index 2f33d98..46fb738 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8a35f9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/8a35f9.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_8a35f9() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/8a35f9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/8a35f9.wgsl.expected.fxc.hlsl
index 2f33d98..46fb738 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8a35f9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/8a35f9.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_8a35f9() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/8efd47.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/8efd47.wgsl.expected.dxc.hlsl
index 94483c9..7e4e32f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8efd47.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/8efd47.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_8efd47() {
-  int tint_tmp;
+  uint tint_tmp;
   arg_0.GetDimensions(tint_tmp);
   uint res = tint_tmp;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/8efd47.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/8efd47.wgsl.expected.fxc.hlsl
index 94483c9..7e4e32f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8efd47.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/8efd47.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_8efd47() {
-  int tint_tmp;
+  uint tint_tmp;
   arg_0.GetDimensions(tint_tmp);
   uint res = tint_tmp;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/902179.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/902179.wgsl.expected.dxc.hlsl
index 6b6d788..906e5f9 100644
--- a/test/tint/builtins/gen/var/textureDimensions/902179.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/902179.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_902179() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint3 res = tint_tmp;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/902179.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/902179.wgsl.expected.fxc.hlsl
index 6b6d788..906e5f9 100644
--- a/test/tint/builtins/gen/var/textureDimensions/902179.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/902179.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_902179() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint3 res = tint_tmp;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/90dd74.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/90dd74.wgsl.expected.dxc.hlsl
index 8837cdc..1820699 100644
--- a/test/tint/builtins/gen/var/textureDimensions/90dd74.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/90dd74.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_90dd74() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/90dd74.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/90dd74.wgsl.expected.fxc.hlsl
index 8837cdc..1820699 100644
--- a/test/tint/builtins/gen/var/textureDimensions/90dd74.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/90dd74.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_90dd74() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/920006.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/920006.wgsl.expected.dxc.hlsl
index 45bd709..e961023 100644
--- a/test/tint/builtins/gen/var/textureDimensions/920006.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/920006.wgsl.expected.dxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_920006() {
   int arg_1 = 1;
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(arg_1, tint_tmp.x, tint_tmp.y);
   uint res = tint_tmp.x;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/920006.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/920006.wgsl.expected.fxc.hlsl
index 45bd709..e961023 100644
--- a/test/tint/builtins/gen/var/textureDimensions/920006.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/920006.wgsl.expected.fxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_920006() {
   int arg_1 = 1;
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(arg_1, tint_tmp.x, tint_tmp.y);
   uint res = tint_tmp.x;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/92552e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/92552e.wgsl.expected.dxc.hlsl
index 9dc17c8..c916a67 100644
--- a/test/tint/builtins/gen/var/textureDimensions/92552e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/92552e.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_92552e() {
-  int tint_tmp;
+  uint tint_tmp;
   arg_0.GetDimensions(tint_tmp);
   uint res = tint_tmp;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/92552e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/92552e.wgsl.expected.fxc.hlsl
index 9dc17c8..c916a67 100644
--- a/test/tint/builtins/gen/var/textureDimensions/92552e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/92552e.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_92552e() {
-  int tint_tmp;
+  uint tint_tmp;
   arg_0.GetDimensions(tint_tmp);
   uint res = tint_tmp;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/9573f3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/9573f3.wgsl.expected.dxc.hlsl
index da0578f..153391d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9573f3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9573f3.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_9573f3() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/9573f3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/9573f3.wgsl.expected.fxc.hlsl
index da0578f..153391d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9573f3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9573f3.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_9573f3() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/965645.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/965645.wgsl.expected.dxc.hlsl
index 02f369c..2049b6f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/965645.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/965645.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_965645() {
-  int tint_tmp;
+  uint tint_tmp;
   arg_0.GetDimensions(tint_tmp);
   uint res = tint_tmp;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/965645.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/965645.wgsl.expected.fxc.hlsl
index 02f369c..2049b6f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/965645.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/965645.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_965645() {
-  int tint_tmp;
+  uint tint_tmp;
   arg_0.GetDimensions(tint_tmp);
   uint res = tint_tmp;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/98b2d3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/98b2d3.wgsl.expected.dxc.hlsl
index 23a73ef..9e43ffc 100644
--- a/test/tint/builtins/gen/var/textureDimensions/98b2d3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/98b2d3.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_98b2d3() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/98b2d3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/98b2d3.wgsl.expected.fxc.hlsl
index 23a73ef..9e43ffc 100644
--- a/test/tint/builtins/gen/var/textureDimensions/98b2d3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/98b2d3.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_98b2d3() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/991ea9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/991ea9.wgsl.expected.dxc.hlsl
index 4d9b561..09d748b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/991ea9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/991ea9.wgsl.expected.dxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_991ea9() {
   uint arg_1 = 1u;
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(arg_1, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/991ea9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/991ea9.wgsl.expected.fxc.hlsl
index 4d9b561..09d748b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/991ea9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/991ea9.wgsl.expected.fxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_991ea9() {
   uint arg_1 = 1u;
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(arg_1, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/9b223b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/9b223b.wgsl.expected.dxc.hlsl
index 010ea15..1f939fa 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9b223b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9b223b.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_9b223b() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/9b223b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/9b223b.wgsl.expected.fxc.hlsl
index 010ea15..1f939fa 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9b223b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9b223b.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_9b223b() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/9baf27.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/9baf27.wgsl.expected.dxc.hlsl
index 1e1adfd..bcdb42f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9baf27.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9baf27.wgsl.expected.dxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_9baf27() {
   uint arg_1 = 1u;
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(arg_1, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/9baf27.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/9baf27.wgsl.expected.fxc.hlsl
index 1e1adfd..bcdb42f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9baf27.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9baf27.wgsl.expected.fxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_9baf27() {
   uint arg_1 = 1u;
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(arg_1, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/9c7a00.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/9c7a00.wgsl.expected.dxc.hlsl
index 146c744..1c18e3c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9c7a00.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9c7a00.wgsl.expected.dxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_9c7a00() {
   uint arg_1 = 1u;
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(arg_1, tint_tmp.x, tint_tmp.y);
   uint res = tint_tmp.x;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/9c7a00.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/9c7a00.wgsl.expected.fxc.hlsl
index 146c744..1c18e3c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9c7a00.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9c7a00.wgsl.expected.fxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_9c7a00() {
   uint arg_1 = 1u;
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(arg_1, tint_tmp.x, tint_tmp.y);
   uint res = tint_tmp.x;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/9cd4ca.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/9cd4ca.wgsl.expected.dxc.hlsl
index 8df7323..feb8963 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9cd4ca.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9cd4ca.wgsl.expected.dxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_9cd4ca() {
   int arg_1 = 1;
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(arg_1, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/9cd4ca.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/9cd4ca.wgsl.expected.fxc.hlsl
index 8df7323..feb8963 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9cd4ca.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9cd4ca.wgsl.expected.fxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_9cd4ca() {
   int arg_1 = 1;
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(arg_1, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/9cd8ad.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/9cd8ad.wgsl.expected.dxc.hlsl
index c6ac61a..bbc6ee2 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9cd8ad.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9cd8ad.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_9cd8ad() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint3 res = tint_tmp;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/9cd8ad.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/9cd8ad.wgsl.expected.fxc.hlsl
index c6ac61a..bbc6ee2 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9cd8ad.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9cd8ad.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_9cd8ad() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint3 res = tint_tmp;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/9e0794.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/9e0794.wgsl.expected.dxc.hlsl
index 4569201..639b085 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9e0794.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9e0794.wgsl.expected.dxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_9e0794() {
   int arg_1 = 1;
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(arg_1, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/9e0794.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/9e0794.wgsl.expected.fxc.hlsl
index 4569201..639b085 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9e0794.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9e0794.wgsl.expected.fxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_9e0794() {
   int arg_1 = 1;
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(arg_1, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/9fcc3b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/9fcc3b.wgsl.expected.dxc.hlsl
index b86e550..20335af 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9fcc3b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9fcc3b.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_9fcc3b() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/9fcc3b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/9fcc3b.wgsl.expected.fxc.hlsl
index b86e550..20335af 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9fcc3b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9fcc3b.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_9fcc3b() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/a1598a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/a1598a.wgsl.expected.dxc.hlsl
index 1c85709..7b385a7 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a1598a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a1598a.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_a1598a() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/a1598a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/a1598a.wgsl.expected.fxc.hlsl
index 1c85709..7b385a7 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a1598a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a1598a.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_a1598a() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/a2ba5e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/a2ba5e.wgsl.expected.dxc.hlsl
index 6c14592..42ebaeb 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a2ba5e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a2ba5e.wgsl.expected.dxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_a2ba5e() {
   int arg_1 = 1;
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(arg_1, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/a2ba5e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/a2ba5e.wgsl.expected.fxc.hlsl
index 6c14592..42ebaeb 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a2ba5e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a2ba5e.wgsl.expected.fxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_a2ba5e() {
   int arg_1 = 1;
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(arg_1, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/a48049.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/a48049.wgsl.expected.dxc.hlsl
index edc6814..45f9ab1 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a48049.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a48049.wgsl.expected.dxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_a48049() {
   uint arg_1 = 1u;
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(arg_1, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/a48049.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/a48049.wgsl.expected.fxc.hlsl
index edc6814..45f9ab1 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a48049.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a48049.wgsl.expected.fxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_a48049() {
   uint arg_1 = 1u;
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(arg_1, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/a4cd56.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/a4cd56.wgsl.expected.dxc.hlsl
index 085c160..1bc1e5e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a4cd56.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a4cd56.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_a4cd56() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/a4cd56.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/a4cd56.wgsl.expected.fxc.hlsl
index 085c160..1bc1e5e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a4cd56.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a4cd56.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_a4cd56() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/aa4353.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/aa4353.wgsl.expected.dxc.hlsl
index dabce86..a6b1473 100644
--- a/test/tint/builtins/gen/var/textureDimensions/aa4353.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/aa4353.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_aa4353() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/aa4353.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/aa4353.wgsl.expected.fxc.hlsl
index dabce86..a6b1473 100644
--- a/test/tint/builtins/gen/var/textureDimensions/aa4353.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/aa4353.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_aa4353() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/aac604.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/aac604.wgsl.expected.dxc.hlsl
index cfde96e..a2b703c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/aac604.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/aac604.wgsl.expected.dxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_aac604() {
   uint arg_1 = 1u;
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(arg_1, tint_tmp.x, tint_tmp.y);
   uint res = tint_tmp.x;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/aac604.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/aac604.wgsl.expected.fxc.hlsl
index cfde96e..a2b703c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/aac604.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/aac604.wgsl.expected.fxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_aac604() {
   uint arg_1 = 1u;
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(arg_1, tint_tmp.x, tint_tmp.y);
   uint res = tint_tmp.x;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/ad7d3b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/ad7d3b.wgsl.expected.dxc.hlsl
index 09ea033..119ac27 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ad7d3b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/ad7d3b.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_ad7d3b() {
-  int tint_tmp;
+  uint tint_tmp;
   arg_0.GetDimensions(tint_tmp);
   uint res = tint_tmp;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/ad7d3b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/ad7d3b.wgsl.expected.fxc.hlsl
index 09ea033..119ac27 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ad7d3b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/ad7d3b.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_ad7d3b() {
-  int tint_tmp;
+  uint tint_tmp;
   arg_0.GetDimensions(tint_tmp);
   uint res = tint_tmp;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/af46ab.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/af46ab.wgsl.expected.dxc.hlsl
index 5dc5b3c..a9c92a6 100644
--- a/test/tint/builtins/gen/var/textureDimensions/af46ab.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/af46ab.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_af46ab() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/af46ab.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/af46ab.wgsl.expected.fxc.hlsl
index 5dc5b3c..a9c92a6 100644
--- a/test/tint/builtins/gen/var/textureDimensions/af46ab.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/af46ab.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_af46ab() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/b3ab5e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/b3ab5e.wgsl.expected.dxc.hlsl
index 15ea455..de19530 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b3ab5e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b3ab5e.wgsl.expected.dxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_b3ab5e() {
   int arg_1 = 1;
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(arg_1, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/b3ab5e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/b3ab5e.wgsl.expected.fxc.hlsl
index 15ea455..de19530 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b3ab5e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b3ab5e.wgsl.expected.fxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_b3ab5e() {
   int arg_1 = 1;
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(arg_1, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/b46d97.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/b46d97.wgsl.expected.dxc.hlsl
index 7770b36..565c358 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b46d97.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b46d97.wgsl.expected.dxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_b46d97() {
   int arg_1 = 1;
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(arg_1, tint_tmp.x, tint_tmp.y);
   uint res = tint_tmp.x;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/b46d97.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/b46d97.wgsl.expected.fxc.hlsl
index 7770b36..565c358 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b46d97.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b46d97.wgsl.expected.fxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_b46d97() {
   int arg_1 = 1;
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(arg_1, tint_tmp.x, tint_tmp.y);
   uint res = tint_tmp.x;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/b51345.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/b51345.wgsl.expected.dxc.hlsl
index fd3b25d..0d6b1da 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b51345.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b51345.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_b51345() {
-  int tint_tmp;
+  uint tint_tmp;
   arg_0.GetDimensions(tint_tmp);
   uint res = tint_tmp;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/b51345.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/b51345.wgsl.expected.fxc.hlsl
index fd3b25d..0d6b1da 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b51345.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b51345.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_b51345() {
-  int tint_tmp;
+  uint tint_tmp;
   arg_0.GetDimensions(tint_tmp);
   uint res = tint_tmp;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/bb95d9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/bb95d9.wgsl.expected.dxc.hlsl
index a778a68..3f20e4d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/bb95d9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/bb95d9.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_bb95d9() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint3 res = tint_tmp;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/bb95d9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/bb95d9.wgsl.expected.fxc.hlsl
index a778a68..3f20e4d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/bb95d9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/bb95d9.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_bb95d9() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint3 res = tint_tmp;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/bbe285.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/bbe285.wgsl.expected.dxc.hlsl
index 47573e3..04691f4 100644
--- a/test/tint/builtins/gen/var/textureDimensions/bbe285.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/bbe285.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_bbe285() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/bbe285.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/bbe285.wgsl.expected.fxc.hlsl
index 47573e3..04691f4 100644
--- a/test/tint/builtins/gen/var/textureDimensions/bbe285.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/bbe285.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_bbe285() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/bd94c8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/bd94c8.wgsl.expected.dxc.hlsl
index b199e26..35829cc 100644
--- a/test/tint/builtins/gen/var/textureDimensions/bd94c8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/bd94c8.wgsl.expected.dxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_bd94c8() {
   uint arg_1 = 1u;
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(arg_1, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/bd94c8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/bd94c8.wgsl.expected.fxc.hlsl
index b199e26..35829cc 100644
--- a/test/tint/builtins/gen/var/textureDimensions/bd94c8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/bd94c8.wgsl.expected.fxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_bd94c8() {
   uint arg_1 = 1u;
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(arg_1, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/c1dbf6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/c1dbf6.wgsl.expected.dxc.hlsl
index 2dfe016..eb1a0c5 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c1dbf6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c1dbf6.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_c1dbf6() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/c1dbf6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/c1dbf6.wgsl.expected.fxc.hlsl
index 2dfe016..eb1a0c5 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c1dbf6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c1dbf6.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_c1dbf6() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/c2cdd3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/c2cdd3.wgsl.expected.dxc.hlsl
index 4ccb110..bdb0d02 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c2cdd3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c2cdd3.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_c2cdd3() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/c2cdd3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/c2cdd3.wgsl.expected.fxc.hlsl
index 4ccb110..bdb0d02 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c2cdd3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c2cdd3.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_c2cdd3() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/c44fc1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/c44fc1.wgsl.expected.dxc.hlsl
index e1378ab..2103c4a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c44fc1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c44fc1.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_c44fc1() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/c44fc1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/c44fc1.wgsl.expected.fxc.hlsl
index e1378ab..2103c4a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c44fc1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c44fc1.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_c44fc1() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/c5a36e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/c5a36e.wgsl.expected.dxc.hlsl
index eafd25f..a3fd000 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c5a36e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c5a36e.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_c5a36e() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/c5a36e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/c5a36e.wgsl.expected.fxc.hlsl
index eafd25f..a3fd000 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c5a36e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c5a36e.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_c5a36e() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/c871f3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/c871f3.wgsl.expected.dxc.hlsl
index 92b8cb9..e971872 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c871f3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c871f3.wgsl.expected.dxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_c871f3() {
   uint arg_1 = 1u;
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(arg_1, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint3 res = tint_tmp.xyz;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/c871f3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/c871f3.wgsl.expected.fxc.hlsl
index 92b8cb9..e971872 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c871f3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c871f3.wgsl.expected.fxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_c871f3() {
   uint arg_1 = 1u;
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(arg_1, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint3 res = tint_tmp.xyz;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/cad3b7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/cad3b7.wgsl.expected.dxc.hlsl
index 7f40ae4..f6a1c05 100644
--- a/test/tint/builtins/gen/var/textureDimensions/cad3b7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/cad3b7.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_cad3b7() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/cad3b7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/cad3b7.wgsl.expected.fxc.hlsl
index 7f40ae4..f6a1c05 100644
--- a/test/tint/builtins/gen/var/textureDimensions/cad3b7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/cad3b7.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_cad3b7() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/cc947b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/cc947b.wgsl.expected.dxc.hlsl
index 6f83758..5d8a0fe 100644
--- a/test/tint/builtins/gen/var/textureDimensions/cc947b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/cc947b.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_cc947b() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint3 res = tint_tmp;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/cc947b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/cc947b.wgsl.expected.fxc.hlsl
index 6f83758..5d8a0fe 100644
--- a/test/tint/builtins/gen/var/textureDimensions/cc947b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/cc947b.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_cc947b() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint3 res = tint_tmp;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/cdc6c9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/cdc6c9.wgsl.expected.dxc.hlsl
index e85dfad..cfe88f9 100644
--- a/test/tint/builtins/gen/var/textureDimensions/cdc6c9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/cdc6c9.wgsl.expected.dxc.hlsl
@@ -6,7 +6,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_cdc6c9() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/cdc6c9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/cdc6c9.wgsl.expected.fxc.hlsl
index e85dfad..cfe88f9 100644
--- a/test/tint/builtins/gen/var/textureDimensions/cdc6c9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/cdc6c9.wgsl.expected.fxc.hlsl
@@ -6,7 +6,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_cdc6c9() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/cf2b50.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/cf2b50.wgsl.expected.dxc.hlsl
index 8ae59fb..a5a1053 100644
--- a/test/tint/builtins/gen/var/textureDimensions/cf2b50.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/cf2b50.wgsl.expected.dxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_cf2b50() {
   uint arg_1 = 1u;
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(arg_1, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/cf2b50.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/cf2b50.wgsl.expected.fxc.hlsl
index 8ae59fb..a5a1053 100644
--- a/test/tint/builtins/gen/var/textureDimensions/cf2b50.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/cf2b50.wgsl.expected.fxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_cf2b50() {
   uint arg_1 = 1u;
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(arg_1, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/d08a94.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/d08a94.wgsl.expected.dxc.hlsl
index 6f219a8..c5c6aa9 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d08a94.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d08a94.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_d08a94() {
-  int tint_tmp;
+  uint tint_tmp;
   arg_0.GetDimensions(tint_tmp);
   uint res = tint_tmp;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/d08a94.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/d08a94.wgsl.expected.fxc.hlsl
index 6f219a8..c5c6aa9 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d08a94.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d08a94.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_d08a94() {
-  int tint_tmp;
+  uint tint_tmp;
   arg_0.GetDimensions(tint_tmp);
   uint res = tint_tmp;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/d1b882.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/d1b882.wgsl.expected.dxc.hlsl
index 42884be..fe6ab2d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d1b882.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d1b882.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_d1b882() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/d1b882.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/d1b882.wgsl.expected.fxc.hlsl
index 42884be..fe6ab2d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d1b882.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d1b882.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_d1b882() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/d3accd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/d3accd.wgsl.expected.dxc.hlsl
index 1e3c4ee..e7e8f40 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d3accd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d3accd.wgsl.expected.dxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_d3accd() {
   uint arg_1 = 1u;
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(arg_1, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/d3accd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/d3accd.wgsl.expected.fxc.hlsl
index 1e3c4ee..e7e8f40 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d3accd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d3accd.wgsl.expected.fxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_d3accd() {
   uint arg_1 = 1u;
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(arg_1, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/d63c28.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/d63c28.wgsl.expected.dxc.hlsl
index 2ef3dad..e16be6e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d63c28.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d63c28.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_d63c28() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/d63c28.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/d63c28.wgsl.expected.fxc.hlsl
index 2ef3dad..e16be6e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d63c28.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d63c28.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_d63c28() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/d8ba68.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/d8ba68.wgsl.expected.dxc.hlsl
index da923bb..a23a423 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d8ba68.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d8ba68.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_d8ba68() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/d8ba68.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/d8ba68.wgsl.expected.fxc.hlsl
index da923bb..a23a423 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d8ba68.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d8ba68.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_d8ba68() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/d8f887.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/d8f887.wgsl.expected.dxc.hlsl
index c9a5d13..a188695 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d8f887.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d8f887.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_d8f887() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint3 res = tint_tmp;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/d8f887.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/d8f887.wgsl.expected.fxc.hlsl
index c9a5d13..a188695 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d8f887.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d8f887.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_d8f887() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint3 res = tint_tmp;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/da30d2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/da30d2.wgsl.expected.dxc.hlsl
index e44b491..20101bf 100644
--- a/test/tint/builtins/gen/var/textureDimensions/da30d2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/da30d2.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_da30d2() {
-  int tint_tmp;
+  uint tint_tmp;
   arg_0.GetDimensions(tint_tmp);
   uint res = tint_tmp;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/da30d2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/da30d2.wgsl.expected.fxc.hlsl
index e44b491..20101bf 100644
--- a/test/tint/builtins/gen/var/textureDimensions/da30d2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/da30d2.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_da30d2() {
-  int tint_tmp;
+  uint tint_tmp;
   arg_0.GetDimensions(tint_tmp);
   uint res = tint_tmp;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/dc83ce.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/dc83ce.wgsl.expected.dxc.hlsl
index f68d917..49e661b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/dc83ce.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/dc83ce.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_dc83ce() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/dc83ce.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/dc83ce.wgsl.expected.fxc.hlsl
index f68d917..49e661b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/dc83ce.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/dc83ce.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_dc83ce() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/dee461.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/dee461.wgsl.expected.dxc.hlsl
index d92e6a4..663f3dc 100644
--- a/test/tint/builtins/gen/var/textureDimensions/dee461.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/dee461.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_dee461() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/dee461.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/dee461.wgsl.expected.fxc.hlsl
index d92e6a4..663f3dc 100644
--- a/test/tint/builtins/gen/var/textureDimensions/dee461.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/dee461.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_dee461() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/dfdc32.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/dfdc32.wgsl.expected.dxc.hlsl
index 66c0a46..f2cfe41 100644
--- a/test/tint/builtins/gen/var/textureDimensions/dfdc32.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/dfdc32.wgsl.expected.dxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_dfdc32() {
   int arg_1 = 1;
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(arg_1, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/dfdc32.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/dfdc32.wgsl.expected.fxc.hlsl
index 66c0a46..f2cfe41 100644
--- a/test/tint/builtins/gen/var/textureDimensions/dfdc32.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/dfdc32.wgsl.expected.fxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_dfdc32() {
   int arg_1 = 1;
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(arg_1, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/e122fe.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/e122fe.wgsl.expected.dxc.hlsl
index d7d15fe..4b96787 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e122fe.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e122fe.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_e122fe() {
-  int tint_tmp;
+  uint tint_tmp;
   arg_0.GetDimensions(tint_tmp);
   uint res = tint_tmp;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/e122fe.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/e122fe.wgsl.expected.fxc.hlsl
index d7d15fe..4b96787 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e122fe.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e122fe.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_e122fe() {
-  int tint_tmp;
+  uint tint_tmp;
   arg_0.GetDimensions(tint_tmp);
   uint res = tint_tmp;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/e18a8b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/e18a8b.wgsl.expected.dxc.hlsl
index eefe24b..9d4f811 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e18a8b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e18a8b.wgsl.expected.dxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_e18a8b() {
   uint arg_1 = 1u;
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(arg_1, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/e18a8b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/e18a8b.wgsl.expected.fxc.hlsl
index eefe24b..9d4f811 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e18a8b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e18a8b.wgsl.expected.fxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_e18a8b() {
   uint arg_1 = 1u;
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(arg_1, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/e4bfd2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/e4bfd2.wgsl.expected.dxc.hlsl
index f7a2d79..983edc4 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e4bfd2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e4bfd2.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_e4bfd2() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/e4bfd2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/e4bfd2.wgsl.expected.fxc.hlsl
index f7a2d79..983edc4 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e4bfd2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e4bfd2.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_e4bfd2() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/e4e310.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/e4e310.wgsl.expected.dxc.hlsl
index 8a7385b..46c24fe 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e4e310.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e4e310.wgsl.expected.dxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_e4e310() {
   uint arg_1 = 1u;
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(arg_1, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/e4e310.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/e4e310.wgsl.expected.fxc.hlsl
index 8a7385b..46c24fe 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e4e310.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e4e310.wgsl.expected.fxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_e4e310() {
   uint arg_1 = 1u;
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(arg_1, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/e5a203.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/e5a203.wgsl.expected.dxc.hlsl
index 236032d..1ce40ae 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e5a203.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e5a203.wgsl.expected.dxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_e5a203() {
   int arg_1 = 1;
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(arg_1, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint3 res = tint_tmp.xyz;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/e5a203.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/e5a203.wgsl.expected.fxc.hlsl
index 236032d..1ce40ae 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e5a203.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e5a203.wgsl.expected.fxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_e5a203() {
   int arg_1 = 1;
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(arg_1, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint3 res = tint_tmp.xyz;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/e738f4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/e738f4.wgsl.expected.dxc.hlsl
index 8838504..47e99eb 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e738f4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e738f4.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_e738f4() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint3 res = tint_tmp;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/e738f4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/e738f4.wgsl.expected.fxc.hlsl
index 8838504..47e99eb 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e738f4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e738f4.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_e738f4() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint3 res = tint_tmp;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/e99308.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/e99308.wgsl.expected.dxc.hlsl
index 7e11ef7..fb869e3 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e99308.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e99308.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_e99308() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/e99308.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/e99308.wgsl.expected.fxc.hlsl
index 7e11ef7..fb869e3 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e99308.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e99308.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_e99308() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/ea066c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/ea066c.wgsl.expected.dxc.hlsl
index d637b21..70dda32 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ea066c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/ea066c.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_ea066c() {
-  int tint_tmp;
+  uint tint_tmp;
   arg_0.GetDimensions(tint_tmp);
   uint res = tint_tmp;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/ea066c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/ea066c.wgsl.expected.fxc.hlsl
index d637b21..70dda32 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ea066c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/ea066c.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_ea066c() {
-  int tint_tmp;
+  uint tint_tmp;
   arg_0.GetDimensions(tint_tmp);
   uint res = tint_tmp;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/ea25bc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/ea25bc.wgsl.expected.dxc.hlsl
index e24f03a..7697dcd 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ea25bc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/ea25bc.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_ea25bc() {
-  int tint_tmp;
+  uint tint_tmp;
   arg_0.GetDimensions(tint_tmp);
   uint res = tint_tmp;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/ea25bc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/ea25bc.wgsl.expected.fxc.hlsl
index e24f03a..7697dcd 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ea25bc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/ea25bc.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_ea25bc() {
-  int tint_tmp;
+  uint tint_tmp;
   arg_0.GetDimensions(tint_tmp);
   uint res = tint_tmp;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/eafe19.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/eafe19.wgsl.expected.dxc.hlsl
index 9c460ba..f2976ec 100644
--- a/test/tint/builtins/gen/var/textureDimensions/eafe19.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/eafe19.wgsl.expected.dxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_eafe19() {
   uint arg_1 = 1u;
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(arg_1, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/eafe19.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/eafe19.wgsl.expected.fxc.hlsl
index 9c460ba..f2976ec 100644
--- a/test/tint/builtins/gen/var/textureDimensions/eafe19.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/eafe19.wgsl.expected.fxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_eafe19() {
   uint arg_1 = 1u;
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(arg_1, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/eb03b1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/eb03b1.wgsl.expected.dxc.hlsl
index 18c0859..f270b86 100644
--- a/test/tint/builtins/gen/var/textureDimensions/eb03b1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/eb03b1.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_eb03b1() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/eb03b1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/eb03b1.wgsl.expected.fxc.hlsl
index 18c0859..f270b86 100644
--- a/test/tint/builtins/gen/var/textureDimensions/eb03b1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/eb03b1.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_eb03b1() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/ef2e58.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/ef2e58.wgsl.expected.dxc.hlsl
index 89d7a1e..f630e9c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ef2e58.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/ef2e58.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_ef2e58() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint3 res = tint_tmp;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/ef2e58.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/ef2e58.wgsl.expected.fxc.hlsl
index 89d7a1e..f630e9c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ef2e58.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/ef2e58.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_ef2e58() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint3 res = tint_tmp;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/f17acd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/f17acd.wgsl.expected.dxc.hlsl
index 4f50e6c..57cd33a7 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f17acd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f17acd.wgsl.expected.dxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_f17acd() {
   int arg_1 = 1;
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(arg_1, tint_tmp.x, tint_tmp.y);
   uint res = tint_tmp.x;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/f17acd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/f17acd.wgsl.expected.fxc.hlsl
index 4f50e6c..57cd33a7 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f17acd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f17acd.wgsl.expected.fxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_f17acd() {
   int arg_1 = 1;
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(arg_1, tint_tmp.x, tint_tmp.y);
   uint res = tint_tmp.x;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/f264a3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/f264a3.wgsl.expected.dxc.hlsl
index dff7fb5..7ea41cc 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f264a3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f264a3.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_f264a3() {
-  int tint_tmp;
+  uint tint_tmp;
   arg_0.GetDimensions(tint_tmp);
   uint res = tint_tmp;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/f264a3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/f264a3.wgsl.expected.fxc.hlsl
index dff7fb5..7ea41cc 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f264a3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f264a3.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_f264a3() {
-  int tint_tmp;
+  uint tint_tmp;
   arg_0.GetDimensions(tint_tmp);
   uint res = tint_tmp;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/f3a2ac.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/f3a2ac.wgsl.expected.dxc.hlsl
index 8090856..766bcbd 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f3a2ac.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f3a2ac.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_f3a2ac() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint3 res = tint_tmp;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/f3a2ac.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/f3a2ac.wgsl.expected.fxc.hlsl
index 8090856..766bcbd 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f3a2ac.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f3a2ac.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_f3a2ac() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint3 res = tint_tmp;
   prevent_dce.Store3(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/f4e469.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/f4e469.wgsl.expected.dxc.hlsl
index 361588c..e11b029 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f4e469.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f4e469.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_f4e469() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/f4e469.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/f4e469.wgsl.expected.fxc.hlsl
index 361588c..e11b029 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f4e469.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f4e469.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_f4e469() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/f626b3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/f626b3.wgsl.expected.dxc.hlsl
index a428815..d6da2f3 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f626b3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f626b3.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_f626b3() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/f626b3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/f626b3.wgsl.expected.fxc.hlsl
index a428815..d6da2f3 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f626b3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f626b3.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_f626b3() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/f8522e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/f8522e.wgsl.expected.dxc.hlsl
index 67b1a26..d108123 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f8522e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f8522e.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_f8522e() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/f8522e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/f8522e.wgsl.expected.fxc.hlsl
index 67b1a26..d108123 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f8522e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f8522e.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_f8522e() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/fbb15a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/fbb15a.wgsl.expected.dxc.hlsl
index afc4457..d411c87 100644
--- a/test/tint/builtins/gen/var/textureDimensions/fbb15a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/fbb15a.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_fbb15a() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/fbb15a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/fbb15a.wgsl.expected.fxc.hlsl
index afc4457..d411c87 100644
--- a/test/tint/builtins/gen/var/textureDimensions/fbb15a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/fbb15a.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureDimensions_fbb15a() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
   uint2 res = tint_tmp;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/fdf6e9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/fdf6e9.wgsl.expected.dxc.hlsl
index dc5ad94..7a6adde 100644
--- a/test/tint/builtins/gen/var/textureDimensions/fdf6e9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/fdf6e9.wgsl.expected.dxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_fdf6e9() {
   int arg_1 = 1;
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(arg_1, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureDimensions/fdf6e9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/fdf6e9.wgsl.expected.fxc.hlsl
index dc5ad94..7a6adde 100644
--- a/test/tint/builtins/gen/var/textureDimensions/fdf6e9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/fdf6e9.wgsl.expected.fxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_fdf6e9() {
   int arg_1 = 1;
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(arg_1, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint2 res = tint_tmp.xy;
   prevent_dce.Store2(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumLayers/014a3b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/014a3b.wgsl.expected.dxc.hlsl
index 2e51013..870ebf7 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/014a3b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/014a3b.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLayers_014a3b() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumLayers/014a3b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/014a3b.wgsl.expected.fxc.hlsl
index 2e51013..870ebf7 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/014a3b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/014a3b.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLayers_014a3b() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumLayers/071ebc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/071ebc.wgsl.expected.dxc.hlsl
index 21687b3..abb0f8a 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/071ebc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/071ebc.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLayers_071ebc() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumLayers/071ebc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/071ebc.wgsl.expected.fxc.hlsl
index 21687b3..abb0f8a 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/071ebc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/071ebc.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLayers_071ebc() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumLayers/0ec222.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/0ec222.wgsl.expected.dxc.hlsl
index d4585bf..fe1ec91 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/0ec222.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/0ec222.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLayers_0ec222() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumLayers/0ec222.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/0ec222.wgsl.expected.fxc.hlsl
index d4585bf..fe1ec91 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/0ec222.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/0ec222.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLayers_0ec222() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumLayers/1f858a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/1f858a.wgsl.expected.dxc.hlsl
index 4c51864..6d4a1ac 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/1f858a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/1f858a.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLayers_1f858a() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumLayers/1f858a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/1f858a.wgsl.expected.fxc.hlsl
index 4c51864..6d4a1ac 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/1f858a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/1f858a.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLayers_1f858a() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumLayers/3465ec.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/3465ec.wgsl.expected.dxc.hlsl
index b966ed6..829eabb 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/3465ec.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/3465ec.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLayers_3465ec() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumLayers/3465ec.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/3465ec.wgsl.expected.fxc.hlsl
index b966ed6..829eabb 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/3465ec.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/3465ec.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLayers_3465ec() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumLayers/34cefa.wgsl b/test/tint/builtins/gen/var/textureNumLayers/34cefa.wgsl
new file mode 100644
index 0000000..2930d93
--- /dev/null
+++ b/test/tint/builtins/gen/var/textureNumLayers/34cefa.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2022 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/src/cmd/gen
+// using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_cube_array<f32>;
+
+// fn textureNumLayers(texture: texture_cube_array<f32>) -> u32
+fn textureNumLayers_34cefa() {
+  var res: u32 = textureNumLayers(arg_0);
+  prevent_dce = res;
+}
+@group(2) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+@vertex
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureNumLayers_34cefa();
+  return vec4<f32>();
+}
+
+@fragment
+fn fragment_main() {
+  textureNumLayers_34cefa();
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  textureNumLayers_34cefa();
+}
diff --git a/test/tint/builtins/gen/var/textureNumLayers/34cefa.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/34cefa.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..7942bb6
--- /dev/null
+++ b/test/tint/builtins/gen/var/textureNumLayers/34cefa.wgsl.expected.dxc.hlsl
@@ -0,0 +1,36 @@
+TextureCubeArray<float4> arg_0 : register(t0, space1);
+RWByteAddressBuffer prevent_dce : register(u0, space2);
+
+void textureNumLayers_34cefa() {
+  uint3 tint_tmp;
+  arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
+  uint res = tint_tmp.z;
+  prevent_dce.Store(0u, asuint(res));
+}
+
+struct tint_symbol {
+  float4 value : SV_Position;
+};
+
+float4 vertex_main_inner() {
+  textureNumLayers_34cefa();
+  return (0.0f).xxxx;
+}
+
+tint_symbol vertex_main() {
+  const float4 inner_result = vertex_main_inner();
+  tint_symbol wrapper_result = (tint_symbol)0;
+  wrapper_result.value = inner_result;
+  return wrapper_result;
+}
+
+void fragment_main() {
+  textureNumLayers_34cefa();
+  return;
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureNumLayers_34cefa();
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureNumLayers/34cefa.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/34cefa.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..7942bb6
--- /dev/null
+++ b/test/tint/builtins/gen/var/textureNumLayers/34cefa.wgsl.expected.fxc.hlsl
@@ -0,0 +1,36 @@
+TextureCubeArray<float4> arg_0 : register(t0, space1);
+RWByteAddressBuffer prevent_dce : register(u0, space2);
+
+void textureNumLayers_34cefa() {
+  uint3 tint_tmp;
+  arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
+  uint res = tint_tmp.z;
+  prevent_dce.Store(0u, asuint(res));
+}
+
+struct tint_symbol {
+  float4 value : SV_Position;
+};
+
+float4 vertex_main_inner() {
+  textureNumLayers_34cefa();
+  return (0.0f).xxxx;
+}
+
+tint_symbol vertex_main() {
+  const float4 inner_result = vertex_main_inner();
+  tint_symbol wrapper_result = (tint_symbol)0;
+  wrapper_result.value = inner_result;
+  return wrapper_result;
+}
+
+void fragment_main() {
+  textureNumLayers_34cefa();
+  return;
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureNumLayers_34cefa();
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureNumLayers/34cefa.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/34cefa.wgsl.expected.glsl
new file mode 100644
index 0000000..6cf0e2a
--- /dev/null
+++ b/test/tint/builtins/gen/var/textureNumLayers/34cefa.wgsl.expected.glsl
@@ -0,0 +1,75 @@
+SKIP: FAILED
+
+#version 310 es
+
+uniform highp samplerCubeArray arg_0_1;
+void textureNumLayers_34cefa() {
+  uint res = uint(textureSize(arg_0_1, 0).z);
+}
+
+vec4 vertex_main() {
+  textureNumLayers_34cefa();
+  return vec4(0.0f);
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
+Error parsing GLSL shader:
+ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
+ERROR: 2 compilation errors.  No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCubeArray arg_0_1;
+void textureNumLayers_34cefa() {
+  uint res = uint(textureSize(arg_0_1, 0).z);
+}
+
+void fragment_main() {
+  textureNumLayers_34cefa();
+}
+
+void main() {
+  fragment_main();
+  return;
+}
+Error parsing GLSL shader:
+ERROR: 0:4: 'samplerCubeArray' : Reserved word. 
+ERROR: 0:4: '' : compilation terminated 
+ERROR: 2 compilation errors.  No code generated.
+
+
+
+#version 310 es
+
+uniform highp samplerCubeArray arg_0_1;
+void textureNumLayers_34cefa() {
+  uint res = uint(textureSize(arg_0_1, 0).z);
+}
+
+void compute_main() {
+  textureNumLayers_34cefa();
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  compute_main();
+  return;
+}
+Error parsing GLSL shader:
+ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
+ERROR: 2 compilation errors.  No code generated.
+
+
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/34cefa.wgsl.expected.msl b/test/tint/builtins/gen/var/textureNumLayers/34cefa.wgsl.expected.msl
new file mode 100644
index 0000000..53180de
--- /dev/null
+++ b/test/tint/builtins/gen/var/textureNumLayers/34cefa.wgsl.expected.msl
@@ -0,0 +1,34 @@
+#include <metal_stdlib>
+
+using namespace metal;
+void textureNumLayers_34cefa(texturecube_array<float, access::sample> tint_symbol_1, device uint* const tint_symbol_2) {
+  uint res = tint_symbol_1.get_array_size();
+  *(tint_symbol_2) = res;
+}
+
+struct tint_symbol {
+  float4 value [[position]];
+};
+
+float4 vertex_main_inner(texturecube_array<float, access::sample> tint_symbol_3, device uint* const tint_symbol_4) {
+  textureNumLayers_34cefa(tint_symbol_3, tint_symbol_4);
+  return float4(0.0f);
+}
+
+vertex tint_symbol vertex_main(texturecube_array<float, access::sample> tint_symbol_5 [[texture(0)]], device uint* tint_symbol_6 [[buffer(0)]]) {
+  float4 const inner_result = vertex_main_inner(tint_symbol_5, tint_symbol_6);
+  tint_symbol wrapper_result = {};
+  wrapper_result.value = inner_result;
+  return wrapper_result;
+}
+
+fragment void fragment_main(texturecube_array<float, access::sample> tint_symbol_7 [[texture(0)]], device uint* tint_symbol_8 [[buffer(0)]]) {
+  textureNumLayers_34cefa(tint_symbol_7, tint_symbol_8);
+  return;
+}
+
+kernel void compute_main(texturecube_array<float, access::sample> tint_symbol_9 [[texture(0)]], device uint* tint_symbol_10 [[buffer(0)]]) {
+  textureNumLayers_34cefa(tint_symbol_9, tint_symbol_10);
+  return;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/34cefa.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumLayers/34cefa.wgsl.expected.spvasm
new file mode 100644
index 0000000..73c157d
--- /dev/null
+++ b/test/tint/builtins/gen/var/textureNumLayers/34cefa.wgsl.expected.spvasm
@@ -0,0 +1,94 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 47
+; Schema: 0
+               OpCapability Shader
+               OpCapability SampledCubeArray
+               OpCapability ImageQuery
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+               OpEntryPoint Fragment %fragment_main "fragment_main"
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %fragment_main OriginUpperLeft
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
+               OpName %arg_0 "arg_0"
+               OpName %prevent_dce_block "prevent_dce_block"
+               OpMemberName %prevent_dce_block 0 "inner"
+               OpName %prevent_dce "prevent_dce"
+               OpName %textureNumLayers_34cefa "textureNumLayers_34cefa"
+               OpName %res "res"
+               OpName %vertex_main_inner "vertex_main_inner"
+               OpName %vertex_main "vertex_main"
+               OpName %fragment_main "fragment_main"
+               OpName %compute_main "compute_main"
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %prevent_dce_block Block
+               OpMemberDecorate %prevent_dce_block 0 Offset 0
+               OpDecorate %prevent_dce DescriptorSet 2
+               OpDecorate %prevent_dce Binding 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+         %11 = OpTypeImage %float Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+       %uint = OpTypeInt 32 0
+%prevent_dce_block = OpTypeStruct %uint
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+       %void = OpTypeVoid
+         %16 = OpTypeFunction %void
+     %v3uint = OpTypeVector %uint 3
+        %int = OpTypeInt 32 1
+      %int_0 = OpConstant %int 0
+%_ptr_Function_uint = OpTypePointer Function %uint
+         %28 = OpConstantNull %uint
+     %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
+         %33 = OpTypeFunction %v4float
+    %float_1 = OpConstant %float 1
+%textureNumLayers_34cefa = OpFunction %void None %16
+         %19 = OpLabel
+        %res = OpVariable %_ptr_Function_uint Function %28
+         %23 = OpLoad %11 %arg_0
+         %21 = OpImageQuerySizeLod %v3uint %23 %int_0
+         %20 = OpCompositeExtract %uint %21 2
+               OpStore %res %20
+         %31 = OpAccessChain %_ptr_StorageBuffer_uint %prevent_dce %uint_0
+         %32 = OpLoad %uint %res
+               OpStore %31 %32
+               OpReturn
+               OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %33
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureNumLayers_34cefa
+               OpReturnValue %5
+               OpFunctionEnd
+%vertex_main = OpFunction %void None %16
+         %38 = OpLabel
+         %39 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %39
+               OpStore %vertex_point_size %float_1
+               OpReturn
+               OpFunctionEnd
+%fragment_main = OpFunction %void None %16
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureNumLayers_34cefa
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %16
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %textureNumLayers_34cefa
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureNumLayers/34cefa.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumLayers/34cefa.wgsl.expected.wgsl
new file mode 100644
index 0000000..3020f5e
--- /dev/null
+++ b/test/tint/builtins/gen/var/textureNumLayers/34cefa.wgsl.expected.wgsl
@@ -0,0 +1,24 @@
+@group(1) @binding(0) var arg_0 : texture_cube_array<f32>;
+
+fn textureNumLayers_34cefa() {
+  var res : u32 = textureNumLayers(arg_0);
+  prevent_dce = res;
+}
+
+@group(2) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+@vertex
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureNumLayers_34cefa();
+  return vec4<f32>();
+}
+
+@fragment
+fn fragment_main() {
+  textureNumLayers_34cefa();
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  textureNumLayers_34cefa();
+}
diff --git a/test/tint/builtins/gen/var/textureNumLayers/3580ab.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/3580ab.wgsl.expected.dxc.hlsl
index d47a7c6..e8d1355 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/3580ab.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/3580ab.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLayers_3580ab() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumLayers/3580ab.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/3580ab.wgsl.expected.fxc.hlsl
index d47a7c6..e8d1355 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/3580ab.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/3580ab.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLayers_3580ab() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumLayers/48ef47.wgsl b/test/tint/builtins/gen/var/textureNumLayers/48ef47.wgsl
new file mode 100644
index 0000000..3cfb9f7
--- /dev/null
+++ b/test/tint/builtins/gen/var/textureNumLayers/48ef47.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2022 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/src/cmd/gen
+// using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_depth_cube_array;
+
+// fn textureNumLayers(texture: texture_depth_cube_array) -> u32
+fn textureNumLayers_48ef47() {
+  var res: u32 = textureNumLayers(arg_0);
+  prevent_dce = res;
+}
+@group(2) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+@vertex
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureNumLayers_48ef47();
+  return vec4<f32>();
+}
+
+@fragment
+fn fragment_main() {
+  textureNumLayers_48ef47();
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  textureNumLayers_48ef47();
+}
diff --git a/test/tint/builtins/gen/var/textureNumLayers/48ef47.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/48ef47.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..4edb79c
--- /dev/null
+++ b/test/tint/builtins/gen/var/textureNumLayers/48ef47.wgsl.expected.dxc.hlsl
@@ -0,0 +1,36 @@
+TextureCubeArray arg_0 : register(t0, space1);
+RWByteAddressBuffer prevent_dce : register(u0, space2);
+
+void textureNumLayers_48ef47() {
+  uint3 tint_tmp;
+  arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
+  uint res = tint_tmp.z;
+  prevent_dce.Store(0u, asuint(res));
+}
+
+struct tint_symbol {
+  float4 value : SV_Position;
+};
+
+float4 vertex_main_inner() {
+  textureNumLayers_48ef47();
+  return (0.0f).xxxx;
+}
+
+tint_symbol vertex_main() {
+  const float4 inner_result = vertex_main_inner();
+  tint_symbol wrapper_result = (tint_symbol)0;
+  wrapper_result.value = inner_result;
+  return wrapper_result;
+}
+
+void fragment_main() {
+  textureNumLayers_48ef47();
+  return;
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureNumLayers_48ef47();
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureNumLayers/48ef47.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/48ef47.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..4edb79c
--- /dev/null
+++ b/test/tint/builtins/gen/var/textureNumLayers/48ef47.wgsl.expected.fxc.hlsl
@@ -0,0 +1,36 @@
+TextureCubeArray arg_0 : register(t0, space1);
+RWByteAddressBuffer prevent_dce : register(u0, space2);
+
+void textureNumLayers_48ef47() {
+  uint3 tint_tmp;
+  arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
+  uint res = tint_tmp.z;
+  prevent_dce.Store(0u, asuint(res));
+}
+
+struct tint_symbol {
+  float4 value : SV_Position;
+};
+
+float4 vertex_main_inner() {
+  textureNumLayers_48ef47();
+  return (0.0f).xxxx;
+}
+
+tint_symbol vertex_main() {
+  const float4 inner_result = vertex_main_inner();
+  tint_symbol wrapper_result = (tint_symbol)0;
+  wrapper_result.value = inner_result;
+  return wrapper_result;
+}
+
+void fragment_main() {
+  textureNumLayers_48ef47();
+  return;
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureNumLayers_48ef47();
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureNumLayers/48ef47.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/48ef47.wgsl.expected.glsl
new file mode 100644
index 0000000..406b57c
--- /dev/null
+++ b/test/tint/builtins/gen/var/textureNumLayers/48ef47.wgsl.expected.glsl
@@ -0,0 +1,75 @@
+SKIP: FAILED
+
+#version 310 es
+
+uniform highp samplerCubeArray arg_0_1;
+void textureNumLayers_48ef47() {
+  uint res = uint(textureSize(arg_0_1, 0).z);
+}
+
+vec4 vertex_main() {
+  textureNumLayers_48ef47();
+  return vec4(0.0f);
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
+Error parsing GLSL shader:
+ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
+ERROR: 2 compilation errors.  No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCubeArray arg_0_1;
+void textureNumLayers_48ef47() {
+  uint res = uint(textureSize(arg_0_1, 0).z);
+}
+
+void fragment_main() {
+  textureNumLayers_48ef47();
+}
+
+void main() {
+  fragment_main();
+  return;
+}
+Error parsing GLSL shader:
+ERROR: 0:4: 'samplerCubeArray' : Reserved word. 
+ERROR: 0:4: '' : compilation terminated 
+ERROR: 2 compilation errors.  No code generated.
+
+
+
+#version 310 es
+
+uniform highp samplerCubeArray arg_0_1;
+void textureNumLayers_48ef47() {
+  uint res = uint(textureSize(arg_0_1, 0).z);
+}
+
+void compute_main() {
+  textureNumLayers_48ef47();
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  compute_main();
+  return;
+}
+Error parsing GLSL shader:
+ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
+ERROR: 2 compilation errors.  No code generated.
+
+
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/48ef47.wgsl.expected.msl b/test/tint/builtins/gen/var/textureNumLayers/48ef47.wgsl.expected.msl
new file mode 100644
index 0000000..894adfa
--- /dev/null
+++ b/test/tint/builtins/gen/var/textureNumLayers/48ef47.wgsl.expected.msl
@@ -0,0 +1,34 @@
+#include <metal_stdlib>
+
+using namespace metal;
+void textureNumLayers_48ef47(depthcube_array<float, access::sample> tint_symbol_1, device uint* const tint_symbol_2) {
+  uint res = tint_symbol_1.get_array_size();
+  *(tint_symbol_2) = res;
+}
+
+struct tint_symbol {
+  float4 value [[position]];
+};
+
+float4 vertex_main_inner(depthcube_array<float, access::sample> tint_symbol_3, device uint* const tint_symbol_4) {
+  textureNumLayers_48ef47(tint_symbol_3, tint_symbol_4);
+  return float4(0.0f);
+}
+
+vertex tint_symbol vertex_main(depthcube_array<float, access::sample> tint_symbol_5 [[texture(0)]], device uint* tint_symbol_6 [[buffer(0)]]) {
+  float4 const inner_result = vertex_main_inner(tint_symbol_5, tint_symbol_6);
+  tint_symbol wrapper_result = {};
+  wrapper_result.value = inner_result;
+  return wrapper_result;
+}
+
+fragment void fragment_main(depthcube_array<float, access::sample> tint_symbol_7 [[texture(0)]], device uint* tint_symbol_8 [[buffer(0)]]) {
+  textureNumLayers_48ef47(tint_symbol_7, tint_symbol_8);
+  return;
+}
+
+kernel void compute_main(depthcube_array<float, access::sample> tint_symbol_9 [[texture(0)]], device uint* tint_symbol_10 [[buffer(0)]]) {
+  textureNumLayers_48ef47(tint_symbol_9, tint_symbol_10);
+  return;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/48ef47.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumLayers/48ef47.wgsl.expected.spvasm
new file mode 100644
index 0000000..9716ce6
--- /dev/null
+++ b/test/tint/builtins/gen/var/textureNumLayers/48ef47.wgsl.expected.spvasm
@@ -0,0 +1,94 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 47
+; Schema: 0
+               OpCapability Shader
+               OpCapability SampledCubeArray
+               OpCapability ImageQuery
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+               OpEntryPoint Fragment %fragment_main "fragment_main"
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %fragment_main OriginUpperLeft
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
+               OpName %arg_0 "arg_0"
+               OpName %prevent_dce_block "prevent_dce_block"
+               OpMemberName %prevent_dce_block 0 "inner"
+               OpName %prevent_dce "prevent_dce"
+               OpName %textureNumLayers_48ef47 "textureNumLayers_48ef47"
+               OpName %res "res"
+               OpName %vertex_main_inner "vertex_main_inner"
+               OpName %vertex_main "vertex_main"
+               OpName %fragment_main "fragment_main"
+               OpName %compute_main "compute_main"
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %prevent_dce_block Block
+               OpMemberDecorate %prevent_dce_block 0 Offset 0
+               OpDecorate %prevent_dce DescriptorSet 2
+               OpDecorate %prevent_dce Binding 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+         %11 = OpTypeImage %float Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+       %uint = OpTypeInt 32 0
+%prevent_dce_block = OpTypeStruct %uint
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+       %void = OpTypeVoid
+         %16 = OpTypeFunction %void
+     %v3uint = OpTypeVector %uint 3
+        %int = OpTypeInt 32 1
+      %int_0 = OpConstant %int 0
+%_ptr_Function_uint = OpTypePointer Function %uint
+         %28 = OpConstantNull %uint
+     %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
+         %33 = OpTypeFunction %v4float
+    %float_1 = OpConstant %float 1
+%textureNumLayers_48ef47 = OpFunction %void None %16
+         %19 = OpLabel
+        %res = OpVariable %_ptr_Function_uint Function %28
+         %23 = OpLoad %11 %arg_0
+         %21 = OpImageQuerySizeLod %v3uint %23 %int_0
+         %20 = OpCompositeExtract %uint %21 2
+               OpStore %res %20
+         %31 = OpAccessChain %_ptr_StorageBuffer_uint %prevent_dce %uint_0
+         %32 = OpLoad %uint %res
+               OpStore %31 %32
+               OpReturn
+               OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %33
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureNumLayers_48ef47
+               OpReturnValue %5
+               OpFunctionEnd
+%vertex_main = OpFunction %void None %16
+         %38 = OpLabel
+         %39 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %39
+               OpStore %vertex_point_size %float_1
+               OpReturn
+               OpFunctionEnd
+%fragment_main = OpFunction %void None %16
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureNumLayers_48ef47
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %16
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %textureNumLayers_48ef47
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureNumLayers/48ef47.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumLayers/48ef47.wgsl.expected.wgsl
new file mode 100644
index 0000000..1cadf28
--- /dev/null
+++ b/test/tint/builtins/gen/var/textureNumLayers/48ef47.wgsl.expected.wgsl
@@ -0,0 +1,24 @@
+@group(1) @binding(0) var arg_0 : texture_depth_cube_array;
+
+fn textureNumLayers_48ef47() {
+  var res : u32 = textureNumLayers(arg_0);
+  prevent_dce = res;
+}
+
+@group(2) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+@vertex
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureNumLayers_48ef47();
+  return vec4<f32>();
+}
+
+@fragment
+fn fragment_main() {
+  textureNumLayers_48ef47();
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  textureNumLayers_48ef47();
+}
diff --git a/test/tint/builtins/gen/var/textureNumLayers/4c4333.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/4c4333.wgsl.expected.dxc.hlsl
index f68a984..2e738f2 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/4c4333.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/4c4333.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLayers_4c4333() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumLayers/4c4333.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/4c4333.wgsl.expected.fxc.hlsl
index f68a984..2e738f2 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/4c4333.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/4c4333.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLayers_4c4333() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumLayers/59eb57.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/59eb57.wgsl.expected.dxc.hlsl
index 350ae83..e96c3ac 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/59eb57.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/59eb57.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLayers_59eb57() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumLayers/59eb57.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/59eb57.wgsl.expected.fxc.hlsl
index 350ae83..e96c3ac 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/59eb57.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/59eb57.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLayers_59eb57() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumLayers/61bd23.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/61bd23.wgsl.expected.dxc.hlsl
index 9a565a2..2a8c94e 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/61bd23.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/61bd23.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLayers_61bd23() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumLayers/61bd23.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/61bd23.wgsl.expected.fxc.hlsl
index 9a565a2..2a8c94e 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/61bd23.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/61bd23.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLayers_61bd23() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumLayers/6b4321.wgsl b/test/tint/builtins/gen/var/textureNumLayers/6b4321.wgsl
new file mode 100644
index 0000000..a182e19
--- /dev/null
+++ b/test/tint/builtins/gen/var/textureNumLayers/6b4321.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2022 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/src/cmd/gen
+// using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_cube_array<i32>;
+
+// fn textureNumLayers(texture: texture_cube_array<i32>) -> u32
+fn textureNumLayers_6b4321() {
+  var res: u32 = textureNumLayers(arg_0);
+  prevent_dce = res;
+}
+@group(2) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+@vertex
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureNumLayers_6b4321();
+  return vec4<f32>();
+}
+
+@fragment
+fn fragment_main() {
+  textureNumLayers_6b4321();
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  textureNumLayers_6b4321();
+}
diff --git a/test/tint/builtins/gen/var/textureNumLayers/6b4321.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/6b4321.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..79b115d
--- /dev/null
+++ b/test/tint/builtins/gen/var/textureNumLayers/6b4321.wgsl.expected.dxc.hlsl
@@ -0,0 +1,36 @@
+TextureCubeArray<int4> arg_0 : register(t0, space1);
+RWByteAddressBuffer prevent_dce : register(u0, space2);
+
+void textureNumLayers_6b4321() {
+  uint3 tint_tmp;
+  arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
+  uint res = tint_tmp.z;
+  prevent_dce.Store(0u, asuint(res));
+}
+
+struct tint_symbol {
+  float4 value : SV_Position;
+};
+
+float4 vertex_main_inner() {
+  textureNumLayers_6b4321();
+  return (0.0f).xxxx;
+}
+
+tint_symbol vertex_main() {
+  const float4 inner_result = vertex_main_inner();
+  tint_symbol wrapper_result = (tint_symbol)0;
+  wrapper_result.value = inner_result;
+  return wrapper_result;
+}
+
+void fragment_main() {
+  textureNumLayers_6b4321();
+  return;
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureNumLayers_6b4321();
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureNumLayers/6b4321.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/6b4321.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..79b115d
--- /dev/null
+++ b/test/tint/builtins/gen/var/textureNumLayers/6b4321.wgsl.expected.fxc.hlsl
@@ -0,0 +1,36 @@
+TextureCubeArray<int4> arg_0 : register(t0, space1);
+RWByteAddressBuffer prevent_dce : register(u0, space2);
+
+void textureNumLayers_6b4321() {
+  uint3 tint_tmp;
+  arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
+  uint res = tint_tmp.z;
+  prevent_dce.Store(0u, asuint(res));
+}
+
+struct tint_symbol {
+  float4 value : SV_Position;
+};
+
+float4 vertex_main_inner() {
+  textureNumLayers_6b4321();
+  return (0.0f).xxxx;
+}
+
+tint_symbol vertex_main() {
+  const float4 inner_result = vertex_main_inner();
+  tint_symbol wrapper_result = (tint_symbol)0;
+  wrapper_result.value = inner_result;
+  return wrapper_result;
+}
+
+void fragment_main() {
+  textureNumLayers_6b4321();
+  return;
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureNumLayers_6b4321();
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureNumLayers/6b4321.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/6b4321.wgsl.expected.glsl
new file mode 100644
index 0000000..9fd427f
--- /dev/null
+++ b/test/tint/builtins/gen/var/textureNumLayers/6b4321.wgsl.expected.glsl
@@ -0,0 +1,75 @@
+SKIP: FAILED
+
+#version 310 es
+
+uniform highp isamplerCubeArray arg_0_1;
+void textureNumLayers_6b4321() {
+  uint res = uint(textureSize(arg_0_1, 0).z);
+}
+
+vec4 vertex_main() {
+  textureNumLayers_6b4321();
+  return vec4(0.0f);
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
+Error parsing GLSL shader:
+ERROR: 0:3: 'isamplerCubeArray' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
+ERROR: 2 compilation errors.  No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp isamplerCubeArray arg_0_1;
+void textureNumLayers_6b4321() {
+  uint res = uint(textureSize(arg_0_1, 0).z);
+}
+
+void fragment_main() {
+  textureNumLayers_6b4321();
+}
+
+void main() {
+  fragment_main();
+  return;
+}
+Error parsing GLSL shader:
+ERROR: 0:4: 'isamplerCubeArray' : Reserved word. 
+ERROR: 0:4: '' : compilation terminated 
+ERROR: 2 compilation errors.  No code generated.
+
+
+
+#version 310 es
+
+uniform highp isamplerCubeArray arg_0_1;
+void textureNumLayers_6b4321() {
+  uint res = uint(textureSize(arg_0_1, 0).z);
+}
+
+void compute_main() {
+  textureNumLayers_6b4321();
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  compute_main();
+  return;
+}
+Error parsing GLSL shader:
+ERROR: 0:3: 'isamplerCubeArray' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
+ERROR: 2 compilation errors.  No code generated.
+
+
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/6b4321.wgsl.expected.msl b/test/tint/builtins/gen/var/textureNumLayers/6b4321.wgsl.expected.msl
new file mode 100644
index 0000000..b944ae9
--- /dev/null
+++ b/test/tint/builtins/gen/var/textureNumLayers/6b4321.wgsl.expected.msl
@@ -0,0 +1,34 @@
+#include <metal_stdlib>
+
+using namespace metal;
+void textureNumLayers_6b4321(texturecube_array<int, access::sample> tint_symbol_1, device uint* const tint_symbol_2) {
+  uint res = tint_symbol_1.get_array_size();
+  *(tint_symbol_2) = res;
+}
+
+struct tint_symbol {
+  float4 value [[position]];
+};
+
+float4 vertex_main_inner(texturecube_array<int, access::sample> tint_symbol_3, device uint* const tint_symbol_4) {
+  textureNumLayers_6b4321(tint_symbol_3, tint_symbol_4);
+  return float4(0.0f);
+}
+
+vertex tint_symbol vertex_main(texturecube_array<int, access::sample> tint_symbol_5 [[texture(0)]], device uint* tint_symbol_6 [[buffer(0)]]) {
+  float4 const inner_result = vertex_main_inner(tint_symbol_5, tint_symbol_6);
+  tint_symbol wrapper_result = {};
+  wrapper_result.value = inner_result;
+  return wrapper_result;
+}
+
+fragment void fragment_main(texturecube_array<int, access::sample> tint_symbol_7 [[texture(0)]], device uint* tint_symbol_8 [[buffer(0)]]) {
+  textureNumLayers_6b4321(tint_symbol_7, tint_symbol_8);
+  return;
+}
+
+kernel void compute_main(texturecube_array<int, access::sample> tint_symbol_9 [[texture(0)]], device uint* tint_symbol_10 [[buffer(0)]]) {
+  textureNumLayers_6b4321(tint_symbol_9, tint_symbol_10);
+  return;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/6b4321.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumLayers/6b4321.wgsl.expected.spvasm
new file mode 100644
index 0000000..08ca55c
--- /dev/null
+++ b/test/tint/builtins/gen/var/textureNumLayers/6b4321.wgsl.expected.spvasm
@@ -0,0 +1,94 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 47
+; Schema: 0
+               OpCapability Shader
+               OpCapability SampledCubeArray
+               OpCapability ImageQuery
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+               OpEntryPoint Fragment %fragment_main "fragment_main"
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %fragment_main OriginUpperLeft
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
+               OpName %arg_0 "arg_0"
+               OpName %prevent_dce_block "prevent_dce_block"
+               OpMemberName %prevent_dce_block 0 "inner"
+               OpName %prevent_dce "prevent_dce"
+               OpName %textureNumLayers_6b4321 "textureNumLayers_6b4321"
+               OpName %res "res"
+               OpName %vertex_main_inner "vertex_main_inner"
+               OpName %vertex_main "vertex_main"
+               OpName %fragment_main "fragment_main"
+               OpName %compute_main "compute_main"
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %prevent_dce_block Block
+               OpMemberDecorate %prevent_dce_block 0 Offset 0
+               OpDecorate %prevent_dce DescriptorSet 2
+               OpDecorate %prevent_dce Binding 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+        %int = OpTypeInt 32 1
+         %11 = OpTypeImage %int Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+       %uint = OpTypeInt 32 0
+%prevent_dce_block = OpTypeStruct %uint
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+       %void = OpTypeVoid
+         %17 = OpTypeFunction %void
+     %v3uint = OpTypeVector %uint 3
+      %int_0 = OpConstant %int 0
+%_ptr_Function_uint = OpTypePointer Function %uint
+         %28 = OpConstantNull %uint
+     %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
+         %33 = OpTypeFunction %v4float
+    %float_1 = OpConstant %float 1
+%textureNumLayers_6b4321 = OpFunction %void None %17
+         %20 = OpLabel
+        %res = OpVariable %_ptr_Function_uint Function %28
+         %24 = OpLoad %11 %arg_0
+         %22 = OpImageQuerySizeLod %v3uint %24 %int_0
+         %21 = OpCompositeExtract %uint %22 2
+               OpStore %res %21
+         %31 = OpAccessChain %_ptr_StorageBuffer_uint %prevent_dce %uint_0
+         %32 = OpLoad %uint %res
+               OpStore %31 %32
+               OpReturn
+               OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %33
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureNumLayers_6b4321
+               OpReturnValue %5
+               OpFunctionEnd
+%vertex_main = OpFunction %void None %17
+         %38 = OpLabel
+         %39 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %39
+               OpStore %vertex_point_size %float_1
+               OpReturn
+               OpFunctionEnd
+%fragment_main = OpFunction %void None %17
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureNumLayers_6b4321
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %17
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %textureNumLayers_6b4321
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureNumLayers/6b4321.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumLayers/6b4321.wgsl.expected.wgsl
new file mode 100644
index 0000000..0fca392
--- /dev/null
+++ b/test/tint/builtins/gen/var/textureNumLayers/6b4321.wgsl.expected.wgsl
@@ -0,0 +1,24 @@
+@group(1) @binding(0) var arg_0 : texture_cube_array<i32>;
+
+fn textureNumLayers_6b4321() {
+  var res : u32 = textureNumLayers(arg_0);
+  prevent_dce = res;
+}
+
+@group(2) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+@vertex
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureNumLayers_6b4321();
+  return vec4<f32>();
+}
+
+@fragment
+fn fragment_main() {
+  textureNumLayers_6b4321();
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  textureNumLayers_6b4321();
+}
diff --git a/test/tint/builtins/gen/var/textureNumLayers/77be7b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/77be7b.wgsl.expected.dxc.hlsl
index 283dc9c..874cb79 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/77be7b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/77be7b.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLayers_77be7b() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumLayers/77be7b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/77be7b.wgsl.expected.fxc.hlsl
index 283dc9c..874cb79 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/77be7b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/77be7b.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLayers_77be7b() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumLayers/7f28cf.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/7f28cf.wgsl.expected.dxc.hlsl
index 7429e92..2ee0e49 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/7f28cf.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/7f28cf.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLayers_7f28cf() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumLayers/7f28cf.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/7f28cf.wgsl.expected.fxc.hlsl
index 7429e92..2ee0e49 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/7f28cf.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/7f28cf.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLayers_7f28cf() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumLayers/878dea.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/878dea.wgsl.expected.dxc.hlsl
index 2ea7b75..a0c230c 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/878dea.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/878dea.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLayers_878dea() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumLayers/878dea.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/878dea.wgsl.expected.fxc.hlsl
index 2ea7b75..a0c230c 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/878dea.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/878dea.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLayers_878dea() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumLayers/87faad.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/87faad.wgsl.expected.dxc.hlsl
index b3c201d..c91257f 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/87faad.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/87faad.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLayers_87faad() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumLayers/87faad.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/87faad.wgsl.expected.fxc.hlsl
index b3c201d..c91257f 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/87faad.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/87faad.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLayers_87faad() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumLayers/8ac32a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/8ac32a.wgsl.expected.dxc.hlsl
index a0b679a..c9a293f 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/8ac32a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/8ac32a.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLayers_8ac32a() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumLayers/8ac32a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/8ac32a.wgsl.expected.fxc.hlsl
index a0b679a..c9a293f 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/8ac32a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/8ac32a.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLayers_8ac32a() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumLayers/8bd987.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/8bd987.wgsl.expected.dxc.hlsl
index d83e727..3fb1f60 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/8bd987.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/8bd987.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLayers_8bd987() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumLayers/8bd987.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/8bd987.wgsl.expected.fxc.hlsl
index d83e727..3fb1f60 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/8bd987.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/8bd987.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLayers_8bd987() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumLayers/8dbf23.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/8dbf23.wgsl.expected.dxc.hlsl
index cbff36e..637cef3 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/8dbf23.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/8dbf23.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLayers_8dbf23() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumLayers/8dbf23.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/8dbf23.wgsl.expected.fxc.hlsl
index cbff36e..637cef3 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/8dbf23.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/8dbf23.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLayers_8dbf23() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumLayers/9695c6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/9695c6.wgsl.expected.dxc.hlsl
index 48d7d57..17a9aca 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/9695c6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/9695c6.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLayers_9695c6() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumLayers/9695c6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/9695c6.wgsl.expected.fxc.hlsl
index 48d7d57..17a9aca 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/9695c6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/9695c6.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLayers_9695c6() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumLayers/98a9cf.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/98a9cf.wgsl.expected.dxc.hlsl
index c13f3aa..76a17e3 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/98a9cf.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/98a9cf.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLayers_98a9cf() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumLayers/98a9cf.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/98a9cf.wgsl.expected.fxc.hlsl
index c13f3aa..76a17e3 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/98a9cf.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/98a9cf.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLayers_98a9cf() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumLayers/a9d3f5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/a9d3f5.wgsl.expected.dxc.hlsl
index d14e5ea..593320f 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/a9d3f5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/a9d3f5.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLayers_a9d3f5() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumLayers/a9d3f5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/a9d3f5.wgsl.expected.fxc.hlsl
index d14e5ea..593320f 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/a9d3f5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/a9d3f5.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLayers_a9d3f5() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumLayers/c1eca9.wgsl b/test/tint/builtins/gen/var/textureNumLayers/c1eca9.wgsl
new file mode 100644
index 0000000..8bdfe84
--- /dev/null
+++ b/test/tint/builtins/gen/var/textureNumLayers/c1eca9.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2022 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/src/cmd/gen
+// using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_cube_array<u32>;
+
+// fn textureNumLayers(texture: texture_cube_array<u32>) -> u32
+fn textureNumLayers_c1eca9() {
+  var res: u32 = textureNumLayers(arg_0);
+  prevent_dce = res;
+}
+@group(2) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+@vertex
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureNumLayers_c1eca9();
+  return vec4<f32>();
+}
+
+@fragment
+fn fragment_main() {
+  textureNumLayers_c1eca9();
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  textureNumLayers_c1eca9();
+}
diff --git a/test/tint/builtins/gen/var/textureNumLayers/c1eca9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/c1eca9.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..db69c6b
--- /dev/null
+++ b/test/tint/builtins/gen/var/textureNumLayers/c1eca9.wgsl.expected.dxc.hlsl
@@ -0,0 +1,36 @@
+TextureCubeArray<uint4> arg_0 : register(t0, space1);
+RWByteAddressBuffer prevent_dce : register(u0, space2);
+
+void textureNumLayers_c1eca9() {
+  uint3 tint_tmp;
+  arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
+  uint res = tint_tmp.z;
+  prevent_dce.Store(0u, asuint(res));
+}
+
+struct tint_symbol {
+  float4 value : SV_Position;
+};
+
+float4 vertex_main_inner() {
+  textureNumLayers_c1eca9();
+  return (0.0f).xxxx;
+}
+
+tint_symbol vertex_main() {
+  const float4 inner_result = vertex_main_inner();
+  tint_symbol wrapper_result = (tint_symbol)0;
+  wrapper_result.value = inner_result;
+  return wrapper_result;
+}
+
+void fragment_main() {
+  textureNumLayers_c1eca9();
+  return;
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureNumLayers_c1eca9();
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureNumLayers/c1eca9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/c1eca9.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..db69c6b
--- /dev/null
+++ b/test/tint/builtins/gen/var/textureNumLayers/c1eca9.wgsl.expected.fxc.hlsl
@@ -0,0 +1,36 @@
+TextureCubeArray<uint4> arg_0 : register(t0, space1);
+RWByteAddressBuffer prevent_dce : register(u0, space2);
+
+void textureNumLayers_c1eca9() {
+  uint3 tint_tmp;
+  arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
+  uint res = tint_tmp.z;
+  prevent_dce.Store(0u, asuint(res));
+}
+
+struct tint_symbol {
+  float4 value : SV_Position;
+};
+
+float4 vertex_main_inner() {
+  textureNumLayers_c1eca9();
+  return (0.0f).xxxx;
+}
+
+tint_symbol vertex_main() {
+  const float4 inner_result = vertex_main_inner();
+  tint_symbol wrapper_result = (tint_symbol)0;
+  wrapper_result.value = inner_result;
+  return wrapper_result;
+}
+
+void fragment_main() {
+  textureNumLayers_c1eca9();
+  return;
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureNumLayers_c1eca9();
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureNumLayers/c1eca9.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/c1eca9.wgsl.expected.glsl
new file mode 100644
index 0000000..367aaab
--- /dev/null
+++ b/test/tint/builtins/gen/var/textureNumLayers/c1eca9.wgsl.expected.glsl
@@ -0,0 +1,75 @@
+SKIP: FAILED
+
+#version 310 es
+
+uniform highp usamplerCubeArray arg_0_1;
+void textureNumLayers_c1eca9() {
+  uint res = uint(textureSize(arg_0_1, 0).z);
+}
+
+vec4 vertex_main() {
+  textureNumLayers_c1eca9();
+  return vec4(0.0f);
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
+Error parsing GLSL shader:
+ERROR: 0:3: 'usamplerCubeArray' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
+ERROR: 2 compilation errors.  No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp usamplerCubeArray arg_0_1;
+void textureNumLayers_c1eca9() {
+  uint res = uint(textureSize(arg_0_1, 0).z);
+}
+
+void fragment_main() {
+  textureNumLayers_c1eca9();
+}
+
+void main() {
+  fragment_main();
+  return;
+}
+Error parsing GLSL shader:
+ERROR: 0:4: 'usamplerCubeArray' : Reserved word. 
+ERROR: 0:4: '' : compilation terminated 
+ERROR: 2 compilation errors.  No code generated.
+
+
+
+#version 310 es
+
+uniform highp usamplerCubeArray arg_0_1;
+void textureNumLayers_c1eca9() {
+  uint res = uint(textureSize(arg_0_1, 0).z);
+}
+
+void compute_main() {
+  textureNumLayers_c1eca9();
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  compute_main();
+  return;
+}
+Error parsing GLSL shader:
+ERROR: 0:3: 'usamplerCubeArray' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
+ERROR: 2 compilation errors.  No code generated.
+
+
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/c1eca9.wgsl.expected.msl b/test/tint/builtins/gen/var/textureNumLayers/c1eca9.wgsl.expected.msl
new file mode 100644
index 0000000..eebf927
--- /dev/null
+++ b/test/tint/builtins/gen/var/textureNumLayers/c1eca9.wgsl.expected.msl
@@ -0,0 +1,34 @@
+#include <metal_stdlib>
+
+using namespace metal;
+void textureNumLayers_c1eca9(texturecube_array<uint, access::sample> tint_symbol_1, device uint* const tint_symbol_2) {
+  uint res = tint_symbol_1.get_array_size();
+  *(tint_symbol_2) = res;
+}
+
+struct tint_symbol {
+  float4 value [[position]];
+};
+
+float4 vertex_main_inner(texturecube_array<uint, access::sample> tint_symbol_3, device uint* const tint_symbol_4) {
+  textureNumLayers_c1eca9(tint_symbol_3, tint_symbol_4);
+  return float4(0.0f);
+}
+
+vertex tint_symbol vertex_main(texturecube_array<uint, access::sample> tint_symbol_5 [[texture(0)]], device uint* tint_symbol_6 [[buffer(0)]]) {
+  float4 const inner_result = vertex_main_inner(tint_symbol_5, tint_symbol_6);
+  tint_symbol wrapper_result = {};
+  wrapper_result.value = inner_result;
+  return wrapper_result;
+}
+
+fragment void fragment_main(texturecube_array<uint, access::sample> tint_symbol_7 [[texture(0)]], device uint* tint_symbol_8 [[buffer(0)]]) {
+  textureNumLayers_c1eca9(tint_symbol_7, tint_symbol_8);
+  return;
+}
+
+kernel void compute_main(texturecube_array<uint, access::sample> tint_symbol_9 [[texture(0)]], device uint* tint_symbol_10 [[buffer(0)]]) {
+  textureNumLayers_c1eca9(tint_symbol_9, tint_symbol_10);
+  return;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/c1eca9.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumLayers/c1eca9.wgsl.expected.spvasm
new file mode 100644
index 0000000..aaac1d1
--- /dev/null
+++ b/test/tint/builtins/gen/var/textureNumLayers/c1eca9.wgsl.expected.spvasm
@@ -0,0 +1,94 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 47
+; Schema: 0
+               OpCapability Shader
+               OpCapability SampledCubeArray
+               OpCapability ImageQuery
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+               OpEntryPoint Fragment %fragment_main "fragment_main"
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %fragment_main OriginUpperLeft
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
+               OpName %arg_0 "arg_0"
+               OpName %prevent_dce_block "prevent_dce_block"
+               OpMemberName %prevent_dce_block 0 "inner"
+               OpName %prevent_dce "prevent_dce"
+               OpName %textureNumLayers_c1eca9 "textureNumLayers_c1eca9"
+               OpName %res "res"
+               OpName %vertex_main_inner "vertex_main_inner"
+               OpName %vertex_main "vertex_main"
+               OpName %fragment_main "fragment_main"
+               OpName %compute_main "compute_main"
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %prevent_dce_block Block
+               OpMemberDecorate %prevent_dce_block 0 Offset 0
+               OpDecorate %prevent_dce DescriptorSet 2
+               OpDecorate %prevent_dce Binding 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+       %uint = OpTypeInt 32 0
+         %11 = OpTypeImage %uint Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+%prevent_dce_block = OpTypeStruct %uint
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+       %void = OpTypeVoid
+         %16 = OpTypeFunction %void
+     %v3uint = OpTypeVector %uint 3
+        %int = OpTypeInt 32 1
+      %int_0 = OpConstant %int 0
+%_ptr_Function_uint = OpTypePointer Function %uint
+         %28 = OpConstantNull %uint
+     %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
+         %33 = OpTypeFunction %v4float
+    %float_1 = OpConstant %float 1
+%textureNumLayers_c1eca9 = OpFunction %void None %16
+         %19 = OpLabel
+        %res = OpVariable %_ptr_Function_uint Function %28
+         %23 = OpLoad %11 %arg_0
+         %21 = OpImageQuerySizeLod %v3uint %23 %int_0
+         %20 = OpCompositeExtract %uint %21 2
+               OpStore %res %20
+         %31 = OpAccessChain %_ptr_StorageBuffer_uint %prevent_dce %uint_0
+         %32 = OpLoad %uint %res
+               OpStore %31 %32
+               OpReturn
+               OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %33
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureNumLayers_c1eca9
+               OpReturnValue %5
+               OpFunctionEnd
+%vertex_main = OpFunction %void None %16
+         %38 = OpLabel
+         %39 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %39
+               OpStore %vertex_point_size %float_1
+               OpReturn
+               OpFunctionEnd
+%fragment_main = OpFunction %void None %16
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureNumLayers_c1eca9
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %16
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %textureNumLayers_c1eca9
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureNumLayers/c1eca9.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumLayers/c1eca9.wgsl.expected.wgsl
new file mode 100644
index 0000000..d2cba71
--- /dev/null
+++ b/test/tint/builtins/gen/var/textureNumLayers/c1eca9.wgsl.expected.wgsl
@@ -0,0 +1,24 @@
+@group(1) @binding(0) var arg_0 : texture_cube_array<u32>;
+
+fn textureNumLayers_c1eca9() {
+  var res : u32 = textureNumLayers(arg_0);
+  prevent_dce = res;
+}
+
+@group(2) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+@vertex
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureNumLayers_c1eca9();
+  return vec4<f32>();
+}
+
+@fragment
+fn fragment_main() {
+  textureNumLayers_c1eca9();
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  textureNumLayers_c1eca9();
+}
diff --git a/test/tint/builtins/gen/var/textureNumLayers/d75a0b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/d75a0b.wgsl.expected.dxc.hlsl
index 22a44ee..123d33c 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/d75a0b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/d75a0b.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLayers_d75a0b() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumLayers/d75a0b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/d75a0b.wgsl.expected.fxc.hlsl
index 22a44ee..123d33c 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/d75a0b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/d75a0b.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLayers_d75a0b() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumLayers/de8087.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/de8087.wgsl.expected.dxc.hlsl
index 515081d..43067c5 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/de8087.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/de8087.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLayers_de8087() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumLayers/de8087.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/de8087.wgsl.expected.fxc.hlsl
index 515081d..43067c5 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/de8087.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/de8087.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLayers_de8087() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumLevels/181090.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/181090.wgsl.expected.dxc.hlsl
index 13c1604..76c2e69 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/181090.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/181090.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLevels_181090() {
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(0, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint res = tint_tmp.w;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumLevels/181090.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/181090.wgsl.expected.fxc.hlsl
index 13c1604..76c2e69 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/181090.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/181090.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLevels_181090() {
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(0, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint res = tint_tmp.w;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumLevels/1a3fa9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/1a3fa9.wgsl.expected.dxc.hlsl
index 0c746e4..bfc49d0 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/1a3fa9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/1a3fa9.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLevels_1a3fa9() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(0, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumLevels/1a3fa9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/1a3fa9.wgsl.expected.fxc.hlsl
index 0c746e4..bfc49d0 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/1a3fa9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/1a3fa9.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLevels_1a3fa9() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(0, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumLevels/1a7fc3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/1a7fc3.wgsl.expected.dxc.hlsl
index 6e53b9d..0d2da36 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/1a7fc3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/1a7fc3.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLevels_1a7fc3() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(0, tint_tmp.x, tint_tmp.y);
   uint res = tint_tmp.y;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumLevels/1a7fc3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/1a7fc3.wgsl.expected.fxc.hlsl
index 6e53b9d..0d2da36 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/1a7fc3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/1a7fc3.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLevels_1a7fc3() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(0, tint_tmp.x, tint_tmp.y);
   uint res = tint_tmp.y;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumLevels/2267d8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/2267d8.wgsl.expected.dxc.hlsl
index c3235ba..3580cb6 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/2267d8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/2267d8.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLevels_2267d8() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(0, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumLevels/2267d8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/2267d8.wgsl.expected.fxc.hlsl
index c3235ba..3580cb6 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/2267d8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/2267d8.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLevels_2267d8() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(0, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumLevels/24b2c6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/24b2c6.wgsl.expected.dxc.hlsl
index 3fd1c1f..e8f01d2 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/24b2c6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/24b2c6.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLevels_24b2c6() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(0, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumLevels/24b2c6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/24b2c6.wgsl.expected.fxc.hlsl
index 3fd1c1f..e8f01d2 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/24b2c6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/24b2c6.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLevels_24b2c6() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(0, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumLevels/2bea6c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/2bea6c.wgsl.expected.dxc.hlsl
index 6b5dac1..b6fc9a7 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/2bea6c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/2bea6c.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLevels_2bea6c() {
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(0, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint res = tint_tmp.w;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumLevels/2bea6c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/2bea6c.wgsl.expected.fxc.hlsl
index 6b5dac1..b6fc9a7 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/2bea6c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/2bea6c.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLevels_2bea6c() {
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(0, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint res = tint_tmp.w;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumLevels/2df1ab.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/2df1ab.wgsl.expected.dxc.hlsl
index 75ff97e..5591016 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/2df1ab.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/2df1ab.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLevels_2df1ab() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(0, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumLevels/2df1ab.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/2df1ab.wgsl.expected.fxc.hlsl
index 75ff97e..5591016 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/2df1ab.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/2df1ab.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLevels_2df1ab() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(0, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumLevels/46dbd8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/46dbd8.wgsl.expected.dxc.hlsl
index a6639f1..af0c23e 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/46dbd8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/46dbd8.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLevels_46dbd8() {
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(0, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint res = tint_tmp.w;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumLevels/46dbd8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/46dbd8.wgsl.expected.fxc.hlsl
index a6639f1..af0c23e 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/46dbd8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/46dbd8.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLevels_46dbd8() {
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(0, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint res = tint_tmp.w;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumLevels/60d9b8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/60d9b8.wgsl.expected.dxc.hlsl
index ea35f1f..bd71aaa 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/60d9b8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/60d9b8.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLevels_60d9b8() {
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(0, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint res = tint_tmp.w;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumLevels/60d9b8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/60d9b8.wgsl.expected.fxc.hlsl
index ea35f1f..bd71aaa 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/60d9b8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/60d9b8.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLevels_60d9b8() {
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(0, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint res = tint_tmp.w;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumLevels/903920.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/903920.wgsl.expected.dxc.hlsl
index 3751631..b1357f0 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/903920.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/903920.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLevels_903920() {
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(0, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint res = tint_tmp.w;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumLevels/903920.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/903920.wgsl.expected.fxc.hlsl
index 3751631..b1357f0 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/903920.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/903920.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLevels_903920() {
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(0, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint res = tint_tmp.w;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumLevels/9a1a65.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/9a1a65.wgsl.expected.dxc.hlsl
index a002c04..d18ba6d 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/9a1a65.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/9a1a65.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLevels_9a1a65() {
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(0, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint res = tint_tmp.w;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumLevels/9a1a65.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/9a1a65.wgsl.expected.fxc.hlsl
index a002c04..d18ba6d 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/9a1a65.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/9a1a65.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLevels_9a1a65() {
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(0, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint res = tint_tmp.w;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumLevels/adc783.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/adc783.wgsl.expected.dxc.hlsl
index f9a0a2b..097b595 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/adc783.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/adc783.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLevels_adc783() {
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(0, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint res = tint_tmp.w;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumLevels/adc783.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/adc783.wgsl.expected.fxc.hlsl
index f9a0a2b..097b595 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/adc783.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/adc783.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLevels_adc783() {
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(0, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint res = tint_tmp.w;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumLevels/ae911c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/ae911c.wgsl.expected.dxc.hlsl
index 37f639b..09236e9 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/ae911c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/ae911c.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLevels_ae911c() {
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(0, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint res = tint_tmp.w;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumLevels/ae911c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/ae911c.wgsl.expected.fxc.hlsl
index 37f639b..09236e9 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/ae911c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/ae911c.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLevels_ae911c() {
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(0, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint res = tint_tmp.w;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumLevels/c386c8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/c386c8.wgsl.expected.dxc.hlsl
index ef724e1..15fee50 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/c386c8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/c386c8.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLevels_c386c8() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(0, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumLevels/c386c8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/c386c8.wgsl.expected.fxc.hlsl
index ef724e1..15fee50 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/c386c8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/c386c8.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLevels_c386c8() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(0, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumLevels/c399f9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/c399f9.wgsl.expected.dxc.hlsl
index d4ce86c..bc83071 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/c399f9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/c399f9.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLevels_c399f9() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(0, tint_tmp.x, tint_tmp.y);
   uint res = tint_tmp.y;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumLevels/c399f9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/c399f9.wgsl.expected.fxc.hlsl
index d4ce86c..bc83071 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/c399f9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/c399f9.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLevels_c399f9() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(0, tint_tmp.x, tint_tmp.y);
   uint res = tint_tmp.y;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumLevels/c8c25c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/c8c25c.wgsl.expected.dxc.hlsl
index 6743680..8e2b4bd 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/c8c25c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/c8c25c.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLevels_c8c25c() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(0, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumLevels/c8c25c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/c8c25c.wgsl.expected.fxc.hlsl
index 6743680..8e2b4bd 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/c8c25c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/c8c25c.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLevels_c8c25c() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(0, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumLevels/d63126.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/d63126.wgsl.expected.dxc.hlsl
index 60c007f..cd5c738 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/d63126.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/d63126.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLevels_d63126() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(0, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumLevels/d63126.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/d63126.wgsl.expected.fxc.hlsl
index 60c007f..cd5c738 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/d63126.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/d63126.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLevels_d63126() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(0, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumLevels/d8f73b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/d8f73b.wgsl.expected.dxc.hlsl
index 11cdebb..d6491e2 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/d8f73b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/d8f73b.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLevels_d8f73b() {
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(0, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint res = tint_tmp.w;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumLevels/d8f73b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/d8f73b.wgsl.expected.fxc.hlsl
index 11cdebb..d6491e2 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/d8f73b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/d8f73b.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLevels_d8f73b() {
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(0, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint res = tint_tmp.w;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumLevels/ef7944.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/ef7944.wgsl.expected.dxc.hlsl
index 98c63e3..08e07f2 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/ef7944.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/ef7944.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLevels_ef7944() {
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(0, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint res = tint_tmp.w;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumLevels/ef7944.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/ef7944.wgsl.expected.fxc.hlsl
index 98c63e3..08e07f2 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/ef7944.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/ef7944.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLevels_ef7944() {
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(0, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint res = tint_tmp.w;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumLevels/efd6df.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/efd6df.wgsl.expected.dxc.hlsl
index 966eba3..c6ef272 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/efd6df.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/efd6df.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLevels_efd6df() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(0, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumLevels/efd6df.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/efd6df.wgsl.expected.fxc.hlsl
index 966eba3..c6ef272 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/efd6df.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/efd6df.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLevels_efd6df() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(0, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumLevels/f742c0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/f742c0.wgsl.expected.dxc.hlsl
index b9333cb..a6428d6 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/f742c0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/f742c0.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLevels_f742c0() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(0, tint_tmp.x, tint_tmp.y);
   uint res = tint_tmp.y;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumLevels/f742c0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/f742c0.wgsl.expected.fxc.hlsl
index b9333cb..a6428d6 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/f742c0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/f742c0.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLevels_f742c0() {
-  int2 tint_tmp;
+  uint2 tint_tmp;
   arg_0.GetDimensions(0, tint_tmp.x, tint_tmp.y);
   uint res = tint_tmp.y;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumLevels/fe2171.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/fe2171.wgsl.expected.dxc.hlsl
index 30809fa..af8ca21 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/fe2171.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/fe2171.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLevels_fe2171() {
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(0, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint res = tint_tmp.w;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumLevels/fe2171.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/fe2171.wgsl.expected.fxc.hlsl
index 30809fa..af8ca21 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/fe2171.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/fe2171.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumLevels_fe2171() {
-  int4 tint_tmp;
+  uint4 tint_tmp;
   arg_0.GetDimensions(0, tint_tmp.x, tint_tmp.y, tint_tmp.z, tint_tmp.w);
   uint res = tint_tmp.w;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumSamples/50f399.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumSamples/50f399.wgsl.expected.dxc.hlsl
index 3238202..c19bab7 100644
--- a/test/tint/builtins/gen/var/textureNumSamples/50f399.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumSamples/50f399.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumSamples_50f399() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumSamples/50f399.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumSamples/50f399.wgsl.expected.fxc.hlsl
index 3238202..c19bab7 100644
--- a/test/tint/builtins/gen/var/textureNumSamples/50f399.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumSamples/50f399.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumSamples_50f399() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumSamples/c1a777.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumSamples/c1a777.wgsl.expected.dxc.hlsl
index 480fde4..26d9873 100644
--- a/test/tint/builtins/gen/var/textureNumSamples/c1a777.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumSamples/c1a777.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumSamples_c1a777() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumSamples/c1a777.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumSamples/c1a777.wgsl.expected.fxc.hlsl
index 480fde4..26d9873 100644
--- a/test/tint/builtins/gen/var/textureNumSamples/c1a777.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumSamples/c1a777.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumSamples_c1a777() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumSamples/dbb799.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumSamples/dbb799.wgsl.expected.dxc.hlsl
index 99e1f67..e0f4514 100644
--- a/test/tint/builtins/gen/var/textureNumSamples/dbb799.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumSamples/dbb799.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumSamples_dbb799() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumSamples/dbb799.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumSamples/dbb799.wgsl.expected.fxc.hlsl
index 99e1f67..e0f4514 100644
--- a/test/tint/builtins/gen/var/textureNumSamples/dbb799.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumSamples/dbb799.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumSamples_dbb799() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumSamples/ecd321.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumSamples/ecd321.wgsl.expected.dxc.hlsl
index 658aa82..21e1d50 100644
--- a/test/tint/builtins/gen/var/textureNumSamples/ecd321.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumSamples/ecd321.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumSamples_ecd321() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureNumSamples/ecd321.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumSamples/ecd321.wgsl.expected.fxc.hlsl
index 658aa82..21e1d50 100644
--- a/test/tint/builtins/gen/var/textureNumSamples/ecd321.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumSamples/ecd321.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 RWByteAddressBuffer prevent_dce : register(u0, space2);
 
 void textureNumSamples_ecd321() {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   uint res = tint_tmp.z;
   prevent_dce.Store(0u, asuint(res));
diff --git a/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.dxc.hlsl
index 8236354..5880e0b 100644
--- a/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.dxc.hlsl
@@ -34,12 +34,12 @@
 
 float4 textureSampleExternal(Texture2D<float4> plane0, Texture2D<float4> plane1, SamplerState smp, float2 coord, ExternalTextureParams params) {
   const float2 modifiedCoords = mul(float3(coord, 1.0f), params.coordTransformationMatrix);
-  int3 tint_tmp;
+  uint3 tint_tmp;
   plane0.GetDimensions(0, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   const float2 plane0_dims = float2(tint_tmp.xy);
   const float2 plane0_half_texel = ((0.5f).xx / plane0_dims);
   const float2 plane0_clamped = clamp(modifiedCoords, plane0_half_texel, (1.0f - plane0_half_texel));
-  int3 tint_tmp_1;
+  uint3 tint_tmp_1;
   plane1.GetDimensions(0, tint_tmp_1.x, tint_tmp_1.y, tint_tmp_1.z);
   const float2 plane1_dims = float2(tint_tmp_1.xy);
   const float2 plane1_half_texel = ((0.5f).xx / plane1_dims);
diff --git a/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.fxc.hlsl
index 8236354..5880e0b 100644
--- a/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.fxc.hlsl
@@ -34,12 +34,12 @@
 
 float4 textureSampleExternal(Texture2D<float4> plane0, Texture2D<float4> plane1, SamplerState smp, float2 coord, ExternalTextureParams params) {
   const float2 modifiedCoords = mul(float3(coord, 1.0f), params.coordTransformationMatrix);
-  int3 tint_tmp;
+  uint3 tint_tmp;
   plane0.GetDimensions(0, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   const float2 plane0_dims = float2(tint_tmp.xy);
   const float2 plane0_half_texel = ((0.5f).xx / plane0_dims);
   const float2 plane0_clamped = clamp(modifiedCoords, plane0_half_texel, (1.0f - plane0_half_texel));
-  int3 tint_tmp_1;
+  uint3 tint_tmp_1;
   plane1.GetDimensions(0, tint_tmp_1.x, tint_tmp_1.y, tint_tmp_1.z);
   const float2 plane1_dims = float2(tint_tmp_1.xy);
   const float2 plane1_half_texel = ((0.5f).xx / plane1_dims);
diff --git a/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.dxc.hlsl
index 9a0d698..604574e 100644
--- a/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 float4 tint_textureSampleBaseClampToEdge(Texture2D<float4> t, SamplerState s, float2 coord) {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   t.GetDimensions(0, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   const float2 dims = float2(tint_tmp.xy);
   const float2 half_texel = ((0.5f).xx / dims);
diff --git a/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.fxc.hlsl
index 9a0d698..604574e 100644
--- a/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 float4 tint_textureSampleBaseClampToEdge(Texture2D<float4> t, SamplerState s, float2 coord) {
-  int3 tint_tmp;
+  uint3 tint_tmp;
   t.GetDimensions(0, tint_tmp.x, tint_tmp.y, tint_tmp.z);
   const float2 dims = float2(tint_tmp.xy);
   const float2 half_texel = ((0.5f).xx / dims);
diff --git a/test/tint/builtins/textureDimensions/depth_ms.spvasm.expected.dxc.hlsl b/test/tint/builtins/textureDimensions/depth_ms.spvasm.expected.dxc.hlsl
index 1f9139f..fc2a637 100644
--- a/test/tint/builtins/textureDimensions/depth_ms.spvasm.expected.dxc.hlsl
+++ b/test/tint/builtins/textureDimensions/depth_ms.spvasm.expected.dxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_f60bdb() {
   int2 res = (0).xx;
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   const int2 x_16 = int2(tint_tmp.xy);
   res = x_16;
diff --git a/test/tint/builtins/textureDimensions/depth_ms.spvasm.expected.fxc.hlsl b/test/tint/builtins/textureDimensions/depth_ms.spvasm.expected.fxc.hlsl
index 1f9139f..fc2a637 100644
--- a/test/tint/builtins/textureDimensions/depth_ms.spvasm.expected.fxc.hlsl
+++ b/test/tint/builtins/textureDimensions/depth_ms.spvasm.expected.fxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureDimensions_f60bdb() {
   int2 res = (0).xx;
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   const int2 x_16 = int2(tint_tmp.xy);
   res = x_16;
diff --git a/test/tint/builtins/textureNumSamples/depth_ms.spvasm.expected.dxc.hlsl b/test/tint/builtins/textureNumSamples/depth_ms.spvasm.expected.dxc.hlsl
index 5c46dd4..9db0b2b 100644
--- a/test/tint/builtins/textureNumSamples/depth_ms.spvasm.expected.dxc.hlsl
+++ b/test/tint/builtins/textureNumSamples/depth_ms.spvasm.expected.dxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureNumSamples_a3c8a0() {
   int res = 0;
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   const int x_16 = int(tint_tmp.z);
   res = x_16;
diff --git a/test/tint/builtins/textureNumSamples/depth_ms.spvasm.expected.fxc.hlsl b/test/tint/builtins/textureNumSamples/depth_ms.spvasm.expected.fxc.hlsl
index 5c46dd4..9db0b2b 100644
--- a/test/tint/builtins/textureNumSamples/depth_ms.spvasm.expected.fxc.hlsl
+++ b/test/tint/builtins/textureNumSamples/depth_ms.spvasm.expected.fxc.hlsl
@@ -3,7 +3,7 @@
 
 void textureNumSamples_a3c8a0() {
   int res = 0;
-  int3 tint_tmp;
+  uint3 tint_tmp;
   arg_0.GetDimensions(tint_tmp.x, tint_tmp.y, tint_tmp.z);
   const int x_16 = int(tint_tmp.z);
   res = x_16;
diff --git a/test/tint/unittest/reader/spirv/ImageQuerySizeLod_Arrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm b/test/tint/unittest/reader/spirv/ImageQuerySizeLod_Arrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm
new file mode 100644
index 0000000..962f677
--- /dev/null
+++ b/test/tint/unittest/reader/spirv/ImageQuerySizeLod_Arrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm
@@ -0,0 +1,121 @@
+; Test: ImageQuerySizeLod_Arrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos SPIR-V Tools Assembler; 0
+; Bound: 100
+; Schema: 0
+OpCapability Shader
+OpCapability Sampled1D
+OpCapability Image1D
+OpCapability StorageImageExtendedFormats
+OpCapability ImageQuery
+OpMemoryModel Logical Simple
+OpEntryPoint Fragment %1 "main"
+OpExecutionMode %1 OriginUpperLeft
+OpName %f1 "f1"
+OpName %vf12 "vf12"
+OpName %vf21 "vf21"
+OpName %vf123 "vf123"
+OpName %vf1234 "vf1234"
+OpName %u1 "u1"
+OpName %vu12 "vu12"
+OpName %vu123 "vu123"
+OpName %vu1234 "vu1234"
+OpName %i1 "i1"
+OpName %vi12 "vi12"
+OpName %vi123 "vi123"
+OpName %vi1234 "vi1234"
+OpName %coords1 "coords1"
+OpName %coords12 "coords12"
+OpName %coords123 "coords123"
+OpName %coords1234 "coords1234"
+OpName %offsets2d "offsets2d"
+OpName %u_offsets2d "u_offsets2d"
+OpDecorate %10 DescriptorSet 0
+OpDecorate %10 Binding 0
+OpDecorate %20 DescriptorSet 2
+OpDecorate %20 Binding 1
+OpDecorate %30 DescriptorSet 0
+OpDecorate %30 Binding 1
+%void = OpTypeVoid
+%24 = OpTypeFunction %void
+%float = OpTypeFloat 32
+%uint = OpTypeInt 32 0
+%int = OpTypeInt 32 1
+%int_0 = OpConstant %int 0
+%int_1 = OpConstant %int 1
+%int_2 = OpConstant %int 2
+%int_3 = OpConstant %int 3
+%int_4 = OpConstant %int 4
+%uint_0 = OpConstant %uint 0
+%uint_1 = OpConstant %uint 1
+%uint_2 = OpConstant %uint 2
+%uint_3 = OpConstant %uint 3
+%uint_4 = OpConstant %uint 4
+%uint_100 = OpConstant %uint 100
+%v2int = OpTypeVector %int 2
+%v3int = OpTypeVector %int 3
+%v4int = OpTypeVector %int 4
+%v2uint = OpTypeVector %uint 2
+%v3uint = OpTypeVector %uint 3
+%v4uint = OpTypeVector %uint 4
+%v2float = OpTypeVector %float 2
+%v3float = OpTypeVector %float 3
+%v4float = OpTypeVector %float 4
+%49 = OpConstantNull %float
+%float_0 = OpConstant %float 0
+%float_1 = OpConstant %float 1
+%float_2 = OpConstant %float 2
+%float_3 = OpConstant %float 3
+%float_4 = OpConstant %float 4
+%float_7 = OpConstant %float 7
+%56 = OpConstantNull %v2float
+%57 = OpConstantNull %v3float
+%58 = OpConstantNull %v4float
+%59 = OpConstantComposite %v2int %int_1 %int_2
+%60 = OpConstantComposite %v3int %int_1 %int_2 %int_3
+%61 = OpConstantComposite %v4int %int_1 %int_2 %int_3 %int_4
+%62 = OpConstantComposite %v2uint %uint_1 %uint_2
+%63 = OpConstantComposite %v3uint %uint_1 %uint_2 %uint_3
+%64 = OpConstantComposite %v4uint %uint_1 %uint_2 %uint_3 %uint_4
+%65 = OpConstantComposite %v2float %float_1 %float_2
+%66 = OpConstantComposite %v2float %float_2 %float_1
+%67 = OpConstantComposite %v3float %float_1 %float_2 %float_3
+%68 = OpConstantComposite %v4float %float_1 %float_2 %float_3 %float_4
+%float_0_200000003 = OpConstant %float 0.200000003
+%70 = OpTypeSampler
+%_ptr_UniformConstant_70 = OpTypePointer UniformConstant %70
+%72 = OpTypeImage %float Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_72 = OpTypePointer UniformConstant %72
+%74 = OpTypeSampledImage %72
+%10 = OpVariable %_ptr_UniformConstant_70 UniformConstant
+%20 = OpVariable %_ptr_UniformConstant_72 UniformConstant
+%30 = OpVariable %_ptr_UniformConstant_70 UniformConstant
+%offsets2d = OpConstantComposite %v2int %int_3 %int_4
+%u_offsets2d = OpConstantComposite %v2uint %uint_3 %uint_4
+%1 = OpFunction %void None %24
+%75 = OpLabel
+%f1 = OpCopyObject %float %float_1
+%vf12 = OpCopyObject %v2float %65
+%vf21 = OpCopyObject %v2float %66
+%vf123 = OpCopyObject %v3float %67
+%vf1234 = OpCopyObject %v4float %68
+%i1 = OpCopyObject %int %int_1
+%vi12 = OpCopyObject %v2int %59
+%vi123 = OpCopyObject %v3int %60
+%vi1234 = OpCopyObject %v4int %61
+%u1 = OpCopyObject %uint %uint_1
+%vu12 = OpCopyObject %v2uint %62
+%vu123 = OpCopyObject %v3uint %63
+%vu1234 = OpCopyObject %v4uint %64
+%coords1 = OpCopyObject %float %float_1
+%coords12 = OpCopyObject %v2float %vf12
+%coords123 = OpCopyObject %v3float %vf123
+%coords1234 = OpCopyObject %v4float %vf1234
+%76 = OpLoad %70 %10
+%77 = OpLoad %72 %20
+%78 = OpSampledImage %74 %77 %76
+%99 = OpImageQuerySizeLod %v3int %77 %i1
+OpReturn
+OpFunctionEnd
+
diff --git a/test/tint/unittest/reader/spirv/ImageQuerySizeLod_Arrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.glsl b/test/tint/unittest/reader/spirv/ImageQuerySizeLod_Arrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.glsl
new file mode 100644
index 0000000..8fef0c3
--- /dev/null
+++ b/test/tint/unittest/reader/spirv/ImageQuerySizeLod_Arrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.glsl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCubeArray x_20_1;
+void main_1() {
+  float f1 = 1.0f;
+  vec2 vf12 = vec2(1.0f, 2.0f);
+  vec2 vf21 = vec2(2.0f, 1.0f);
+  vec3 vf123 = vec3(1.0f, 2.0f, 3.0f);
+  vec4 vf1234 = vec4(1.0f, 2.0f, 3.0f, 4.0f);
+  int i1 = 1;
+  ivec2 vi12 = ivec2(1, 2);
+  ivec3 vi123 = ivec3(1, 2, 3);
+  ivec4 vi1234 = ivec4(1, 2, 3, 4);
+  uint u1 = 1u;
+  uvec2 vu12 = uvec2(1u, 2u);
+  uvec3 vu123 = uvec3(1u, 2u, 3u);
+  uvec4 vu1234 = uvec4(1u, 2u, 3u, 4u);
+  float coords1 = 1.0f;
+  vec2 coords12 = vf12;
+  vec3 coords123 = vf123;
+  vec4 coords1234 = vf1234;
+  ivec3 x_99 = ivec3(uvec3(uvec2(textureSize(x_20_1, i1).xy).xy, uint(textureSize(x_20_1, 0).z)));
+  return;
+}
+
+void tint_symbol() {
+  main_1();
+}
+
+void main() {
+  tint_symbol();
+  return;
+}
+Error parsing GLSL shader:
+ERROR: 0:4: 'samplerCubeArray' : Reserved word. 
+ERROR: 0:4: '' : compilation terminated 
+ERROR: 2 compilation errors.  No code generated.
+
+
+
diff --git a/test/tint/unittest/reader/spirv/ImageQuerySizeLod_Arrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm b/test/tint/unittest/reader/spirv/ImageQuerySizeLod_Arrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm
new file mode 100644
index 0000000..2c5e1c9
--- /dev/null
+++ b/test/tint/unittest/reader/spirv/ImageQuerySizeLod_Arrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm
@@ -0,0 +1,121 @@
+; Test: ImageQuerySizeLod_Arrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos SPIR-V Tools Assembler; 0
+; Bound: 100
+; Schema: 0
+OpCapability Shader
+OpCapability Sampled1D
+OpCapability Image1D
+OpCapability StorageImageExtendedFormats
+OpCapability ImageQuery
+OpMemoryModel Logical Simple
+OpEntryPoint Fragment %1 "main"
+OpExecutionMode %1 OriginUpperLeft
+OpName %f1 "f1"
+OpName %vf12 "vf12"
+OpName %vf21 "vf21"
+OpName %vf123 "vf123"
+OpName %vf1234 "vf1234"
+OpName %u1 "u1"
+OpName %vu12 "vu12"
+OpName %vu123 "vu123"
+OpName %vu1234 "vu1234"
+OpName %i1 "i1"
+OpName %vi12 "vi12"
+OpName %vi123 "vi123"
+OpName %vi1234 "vi1234"
+OpName %coords1 "coords1"
+OpName %coords12 "coords12"
+OpName %coords123 "coords123"
+OpName %coords1234 "coords1234"
+OpName %offsets2d "offsets2d"
+OpName %u_offsets2d "u_offsets2d"
+OpDecorate %10 DescriptorSet 0
+OpDecorate %10 Binding 0
+OpDecorate %20 DescriptorSet 2
+OpDecorate %20 Binding 1
+OpDecorate %30 DescriptorSet 0
+OpDecorate %30 Binding 1
+%void = OpTypeVoid
+%24 = OpTypeFunction %void
+%float = OpTypeFloat 32
+%uint = OpTypeInt 32 0
+%int = OpTypeInt 32 1
+%int_0 = OpConstant %int 0
+%int_1 = OpConstant %int 1
+%int_2 = OpConstant %int 2
+%int_3 = OpConstant %int 3
+%int_4 = OpConstant %int 4
+%uint_0 = OpConstant %uint 0
+%uint_1 = OpConstant %uint 1
+%uint_2 = OpConstant %uint 2
+%uint_3 = OpConstant %uint 3
+%uint_4 = OpConstant %uint 4
+%uint_100 = OpConstant %uint 100
+%v2int = OpTypeVector %int 2
+%v3int = OpTypeVector %int 3
+%v4int = OpTypeVector %int 4
+%v2uint = OpTypeVector %uint 2
+%v3uint = OpTypeVector %uint 3
+%v4uint = OpTypeVector %uint 4
+%v2float = OpTypeVector %float 2
+%v3float = OpTypeVector %float 3
+%v4float = OpTypeVector %float 4
+%49 = OpConstantNull %float
+%float_0 = OpConstant %float 0
+%float_1 = OpConstant %float 1
+%float_2 = OpConstant %float 2
+%float_3 = OpConstant %float 3
+%float_4 = OpConstant %float 4
+%float_7 = OpConstant %float 7
+%56 = OpConstantNull %v2float
+%57 = OpConstantNull %v3float
+%58 = OpConstantNull %v4float
+%59 = OpConstantComposite %v2int %int_1 %int_2
+%60 = OpConstantComposite %v3int %int_1 %int_2 %int_3
+%61 = OpConstantComposite %v4int %int_1 %int_2 %int_3 %int_4
+%62 = OpConstantComposite %v2uint %uint_1 %uint_2
+%63 = OpConstantComposite %v3uint %uint_1 %uint_2 %uint_3
+%64 = OpConstantComposite %v4uint %uint_1 %uint_2 %uint_3 %uint_4
+%65 = OpConstantComposite %v2float %float_1 %float_2
+%66 = OpConstantComposite %v2float %float_2 %float_1
+%67 = OpConstantComposite %v3float %float_1 %float_2 %float_3
+%68 = OpConstantComposite %v4float %float_1 %float_2 %float_3 %float_4
+%float_0_200000003 = OpConstant %float 0.200000003
+%70 = OpTypeSampler
+%_ptr_UniformConstant_70 = OpTypePointer UniformConstant %70
+%72 = OpTypeImage %float Cube 1 1 0 1 Unknown
+%_ptr_UniformConstant_72 = OpTypePointer UniformConstant %72
+%74 = OpTypeSampledImage %72
+%10 = OpVariable %_ptr_UniformConstant_70 UniformConstant
+%20 = OpVariable %_ptr_UniformConstant_72 UniformConstant
+%30 = OpVariable %_ptr_UniformConstant_70 UniformConstant
+%offsets2d = OpConstantComposite %v2int %int_3 %int_4
+%u_offsets2d = OpConstantComposite %v2uint %uint_3 %uint_4
+%1 = OpFunction %void None %24
+%75 = OpLabel
+%f1 = OpCopyObject %float %float_1
+%vf12 = OpCopyObject %v2float %65
+%vf21 = OpCopyObject %v2float %66
+%vf123 = OpCopyObject %v3float %67
+%vf1234 = OpCopyObject %v4float %68
+%i1 = OpCopyObject %int %int_1
+%vi12 = OpCopyObject %v2int %59
+%vi123 = OpCopyObject %v3int %60
+%vi1234 = OpCopyObject %v4int %61
+%u1 = OpCopyObject %uint %uint_1
+%vu12 = OpCopyObject %v2uint %62
+%vu123 = OpCopyObject %v3uint %63
+%vu1234 = OpCopyObject %v4uint %64
+%coords1 = OpCopyObject %float %float_1
+%coords12 = OpCopyObject %v2float %vf12
+%coords123 = OpCopyObject %v3float %vf123
+%coords1234 = OpCopyObject %v4float %vf1234
+%76 = OpLoad %70 %10
+%77 = OpLoad %72 %20
+%78 = OpSampledImage %74 %77 %76
+%99 = OpImageQuerySizeLod %v3int %77 %i1
+OpReturn
+OpFunctionEnd
+
diff --git a/test/tint/unittest/reader/spirv/ImageQuerySizeLod_Arrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.glsl b/test/tint/unittest/reader/spirv/ImageQuerySizeLod_Arrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.glsl
new file mode 100644
index 0000000..8fef0c3
--- /dev/null
+++ b/test/tint/unittest/reader/spirv/ImageQuerySizeLod_Arrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.glsl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCubeArray x_20_1;
+void main_1() {
+  float f1 = 1.0f;
+  vec2 vf12 = vec2(1.0f, 2.0f);
+  vec2 vf21 = vec2(2.0f, 1.0f);
+  vec3 vf123 = vec3(1.0f, 2.0f, 3.0f);
+  vec4 vf1234 = vec4(1.0f, 2.0f, 3.0f, 4.0f);
+  int i1 = 1;
+  ivec2 vi12 = ivec2(1, 2);
+  ivec3 vi123 = ivec3(1, 2, 3);
+  ivec4 vi1234 = ivec4(1, 2, 3, 4);
+  uint u1 = 1u;
+  uvec2 vu12 = uvec2(1u, 2u);
+  uvec3 vu123 = uvec3(1u, 2u, 3u);
+  uvec4 vu1234 = uvec4(1u, 2u, 3u, 4u);
+  float coords1 = 1.0f;
+  vec2 coords12 = vf12;
+  vec3 coords123 = vf123;
+  vec4 coords1234 = vf1234;
+  ivec3 x_99 = ivec3(uvec3(uvec2(textureSize(x_20_1, i1).xy).xy, uint(textureSize(x_20_1, 0).z)));
+  return;
+}
+
+void tint_symbol() {
+  main_1();
+}
+
+void main() {
+  tint_symbol();
+  return;
+}
+Error parsing GLSL shader:
+ERROR: 0:4: 'samplerCubeArray' : Reserved word. 
+ERROR: 0:4: '' : compilation terminated 
+ERROR: 2 compilation errors.  No code generated.
+
+
+