HLSL-IR: Fix texture Sample and SampleLevel return type on depth textures

HLSL's texture Sample and SampleLevel functions return a vector, and we
must swizzle the first component when sampling a depth texture.

Fixes 6 failing e2e tests.

Bug: 372746408
Change-Id: I9b4e63395386e7db54abfe640f24a85e95a0f803
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/210535
Reviewed-by: James Price <jrprice@google.com>
Commit-Queue: Antonio Maiorano <amaiorano@google.com>
diff --git a/src/tint/lang/hlsl/hlsl.def b/src/tint/lang/hlsl/hlsl.def
index f0f44ab..877bf52 100644
--- a/src/tint/lang/hlsl/hlsl.def
+++ b/src/tint/lang/hlsl/hlsl.def
@@ -623,24 +623,24 @@
                             coords: vec4<f32>) -> vec4<f32>
 @member_function fn Sample(texture: texture_depth_2d,
                            sampler: sampler,
-                            coords: vec2<f32>) -> f32
+                            coords: vec2<f32>) -> vec4<f32>
 @member_function fn Sample(texture: texture_depth_2d,
                            sampler: sampler,
                             coords: vec2<f32>,
-                            offset: vec2<i32>) -> f32
+                            offset: vec2<i32>) -> vec4<f32>
 @member_function fn Sample(texture: texture_depth_2d_array,
                            sampler: sampler,
-                            coords: vec3<f32>) -> f32
+                            coords: vec3<f32>) -> vec4<f32>
 @member_function fn Sample(texture: texture_depth_2d_array,
                            sampler: sampler,
                             coords: vec3<f32>,
-                            offset: vec2<i32>) -> f32
+                            offset: vec2<i32>) -> vec4<f32>
 @member_function fn Sample(texture: texture_depth_cube,
                            sampler: sampler,
-                            coords: vec3<f32>) -> f32
+                            coords: vec3<f32>) -> vec4<f32>
 @member_function fn Sample(texture: texture_depth_cube_array,
                            sampler: sampler,
-                            coords: vec4<f32>) -> f32
+                            coords: vec4<f32>) -> vec4<f32>
 
 @member_function fn SampleBias(texture: texture_2d<f32>,
                                sampler: sampler,
@@ -814,26 +814,26 @@
 @member_function fn SampleLevel(texture: texture_depth_2d,
                                 sampler: sampler,
                                  coords: vec2<f32>,
-                                  level: f32) -> f32
+                                  level: f32) -> vec4<f32>
 @member_function fn SampleLevel(texture: texture_depth_2d,
                                 sampler: sampler,
                                  coords: vec2<f32>,
                                  level: f32,
-                                 offset: vec2<i32>) -> f32
+                                 offset: vec2<i32>) -> vec4<f32>
 @member_function fn SampleLevel(texture: texture_depth_2d_array,
                                 sampler: sampler,
                                  coords: vec3<f32>,
-                                  level: f32) -> f32
+                                  level: f32) -> vec4<f32>
 @member_function fn SampleLevel(texture: texture_depth_2d_array,
                                 sampler: sampler,
                                  coords: vec3<f32>,
                                   level: f32,
-                                 offset: vec2<i32>) -> f32
+                                 offset: vec2<i32>) -> vec4<f32>
 @member_function fn SampleLevel(texture: texture_depth_cube,
                                 sampler: sampler,
                                  coords: vec3<f32>,
-                                  level: f32) -> f32
+                                  level: f32) -> vec4<f32>
 @member_function fn SampleLevel(texture: texture_depth_cube_array,
                                 sampler: sampler,
                                  coords: vec4<f32>,
-                                  level: f32) -> f32
+                                  level: f32) -> vec4<f32>
diff --git a/src/tint/lang/hlsl/intrinsic/data.cc b/src/tint/lang/hlsl/intrinsic/data.cc
index 042221a..a09c776 100644
--- a/src/tint/lang/hlsl/intrinsic/data.cc
+++ b/src/tint/lang/hlsl/intrinsic/data.cc
@@ -4241,7 +4241,7 @@
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(133),
-    /* return_matcher_indices */ MatcherIndicesIndex(2),
+    /* return_matcher_indices */ MatcherIndicesIndex(120),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -4252,7 +4252,7 @@
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(2),
+    /* return_matcher_indices */ MatcherIndicesIndex(120),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -4263,7 +4263,7 @@
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(138),
-    /* return_matcher_indices */ MatcherIndicesIndex(2),
+    /* return_matcher_indices */ MatcherIndicesIndex(120),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -4274,7 +4274,7 @@
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(163),
-    /* return_matcher_indices */ MatcherIndicesIndex(2),
+    /* return_matcher_indices */ MatcherIndicesIndex(120),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -4285,7 +4285,7 @@
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(251),
-    /* return_matcher_indices */ MatcherIndicesIndex(2),
+    /* return_matcher_indices */ MatcherIndicesIndex(120),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -4296,7 +4296,7 @@
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(255),
-    /* return_matcher_indices */ MatcherIndicesIndex(2),
+    /* return_matcher_indices */ MatcherIndicesIndex(120),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -4395,7 +4395,7 @@
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(133),
-    /* return_matcher_indices */ MatcherIndicesIndex(2),
+    /* return_matcher_indices */ MatcherIndicesIndex(120),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -4406,7 +4406,7 @@
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(133),
-    /* return_matcher_indices */ MatcherIndicesIndex(2),
+    /* return_matcher_indices */ MatcherIndicesIndex(120),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -4417,7 +4417,7 @@
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(138),
-    /* return_matcher_indices */ MatcherIndicesIndex(2),
+    /* return_matcher_indices */ MatcherIndicesIndex(120),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -4428,7 +4428,7 @@
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(138),
-    /* return_matcher_indices */ MatcherIndicesIndex(2),
+    /* return_matcher_indices */ MatcherIndicesIndex(120),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -4439,7 +4439,7 @@
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(251),
-    /* return_matcher_indices */ MatcherIndicesIndex(2),
+    /* return_matcher_indices */ MatcherIndicesIndex(120),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -4450,7 +4450,7 @@
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(255),
-    /* return_matcher_indices */ MatcherIndicesIndex(2),
+    /* return_matcher_indices */ MatcherIndicesIndex(120),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -4832,10 +4832,10 @@
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
     /* num_parameters */ 3,
     /* num_explicit_templates */ 0,
-    /* num_templates   */ 0,
-    /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(133),
-    /* return_matcher_indices */ MatcherIndicesIndex(120),
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(24),
+    /* parameters */ ParameterIndex(167),
+    /* return_matcher_indices */ MatcherIndicesIndex(124),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -4843,10 +4843,10 @@
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
     /* num_parameters */ 4,
     /* num_explicit_templates */ 0,
-    /* num_templates   */ 0,
-    /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(120),
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(24),
+    /* parameters */ ParameterIndex(167),
+    /* return_matcher_indices */ MatcherIndicesIndex(124),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -4854,10 +4854,10 @@
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
     /* num_parameters */ 3,
     /* num_explicit_templates */ 0,
-    /* num_templates   */ 0,
-    /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(138),
-    /* return_matcher_indices */ MatcherIndicesIndex(120),
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(24),
+    /* parameters */ ParameterIndex(171),
+    /* return_matcher_indices */ MatcherIndicesIndex(124),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -4865,10 +4865,10 @@
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
     /* num_parameters */ 4,
     /* num_explicit_templates */ 0,
-    /* num_templates   */ 0,
-    /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(163),
-    /* return_matcher_indices */ MatcherIndicesIndex(120),
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(24),
+    /* parameters */ ParameterIndex(171),
+    /* return_matcher_indices */ MatcherIndicesIndex(124),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -4876,72 +4876,6 @@
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
     /* num_parameters */ 3,
     /* num_explicit_templates */ 0,
-    /* num_templates   */ 0,
-    /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(251),
-    /* return_matcher_indices */ MatcherIndicesIndex(120),
-    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
-  },
-  {
-    /* [116] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
-    /* num_parameters */ 3,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 0,
-    /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(255),
-    /* return_matcher_indices */ MatcherIndicesIndex(120),
-    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
-  },
-  {
-    /* [117] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
-    /* num_parameters */ 3,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(24),
-    /* parameters */ ParameterIndex(167),
-    /* return_matcher_indices */ MatcherIndicesIndex(124),
-    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
-  },
-  {
-    /* [118] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
-    /* num_parameters */ 4,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(24),
-    /* parameters */ ParameterIndex(167),
-    /* return_matcher_indices */ MatcherIndicesIndex(124),
-    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
-  },
-  {
-    /* [119] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
-    /* num_parameters */ 3,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(24),
-    /* parameters */ ParameterIndex(171),
-    /* return_matcher_indices */ MatcherIndicesIndex(124),
-    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
-  },
-  {
-    /* [120] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
-    /* num_parameters */ 4,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(24),
-    /* parameters */ ParameterIndex(171),
-    /* return_matcher_indices */ MatcherIndicesIndex(124),
-    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
-  },
-  {
-    /* [121] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
-    /* num_parameters */ 3,
-    /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
     /* templates */ TemplateIndex(24),
     /* parameters */ ParameterIndex(334),
@@ -4949,7 +4883,7 @@
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
-    /* [122] */
+    /* [116] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
     /* num_parameters */ 3,
     /* num_explicit_templates */ 0,
@@ -4960,7 +4894,7 @@
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
-    /* [123] */
+    /* [117] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
     /* num_parameters */ 4,
     /* num_explicit_templates */ 0,
@@ -4971,7 +4905,7 @@
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
-    /* [124] */
+    /* [118] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
     /* num_parameters */ 5,
     /* num_explicit_templates */ 0,
@@ -4982,7 +4916,7 @@
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
-    /* [125] */
+    /* [119] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
     /* num_parameters */ 4,
     /* num_explicit_templates */ 0,
@@ -4993,7 +4927,7 @@
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
-    /* [126] */
+    /* [120] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
     /* num_parameters */ 5,
     /* num_explicit_templates */ 0,
@@ -5004,7 +4938,7 @@
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
-    /* [127] */
+    /* [121] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
     /* num_parameters */ 4,
     /* num_explicit_templates */ 0,
@@ -5015,7 +4949,7 @@
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
-    /* [128] */
+    /* [122] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
     /* num_parameters */ 4,
     /* num_explicit_templates */ 0,
@@ -5026,7 +4960,7 @@
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
-    /* [129] */
+    /* [123] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
@@ -5037,7 +4971,7 @@
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
-    /* [130] */
+    /* [124] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
@@ -5048,7 +4982,7 @@
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
-    /* [131] */
+    /* [125] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
@@ -5059,7 +4993,7 @@
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
-    /* [132] */
+    /* [126] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
@@ -5070,7 +5004,7 @@
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
-    /* [133] */
+    /* [127] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
@@ -5081,7 +5015,7 @@
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
-    /* [134] */
+    /* [128] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
@@ -5092,7 +5026,7 @@
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
-    /* [135] */
+    /* [129] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
@@ -5103,7 +5037,7 @@
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
-    /* [136] */
+    /* [130] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
@@ -5114,7 +5048,7 @@
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
-    /* [137] */
+    /* [131] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
@@ -5125,7 +5059,7 @@
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
-    /* [138] */
+    /* [132] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
@@ -5136,7 +5070,7 @@
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
-    /* [139] */
+    /* [133] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
@@ -5147,7 +5081,7 @@
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
-    /* [140] */
+    /* [134] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
@@ -5158,7 +5092,7 @@
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
-    /* [141] */
+    /* [135] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
@@ -5169,7 +5103,7 @@
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
-    /* [142] */
+    /* [136] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
     /* num_parameters */ 4,
     /* num_explicit_templates */ 0,
@@ -5180,7 +5114,7 @@
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
-    /* [143] */
+    /* [137] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
     /* num_parameters */ 5,
     /* num_explicit_templates */ 0,
@@ -5191,7 +5125,7 @@
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
-    /* [144] */
+    /* [138] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
     /* num_parameters */ 3,
     /* num_explicit_templates */ 0,
@@ -5202,7 +5136,7 @@
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
-    /* [145] */
+    /* [139] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
     /* num_parameters */ 4,
     /* num_explicit_templates */ 0,
@@ -5213,7 +5147,7 @@
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
-    /* [146] */
+    /* [140] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
@@ -5224,7 +5158,7 @@
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
-    /* [147] */
+    /* [141] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
@@ -5235,7 +5169,7 @@
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
-    /* [148] */
+    /* [142] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
@@ -5246,7 +5180,7 @@
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
-    /* [149] */
+    /* [143] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
@@ -5257,7 +5191,7 @@
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
-    /* [150] */
+    /* [144] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
@@ -5268,7 +5202,7 @@
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
-    /* [151] */
+    /* [145] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
@@ -5279,7 +5213,7 @@
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
-    /* [152] */
+    /* [146] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
     /* num_parameters */ 3,
     /* num_explicit_templates */ 0,
@@ -5290,7 +5224,7 @@
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
-    /* [153] */
+    /* [147] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
     /* num_parameters */ 3,
     /* num_explicit_templates */ 0,
@@ -5301,7 +5235,7 @@
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
-    /* [154] */
+    /* [148] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
@@ -5312,7 +5246,7 @@
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
-    /* [155] */
+    /* [149] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
@@ -5323,7 +5257,7 @@
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
-    /* [156] */
+    /* [150] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
@@ -5334,7 +5268,7 @@
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
-    /* [157] */
+    /* [151] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
@@ -5345,7 +5279,7 @@
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
-    /* [158] */
+    /* [152] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
     /* num_parameters */ 0,
     /* num_explicit_templates */ 0,
@@ -5356,7 +5290,7 @@
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
-    /* [159] */
+    /* [153] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
@@ -5367,7 +5301,7 @@
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
-    /* [160] */
+    /* [154] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
@@ -5378,7 +5312,7 @@
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
-    /* [161] */
+    /* [155] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
@@ -5389,7 +5323,7 @@
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
-    /* [162] */
+    /* [156] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
@@ -5400,7 +5334,7 @@
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
-    /* [163] */
+    /* [157] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
@@ -5411,7 +5345,7 @@
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
-    /* [164] */
+    /* [158] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
@@ -5422,7 +5356,7 @@
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
-    /* [165] */
+    /* [159] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
@@ -5433,7 +5367,7 @@
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
-    /* [166] */
+    /* [160] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
     /* num_parameters */ 3,
     /* num_explicit_templates */ 0,
@@ -5444,7 +5378,7 @@
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
-    /* [167] */
+    /* [161] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
     /* num_parameters */ 3,
     /* num_explicit_templates */ 0,
@@ -5455,7 +5389,7 @@
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
-    /* [168] */
+    /* [162] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
     /* num_parameters */ 3,
     /* num_explicit_templates */ 0,
@@ -5466,7 +5400,7 @@
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
-    /* [169] */
+    /* [163] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
     /* num_parameters */ 3,
     /* num_explicit_templates */ 0,
@@ -5477,7 +5411,7 @@
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
-    /* [170] */
+    /* [164] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
     /* num_parameters */ 3,
     /* num_explicit_templates */ 0,
@@ -5488,7 +5422,7 @@
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
-    /* [171] */
+    /* [165] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
     /* num_parameters */ 3,
     /* num_explicit_templates */ 0,
@@ -5499,7 +5433,7 @@
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
-    /* [172] */
+    /* [166] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
     /* num_parameters */ 3,
     /* num_explicit_templates */ 0,
@@ -5510,7 +5444,7 @@
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
-    /* [173] */
+    /* [167] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
     /* num_parameters */ 3,
     /* num_explicit_templates */ 0,
@@ -5531,103 +5465,103 @@
     /* fn asint[T : f32_u32](T) -> i32 */
     /* fn asint[T : f32_u32, N : num](vec<N, T>) -> vec<N, i32> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(132),
+    /* overloads */ OverloadIndex(126),
   },
   {
     /* [1] */
     /* fn asuint[T : f32_i32](T) -> u32 */
     /* fn asuint[T : f32_i32, N : num](vec<N, T>) -> vec<N, u32> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(134),
+    /* overloads */ OverloadIndex(128),
   },
   {
     /* [2] */
     /* fn asfloat[T : iu32](T) -> f32 */
     /* fn asfloat[T : iu32, N : num](vec<N, T>) -> vec<N, f32> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(136),
+    /* overloads */ OverloadIndex(130),
   },
   {
     /* [3] */
     /* fn dot4add_i8packed(u32, u32, ptr<function, i32, writable>) -> i32 */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(152),
+    /* overloads */ OverloadIndex(146),
   },
   {
     /* [4] */
     /* fn dot4add_u8packed(u32, u32, ptr<function, u32, writable>) -> u32 */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(153),
+    /* overloads */ OverloadIndex(147),
   },
   {
     /* [5] */
     /* fn f32tof16(f32) -> u32 */
     /* fn f32tof16[N : num](vec<N, f32>) -> vec<N, u32> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(138),
+    /* overloads */ OverloadIndex(132),
   },
   {
     /* [6] */
     /* fn f16tof32(u32) -> f32 */
     /* fn f16tof32[N : num](vec<N, u32>) -> vec<N, f32> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(140),
+    /* overloads */ OverloadIndex(134),
   },
   {
     /* [7] */
     /* fn InterlockedCompareExchange[T : iu32](ptr<workgroup, atomic<T>, read_write>, compare_value: iu32, value: iu32, original_value: ptr<function, iu32, read_write>) */
     /* fn InterlockedCompareExchange(byte_address_buffer<read_write>, offset: iu32, compare_value: iu32, value: iu32, original_value: ptr<function, iu32, read_write>) */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(142),
+    /* overloads */ OverloadIndex(136),
   },
   {
     /* [8] */
     /* fn InterlockedExchange[T : iu32](ptr<workgroup, atomic<T>, read_write>, value: iu32, original_value: ptr<function, iu32, read_write>) */
     /* fn InterlockedExchange(byte_address_buffer<readable>, offset: iu32, value: iu32, original_value: ptr<function, iu32, read_write>) */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(144),
+    /* overloads */ OverloadIndex(138),
   },
   {
     /* [9] */
     /* fn InterlockedAdd[T : iu32](ptr<workgroup, atomic<T>, read_write>, value: iu32, original_value: ptr<function, iu32, read_write>) */
     /* fn InterlockedAdd(byte_address_buffer<readable>, offset: iu32, value: iu32, original_value: ptr<function, iu32, read_write>) */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(144),
+    /* overloads */ OverloadIndex(138),
   },
   {
     /* [10] */
     /* fn InterlockedMax[T : iu32](ptr<workgroup, atomic<T>, read_write>, value: iu32, original_value: ptr<function, iu32, read_write>) */
     /* fn InterlockedMax(byte_address_buffer<readable>, offset: iu32, value: iu32, original_value: ptr<function, iu32, read_write>) */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(144),
+    /* overloads */ OverloadIndex(138),
   },
   {
     /* [11] */
     /* fn InterlockedMin[T : iu32](ptr<workgroup, atomic<T>, read_write>, value: iu32, original_value: ptr<function, iu32, read_write>) */
     /* fn InterlockedMin(byte_address_buffer<readable>, offset: iu32, value: iu32, original_value: ptr<function, iu32, read_write>) */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(144),
+    /* overloads */ OverloadIndex(138),
   },
   {
     /* [12] */
     /* fn InterlockedAnd[T : iu32](ptr<workgroup, atomic<T>, read_write>, value: iu32, original_value: ptr<function, iu32, read_write>) */
     /* fn InterlockedAnd(byte_address_buffer<readable>, offset: iu32, value: iu32, original_value: ptr<function, iu32, read_write>) */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(144),
+    /* overloads */ OverloadIndex(138),
   },
   {
     /* [13] */
     /* fn InterlockedOr[T : iu32](ptr<workgroup, atomic<T>, read_write>, value: iu32, original_value: ptr<function, iu32, read_write>) */
     /* fn InterlockedOr(byte_address_buffer<readable>, offset: iu32, value: iu32, original_value: ptr<function, iu32, read_write>) */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(144),
+    /* overloads */ OverloadIndex(138),
   },
   {
     /* [14] */
     /* fn InterlockedXor[T : iu32](ptr<workgroup, atomic<T>, read_write>, value: iu32, original_value: ptr<function, iu32, read_write>) */
     /* fn InterlockedXor(byte_address_buffer<readable>, offset: iu32, value: iu32, original_value: ptr<function, iu32, read_write>) */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(144),
+    /* overloads */ OverloadIndex(138),
   },
   {
     /* [15] */
@@ -5635,32 +5569,32 @@
     /* fn mul[T : f32_f16, C : num, R : num](vec<R, T>, mat<R, C, T>) -> vec<C, T> */
     /* fn mul[T : f32_f16, K : num, C : num, R : num](mat<R, K, T>, mat<K, C, T>) -> mat<R, C, T> */
     /* num overloads */ 3,
-    /* overloads */ OverloadIndex(129),
+    /* overloads */ OverloadIndex(123),
   },
   {
     /* [16] */
     /* fn pack_u8(vec4<u32>) -> uint8_t4_packed */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(154),
+    /* overloads */ OverloadIndex(148),
   },
   {
     /* [17] */
     /* fn pack_s8(vec4<i32>) -> int8_t4_packed */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(155),
+    /* overloads */ OverloadIndex(149),
   },
   {
     /* [18] */
     /* fn pack_clamp_s8(vec4<i32>) -> int8_t4_packed */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(155),
+    /* overloads */ OverloadIndex(149),
   },
   {
     /* [19] */
     /* fn sign[T : fi32_f16](T) -> i32 */
     /* fn sign[N : num, T : fi32_f16](vec<N, T>) -> vec<N, i32> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(146),
+    /* overloads */ OverloadIndex(140),
   },
   {
     /* [20] */
@@ -5683,46 +5617,46 @@
     /* [21] */
     /* fn unpack_s8s32(int8_t4_packed) -> vec4<i32> */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(156),
+    /* overloads */ OverloadIndex(150),
   },
   {
     /* [22] */
     /* fn unpack_u8u32(uint8_t4_packed) -> vec4<u32> */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(157),
+    /* overloads */ OverloadIndex(151),
   },
   {
     /* [23] */
     /* fn WaveGetLaneIndex() -> u32 */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(158),
+    /* overloads */ OverloadIndex(152),
   },
   {
     /* [24] */
     /* fn WaveGetLaneCount() -> u32 */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(158),
+    /* overloads */ OverloadIndex(152),
   },
   {
     /* [25] */
     /* fn WaveReadLaneAt[T : fiu32_f16](T, u32) -> T */
     /* fn WaveReadLaneAt[N : num, T : fiu32_f16](vec<N, T>, u32) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(148),
+    /* overloads */ OverloadIndex(142),
   },
   {
     /* [26] */
     /* fn modf[T : f32_f16](T, T) -> T */
     /* fn modf[N : num, T : f32_f16](vec<N, T>, vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(150),
+    /* overloads */ OverloadIndex(144),
   },
   {
     /* [27] */
     /* fn frexp[T : f32_f16](T, T) -> T */
     /* fn frexp[N : num, T : f32_f16](vec<N, T>, vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(150),
+    /* overloads */ OverloadIndex(144),
   },
   {
     /* [28] */
@@ -5754,91 +5688,91 @@
     /* [29] */
     /* fn Load2(byte_address_buffer<readable>, offset: u32) -> vec2<u32> */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(159),
+    /* overloads */ OverloadIndex(153),
   },
   {
     /* [30] */
     /* fn Load3(byte_address_buffer<readable>, offset: u32) -> vec3<u32> */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(160),
+    /* overloads */ OverloadIndex(154),
   },
   {
     /* [31] */
     /* fn Load4(byte_address_buffer<readable>, offset: u32) -> vec4<u32> */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(161),
+    /* overloads */ OverloadIndex(155),
   },
   {
     /* [32] */
     /* fn LoadF16(byte_address_buffer<readable>, offset: u32) -> f16 */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(162),
+    /* overloads */ OverloadIndex(156),
   },
   {
     /* [33] */
     /* fn Load2F16(byte_address_buffer<readable>, offset: u32) -> vec2<f16> */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(163),
+    /* overloads */ OverloadIndex(157),
   },
   {
     /* [34] */
     /* fn Load3F16(byte_address_buffer<readable>, offset: u32) -> vec3<f16> */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(164),
+    /* overloads */ OverloadIndex(158),
   },
   {
     /* [35] */
     /* fn Load4F16(byte_address_buffer<readable>, offset: u32) -> vec4<f16> */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(165),
+    /* overloads */ OverloadIndex(159),
   },
   {
     /* [36] */
     /* fn Store(byte_address_buffer<writable>, offset: u32, value: u32) */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(166),
+    /* overloads */ OverloadIndex(160),
   },
   {
     /* [37] */
     /* fn Store2(byte_address_buffer<writable>, offset: u32, value: vec2<u32>) */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(167),
+    /* overloads */ OverloadIndex(161),
   },
   {
     /* [38] */
     /* fn Store3(byte_address_buffer<writable>, offset: u32, value: vec3<u32>) */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(168),
+    /* overloads */ OverloadIndex(162),
   },
   {
     /* [39] */
     /* fn Store4(byte_address_buffer<writable>, offset: u32, value: vec4<u32>) */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(169),
+    /* overloads */ OverloadIndex(163),
   },
   {
     /* [40] */
     /* fn StoreF16(byte_address_buffer<writable>, offset: u32, value: f16) */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(170),
+    /* overloads */ OverloadIndex(164),
   },
   {
     /* [41] */
     /* fn Store2F16(byte_address_buffer<writable>, offset: u32, value: vec2<f16>) */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(171),
+    /* overloads */ OverloadIndex(165),
   },
   {
     /* [42] */
     /* fn Store3F16(byte_address_buffer<writable>, offset: u32, value: vec3<f16>) */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(172),
+    /* overloads */ OverloadIndex(166),
   },
   {
     /* [43] */
     /* fn Store4F16(byte_address_buffer<writable>, offset: u32, value: vec4<f16>) */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(173),
+    /* overloads */ OverloadIndex(167),
   },
   {
     /* [44] */
@@ -5860,7 +5794,7 @@
     /* fn Gather(texture: texture_depth_cube, sampler: sampler, coords: vec3<f32>) -> vec4<f32> */
     /* fn Gather(texture: texture_depth_cube_array, sampler: sampler, coords: vec4<f32>) -> vec4<f32> */
     /* num overloads */ 6,
-    /* overloads */ OverloadIndex(111),
+    /* overloads */ OverloadIndex(57),
   },
   {
     /* [46] */
@@ -5871,7 +5805,7 @@
     /* fn GatherAlpha[T : fiu32](texture: texture_cube<T>, sampler: sampler, coords: vec3<f32>) -> vec4<T> */
     /* fn GatherAlpha[T : fiu32](texture: texture_cube_array<T>, sampler: sampler, coords: vec4<f32>) -> vec4<T> */
     /* num overloads */ 6,
-    /* overloads */ OverloadIndex(117),
+    /* overloads */ OverloadIndex(111),
   },
   {
     /* [47] */
@@ -5882,7 +5816,7 @@
     /* fn GatherBlue[T : fiu32](texture: texture_cube<T>, sampler: sampler, coords: vec3<f32>) -> vec4<T> */
     /* fn GatherBlue[T : fiu32](texture: texture_cube_array<T>, sampler: sampler, coords: vec4<f32>) -> vec4<T> */
     /* num overloads */ 6,
-    /* overloads */ OverloadIndex(117),
+    /* overloads */ OverloadIndex(111),
   },
   {
     /* [48] */
@@ -5893,7 +5827,7 @@
     /* fn GatherGreen[T : fiu32](texture: texture_cube<T>, sampler: sampler, coords: vec3<f32>) -> vec4<T> */
     /* fn GatherGreen[T : fiu32](texture: texture_cube_array<T>, sampler: sampler, coords: vec4<f32>) -> vec4<T> */
     /* num overloads */ 6,
-    /* overloads */ OverloadIndex(117),
+    /* overloads */ OverloadIndex(111),
   },
   {
     /* [49] */
@@ -5904,7 +5838,7 @@
     /* fn GatherRed[T : fiu32](texture: texture_cube<T>, sampler: sampler, coords: vec3<f32>) -> vec4<T> */
     /* fn GatherRed[T : fiu32](texture: texture_cube_array<T>, sampler: sampler, coords: vec4<f32>) -> vec4<T> */
     /* num overloads */ 6,
-    /* overloads */ OverloadIndex(117),
+    /* overloads */ OverloadIndex(111),
   },
   {
     /* [50] */
@@ -5949,12 +5883,12 @@
     /* fn Sample(texture: texture_3d<f32>, sampler: sampler, coords: vec3<f32>, offset: vec3<i32>) -> vec4<f32> */
     /* fn Sample(texture: texture_cube<f32>, sampler: sampler, coords: vec3<f32>) -> vec4<f32> */
     /* fn Sample(texture: texture_cube_array<f32>, sampler: sampler, coords: vec4<f32>) -> vec4<f32> */
-    /* fn Sample(texture: texture_depth_2d, sampler: sampler, coords: vec2<f32>) -> f32 */
-    /* fn Sample(texture: texture_depth_2d, sampler: sampler, coords: vec2<f32>, offset: vec2<i32>) -> f32 */
-    /* fn Sample(texture: texture_depth_2d_array, sampler: sampler, coords: vec3<f32>) -> f32 */
-    /* fn Sample(texture: texture_depth_2d_array, sampler: sampler, coords: vec3<f32>, offset: vec2<i32>) -> f32 */
-    /* fn Sample(texture: texture_depth_cube, sampler: sampler, coords: vec3<f32>) -> f32 */
-    /* fn Sample(texture: texture_depth_cube_array, sampler: sampler, coords: vec4<f32>) -> f32 */
+    /* fn Sample(texture: texture_depth_2d, sampler: sampler, coords: vec2<f32>) -> vec4<f32> */
+    /* fn Sample(texture: texture_depth_2d, sampler: sampler, coords: vec2<f32>, offset: vec2<i32>) -> vec4<f32> */
+    /* fn Sample(texture: texture_depth_2d_array, sampler: sampler, coords: vec3<f32>) -> vec4<f32> */
+    /* fn Sample(texture: texture_depth_2d_array, sampler: sampler, coords: vec3<f32>, offset: vec2<i32>) -> vec4<f32> */
+    /* fn Sample(texture: texture_depth_cube, sampler: sampler, coords: vec3<f32>) -> vec4<f32> */
+    /* fn Sample(texture: texture_depth_cube_array, sampler: sampler, coords: vec4<f32>) -> vec4<f32> */
     /* num overloads */ 15,
     /* overloads */ OverloadIndex(48),
   },
@@ -5980,7 +5914,7 @@
     /* fn SampleCmp(texture: texture_depth_cube, sampler: sampler_comparison, coords: vec3<f32>, value: f32) -> f32 */
     /* fn SampleCmp(texture: texture_depth_cube_array, sampler: sampler_comparison, coords: vec4<f32>, value: f32) -> f32 */
     /* num overloads */ 6,
-    /* overloads */ OverloadIndex(123),
+    /* overloads */ OverloadIndex(117),
   },
   {
     /* [54] */
@@ -5991,7 +5925,7 @@
     /* fn SampleCmpLevelZero(texture: texture_depth_cube, sampler: sampler_comparison, coords: vec3<f32>, value: f32) -> f32 */
     /* fn SampleCmpLevelZero(texture: texture_depth_cube_array, sampler: sampler_comparison, coords: vec4<f32>, value: f32) -> f32 */
     /* num overloads */ 6,
-    /* overloads */ OverloadIndex(123),
+    /* overloads */ OverloadIndex(117),
   },
   {
     /* [55] */
@@ -6016,12 +5950,12 @@
     /* fn SampleLevel(texture: texture_3d<f32>, sampler: sampler, coords: vec3<f32>, level: f32, offset: vec3<i32>) -> vec4<f32> */
     /* fn SampleLevel(texture: texture_cube<f32>, sampler: sampler, coords: vec3<f32>, level: f32) -> vec4<f32> */
     /* fn SampleLevel(texture: texture_cube_array<f32>, sampler: sampler, coords: vec4<f32>, level: f32) -> vec4<f32> */
-    /* fn SampleLevel(texture: texture_depth_2d, sampler: sampler, coords: vec2<f32>, level: f32) -> f32 */
-    /* fn SampleLevel(texture: texture_depth_2d, sampler: sampler, coords: vec2<f32>, level: f32, offset: vec2<i32>) -> f32 */
-    /* fn SampleLevel(texture: texture_depth_2d_array, sampler: sampler, coords: vec3<f32>, level: f32) -> f32 */
-    /* fn SampleLevel(texture: texture_depth_2d_array, sampler: sampler, coords: vec3<f32>, level: f32, offset: vec2<i32>) -> f32 */
-    /* fn SampleLevel(texture: texture_depth_cube, sampler: sampler, coords: vec3<f32>, level: f32) -> f32 */
-    /* fn SampleLevel(texture: texture_depth_cube_array, sampler: sampler, coords: vec4<f32>, level: f32) -> f32 */
+    /* fn SampleLevel(texture: texture_depth_2d, sampler: sampler, coords: vec2<f32>, level: f32) -> vec4<f32> */
+    /* fn SampleLevel(texture: texture_depth_2d, sampler: sampler, coords: vec2<f32>, level: f32, offset: vec2<i32>) -> vec4<f32> */
+    /* fn SampleLevel(texture: texture_depth_2d_array, sampler: sampler, coords: vec3<f32>, level: f32) -> vec4<f32> */
+    /* fn SampleLevel(texture: texture_depth_2d_array, sampler: sampler, coords: vec3<f32>, level: f32, offset: vec2<i32>) -> vec4<f32> */
+    /* fn SampleLevel(texture: texture_depth_cube, sampler: sampler, coords: vec3<f32>, level: f32) -> vec4<f32> */
+    /* fn SampleLevel(texture: texture_depth_cube_array, sampler: sampler, coords: vec4<f32>, level: f32) -> vec4<f32> */
     /* num overloads */ 14,
     /* overloads */ OverloadIndex(63),
   },
diff --git a/src/tint/lang/hlsl/writer/builtin_test.cc b/src/tint/lang/hlsl/writer/builtin_test.cc
index f6d8609..71e10ed 100644
--- a/src/tint/lang/hlsl/writer/builtin_test.cc
+++ b/src/tint/lang/hlsl/writer/builtin_test.cc
@@ -3816,7 +3816,7 @@
 Texture2D v : register(t0);
 SamplerState v_1 : register(s1);
 void foo() {
-  float x = v.Sample(v_1, float2(1.0f, 2.0f));
+  float x = v.Sample(v_1, float2(1.0f, 2.0f)).x;
 }
 
 )");
@@ -3851,7 +3851,7 @@
 Texture2D v : register(t0);
 SamplerState v_1 : register(s1);
 void foo() {
-  float x = v.Sample(v_1, float2(1.0f, 2.0f), int2(int(4), int(5)));
+  float x = v.Sample(v_1, float2(1.0f, 2.0f), int2(int(4), int(5))).x;
 }
 
 )");
@@ -3887,7 +3887,7 @@
 SamplerState v_1 : register(s1);
 void foo() {
   float2 v_2 = float2(1.0f, 2.0f);
-  float x = v.Sample(v_1, float3(v_2, float(4u)));
+  float x = v.Sample(v_1, float3(v_2, float(4u))).x;
 }
 
 )");
@@ -3924,7 +3924,7 @@
 SamplerState v_1 : register(s1);
 void foo() {
   float2 v_2 = float2(1.0f, 2.0f);
-  float x = v.Sample(v_1, float3(v_2, float(4u)), int2(int(4), int(5)));
+  float x = v.Sample(v_1, float3(v_2, float(4u)), int2(int(4), int(5))).x;
 }
 
 )");
@@ -3960,7 +3960,7 @@
 SamplerState v_1 : register(s1);
 void foo() {
   float3 v_2 = float3(1.0f, 2.0f, 3.0f);
-  float x = v.Sample(v_1, float4(v_2, float(4u)));
+  float x = v.Sample(v_1, float4(v_2, float(4u))).x;
 }
 
 )");
@@ -4289,7 +4289,7 @@
 SamplerState v_1 : register(s1);
 void foo() {
   float2 v_2 = float2(1.0f, 2.0f);
-  float x = v.SampleLevel(v_1, v_2, float(int(3)));
+  float x = v.SampleLevel(v_1, v_2, float(int(3))).x;
 }
 
 )");
@@ -4325,7 +4325,7 @@
 SamplerState v_1 : register(s1);
 void foo() {
   float2 v_2 = float2(1.0f, 2.0f);
-  float x = v.SampleLevel(v_1, v_2, float(int(3)), int2(int(4), int(5)));
+  float x = v.SampleLevel(v_1, v_2, float(int(3)), int2(int(4), int(5))).x;
 }
 
 )");
@@ -4362,7 +4362,7 @@
 void foo() {
   float2 v_2 = float2(1.0f, 2.0f);
   float3 v_3 = float3(v_2, float(4u));
-  float x = v.SampleLevel(v_1, v_3, float(3u));
+  float x = v.SampleLevel(v_1, v_3, float(3u)).x;
 }
 
 )");
@@ -4401,7 +4401,7 @@
 void foo() {
   float2 v_2 = float2(1.0f, 2.0f);
   float3 v_3 = float3(v_2, float(4u));
-  float x = v.SampleLevel(v_1, v_3, float(int(3)), int2(int(4), int(5)));
+  float x = v.SampleLevel(v_1, v_3, float(int(3)), int2(int(4), int(5))).x;
 }
 
 )");
@@ -4438,7 +4438,7 @@
 void foo() {
   float3 v_2 = float3(1.0f, 2.0f, 3.0f);
   float4 v_3 = float4(v_2, float(4u));
-  float x = v.SampleLevel(v_1, v_3, float(3u));
+  float x = v.SampleLevel(v_1, v_3, float(3u)).x;
 }
 
 )");
diff --git a/src/tint/lang/hlsl/writer/raise/builtin_polyfill.cc b/src/tint/lang/hlsl/writer/raise/builtin_polyfill.cc
index ac6b7a6..a8fc4b3 100644
--- a/src/tint/lang/hlsl/writer/raise/builtin_polyfill.cc
+++ b/src/tint/lang/hlsl/writer/raise/builtin_polyfill.cc
@@ -1262,8 +1262,14 @@
                     TINT_UNREACHABLE();
             }
 
-            b.MemberCallWithResult<hlsl::ir::MemberBuiltinCall>(
-                call->DetachResult(), hlsl::BuiltinFn::kSample, tex, params);
+            core::ir::Instruction* result = b.MemberCall<hlsl::ir::MemberBuiltinCall>(
+                ty.vec4<f32>(), hlsl::BuiltinFn::kSample, tex, params);
+            if (tex_type->Is<core::type::DepthTexture>()) {
+                // Swizzle x from vec4 result for depth textures
+                TINT_ASSERT(call->Result(0)->Type()->Is<core::type::F32>());
+                result = b.Swizzle(ty.f32(), result, {0});
+            }
+            result->SetResults(Vector{call->DetachResult()});
         });
         call->Destroy();
     }
@@ -1488,8 +1494,14 @@
                     TINT_UNREACHABLE();
             }
 
-            b.MemberCallWithResult<hlsl::ir::MemberBuiltinCall>(
-                call->DetachResult(), hlsl::BuiltinFn::kSampleLevel, tex, params);
+            core::ir::Instruction* result = b.MemberCall<hlsl::ir::MemberBuiltinCall>(
+                ty.vec4<f32>(), hlsl::BuiltinFn::kSampleLevel, tex, params);
+            if (tex_type->Is<core::type::DepthTexture>()) {
+                // Swizzle x from vec4 result for depth textures
+                TINT_ASSERT(call->Result(0)->Type()->Is<core::type::F32>());
+                result = b.Swizzle(ty.f32(), result, {0});
+            }
+            result->SetResults(Vector{call->DetachResult()});
         });
         call->Destroy();
     }
diff --git a/src/tint/lang/hlsl/writer/raise/builtin_polyfill_test.cc b/src/tint/lang/hlsl/writer/raise/builtin_polyfill_test.cc
index 036db8a..1006c1a 100644
--- a/src/tint/lang/hlsl/writer/raise/builtin_polyfill_test.cc
+++ b/src/tint/lang/hlsl/writer/raise/builtin_polyfill_test.cc
@@ -2706,8 +2706,9 @@
     %4:vec2<f32> = construct 1.0f, 2.0f
     %5:texture_depth_2d = load %1
     %6:sampler = load %2
-    %7:f32 = %5.Sample %6, %4
-    %x:f32 = let %7
+    %7:vec4<f32> = %5.Sample %6, %4
+    %8:f32 = swizzle %7, x
+    %x:f32 = let %8
     ret
   }
 }
@@ -2770,8 +2771,9 @@
     %4:vec2<f32> = construct 1.0f, 2.0f
     %5:texture_depth_2d = load %1
     %6:sampler = load %2
-    %7:f32 = %5.Sample %6, %4, vec2<i32>(4i, 5i)
-    %x:f32 = let %7
+    %7:vec4<f32> = %5.Sample %6, %4, vec2<i32>(4i, 5i)
+    %8:f32 = swizzle %7, x
+    %x:f32 = let %8
     ret
   }
 }
@@ -2836,8 +2838,9 @@
     %6:sampler = load %2
     %7:f32 = convert 4u
     %8:vec3<f32> = construct %4, %7
-    %9:f32 = %5.Sample %6, %8
-    %x:f32 = let %9
+    %9:vec4<f32> = %5.Sample %6, %8
+    %10:f32 = swizzle %9, x
+    %x:f32 = let %10
     ret
   }
 }
@@ -2903,8 +2906,9 @@
     %6:sampler = load %2
     %7:f32 = convert 4u
     %8:vec3<f32> = construct %4, %7
-    %9:f32 = %5.Sample %6, %8, vec2<i32>(4i, 5i)
-    %x:f32 = let %9
+    %9:vec4<f32> = %5.Sample %6, %8, vec2<i32>(4i, 5i)
+    %10:f32 = swizzle %9, x
+    %x:f32 = let %10
     ret
   }
 }
@@ -2969,8 +2973,9 @@
     %6:sampler = load %2
     %7:f32 = convert 4u
     %8:vec4<f32> = construct %4, %7
-    %9:f32 = %5.Sample %6, %8
-    %x:f32 = let %9
+    %9:vec4<f32> = %5.Sample %6, %8
+    %10:f32 = swizzle %9, x
+    %x:f32 = let %10
     ret
   }
 }
@@ -5437,8 +5442,9 @@
     %5:texture_depth_2d = load %1
     %6:sampler = load %2
     %7:f32 = convert 3i
-    %8:f32 = %5.SampleLevel %6, %4, %7
-    %x:f32 = let %8
+    %8:vec4<f32> = %5.SampleLevel %6, %4, %7
+    %9:f32 = swizzle %8, x
+    %x:f32 = let %9
     ret
   }
 }
@@ -5502,8 +5508,9 @@
     %5:texture_depth_2d = load %1
     %6:sampler = load %2
     %7:f32 = convert 3u
-    %8:f32 = %5.SampleLevel %6, %4, %7, vec2<i32>(4i, 5i)
-    %x:f32 = let %8
+    %8:vec4<f32> = %5.SampleLevel %6, %4, %7, vec2<i32>(4i, 5i)
+    %9:f32 = swizzle %8, x
+    %x:f32 = let %9
     ret
   }
 }
@@ -5569,8 +5576,9 @@
     %7:f32 = convert 4u
     %8:vec3<f32> = construct %4, %7
     %9:f32 = convert 3i
-    %10:f32 = %5.SampleLevel %6, %8, %9
-    %x:f32 = let %10
+    %10:vec4<f32> = %5.SampleLevel %6, %8, %9
+    %11:f32 = swizzle %10, x
+    %x:f32 = let %11
     ret
   }
 }
@@ -5638,8 +5646,9 @@
     %7:f32 = convert 4u
     %8:vec3<f32> = construct %4, %7
     %9:f32 = convert 3u
-    %10:f32 = %5.SampleLevel %6, %8, %9, vec2<i32>(4i, 5i)
-    %x:f32 = let %10
+    %10:vec4<f32> = %5.SampleLevel %6, %8, %9, vec2<i32>(4i, 5i)
+    %11:f32 = swizzle %10, x
+    %x:f32 = let %11
     ret
   }
 }
@@ -5705,8 +5714,9 @@
     %7:f32 = convert 4u
     %8:vec4<f32> = construct %4, %7
     %9:f32 = convert 3i
-    %10:f32 = %5.SampleLevel %6, %8, %9
-    %x:f32 = let %10
+    %10:vec4<f32> = %5.SampleLevel %6, %8, %9
+    %11:f32 = swizzle %10, x
+    %x:f32 = let %11
     ret
   }
 }
diff --git a/test/tint/bug/tint/978.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/978.wgsl.expected.ir.dxc.hlsl
index da591b7..38aa326 100644
--- a/test/tint/bug/tint/978.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/978.wgsl.expected.ir.dxc.hlsl
@@ -18,7 +18,7 @@
 Texture2D depthMap : register(t5, space1);
 SamplerState texSampler : register(s3, space1);
 FragmentOutput main_inner(FragmentInput fIn) {
-  float tint_symbol = depthMap.Sample(texSampler, fIn.vUv);
+  float tint_symbol = depthMap.Sample(texSampler, fIn.vUv).x;
   float3 color = float3(tint_symbol, tint_symbol, tint_symbol);
   FragmentOutput fOut = (FragmentOutput)0;
   fOut.color = float4(color, 1.0f);
diff --git a/test/tint/bug/tint/978.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/978.wgsl.expected.ir.fxc.hlsl
index da591b7..38aa326 100644
--- a/test/tint/bug/tint/978.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/978.wgsl.expected.ir.fxc.hlsl
@@ -18,7 +18,7 @@
 Texture2D depthMap : register(t5, space1);
 SamplerState texSampler : register(s3, space1);
 FragmentOutput main_inner(FragmentInput fIn) {
-  float tint_symbol = depthMap.Sample(texSampler, fIn.vUv);
+  float tint_symbol = depthMap.Sample(texSampler, fIn.vUv).x;
   float3 color = float3(tint_symbol, tint_symbol, tint_symbol);
   FragmentOutput fOut = (FragmentOutput)0;
   fOut.color = float4(color, 1.0f);
diff --git a/test/tint/builtins/gen/literal/textureSample/0dff6c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSample/0dff6c.wgsl.expected.ir.dxc.hlsl
index 3e90d35..110bca2 100644
--- a/test/tint/builtins/gen/literal/textureSample/0dff6c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/0dff6c.wgsl.expected.ir.dxc.hlsl
@@ -3,7 +3,7 @@
 Texture2D arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 float textureSample_0dff6c() {
-  float res = arg_0.Sample(arg_1, (1.0f).xx, (int(1)).xx);
+  float res = arg_0.Sample(arg_1, (1.0f).xx, (int(1)).xx).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureSample/0dff6c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSample/0dff6c.wgsl.expected.ir.fxc.hlsl
index 3e90d35..110bca2 100644
--- a/test/tint/builtins/gen/literal/textureSample/0dff6c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/0dff6c.wgsl.expected.ir.fxc.hlsl
@@ -3,7 +3,7 @@
 Texture2D arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 float textureSample_0dff6c() {
-  float res = arg_0.Sample(arg_1, (1.0f).xx, (int(1)).xx);
+  float res = arg_0.Sample(arg_1, (1.0f).xx, (int(1)).xx).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureSample/1a4e1b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSample/1a4e1b.wgsl.expected.ir.dxc.hlsl
index c699117..f37847c 100644
--- a/test/tint/builtins/gen/literal/textureSample/1a4e1b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/1a4e1b.wgsl.expected.ir.dxc.hlsl
@@ -3,7 +3,7 @@
 Texture2DArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 float textureSample_1a4e1b() {
-  float res = arg_0.Sample(arg_1, float3((1.0f).xx, float(1u)));
+  float res = arg_0.Sample(arg_1, float3((1.0f).xx, float(1u))).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureSample/1a4e1b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSample/1a4e1b.wgsl.expected.ir.fxc.hlsl
index c699117..f37847c 100644
--- a/test/tint/builtins/gen/literal/textureSample/1a4e1b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/1a4e1b.wgsl.expected.ir.fxc.hlsl
@@ -3,7 +3,7 @@
 Texture2DArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 float textureSample_1a4e1b() {
-  float res = arg_0.Sample(arg_1, float3((1.0f).xx, float(1u)));
+  float res = arg_0.Sample(arg_1, float3((1.0f).xx, float(1u))).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureSample/38bbb9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSample/38bbb9.wgsl.expected.ir.dxc.hlsl
index e738eee..a2fc5bb 100644
--- a/test/tint/builtins/gen/literal/textureSample/38bbb9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/38bbb9.wgsl.expected.ir.dxc.hlsl
@@ -3,7 +3,7 @@
 Texture2D arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 float textureSample_38bbb9() {
-  float res = arg_0.Sample(arg_1, (1.0f).xx);
+  float res = arg_0.Sample(arg_1, (1.0f).xx).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureSample/38bbb9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSample/38bbb9.wgsl.expected.ir.fxc.hlsl
index e738eee..a2fc5bb 100644
--- a/test/tint/builtins/gen/literal/textureSample/38bbb9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/38bbb9.wgsl.expected.ir.fxc.hlsl
@@ -3,7 +3,7 @@
 Texture2D arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 float textureSample_38bbb9() {
-  float res = arg_0.Sample(arg_1, (1.0f).xx);
+  float res = arg_0.Sample(arg_1, (1.0f).xx).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureSample/4703d0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSample/4703d0.wgsl.expected.ir.dxc.hlsl
index 7bc2d98..f7e9f45 100644
--- a/test/tint/builtins/gen/literal/textureSample/4703d0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/4703d0.wgsl.expected.ir.dxc.hlsl
@@ -3,7 +3,7 @@
 Texture2DArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 float textureSample_4703d0() {
-  float res = arg_0.Sample(arg_1, float3((1.0f).xx, float(1u)), (int(1)).xx);
+  float res = arg_0.Sample(arg_1, float3((1.0f).xx, float(1u)), (int(1)).xx).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureSample/4703d0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSample/4703d0.wgsl.expected.ir.fxc.hlsl
index 7bc2d98..f7e9f45 100644
--- a/test/tint/builtins/gen/literal/textureSample/4703d0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/4703d0.wgsl.expected.ir.fxc.hlsl
@@ -3,7 +3,7 @@
 Texture2DArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 float textureSample_4703d0() {
-  float res = arg_0.Sample(arg_1, float3((1.0f).xx, float(1u)), (int(1)).xx);
+  float res = arg_0.Sample(arg_1, float3((1.0f).xx, float(1u)), (int(1)).xx).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureSample/60bf45.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSample/60bf45.wgsl.expected.ir.dxc.hlsl
index 21c9afa..0078aef 100644
--- a/test/tint/builtins/gen/literal/textureSample/60bf45.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/60bf45.wgsl.expected.ir.dxc.hlsl
@@ -3,7 +3,7 @@
 Texture2DArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 float textureSample_60bf45() {
-  float res = arg_0.Sample(arg_1, float3((1.0f).xx, float(int(1))), (int(1)).xx);
+  float res = arg_0.Sample(arg_1, float3((1.0f).xx, float(int(1))), (int(1)).xx).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureSample/60bf45.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSample/60bf45.wgsl.expected.ir.fxc.hlsl
index 21c9afa..0078aef 100644
--- a/test/tint/builtins/gen/literal/textureSample/60bf45.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/60bf45.wgsl.expected.ir.fxc.hlsl
@@ -3,7 +3,7 @@
 Texture2DArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 float textureSample_60bf45() {
-  float res = arg_0.Sample(arg_1, float3((1.0f).xx, float(int(1))), (int(1)).xx);
+  float res = arg_0.Sample(arg_1, float3((1.0f).xx, float(int(1))), (int(1)).xx).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureSample/7e9ffd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSample/7e9ffd.wgsl.expected.ir.dxc.hlsl
index f45e457..e330688 100644
--- a/test/tint/builtins/gen/literal/textureSample/7e9ffd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/7e9ffd.wgsl.expected.ir.dxc.hlsl
@@ -3,7 +3,7 @@
 Texture2DArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 float textureSample_7e9ffd() {
-  float res = arg_0.Sample(arg_1, float3((1.0f).xx, float(int(1))));
+  float res = arg_0.Sample(arg_1, float3((1.0f).xx, float(int(1)))).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureSample/7e9ffd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSample/7e9ffd.wgsl.expected.ir.fxc.hlsl
index f45e457..e330688 100644
--- a/test/tint/builtins/gen/literal/textureSample/7e9ffd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/7e9ffd.wgsl.expected.ir.fxc.hlsl
@@ -3,7 +3,7 @@
 Texture2DArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 float textureSample_7e9ffd() {
-  float res = arg_0.Sample(arg_1, float3((1.0f).xx, float(int(1))));
+  float res = arg_0.Sample(arg_1, float3((1.0f).xx, float(int(1)))).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureSample/7fd8cb.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSample/7fd8cb.wgsl.expected.ir.dxc.hlsl
index cb5a2b0..39ed674 100644
--- a/test/tint/builtins/gen/literal/textureSample/7fd8cb.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/7fd8cb.wgsl.expected.ir.dxc.hlsl
@@ -3,7 +3,7 @@
 TextureCubeArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 float textureSample_7fd8cb() {
-  float res = arg_0.Sample(arg_1, float4((1.0f).xxx, float(1u)));
+  float res = arg_0.Sample(arg_1, float4((1.0f).xxx, float(1u))).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureSample/7fd8cb.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSample/7fd8cb.wgsl.expected.ir.fxc.hlsl
index cb5a2b0..39ed674 100644
--- a/test/tint/builtins/gen/literal/textureSample/7fd8cb.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/7fd8cb.wgsl.expected.ir.fxc.hlsl
@@ -3,7 +3,7 @@
 TextureCubeArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 float textureSample_7fd8cb() {
-  float res = arg_0.Sample(arg_1, float4((1.0f).xxx, float(1u)));
+  float res = arg_0.Sample(arg_1, float4((1.0f).xxx, float(1u))).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureSample/c2f4e8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSample/c2f4e8.wgsl.expected.ir.dxc.hlsl
index 45fef82..a80fe56 100644
--- a/test/tint/builtins/gen/literal/textureSample/c2f4e8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/c2f4e8.wgsl.expected.ir.dxc.hlsl
@@ -3,7 +3,7 @@
 TextureCubeArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 float textureSample_c2f4e8() {
-  float res = arg_0.Sample(arg_1, float4((1.0f).xxx, float(int(1))));
+  float res = arg_0.Sample(arg_1, float4((1.0f).xxx, float(int(1)))).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureSample/c2f4e8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSample/c2f4e8.wgsl.expected.ir.fxc.hlsl
index 45fef82..a80fe56 100644
--- a/test/tint/builtins/gen/literal/textureSample/c2f4e8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/c2f4e8.wgsl.expected.ir.fxc.hlsl
@@ -3,7 +3,7 @@
 TextureCubeArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 float textureSample_c2f4e8() {
-  float res = arg_0.Sample(arg_1, float4((1.0f).xxx, float(int(1))));
+  float res = arg_0.Sample(arg_1, float4((1.0f).xxx, float(int(1)))).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureSample/ea7030.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSample/ea7030.wgsl.expected.ir.dxc.hlsl
index f014bde..5df084c 100644
--- a/test/tint/builtins/gen/literal/textureSample/ea7030.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/ea7030.wgsl.expected.ir.dxc.hlsl
@@ -3,7 +3,7 @@
 TextureCube arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 float textureSample_ea7030() {
-  float res = arg_0.Sample(arg_1, (1.0f).xxx);
+  float res = arg_0.Sample(arg_1, (1.0f).xxx).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureSample/ea7030.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSample/ea7030.wgsl.expected.ir.fxc.hlsl
index f014bde..5df084c 100644
--- a/test/tint/builtins/gen/literal/textureSample/ea7030.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/ea7030.wgsl.expected.ir.fxc.hlsl
@@ -3,7 +3,7 @@
 TextureCube arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 float textureSample_ea7030() {
-  float res = arg_0.Sample(arg_1, (1.0f).xxx);
+  float res = arg_0.Sample(arg_1, (1.0f).xxx).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/02be59.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/02be59.wgsl.expected.ir.dxc.hlsl
index 69ff5cb..01d92b9 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/02be59.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/02be59.wgsl.expected.ir.dxc.hlsl
@@ -13,7 +13,7 @@
 Texture2D arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 float textureSampleLevel_02be59() {
-  float res = arg_0.SampleLevel(arg_1, (1.0f).xx, float(int(1)));
+  float res = arg_0.SampleLevel(arg_1, (1.0f).xx, float(int(1))).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/02be59.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/02be59.wgsl.expected.ir.fxc.hlsl
index 69ff5cb..01d92b9 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/02be59.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/02be59.wgsl.expected.ir.fxc.hlsl
@@ -13,7 +13,7 @@
 Texture2D arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 float textureSampleLevel_02be59() {
-  float res = arg_0.SampleLevel(arg_1, (1.0f).xx, float(int(1)));
+  float res = arg_0.SampleLevel(arg_1, (1.0f).xx, float(int(1))).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/1b0291.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/1b0291.wgsl.expected.ir.dxc.hlsl
index ab94714..0834d55 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/1b0291.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/1b0291.wgsl.expected.ir.dxc.hlsl
@@ -13,7 +13,7 @@
 TextureCube arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 float textureSampleLevel_1b0291() {
-  float res = arg_0.SampleLevel(arg_1, (1.0f).xxx, float(int(1)));
+  float res = arg_0.SampleLevel(arg_1, (1.0f).xxx, float(int(1))).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/1b0291.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/1b0291.wgsl.expected.ir.fxc.hlsl
index ab94714..0834d55 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/1b0291.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/1b0291.wgsl.expected.ir.fxc.hlsl
@@ -13,7 +13,7 @@
 TextureCube arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 float textureSampleLevel_1b0291() {
-  float res = arg_0.SampleLevel(arg_1, (1.0f).xxx, float(int(1)));
+  float res = arg_0.SampleLevel(arg_1, (1.0f).xxx, float(int(1))).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/1bf73e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/1bf73e.wgsl.expected.ir.dxc.hlsl
index 98eaa44..fe17bd9 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/1bf73e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/1bf73e.wgsl.expected.ir.dxc.hlsl
@@ -14,7 +14,7 @@
 SamplerState arg_1 : register(s1, space1);
 float textureSampleLevel_1bf73e() {
   float3 v = float3((1.0f).xx, float(int(1)));
-  float res = arg_0.SampleLevel(arg_1, v, float(int(1)));
+  float res = arg_0.SampleLevel(arg_1, v, float(int(1))).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/1bf73e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/1bf73e.wgsl.expected.ir.fxc.hlsl
index 98eaa44..fe17bd9 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/1bf73e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/1bf73e.wgsl.expected.ir.fxc.hlsl
@@ -14,7 +14,7 @@
 SamplerState arg_1 : register(s1, space1);
 float textureSampleLevel_1bf73e() {
   float3 v = float3((1.0f).xx, float(int(1)));
-  float res = arg_0.SampleLevel(arg_1, v, float(int(1)));
+  float res = arg_0.SampleLevel(arg_1, v, float(int(1))).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/2974eb.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/2974eb.wgsl.expected.ir.dxc.hlsl
index 57e3ef5..e446dee 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/2974eb.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/2974eb.wgsl.expected.ir.dxc.hlsl
@@ -14,7 +14,7 @@
 SamplerState arg_1 : register(s1, space1);
 float textureSampleLevel_2974eb() {
   float3 v = float3((1.0f).xx, float(int(1)));
-  float res = arg_0.SampleLevel(arg_1, v, float(1u));
+  float res = arg_0.SampleLevel(arg_1, v, float(1u)).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/2974eb.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/2974eb.wgsl.expected.ir.fxc.hlsl
index 57e3ef5..e446dee 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/2974eb.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/2974eb.wgsl.expected.ir.fxc.hlsl
@@ -14,7 +14,7 @@
 SamplerState arg_1 : register(s1, space1);
 float textureSampleLevel_2974eb() {
   float3 v = float3((1.0f).xx, float(int(1)));
-  float res = arg_0.SampleLevel(arg_1, v, float(1u));
+  float res = arg_0.SampleLevel(arg_1, v, float(1u)).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/36780e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/36780e.wgsl.expected.ir.dxc.hlsl
index a9eb83b..7aaa756 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/36780e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/36780e.wgsl.expected.ir.dxc.hlsl
@@ -14,7 +14,7 @@
 SamplerState arg_1 : register(s1, space1);
 float textureSampleLevel_36780e() {
   float3 v = float3((1.0f).xx, float(int(1)));
-  float res = arg_0.SampleLevel(arg_1, v, float(int(1)), (int(1)).xx);
+  float res = arg_0.SampleLevel(arg_1, v, float(int(1)), (int(1)).xx).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/36780e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/36780e.wgsl.expected.ir.fxc.hlsl
index a9eb83b..7aaa756 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/36780e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/36780e.wgsl.expected.ir.fxc.hlsl
@@ -14,7 +14,7 @@
 SamplerState arg_1 : register(s1, space1);
 float textureSampleLevel_36780e() {
   float3 v = float3((1.0f).xx, float(int(1)));
-  float res = arg_0.SampleLevel(arg_1, v, float(int(1)), (int(1)).xx);
+  float res = arg_0.SampleLevel(arg_1, v, float(int(1)), (int(1)).xx).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/36f0d3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/36f0d3.wgsl.expected.ir.dxc.hlsl
index 4d80354..a88c527 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/36f0d3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/36f0d3.wgsl.expected.ir.dxc.hlsl
@@ -14,7 +14,7 @@
 SamplerState arg_1 : register(s1, space1);
 float textureSampleLevel_36f0d3() {
   float3 v = float3((1.0f).xx, float(int(1)));
-  float res = arg_0.SampleLevel(arg_1, v, float(1u), (int(1)).xx);
+  float res = arg_0.SampleLevel(arg_1, v, float(1u), (int(1)).xx).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/36f0d3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/36f0d3.wgsl.expected.ir.fxc.hlsl
index 4d80354..a88c527 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/36f0d3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/36f0d3.wgsl.expected.ir.fxc.hlsl
@@ -14,7 +14,7 @@
 SamplerState arg_1 : register(s1, space1);
 float textureSampleLevel_36f0d3() {
   float3 v = float3((1.0f).xx, float(int(1)));
-  float res = arg_0.SampleLevel(arg_1, v, float(1u), (int(1)).xx);
+  float res = arg_0.SampleLevel(arg_1, v, float(1u), (int(1)).xx).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/3c3442.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/3c3442.wgsl.expected.ir.dxc.hlsl
index 80cf221..89ba701 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/3c3442.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/3c3442.wgsl.expected.ir.dxc.hlsl
@@ -14,7 +14,7 @@
 SamplerState arg_1 : register(s1, space1);
 float textureSampleLevel_3c3442() {
   float3 v = float3((1.0f).xx, float(1u));
-  float res = arg_0.SampleLevel(arg_1, v, float(int(1)));
+  float res = arg_0.SampleLevel(arg_1, v, float(int(1))).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/3c3442.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/3c3442.wgsl.expected.ir.fxc.hlsl
index 80cf221..89ba701 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/3c3442.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/3c3442.wgsl.expected.ir.fxc.hlsl
@@ -14,7 +14,7 @@
 SamplerState arg_1 : register(s1, space1);
 float textureSampleLevel_3c3442() {
   float3 v = float3((1.0f).xx, float(1u));
-  float res = arg_0.SampleLevel(arg_1, v, float(int(1)));
+  float res = arg_0.SampleLevel(arg_1, v, float(int(1))).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/615583.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/615583.wgsl.expected.ir.dxc.hlsl
index 34272d3..35c472d 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/615583.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/615583.wgsl.expected.ir.dxc.hlsl
@@ -14,7 +14,7 @@
 SamplerState arg_1 : register(s1, space1);
 float textureSampleLevel_615583() {
   float3 v = float3((1.0f).xx, float(1u));
-  float res = arg_0.SampleLevel(arg_1, v, float(1u));
+  float res = arg_0.SampleLevel(arg_1, v, float(1u)).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/615583.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/615583.wgsl.expected.ir.fxc.hlsl
index 34272d3..35c472d 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/615583.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/615583.wgsl.expected.ir.fxc.hlsl
@@ -14,7 +14,7 @@
 SamplerState arg_1 : register(s1, space1);
 float textureSampleLevel_615583() {
   float3 v = float3((1.0f).xx, float(1u));
-  float res = arg_0.SampleLevel(arg_1, v, float(1u));
+  float res = arg_0.SampleLevel(arg_1, v, float(1u)).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/73e892.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/73e892.wgsl.expected.ir.dxc.hlsl
index ac40070..a712801 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/73e892.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/73e892.wgsl.expected.ir.dxc.hlsl
@@ -13,7 +13,7 @@
 Texture2D arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 float textureSampleLevel_73e892() {
-  float res = arg_0.SampleLevel(arg_1, (1.0f).xx, float(1u));
+  float res = arg_0.SampleLevel(arg_1, (1.0f).xx, float(1u)).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/73e892.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/73e892.wgsl.expected.ir.fxc.hlsl
index ac40070..a712801 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/73e892.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/73e892.wgsl.expected.ir.fxc.hlsl
@@ -13,7 +13,7 @@
 Texture2D arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 float textureSampleLevel_73e892() {
-  float res = arg_0.SampleLevel(arg_1, (1.0f).xx, float(1u));
+  float res = arg_0.SampleLevel(arg_1, (1.0f).xx, float(1u)).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/749baf.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/749baf.wgsl.expected.ir.dxc.hlsl
index f383d9a..0453e38 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/749baf.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/749baf.wgsl.expected.ir.dxc.hlsl
@@ -13,7 +13,7 @@
 Texture2D arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 float textureSampleLevel_749baf() {
-  float res = arg_0.SampleLevel(arg_1, (1.0f).xx, float(int(1)), (int(1)).xx);
+  float res = arg_0.SampleLevel(arg_1, (1.0f).xx, float(int(1)), (int(1)).xx).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/749baf.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/749baf.wgsl.expected.ir.fxc.hlsl
index f383d9a..0453e38 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/749baf.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/749baf.wgsl.expected.ir.fxc.hlsl
@@ -13,7 +13,7 @@
 Texture2D arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 float textureSampleLevel_749baf() {
-  float res = arg_0.SampleLevel(arg_1, (1.0f).xx, float(int(1)), (int(1)).xx);
+  float res = arg_0.SampleLevel(arg_1, (1.0f).xx, float(int(1)), (int(1)).xx).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/941a53.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/941a53.wgsl.expected.ir.dxc.hlsl
index f5dd164..e53489c 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/941a53.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/941a53.wgsl.expected.ir.dxc.hlsl
@@ -14,7 +14,7 @@
 SamplerState arg_1 : register(s1, space1);
 float textureSampleLevel_941a53() {
   float4 v = float4((1.0f).xxx, float(1u));
-  float res = arg_0.SampleLevel(arg_1, v, float(1u));
+  float res = arg_0.SampleLevel(arg_1, v, float(1u)).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/941a53.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/941a53.wgsl.expected.ir.fxc.hlsl
index f5dd164..e53489c 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/941a53.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/941a53.wgsl.expected.ir.fxc.hlsl
@@ -14,7 +14,7 @@
 SamplerState arg_1 : register(s1, space1);
 float textureSampleLevel_941a53() {
   float4 v = float4((1.0f).xxx, float(1u));
-  float res = arg_0.SampleLevel(arg_1, v, float(1u));
+  float res = arg_0.SampleLevel(arg_1, v, float(1u)).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/a12142.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/a12142.wgsl.expected.ir.dxc.hlsl
index 892e68b..fb57bfd 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/a12142.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/a12142.wgsl.expected.ir.dxc.hlsl
@@ -14,7 +14,7 @@
 SamplerState arg_1 : register(s1, space1);
 float textureSampleLevel_a12142() {
   float4 v = float4((1.0f).xxx, float(int(1)));
-  float res = arg_0.SampleLevel(arg_1, v, float(1u));
+  float res = arg_0.SampleLevel(arg_1, v, float(1u)).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/a12142.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/a12142.wgsl.expected.ir.fxc.hlsl
index 892e68b..fb57bfd 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/a12142.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/a12142.wgsl.expected.ir.fxc.hlsl
@@ -14,7 +14,7 @@
 SamplerState arg_1 : register(s1, space1);
 float textureSampleLevel_a12142() {
   float4 v = float4((1.0f).xxx, float(int(1)));
-  float res = arg_0.SampleLevel(arg_1, v, float(1u));
+  float res = arg_0.SampleLevel(arg_1, v, float(1u)).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/ae5e39.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/ae5e39.wgsl.expected.ir.dxc.hlsl
index 95ef5e0..63f2916 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/ae5e39.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/ae5e39.wgsl.expected.ir.dxc.hlsl
@@ -14,7 +14,7 @@
 SamplerState arg_1 : register(s1, space1);
 float textureSampleLevel_ae5e39() {
   float4 v = float4((1.0f).xxx, float(int(1)));
-  float res = arg_0.SampleLevel(arg_1, v, float(int(1)));
+  float res = arg_0.SampleLevel(arg_1, v, float(int(1))).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/ae5e39.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/ae5e39.wgsl.expected.ir.fxc.hlsl
index 95ef5e0..63f2916 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/ae5e39.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/ae5e39.wgsl.expected.ir.fxc.hlsl
@@ -14,7 +14,7 @@
 SamplerState arg_1 : register(s1, space1);
 float textureSampleLevel_ae5e39() {
   float4 v = float4((1.0f).xxx, float(int(1)));
-  float res = arg_0.SampleLevel(arg_1, v, float(int(1)));
+  float res = arg_0.SampleLevel(arg_1, v, float(int(1))).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/ae92a2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/ae92a2.wgsl.expected.ir.dxc.hlsl
index 7164062..725aecf 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/ae92a2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/ae92a2.wgsl.expected.ir.dxc.hlsl
@@ -13,7 +13,7 @@
 TextureCube arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 float textureSampleLevel_ae92a2() {
-  float res = arg_0.SampleLevel(arg_1, (1.0f).xxx, float(1u));
+  float res = arg_0.SampleLevel(arg_1, (1.0f).xxx, float(1u)).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/ae92a2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/ae92a2.wgsl.expected.ir.fxc.hlsl
index 7164062..725aecf 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/ae92a2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/ae92a2.wgsl.expected.ir.fxc.hlsl
@@ -13,7 +13,7 @@
 TextureCube arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 float textureSampleLevel_ae92a2() {
-  float res = arg_0.SampleLevel(arg_1, (1.0f).xxx, float(1u));
+  float res = arg_0.SampleLevel(arg_1, (1.0f).xxx, float(1u)).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/cdfe0f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/cdfe0f.wgsl.expected.ir.dxc.hlsl
index a3aa219..b778b3a 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/cdfe0f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/cdfe0f.wgsl.expected.ir.dxc.hlsl
@@ -14,7 +14,7 @@
 SamplerState arg_1 : register(s1, space1);
 float textureSampleLevel_cdfe0f() {
   float3 v = float3((1.0f).xx, float(1u));
-  float res = arg_0.SampleLevel(arg_1, v, float(1u), (int(1)).xx);
+  float res = arg_0.SampleLevel(arg_1, v, float(1u), (int(1)).xx).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/cdfe0f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/cdfe0f.wgsl.expected.ir.fxc.hlsl
index a3aa219..b778b3a 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/cdfe0f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/cdfe0f.wgsl.expected.ir.fxc.hlsl
@@ -14,7 +14,7 @@
 SamplerState arg_1 : register(s1, space1);
 float textureSampleLevel_cdfe0f() {
   float3 v = float3((1.0f).xx, float(1u));
-  float res = arg_0.SampleLevel(arg_1, v, float(1u), (int(1)).xx);
+  float res = arg_0.SampleLevel(arg_1, v, float(1u), (int(1)).xx).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/e6ce9e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/e6ce9e.wgsl.expected.ir.dxc.hlsl
index 2aac8f7..11e7319 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/e6ce9e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/e6ce9e.wgsl.expected.ir.dxc.hlsl
@@ -14,7 +14,7 @@
 SamplerState arg_1 : register(s1, space1);
 float textureSampleLevel_e6ce9e() {
   float3 v = float3((1.0f).xx, float(1u));
-  float res = arg_0.SampleLevel(arg_1, v, float(int(1)), (int(1)).xx);
+  float res = arg_0.SampleLevel(arg_1, v, float(int(1)), (int(1)).xx).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/e6ce9e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/e6ce9e.wgsl.expected.ir.fxc.hlsl
index 2aac8f7..11e7319 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/e6ce9e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/e6ce9e.wgsl.expected.ir.fxc.hlsl
@@ -14,7 +14,7 @@
 SamplerState arg_1 : register(s1, space1);
 float textureSampleLevel_e6ce9e() {
   float3 v = float3((1.0f).xx, float(1u));
-  float res = arg_0.SampleLevel(arg_1, v, float(int(1)), (int(1)).xx);
+  float res = arg_0.SampleLevel(arg_1, v, float(int(1)), (int(1)).xx).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/f3b2c8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/f3b2c8.wgsl.expected.ir.dxc.hlsl
index 3a45661..aa10271 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/f3b2c8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/f3b2c8.wgsl.expected.ir.dxc.hlsl
@@ -13,7 +13,7 @@
 Texture2D arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 float textureSampleLevel_f3b2c8() {
-  float res = arg_0.SampleLevel(arg_1, (1.0f).xx, float(1u), (int(1)).xx);
+  float res = arg_0.SampleLevel(arg_1, (1.0f).xx, float(1u), (int(1)).xx).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/f3b2c8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/f3b2c8.wgsl.expected.ir.fxc.hlsl
index 3a45661..aa10271 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/f3b2c8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/f3b2c8.wgsl.expected.ir.fxc.hlsl
@@ -13,7 +13,7 @@
 Texture2D arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 float textureSampleLevel_f3b2c8() {
-  float res = arg_0.SampleLevel(arg_1, (1.0f).xx, float(1u), (int(1)).xx);
+  float res = arg_0.SampleLevel(arg_1, (1.0f).xx, float(1u), (int(1)).xx).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/ff11bc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/ff11bc.wgsl.expected.ir.dxc.hlsl
index 38ece8b..5178246 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/ff11bc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/ff11bc.wgsl.expected.ir.dxc.hlsl
@@ -14,7 +14,7 @@
 SamplerState arg_1 : register(s1, space1);
 float textureSampleLevel_ff11bc() {
   float4 v = float4((1.0f).xxx, float(1u));
-  float res = arg_0.SampleLevel(arg_1, v, float(int(1)));
+  float res = arg_0.SampleLevel(arg_1, v, float(int(1))).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/ff11bc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/ff11bc.wgsl.expected.ir.fxc.hlsl
index 38ece8b..5178246 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/ff11bc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/ff11bc.wgsl.expected.ir.fxc.hlsl
@@ -14,7 +14,7 @@
 SamplerState arg_1 : register(s1, space1);
 float textureSampleLevel_ff11bc() {
   float4 v = float4((1.0f).xxx, float(1u));
-  float res = arg_0.SampleLevel(arg_1, v, float(int(1)));
+  float res = arg_0.SampleLevel(arg_1, v, float(int(1))).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/var/textureSample/0dff6c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSample/0dff6c.wgsl.expected.ir.dxc.hlsl
index 3c410ca..ebdc3ba 100644
--- a/test/tint/builtins/gen/var/textureSample/0dff6c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/0dff6c.wgsl.expected.ir.dxc.hlsl
@@ -4,7 +4,7 @@
 SamplerState arg_1 : register(s1, space1);
 float textureSample_0dff6c() {
   float2 arg_2 = (1.0f).xx;
-  float res = arg_0.Sample(arg_1, arg_2, (int(1)).xx);
+  float res = arg_0.Sample(arg_1, arg_2, (int(1)).xx).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/var/textureSample/0dff6c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSample/0dff6c.wgsl.expected.ir.fxc.hlsl
index 3c410ca..ebdc3ba 100644
--- a/test/tint/builtins/gen/var/textureSample/0dff6c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/0dff6c.wgsl.expected.ir.fxc.hlsl
@@ -4,7 +4,7 @@
 SamplerState arg_1 : register(s1, space1);
 float textureSample_0dff6c() {
   float2 arg_2 = (1.0f).xx;
-  float res = arg_0.Sample(arg_1, arg_2, (int(1)).xx);
+  float res = arg_0.Sample(arg_1, arg_2, (int(1)).xx).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/var/textureSample/1a4e1b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSample/1a4e1b.wgsl.expected.ir.dxc.hlsl
index 460aae3..053fca6 100644
--- a/test/tint/builtins/gen/var/textureSample/1a4e1b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/1a4e1b.wgsl.expected.ir.dxc.hlsl
@@ -6,7 +6,7 @@
   float2 arg_2 = (1.0f).xx;
   uint arg_3 = 1u;
   float2 v = arg_2;
-  float res = arg_0.Sample(arg_1, float3(v, float(arg_3)));
+  float res = arg_0.Sample(arg_1, float3(v, float(arg_3))).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/var/textureSample/1a4e1b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSample/1a4e1b.wgsl.expected.ir.fxc.hlsl
index 460aae3..053fca6 100644
--- a/test/tint/builtins/gen/var/textureSample/1a4e1b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/1a4e1b.wgsl.expected.ir.fxc.hlsl
@@ -6,7 +6,7 @@
   float2 arg_2 = (1.0f).xx;
   uint arg_3 = 1u;
   float2 v = arg_2;
-  float res = arg_0.Sample(arg_1, float3(v, float(arg_3)));
+  float res = arg_0.Sample(arg_1, float3(v, float(arg_3))).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/var/textureSample/38bbb9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSample/38bbb9.wgsl.expected.ir.dxc.hlsl
index 2a9f7e2..1109d57 100644
--- a/test/tint/builtins/gen/var/textureSample/38bbb9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/38bbb9.wgsl.expected.ir.dxc.hlsl
@@ -4,7 +4,7 @@
 SamplerState arg_1 : register(s1, space1);
 float textureSample_38bbb9() {
   float2 arg_2 = (1.0f).xx;
-  float res = arg_0.Sample(arg_1, arg_2);
+  float res = arg_0.Sample(arg_1, arg_2).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/var/textureSample/38bbb9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSample/38bbb9.wgsl.expected.ir.fxc.hlsl
index 2a9f7e2..1109d57 100644
--- a/test/tint/builtins/gen/var/textureSample/38bbb9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/38bbb9.wgsl.expected.ir.fxc.hlsl
@@ -4,7 +4,7 @@
 SamplerState arg_1 : register(s1, space1);
 float textureSample_38bbb9() {
   float2 arg_2 = (1.0f).xx;
-  float res = arg_0.Sample(arg_1, arg_2);
+  float res = arg_0.Sample(arg_1, arg_2).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/var/textureSample/4703d0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSample/4703d0.wgsl.expected.ir.dxc.hlsl
index 662cf4b..0be0ef5 100644
--- a/test/tint/builtins/gen/var/textureSample/4703d0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/4703d0.wgsl.expected.ir.dxc.hlsl
@@ -6,7 +6,7 @@
   float2 arg_2 = (1.0f).xx;
   uint arg_3 = 1u;
   float2 v = arg_2;
-  float res = arg_0.Sample(arg_1, float3(v, float(arg_3)), (int(1)).xx);
+  float res = arg_0.Sample(arg_1, float3(v, float(arg_3)), (int(1)).xx).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/var/textureSample/4703d0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSample/4703d0.wgsl.expected.ir.fxc.hlsl
index 662cf4b..0be0ef5 100644
--- a/test/tint/builtins/gen/var/textureSample/4703d0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/4703d0.wgsl.expected.ir.fxc.hlsl
@@ -6,7 +6,7 @@
   float2 arg_2 = (1.0f).xx;
   uint arg_3 = 1u;
   float2 v = arg_2;
-  float res = arg_0.Sample(arg_1, float3(v, float(arg_3)), (int(1)).xx);
+  float res = arg_0.Sample(arg_1, float3(v, float(arg_3)), (int(1)).xx).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/var/textureSample/60bf45.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSample/60bf45.wgsl.expected.ir.dxc.hlsl
index e25ae04..960d43e 100644
--- a/test/tint/builtins/gen/var/textureSample/60bf45.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/60bf45.wgsl.expected.ir.dxc.hlsl
@@ -6,7 +6,7 @@
   float2 arg_2 = (1.0f).xx;
   int arg_3 = int(1);
   float2 v = arg_2;
-  float res = arg_0.Sample(arg_1, float3(v, float(arg_3)), (int(1)).xx);
+  float res = arg_0.Sample(arg_1, float3(v, float(arg_3)), (int(1)).xx).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/var/textureSample/60bf45.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSample/60bf45.wgsl.expected.ir.fxc.hlsl
index e25ae04..960d43e 100644
--- a/test/tint/builtins/gen/var/textureSample/60bf45.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/60bf45.wgsl.expected.ir.fxc.hlsl
@@ -6,7 +6,7 @@
   float2 arg_2 = (1.0f).xx;
   int arg_3 = int(1);
   float2 v = arg_2;
-  float res = arg_0.Sample(arg_1, float3(v, float(arg_3)), (int(1)).xx);
+  float res = arg_0.Sample(arg_1, float3(v, float(arg_3)), (int(1)).xx).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/var/textureSample/7e9ffd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSample/7e9ffd.wgsl.expected.ir.dxc.hlsl
index b18e9df..8263e12 100644
--- a/test/tint/builtins/gen/var/textureSample/7e9ffd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/7e9ffd.wgsl.expected.ir.dxc.hlsl
@@ -6,7 +6,7 @@
   float2 arg_2 = (1.0f).xx;
   int arg_3 = int(1);
   float2 v = arg_2;
-  float res = arg_0.Sample(arg_1, float3(v, float(arg_3)));
+  float res = arg_0.Sample(arg_1, float3(v, float(arg_3))).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/var/textureSample/7e9ffd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSample/7e9ffd.wgsl.expected.ir.fxc.hlsl
index b18e9df..8263e12 100644
--- a/test/tint/builtins/gen/var/textureSample/7e9ffd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/7e9ffd.wgsl.expected.ir.fxc.hlsl
@@ -6,7 +6,7 @@
   float2 arg_2 = (1.0f).xx;
   int arg_3 = int(1);
   float2 v = arg_2;
-  float res = arg_0.Sample(arg_1, float3(v, float(arg_3)));
+  float res = arg_0.Sample(arg_1, float3(v, float(arg_3))).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/var/textureSample/7fd8cb.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSample/7fd8cb.wgsl.expected.ir.dxc.hlsl
index 38f1bfa..9a1ace7 100644
--- a/test/tint/builtins/gen/var/textureSample/7fd8cb.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/7fd8cb.wgsl.expected.ir.dxc.hlsl
@@ -6,7 +6,7 @@
   float3 arg_2 = (1.0f).xxx;
   uint arg_3 = 1u;
   float3 v = arg_2;
-  float res = arg_0.Sample(arg_1, float4(v, float(arg_3)));
+  float res = arg_0.Sample(arg_1, float4(v, float(arg_3))).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/var/textureSample/7fd8cb.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSample/7fd8cb.wgsl.expected.ir.fxc.hlsl
index 38f1bfa..9a1ace7 100644
--- a/test/tint/builtins/gen/var/textureSample/7fd8cb.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/7fd8cb.wgsl.expected.ir.fxc.hlsl
@@ -6,7 +6,7 @@
   float3 arg_2 = (1.0f).xxx;
   uint arg_3 = 1u;
   float3 v = arg_2;
-  float res = arg_0.Sample(arg_1, float4(v, float(arg_3)));
+  float res = arg_0.Sample(arg_1, float4(v, float(arg_3))).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/var/textureSample/c2f4e8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSample/c2f4e8.wgsl.expected.ir.dxc.hlsl
index 8722f24..de0bbd2 100644
--- a/test/tint/builtins/gen/var/textureSample/c2f4e8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/c2f4e8.wgsl.expected.ir.dxc.hlsl
@@ -6,7 +6,7 @@
   float3 arg_2 = (1.0f).xxx;
   int arg_3 = int(1);
   float3 v = arg_2;
-  float res = arg_0.Sample(arg_1, float4(v, float(arg_3)));
+  float res = arg_0.Sample(arg_1, float4(v, float(arg_3))).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/var/textureSample/c2f4e8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSample/c2f4e8.wgsl.expected.ir.fxc.hlsl
index 8722f24..de0bbd2 100644
--- a/test/tint/builtins/gen/var/textureSample/c2f4e8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/c2f4e8.wgsl.expected.ir.fxc.hlsl
@@ -6,7 +6,7 @@
   float3 arg_2 = (1.0f).xxx;
   int arg_3 = int(1);
   float3 v = arg_2;
-  float res = arg_0.Sample(arg_1, float4(v, float(arg_3)));
+  float res = arg_0.Sample(arg_1, float4(v, float(arg_3))).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/var/textureSample/ea7030.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSample/ea7030.wgsl.expected.ir.dxc.hlsl
index 1516c42..7cf778c 100644
--- a/test/tint/builtins/gen/var/textureSample/ea7030.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/ea7030.wgsl.expected.ir.dxc.hlsl
@@ -4,7 +4,7 @@
 SamplerState arg_1 : register(s1, space1);
 float textureSample_ea7030() {
   float3 arg_2 = (1.0f).xxx;
-  float res = arg_0.Sample(arg_1, arg_2);
+  float res = arg_0.Sample(arg_1, arg_2).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/var/textureSample/ea7030.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSample/ea7030.wgsl.expected.ir.fxc.hlsl
index 1516c42..7cf778c 100644
--- a/test/tint/builtins/gen/var/textureSample/ea7030.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/ea7030.wgsl.expected.ir.fxc.hlsl
@@ -4,7 +4,7 @@
 SamplerState arg_1 : register(s1, space1);
 float textureSample_ea7030() {
   float3 arg_2 = (1.0f).xxx;
-  float res = arg_0.Sample(arg_1, arg_2);
+  float res = arg_0.Sample(arg_1, arg_2).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/02be59.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/02be59.wgsl.expected.ir.dxc.hlsl
index 4f34a34..1412ae6 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/02be59.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/02be59.wgsl.expected.ir.dxc.hlsl
@@ -16,7 +16,7 @@
   float2 arg_2 = (1.0f).xx;
   int arg_3 = int(1);
   float2 v = arg_2;
-  float res = arg_0.SampleLevel(arg_1, v, float(arg_3));
+  float res = arg_0.SampleLevel(arg_1, v, float(arg_3)).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/02be59.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/02be59.wgsl.expected.ir.fxc.hlsl
index 4f34a34..1412ae6 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/02be59.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/02be59.wgsl.expected.ir.fxc.hlsl
@@ -16,7 +16,7 @@
   float2 arg_2 = (1.0f).xx;
   int arg_3 = int(1);
   float2 v = arg_2;
-  float res = arg_0.SampleLevel(arg_1, v, float(arg_3));
+  float res = arg_0.SampleLevel(arg_1, v, float(arg_3)).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/1b0291.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/1b0291.wgsl.expected.ir.dxc.hlsl
index b793fc4..d76ca4d 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/1b0291.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/1b0291.wgsl.expected.ir.dxc.hlsl
@@ -16,7 +16,7 @@
   float3 arg_2 = (1.0f).xxx;
   int arg_3 = int(1);
   float3 v = arg_2;
-  float res = arg_0.SampleLevel(arg_1, v, float(arg_3));
+  float res = arg_0.SampleLevel(arg_1, v, float(arg_3)).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/1b0291.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/1b0291.wgsl.expected.ir.fxc.hlsl
index b793fc4..d76ca4d 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/1b0291.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/1b0291.wgsl.expected.ir.fxc.hlsl
@@ -16,7 +16,7 @@
   float3 arg_2 = (1.0f).xxx;
   int arg_3 = int(1);
   float3 v = arg_2;
-  float res = arg_0.SampleLevel(arg_1, v, float(arg_3));
+  float res = arg_0.SampleLevel(arg_1, v, float(arg_3)).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/1bf73e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/1bf73e.wgsl.expected.ir.dxc.hlsl
index 2b630e4..8cf8585 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/1bf73e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/1bf73e.wgsl.expected.ir.dxc.hlsl
@@ -19,7 +19,7 @@
   float2 v = arg_2;
   int v_1 = arg_4;
   float3 v_2 = float3(v, float(arg_3));
-  float res = arg_0.SampleLevel(arg_1, v_2, float(v_1));
+  float res = arg_0.SampleLevel(arg_1, v_2, float(v_1)).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/1bf73e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/1bf73e.wgsl.expected.ir.fxc.hlsl
index 2b630e4..8cf8585 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/1bf73e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/1bf73e.wgsl.expected.ir.fxc.hlsl
@@ -19,7 +19,7 @@
   float2 v = arg_2;
   int v_1 = arg_4;
   float3 v_2 = float3(v, float(arg_3));
-  float res = arg_0.SampleLevel(arg_1, v_2, float(v_1));
+  float res = arg_0.SampleLevel(arg_1, v_2, float(v_1)).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/2974eb.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/2974eb.wgsl.expected.ir.dxc.hlsl
index 3a3c352..785a0c8 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/2974eb.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/2974eb.wgsl.expected.ir.dxc.hlsl
@@ -19,7 +19,7 @@
   float2 v = arg_2;
   uint v_1 = arg_4;
   float3 v_2 = float3(v, float(arg_3));
-  float res = arg_0.SampleLevel(arg_1, v_2, float(v_1));
+  float res = arg_0.SampleLevel(arg_1, v_2, float(v_1)).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/2974eb.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/2974eb.wgsl.expected.ir.fxc.hlsl
index 3a3c352..785a0c8 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/2974eb.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/2974eb.wgsl.expected.ir.fxc.hlsl
@@ -19,7 +19,7 @@
   float2 v = arg_2;
   uint v_1 = arg_4;
   float3 v_2 = float3(v, float(arg_3));
-  float res = arg_0.SampleLevel(arg_1, v_2, float(v_1));
+  float res = arg_0.SampleLevel(arg_1, v_2, float(v_1)).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/36780e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/36780e.wgsl.expected.ir.dxc.hlsl
index bb282e8..26108a2 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/36780e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/36780e.wgsl.expected.ir.dxc.hlsl
@@ -19,7 +19,7 @@
   float2 v = arg_2;
   int v_1 = arg_4;
   float3 v_2 = float3(v, float(arg_3));
-  float res = arg_0.SampleLevel(arg_1, v_2, float(v_1), (int(1)).xx);
+  float res = arg_0.SampleLevel(arg_1, v_2, float(v_1), (int(1)).xx).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/36780e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/36780e.wgsl.expected.ir.fxc.hlsl
index bb282e8..26108a2 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/36780e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/36780e.wgsl.expected.ir.fxc.hlsl
@@ -19,7 +19,7 @@
   float2 v = arg_2;
   int v_1 = arg_4;
   float3 v_2 = float3(v, float(arg_3));
-  float res = arg_0.SampleLevel(arg_1, v_2, float(v_1), (int(1)).xx);
+  float res = arg_0.SampleLevel(arg_1, v_2, float(v_1), (int(1)).xx).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/36f0d3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/36f0d3.wgsl.expected.ir.dxc.hlsl
index 6115445..8cef832 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/36f0d3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/36f0d3.wgsl.expected.ir.dxc.hlsl
@@ -19,7 +19,7 @@
   float2 v = arg_2;
   uint v_1 = arg_4;
   float3 v_2 = float3(v, float(arg_3));
-  float res = arg_0.SampleLevel(arg_1, v_2, float(v_1), (int(1)).xx);
+  float res = arg_0.SampleLevel(arg_1, v_2, float(v_1), (int(1)).xx).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/36f0d3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/36f0d3.wgsl.expected.ir.fxc.hlsl
index 6115445..8cef832 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/36f0d3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/36f0d3.wgsl.expected.ir.fxc.hlsl
@@ -19,7 +19,7 @@
   float2 v = arg_2;
   uint v_1 = arg_4;
   float3 v_2 = float3(v, float(arg_3));
-  float res = arg_0.SampleLevel(arg_1, v_2, float(v_1), (int(1)).xx);
+  float res = arg_0.SampleLevel(arg_1, v_2, float(v_1), (int(1)).xx).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/3c3442.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/3c3442.wgsl.expected.ir.dxc.hlsl
index ad89c6b..3d86db0 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/3c3442.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/3c3442.wgsl.expected.ir.dxc.hlsl
@@ -19,7 +19,7 @@
   float2 v = arg_2;
   int v_1 = arg_4;
   float3 v_2 = float3(v, float(arg_3));
-  float res = arg_0.SampleLevel(arg_1, v_2, float(v_1));
+  float res = arg_0.SampleLevel(arg_1, v_2, float(v_1)).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/3c3442.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/3c3442.wgsl.expected.ir.fxc.hlsl
index ad89c6b..3d86db0 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/3c3442.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/3c3442.wgsl.expected.ir.fxc.hlsl
@@ -19,7 +19,7 @@
   float2 v = arg_2;
   int v_1 = arg_4;
   float3 v_2 = float3(v, float(arg_3));
-  float res = arg_0.SampleLevel(arg_1, v_2, float(v_1));
+  float res = arg_0.SampleLevel(arg_1, v_2, float(v_1)).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/615583.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/615583.wgsl.expected.ir.dxc.hlsl
index 1cb49c4..2283e70 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/615583.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/615583.wgsl.expected.ir.dxc.hlsl
@@ -19,7 +19,7 @@
   float2 v = arg_2;
   uint v_1 = arg_4;
   float3 v_2 = float3(v, float(arg_3));
-  float res = arg_0.SampleLevel(arg_1, v_2, float(v_1));
+  float res = arg_0.SampleLevel(arg_1, v_2, float(v_1)).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/615583.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/615583.wgsl.expected.ir.fxc.hlsl
index 1cb49c4..2283e70 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/615583.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/615583.wgsl.expected.ir.fxc.hlsl
@@ -19,7 +19,7 @@
   float2 v = arg_2;
   uint v_1 = arg_4;
   float3 v_2 = float3(v, float(arg_3));
-  float res = arg_0.SampleLevel(arg_1, v_2, float(v_1));
+  float res = arg_0.SampleLevel(arg_1, v_2, float(v_1)).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/73e892.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/73e892.wgsl.expected.ir.dxc.hlsl
index 6e28d1c..e284861 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/73e892.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/73e892.wgsl.expected.ir.dxc.hlsl
@@ -16,7 +16,7 @@
   float2 arg_2 = (1.0f).xx;
   uint arg_3 = 1u;
   float2 v = arg_2;
-  float res = arg_0.SampleLevel(arg_1, v, float(arg_3));
+  float res = arg_0.SampleLevel(arg_1, v, float(arg_3)).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/73e892.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/73e892.wgsl.expected.ir.fxc.hlsl
index 6e28d1c..e284861 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/73e892.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/73e892.wgsl.expected.ir.fxc.hlsl
@@ -16,7 +16,7 @@
   float2 arg_2 = (1.0f).xx;
   uint arg_3 = 1u;
   float2 v = arg_2;
-  float res = arg_0.SampleLevel(arg_1, v, float(arg_3));
+  float res = arg_0.SampleLevel(arg_1, v, float(arg_3)).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/749baf.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/749baf.wgsl.expected.ir.dxc.hlsl
index b7f08c9..56b4acf 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/749baf.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/749baf.wgsl.expected.ir.dxc.hlsl
@@ -16,7 +16,7 @@
   float2 arg_2 = (1.0f).xx;
   int arg_3 = int(1);
   float2 v = arg_2;
-  float res = arg_0.SampleLevel(arg_1, v, float(arg_3), (int(1)).xx);
+  float res = arg_0.SampleLevel(arg_1, v, float(arg_3), (int(1)).xx).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/749baf.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/749baf.wgsl.expected.ir.fxc.hlsl
index b7f08c9..56b4acf 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/749baf.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/749baf.wgsl.expected.ir.fxc.hlsl
@@ -16,7 +16,7 @@
   float2 arg_2 = (1.0f).xx;
   int arg_3 = int(1);
   float2 v = arg_2;
-  float res = arg_0.SampleLevel(arg_1, v, float(arg_3), (int(1)).xx);
+  float res = arg_0.SampleLevel(arg_1, v, float(arg_3), (int(1)).xx).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/941a53.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/941a53.wgsl.expected.ir.dxc.hlsl
index 5ce6cfc..ac03390 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/941a53.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/941a53.wgsl.expected.ir.dxc.hlsl
@@ -19,7 +19,7 @@
   float3 v = arg_2;
   uint v_1 = arg_4;
   float4 v_2 = float4(v, float(arg_3));
-  float res = arg_0.SampleLevel(arg_1, v_2, float(v_1));
+  float res = arg_0.SampleLevel(arg_1, v_2, float(v_1)).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/941a53.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/941a53.wgsl.expected.ir.fxc.hlsl
index 5ce6cfc..ac03390 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/941a53.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/941a53.wgsl.expected.ir.fxc.hlsl
@@ -19,7 +19,7 @@
   float3 v = arg_2;
   uint v_1 = arg_4;
   float4 v_2 = float4(v, float(arg_3));
-  float res = arg_0.SampleLevel(arg_1, v_2, float(v_1));
+  float res = arg_0.SampleLevel(arg_1, v_2, float(v_1)).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/a12142.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/a12142.wgsl.expected.ir.dxc.hlsl
index 540b1c2..009070c 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/a12142.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/a12142.wgsl.expected.ir.dxc.hlsl
@@ -19,7 +19,7 @@
   float3 v = arg_2;
   uint v_1 = arg_4;
   float4 v_2 = float4(v, float(arg_3));
-  float res = arg_0.SampleLevel(arg_1, v_2, float(v_1));
+  float res = arg_0.SampleLevel(arg_1, v_2, float(v_1)).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/a12142.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/a12142.wgsl.expected.ir.fxc.hlsl
index 540b1c2..009070c 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/a12142.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/a12142.wgsl.expected.ir.fxc.hlsl
@@ -19,7 +19,7 @@
   float3 v = arg_2;
   uint v_1 = arg_4;
   float4 v_2 = float4(v, float(arg_3));
-  float res = arg_0.SampleLevel(arg_1, v_2, float(v_1));
+  float res = arg_0.SampleLevel(arg_1, v_2, float(v_1)).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/ae5e39.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/ae5e39.wgsl.expected.ir.dxc.hlsl
index 035ee58..418138a 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/ae5e39.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/ae5e39.wgsl.expected.ir.dxc.hlsl
@@ -19,7 +19,7 @@
   float3 v = arg_2;
   int v_1 = arg_4;
   float4 v_2 = float4(v, float(arg_3));
-  float res = arg_0.SampleLevel(arg_1, v_2, float(v_1));
+  float res = arg_0.SampleLevel(arg_1, v_2, float(v_1)).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/ae5e39.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/ae5e39.wgsl.expected.ir.fxc.hlsl
index 035ee58..418138a 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/ae5e39.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/ae5e39.wgsl.expected.ir.fxc.hlsl
@@ -19,7 +19,7 @@
   float3 v = arg_2;
   int v_1 = arg_4;
   float4 v_2 = float4(v, float(arg_3));
-  float res = arg_0.SampleLevel(arg_1, v_2, float(v_1));
+  float res = arg_0.SampleLevel(arg_1, v_2, float(v_1)).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/ae92a2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/ae92a2.wgsl.expected.ir.dxc.hlsl
index 04a5543..e9822e0 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/ae92a2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/ae92a2.wgsl.expected.ir.dxc.hlsl
@@ -16,7 +16,7 @@
   float3 arg_2 = (1.0f).xxx;
   uint arg_3 = 1u;
   float3 v = arg_2;
-  float res = arg_0.SampleLevel(arg_1, v, float(arg_3));
+  float res = arg_0.SampleLevel(arg_1, v, float(arg_3)).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/ae92a2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/ae92a2.wgsl.expected.ir.fxc.hlsl
index 04a5543..e9822e0 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/ae92a2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/ae92a2.wgsl.expected.ir.fxc.hlsl
@@ -16,7 +16,7 @@
   float3 arg_2 = (1.0f).xxx;
   uint arg_3 = 1u;
   float3 v = arg_2;
-  float res = arg_0.SampleLevel(arg_1, v, float(arg_3));
+  float res = arg_0.SampleLevel(arg_1, v, float(arg_3)).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/cdfe0f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/cdfe0f.wgsl.expected.ir.dxc.hlsl
index b5270fc..659ae1a 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/cdfe0f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/cdfe0f.wgsl.expected.ir.dxc.hlsl
@@ -19,7 +19,7 @@
   float2 v = arg_2;
   uint v_1 = arg_4;
   float3 v_2 = float3(v, float(arg_3));
-  float res = arg_0.SampleLevel(arg_1, v_2, float(v_1), (int(1)).xx);
+  float res = arg_0.SampleLevel(arg_1, v_2, float(v_1), (int(1)).xx).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/cdfe0f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/cdfe0f.wgsl.expected.ir.fxc.hlsl
index b5270fc..659ae1a 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/cdfe0f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/cdfe0f.wgsl.expected.ir.fxc.hlsl
@@ -19,7 +19,7 @@
   float2 v = arg_2;
   uint v_1 = arg_4;
   float3 v_2 = float3(v, float(arg_3));
-  float res = arg_0.SampleLevel(arg_1, v_2, float(v_1), (int(1)).xx);
+  float res = arg_0.SampleLevel(arg_1, v_2, float(v_1), (int(1)).xx).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/e6ce9e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/e6ce9e.wgsl.expected.ir.dxc.hlsl
index 0629a50..ae9c863 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/e6ce9e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/e6ce9e.wgsl.expected.ir.dxc.hlsl
@@ -19,7 +19,7 @@
   float2 v = arg_2;
   int v_1 = arg_4;
   float3 v_2 = float3(v, float(arg_3));
-  float res = arg_0.SampleLevel(arg_1, v_2, float(v_1), (int(1)).xx);
+  float res = arg_0.SampleLevel(arg_1, v_2, float(v_1), (int(1)).xx).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/e6ce9e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/e6ce9e.wgsl.expected.ir.fxc.hlsl
index 0629a50..ae9c863 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/e6ce9e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/e6ce9e.wgsl.expected.ir.fxc.hlsl
@@ -19,7 +19,7 @@
   float2 v = arg_2;
   int v_1 = arg_4;
   float3 v_2 = float3(v, float(arg_3));
-  float res = arg_0.SampleLevel(arg_1, v_2, float(v_1), (int(1)).xx);
+  float res = arg_0.SampleLevel(arg_1, v_2, float(v_1), (int(1)).xx).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/f3b2c8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/f3b2c8.wgsl.expected.ir.dxc.hlsl
index d5d6e09..87d0a5f 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/f3b2c8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/f3b2c8.wgsl.expected.ir.dxc.hlsl
@@ -16,7 +16,7 @@
   float2 arg_2 = (1.0f).xx;
   uint arg_3 = 1u;
   float2 v = arg_2;
-  float res = arg_0.SampleLevel(arg_1, v, float(arg_3), (int(1)).xx);
+  float res = arg_0.SampleLevel(arg_1, v, float(arg_3), (int(1)).xx).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/f3b2c8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/f3b2c8.wgsl.expected.ir.fxc.hlsl
index d5d6e09..87d0a5f 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/f3b2c8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/f3b2c8.wgsl.expected.ir.fxc.hlsl
@@ -16,7 +16,7 @@
   float2 arg_2 = (1.0f).xx;
   uint arg_3 = 1u;
   float2 v = arg_2;
-  float res = arg_0.SampleLevel(arg_1, v, float(arg_3), (int(1)).xx);
+  float res = arg_0.SampleLevel(arg_1, v, float(arg_3), (int(1)).xx).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/ff11bc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/ff11bc.wgsl.expected.ir.dxc.hlsl
index 6a50b9b..09eeedd 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/ff11bc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/ff11bc.wgsl.expected.ir.dxc.hlsl
@@ -19,7 +19,7 @@
   float3 v = arg_2;
   int v_1 = arg_4;
   float4 v_2 = float4(v, float(arg_3));
-  float res = arg_0.SampleLevel(arg_1, v_2, float(v_1));
+  float res = arg_0.SampleLevel(arg_1, v_2, float(v_1)).x;
   return res;
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/ff11bc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/ff11bc.wgsl.expected.ir.fxc.hlsl
index 6a50b9b..09eeedd 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/ff11bc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/ff11bc.wgsl.expected.ir.fxc.hlsl
@@ -19,7 +19,7 @@
   float3 v = arg_2;
   int v_1 = arg_4;
   float4 v_2 = float4(v, float(arg_3));
-  float res = arg_0.SampleLevel(arg_1, v_2, float(v_1));
+  float res = arg_0.SampleLevel(arg_1, v_2, float(v_1)).x;
   return res;
 }
 
diff --git a/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_DepthTexture_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_DepthTexture_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bbde24f..0000000
--- a/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_DepthTexture_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,37 +0,0 @@
-SKIP: FAILED
-
-
-SamplerState x_10 : register(s0);
-Texture2D x_20 : register(t1, space2);
-SamplerState x_30 : register(s1);
-void main_1() {
-  float2 vf12 = float2(1.0f, 2.0f);
-  float2 vf21 = float2(2.0f, 1.0f);
-  float3 vf123 = float3(1.0f, 2.0f, 3.0f);
-  float4 vf1234 = float4(1.0f, 2.0f, 3.0f, 4.0f);
-  int i1 = int(1);
-  int2 vi12 = int2(int(1), int(2));
-  int3 vi123 = int3(int(1), int(2), int(3));
-  int4 vi1234 = int4(int(1), int(2), int(3), int(4));
-  uint u1 = 1u;
-  uint2 vu12 = uint2(1u, 2u);
-  uint3 vu123 = uint3(1u, 2u, 3u);
-  uint4 vu1234 = uint4(1u, 2u, 3u, 4u);
-  float coords1 = 1.0f;
-  float2 coords12 = vf12;
-  float3 coords123 = vf123;
-  float4 coords1234 = vf1234;
-  float4 x_79 = float4(x_20.SampleLevel(x_10, vf12, float(int(1))), 0.0f, 0.0f, 0.0f);
-}
-
-void main() {
-  main_1();
-}
-
-DXC validation failure:
-hlsl.hlsl:22:24: error: too many elements in vector initialization (expected 4 elements, have 7)
-  float4 x_79 = float4(x_20.SampleLevel(x_10, vf12, float(int(1))), 0.0f, 0.0f, 0.0f);
-                       ^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_DepthTexture_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_DepthTexture_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 50f9202..0000000
--- a/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_DepthTexture_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,35 +0,0 @@
-SKIP: FAILED
-
-
-SamplerState x_10 : register(s0);
-Texture2D x_20 : register(t1, space2);
-SamplerState x_30 : register(s1);
-void main_1() {
-  float2 vf12 = float2(1.0f, 2.0f);
-  float2 vf21 = float2(2.0f, 1.0f);
-  float3 vf123 = float3(1.0f, 2.0f, 3.0f);
-  float4 vf1234 = float4(1.0f, 2.0f, 3.0f, 4.0f);
-  int i1 = int(1);
-  int2 vi12 = int2(int(1), int(2));
-  int3 vi123 = int3(int(1), int(2), int(3));
-  int4 vi1234 = int4(int(1), int(2), int(3), int(4));
-  uint u1 = 1u;
-  uint2 vu12 = uint2(1u, 2u);
-  uint3 vu123 = uint3(1u, 2u, 3u);
-  uint4 vu1234 = uint4(1u, 2u, 3u, 4u);
-  float coords1 = 1.0f;
-  float2 coords12 = vf12;
-  float3 coords123 = vf123;
-  float4 coords1234 = vf1234;
-  float4 x_79 = float4(x_20.SampleLevel(x_10, vf12, float(int(1))), 0.0f, 0.0f, 0.0f);
-}
-
-void main() {
-  main_1();
-}
-
-FXC validation failure:
-<scrubbed_path>(22,17-85): error X3014: incorrect number of arguments to numeric-type constructor
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_BothDrefAndNonDref_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_BothDrefAndNonDref_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c58548a..0000000
--- a/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_BothDrefAndNonDref_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,39 +0,0 @@
-SKIP: FAILED
-
-
-SamplerState x_10 : register(s0);
-Texture2D x_20 : register(t1, space2);
-SamplerComparisonState x_30 : register(s1);
-void main_1() {
-  float f1 = 1.0f;
-  float2 vf12 = float2(1.0f, 2.0f);
-  float2 vf21 = float2(2.0f, 1.0f);
-  float3 vf123 = float3(1.0f, 2.0f, 3.0f);
-  float4 vf1234 = float4(1.0f, 2.0f, 3.0f, 4.0f);
-  int i1 = int(1);
-  int2 vi12 = int2(int(1), int(2));
-  int3 vi123 = int3(int(1), int(2), int(3));
-  int4 vi1234 = int4(int(1), int(2), int(3), int(4));
-  uint u1 = 1u;
-  uint2 vu12 = uint2(1u, 2u);
-  uint3 vu123 = uint3(1u, 2u, 3u);
-  uint4 vu1234 = uint4(1u, 2u, 3u, 4u);
-  float coords1 = 1.0f;
-  float2 coords12 = vf12;
-  float3 coords123 = vf123;
-  float4 coords1234 = vf1234;
-  float4 x_200 = float4(x_20.Sample(x_10, coords12), 0.0f, 0.0f, 0.0f);
-  float x_210 = x_20.SampleCmp(x_30, coords12, 0.20000000298023223877f);
-}
-
-void main() {
-  main_1();
-}
-
-DXC validation failure:
-hlsl.hlsl:23:25: error: too many elements in vector initialization (expected 4 elements, have 7)
-  float4 x_200 = float4(x_20.Sample(x_10, coords12), 0.0f, 0.0f, 0.0f);
-                        ^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_BothDrefAndNonDref_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_BothDrefAndNonDref_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index aa16a2c..0000000
--- a/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_BothDrefAndNonDref_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,37 +0,0 @@
-SKIP: FAILED
-
-
-SamplerState x_10 : register(s0);
-Texture2D x_20 : register(t1, space2);
-SamplerComparisonState x_30 : register(s1);
-void main_1() {
-  float f1 = 1.0f;
-  float2 vf12 = float2(1.0f, 2.0f);
-  float2 vf21 = float2(2.0f, 1.0f);
-  float3 vf123 = float3(1.0f, 2.0f, 3.0f);
-  float4 vf1234 = float4(1.0f, 2.0f, 3.0f, 4.0f);
-  int i1 = int(1);
-  int2 vi12 = int2(int(1), int(2));
-  int3 vi123 = int3(int(1), int(2), int(3));
-  int4 vi1234 = int4(int(1), int(2), int(3), int(4));
-  uint u1 = 1u;
-  uint2 vu12 = uint2(1u, 2u);
-  uint3 vu123 = uint3(1u, 2u, 3u);
-  uint4 vu1234 = uint4(1u, 2u, 3u, 4u);
-  float coords1 = 1.0f;
-  float2 coords12 = vf12;
-  float3 coords123 = vf123;
-  float4 coords1234 = vf1234;
-  float4 x_200 = float4(x_20.Sample(x_10, coords12), 0.0f, 0.0f, 0.0f);
-  float x_210 = x_20.SampleCmp(x_30, coords12, 0.20000000298023223877f);
-}
-
-void main() {
-  main_1();
-}
-
-FXC validation failure:
-<scrubbed_path>(23,18-70): error X3014: incorrect number of arguments to numeric-type constructor
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_DepthTexture_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_DepthTexture_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 0222fc8..0000000
--- a/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_DepthTexture_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,38 +0,0 @@
-SKIP: FAILED
-
-
-SamplerState x_10 : register(s0);
-Texture2D x_20 : register(t1, space2);
-SamplerState x_30 : register(s1);
-void main_1() {
-  float f1 = 1.0f;
-  float2 vf12 = float2(1.0f, 2.0f);
-  float2 vf21 = float2(2.0f, 1.0f);
-  float3 vf123 = float3(1.0f, 2.0f, 3.0f);
-  float4 vf1234 = float4(1.0f, 2.0f, 3.0f, 4.0f);
-  int i1 = int(1);
-  int2 vi12 = int2(int(1), int(2));
-  int3 vi123 = int3(int(1), int(2), int(3));
-  int4 vi1234 = int4(int(1), int(2), int(3), int(4));
-  uint u1 = 1u;
-  uint2 vu12 = uint2(1u, 2u);
-  uint3 vu123 = uint3(1u, 2u, 3u);
-  uint4 vu1234 = uint4(1u, 2u, 3u, 4u);
-  float coords1 = 1.0f;
-  float2 coords12 = vf12;
-  float3 coords123 = vf123;
-  float4 coords1234 = vf1234;
-  float4 x_79 = float4(x_20.Sample(x_10, (coords123.xy / coords123[2u])), 0.0f, 0.0f, 0.0f);
-}
-
-void main() {
-  main_1();
-}
-
-DXC validation failure:
-hlsl.hlsl:23:24: error: too many elements in vector initialization (expected 4 elements, have 7)
-  float4 x_79 = float4(x_20.Sample(x_10, (coords123.xy / coords123[2u])), 0.0f, 0.0f, 0.0f);
-                       ^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_DepthTexture_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_DepthTexture_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 66019cd..0000000
--- a/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_DepthTexture_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,36 +0,0 @@
-SKIP: FAILED
-
-
-SamplerState x_10 : register(s0);
-Texture2D x_20 : register(t1, space2);
-SamplerState x_30 : register(s1);
-void main_1() {
-  float f1 = 1.0f;
-  float2 vf12 = float2(1.0f, 2.0f);
-  float2 vf21 = float2(2.0f, 1.0f);
-  float3 vf123 = float3(1.0f, 2.0f, 3.0f);
-  float4 vf1234 = float4(1.0f, 2.0f, 3.0f, 4.0f);
-  int i1 = int(1);
-  int2 vi12 = int2(int(1), int(2));
-  int3 vi123 = int3(int(1), int(2), int(3));
-  int4 vi1234 = int4(int(1), int(2), int(3), int(4));
-  uint u1 = 1u;
-  uint2 vu12 = uint2(1u, 2u);
-  uint3 vu123 = uint3(1u, 2u, 3u);
-  uint4 vu1234 = uint4(1u, 2u, 3u, 4u);
-  float coords1 = 1.0f;
-  float2 coords12 = vf12;
-  float3 coords123 = vf123;
-  float4 coords1234 = vf1234;
-  float4 x_79 = float4(x_20.Sample(x_10, (coords123.xy / coords123[2u])), 0.0f, 0.0f, 0.0f);
-}
-
-void main() {
-  main_1();
-}
-
-FXC validation failure:
-<scrubbed_path>(23,17-91): error X3014: incorrect number of arguments to numeric-type constructor
-
-
-tint executable returned error: exit status 1