[writer]: AppendVector() - support zero value vectors

These were not correctly handled, causing multiple writer issues.

Updated test stats:
3248 tests run, 2693 tests pass, 555 tests skipped, 0 tests failed

Fixed: tint:757
Change-Id: If92e9c2ceefe986c92ca47d23c8d6b64b155ca49
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/53081
Auto-Submit: Ben Clayton <bclayton@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: David Neto <dneto@google.com>
diff --git a/src/writer/append_vector.cc b/src/writer/append_vector.cc
index dcf179f..e61ffe4 100644
--- a/src/writer/append_vector.cc
+++ b/src/writer/append_vector.cc
@@ -57,6 +57,11 @@
     packed_el_ty = b->create<ast::U32>();
   } else if (packed_el_sem_ty->Is<sem::F32>()) {
     packed_el_ty = b->create<ast::F32>();
+  } else if (packed_el_sem_ty->Is<sem::Bool>()) {
+    packed_el_ty = b->create<ast::Bool>();
+  } else {
+    TINT_UNREACHABLE(b->Diagnostics()) << "unsupported vector element type: "
+                                       << packed_el_sem_ty->TypeInfo().name;
   }
 
   auto* statement = vector_sem->Stmt();
@@ -69,6 +74,32 @@
   ast::ExpressionList packed;
   if (auto* vc = AsVectorConstructor(b, vector)) {
     packed = vc->values();
+    if (packed.size() == 0) {
+      // Zero-value vector constructor. Populate with zeros
+      auto buildZero = [&]() -> ast::ScalarConstructorExpression* {
+        if (packed_el_sem_ty->Is<sem::I32>()) {
+          return b->Expr(0);
+        } else if (packed_el_sem_ty->Is<sem::U32>()) {
+          return b->Expr(0u);
+        } else if (packed_el_sem_ty->Is<sem::F32>()) {
+          return b->Expr(0.0f);
+        } else if (packed_el_sem_ty->Is<sem::Bool>()) {
+          return b->Expr(false);
+        } else {
+          TINT_UNREACHABLE(b->Diagnostics())
+              << "unsupported vector element type: "
+              << packed_el_sem_ty->TypeInfo().name;
+        }
+        return nullptr;
+      };
+
+      for (uint32_t i = 0; i < packed_size - 1; i++) {
+        auto* zero = buildZero();
+        b->Sem().Add(zero, b->create<sem::Expression>(zero, packed_el_sem_ty,
+                                                      statement));
+        packed.emplace_back(zero);
+      }
+    }
   } else {
     packed.emplace_back(vector);
   }
diff --git a/src/writer/append_vector.h b/src/writer/append_vector.h
index 818b7fd..d74e2d1 100644
--- a/src/writer/append_vector.h
+++ b/src/writer/append_vector.h
@@ -27,9 +27,6 @@
 namespace writer {
 
 /// A helper function used to append a vector with an additional scalar.
-/// AppendVector is used to generate texture intrinsic function calls for
-/// backends that expect the texture coordinates to be packed with an additional
-/// mip-level or array-index parameter.
 /// All types must have been assigned to the expressions and their child nodes
 /// before calling.
 /// @param builder the program builder.
diff --git a/src/writer/append_vector_test.cc b/src/writer/append_vector_test.cc
index 259a57d..eb5053b 100644
--- a/src/writer/append_vector_test.cc
+++ b/src/writer/append_vector_test.cc
@@ -162,6 +162,46 @@
   EXPECT_EQ(f32_to_i32->values()[0], scalar_3);
 }
 
+TEST_F(AppendVectorTest, Vec2boolVar_boolVar) {
+  Global("vec_12", ty.vec2<bool>(), ast::StorageClass::kInput);
+  Global("scalar_3", ty.bool_(), ast::StorageClass::kInput);
+  auto* vec_12 = Expr("vec_12");
+  auto* scalar_3 = Expr("scalar_3");
+  WrapInFunction(vec_12, scalar_3);
+
+  resolver::Resolver resolver(this);
+  ASSERT_TRUE(resolver.Resolve()) << resolver.error();
+
+  auto* vec_123 = AppendVector(this, vec_12, scalar_3)
+                      ->As<ast::TypeConstructorExpression>();
+  ASSERT_NE(vec_123, nullptr);
+  ASSERT_EQ(vec_123->values().size(), 2u);
+  EXPECT_EQ(vec_123->values()[0], vec_12);
+  EXPECT_EQ(vec_123->values()[1], scalar_3);
+}
+
+TEST_F(AppendVectorTest, ZeroVec3i32_i32) {
+  auto* scalar = Expr(4);
+  auto* vec000 = vec3<i32>();
+  WrapInFunction(vec000, scalar);
+
+  resolver::Resolver resolver(this);
+  ASSERT_TRUE(resolver.Resolve()) << resolver.error();
+
+  auto* vec_0004 =
+      AppendVector(this, vec000, scalar)->As<ast::TypeConstructorExpression>();
+  ASSERT_NE(vec_0004, nullptr);
+  ASSERT_EQ(vec_0004->values().size(), 4u);
+  for (size_t i = 0; i < 3; i++) {
+    auto* ctor = vec_0004->values()[i]->As<ast::ScalarConstructorExpression>();
+    ASSERT_NE(ctor, nullptr);
+    auto* literal = As<ast::SintLiteral>(ctor->literal());
+    ASSERT_NE(literal, nullptr);
+    EXPECT_EQ(literal->value(), 0);
+  }
+  EXPECT_EQ(vec_0004->values()[3], scalar);
+}
+
 }  // namespace
 }  // namespace writer
 }  // namespace tint
diff --git a/test/intrinsics/gen/textureLoad/050c33.wgsl.expected.hlsl b/test/intrinsics/gen/textureLoad/050c33.wgsl.expected.hlsl
index 8ffb8fe..8d3867f 100644
--- a/test/intrinsics/gen/textureLoad/050c33.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureLoad/050c33.wgsl.expected.hlsl
@@ -1,12 +1,7 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_050c33() {
-  uint4 res = arg_0.Load(int3(0));
+  uint4 res = arg_0.Load(int3(0, 0, 0));
 }
 
 void vertex_main() {
@@ -25,18 +20,3 @@
   return;
 }
 
-
-tint_BGB5F4:4:31: error: too few elements in vector initialization (expected 3 elements, have 1)
-  uint4 res = arg_0.Load(int3(0));
-                              ^
-
-
-tint_BGB5F4:4:31: error: too few elements in vector initialization (expected 3 elements, have 1)
-  uint4 res = arg_0.Load(int3(0));
-                              ^
-
-
-tint_BGB5F4:4:31: error: too few elements in vector initialization (expected 3 elements, have 1)
-  uint4 res = arg_0.Load(int3(0));
-                              ^
-
diff --git a/test/intrinsics/gen/textureLoad/072e26.wgsl.expected.hlsl b/test/intrinsics/gen/textureLoad/072e26.wgsl.expected.hlsl
index 0df5e22..ac98d37 100644
--- a/test/intrinsics/gen/textureLoad/072e26.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureLoad/072e26.wgsl.expected.hlsl
@@ -1,12 +1,7 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 void textureLoad_072e26() {
-  float4 res = arg_0.Load(int4(1, 0));
+  float4 res = arg_0.Load(int4(0, 0, 1, 0));
 }
 
 void vertex_main() {
@@ -25,18 +20,3 @@
   return;
 }
 
-
-tint_el2pSF:4:32: error: too few elements in vector initialization (expected 4 elements, have 2)
-  float4 res = arg_0.Load(int4(1, 0));
-                               ^
-
-
-tint_el2pSF:4:32: error: too few elements in vector initialization (expected 4 elements, have 2)
-  float4 res = arg_0.Load(int4(1, 0));
-                               ^
-
-
-tint_el2pSF:4:32: error: too few elements in vector initialization (expected 4 elements, have 2)
-  float4 res = arg_0.Load(int4(1, 0));
-                               ^
-
diff --git a/test/intrinsics/gen/textureLoad/072e26.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/072e26.wgsl.expected.spvasm
index 0113514..0294e5f 100644
--- a/test/intrinsics/gen/textureLoad/072e26.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/072e26.wgsl.expected.spvasm
@@ -1,9 +1,7 @@
-SKIP: FAILED
-
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -35,38 +33,33 @@
     %v4float = OpTypeVector %float 4
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
+      %int_0 = OpConstant %int 0
       %int_1 = OpConstant %int 1
-         %18 = OpConstantComposite %v3int %int_1
+         %19 = OpConstantComposite %v3int %int_0 %int_0 %int_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %21 = OpConstantNull %v4float
+         %22 = OpConstantNull %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_072e26 = OpFunction %void None %8
          %11 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %21
+        %res = OpVariable %_ptr_Function_v4float Function %22
          %14 = OpLoad %7 %arg_0
-         %12 = OpImageRead %v4float %14 %18
+         %12 = OpImageRead %v4float %14 %19
                OpStore %res %12
                OpReturn
                OpFunctionEnd
 %vertex_main = OpFunction %void None %8
-         %23 = OpLabel
+         %24 = OpLabel
                OpStore %tint_pointsize %float_1
-         %25 = OpFunctionCall %void %textureLoad_072e26
+         %26 = OpFunctionCall %void %textureLoad_072e26
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %textureLoad_072e26
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureLoad_072e26
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %8
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureLoad_072e26
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureLoad_072e26
                OpReturn
                OpFunctionEnd
-
-
-Validation Failure:
-1:1: OpConstantComposite Constituent <id> count does not match Result Type <id> '15[%v3int]'s vector component count.
-  %18 = OpConstantComposite %v3int %int_1
-
diff --git a/test/intrinsics/gen/textureLoad/078bc4.wgsl.expected.hlsl b/test/intrinsics/gen/textureLoad/078bc4.wgsl.expected.hlsl
index 3c7fdbc..794a8fa 100644
--- a/test/intrinsics/gen/textureLoad/078bc4.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureLoad/078bc4.wgsl.expected.hlsl
@@ -1,12 +1,7 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 Texture2D<float4> arg_0 : register(t0, space1);
 
 void textureLoad_078bc4() {
-  float4 res = arg_0.Load(int3(0));
+  float4 res = arg_0.Load(int3(0, 0, 0));
 }
 
 void vertex_main() {
@@ -25,18 +20,3 @@
   return;
 }
 
-
-tint_2mt0JA:4:32: error: too few elements in vector initialization (expected 3 elements, have 1)
-  float4 res = arg_0.Load(int3(0));
-                               ^
-
-
-tint_2mt0JA:4:32: error: too few elements in vector initialization (expected 3 elements, have 1)
-  float4 res = arg_0.Load(int3(0));
-                               ^
-
-
-tint_2mt0JA:4:32: error: too few elements in vector initialization (expected 3 elements, have 1)
-  float4 res = arg_0.Load(int3(0));
-                               ^
-
diff --git a/test/intrinsics/gen/textureLoad/127e12.wgsl.expected.hlsl b/test/intrinsics/gen/textureLoad/127e12.wgsl.expected.hlsl
index 5683cc9..c4a8638 100644
--- a/test/intrinsics/gen/textureLoad/127e12.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureLoad/127e12.wgsl.expected.hlsl
@@ -1,12 +1,7 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_127e12() {
-  uint4 res = arg_0.Load(int4(1, 0));
+  uint4 res = arg_0.Load(int4(0, 0, 1, 0));
 }
 
 void vertex_main() {
@@ -25,18 +20,3 @@
   return;
 }
 
-
-tint_E7lo1I:4:31: error: too few elements in vector initialization (expected 4 elements, have 2)
-  uint4 res = arg_0.Load(int4(1, 0));
-                              ^
-
-
-tint_E7lo1I:4:31: error: too few elements in vector initialization (expected 4 elements, have 2)
-  uint4 res = arg_0.Load(int4(1, 0));
-                              ^
-
-
-tint_E7lo1I:4:31: error: too few elements in vector initialization (expected 4 elements, have 2)
-  uint4 res = arg_0.Load(int4(1, 0));
-                              ^
-
diff --git a/test/intrinsics/gen/textureLoad/127e12.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/127e12.wgsl.expected.spvasm
index 8da1b2f..28b884f 100644
--- a/test/intrinsics/gen/textureLoad/127e12.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/127e12.wgsl.expected.spvasm
@@ -1,9 +1,7 @@
-SKIP: FAILED
-
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 33
+; Bound: 34
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -36,38 +34,33 @@
      %v4uint = OpTypeVector %uint 4
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
+      %int_0 = OpConstant %int 0
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v3int %int_1
+         %20 = OpConstantComposite %v3int %int_0 %int_0 %int_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %22 = OpConstantNull %v4uint
+         %23 = OpConstantNull %v4uint
     %float_1 = OpConstant %float 1
 %textureLoad_127e12 = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_v4uint Function %22
+        %res = OpVariable %_ptr_Function_v4uint Function %23
          %15 = OpLoad %7 %arg_0
-         %13 = OpImageRead %v4uint %15 %19
+         %13 = OpImageRead %v4uint %15 %20
                OpStore %res %13
                OpReturn
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
-         %24 = OpLabel
+         %25 = OpLabel
                OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %textureLoad_127e12
+         %27 = OpFunctionCall %void %textureLoad_127e12
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureLoad_127e12
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %textureLoad_127e12
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureLoad_127e12
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureLoad_127e12
                OpReturn
                OpFunctionEnd
-
-
-Validation Failure:
-1:1: OpConstantComposite Constituent <id> count does not match Result Type <id> '16[%v3int]'s vector component count.
-  %19 = OpConstantComposite %v3int %int_1
-
diff --git a/test/intrinsics/gen/textureLoad/19cf87.wgsl.expected.hlsl b/test/intrinsics/gen/textureLoad/19cf87.wgsl.expected.hlsl
index 9f700a7..dfaa30b 100644
--- a/test/intrinsics/gen/textureLoad/19cf87.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureLoad/19cf87.wgsl.expected.hlsl
@@ -1,12 +1,7 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 Texture2D arg_0 : register(t0, space1);
 
 void textureLoad_19cf87() {
-  float res = arg_0.Load(int3(0), 1);
+  float res = arg_0.Load(int3(0, 0, 0), 1);
 }
 
 void vertex_main() {
@@ -25,27 +20,3 @@
   return;
 }
 
-
-tint_ZX1vzT:4:31: error: too few elements in vector initialization (expected 3 elements, have 1)
-  float res = arg_0.Load(int3(0), 1);
-                              ^
-tint_ZX1vzT:4:9: warning: implicit truncation of vector type [-Wconversion]
-  float res = arg_0.Load(int3(0), 1);
-        ^
-
-
-tint_ZX1vzT:4:31: error: too few elements in vector initialization (expected 3 elements, have 1)
-  float res = arg_0.Load(int3(0), 1);
-                              ^
-tint_ZX1vzT:4:9: warning: implicit truncation of vector type [-Wconversion]
-  float res = arg_0.Load(int3(0), 1);
-        ^
-
-
-tint_ZX1vzT:4:31: error: too few elements in vector initialization (expected 3 elements, have 1)
-  float res = arg_0.Load(int3(0), 1);
-                              ^
-tint_ZX1vzT:4:9: warning: implicit truncation of vector type [-Wconversion]
-  float res = arg_0.Load(int3(0), 1);
-        ^
-
diff --git a/test/intrinsics/gen/textureLoad/1a062f.wgsl.expected.hlsl b/test/intrinsics/gen/textureLoad/1a062f.wgsl.expected.hlsl
index 61e5ce9..d55f5bf 100644
--- a/test/intrinsics/gen/textureLoad/1a062f.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureLoad/1a062f.wgsl.expected.hlsl
@@ -1,12 +1,7 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 void textureLoad_1a062f() {
-  float4 res = arg_0.Load(int4(1, 0));
+  float4 res = arg_0.Load(int4(0, 0, 1, 0));
 }
 
 void vertex_main() {
@@ -25,18 +20,3 @@
   return;
 }
 
-
-tint_ONx53X:4:32: error: too few elements in vector initialization (expected 4 elements, have 2)
-  float4 res = arg_0.Load(int4(1, 0));
-                               ^
-
-
-tint_ONx53X:4:32: error: too few elements in vector initialization (expected 4 elements, have 2)
-  float4 res = arg_0.Load(int4(1, 0));
-                               ^
-
-
-tint_ONx53X:4:32: error: too few elements in vector initialization (expected 4 elements, have 2)
-  float4 res = arg_0.Load(int4(1, 0));
-                               ^
-
diff --git a/test/intrinsics/gen/textureLoad/1a062f.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/1a062f.wgsl.expected.spvasm
index 2a98010..9fa17bc 100644
--- a/test/intrinsics/gen/textureLoad/1a062f.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/1a062f.wgsl.expected.spvasm
@@ -1,9 +1,7 @@
-SKIP: FAILED
-
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -35,38 +33,33 @@
     %v4float = OpTypeVector %float 4
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
+      %int_0 = OpConstant %int 0
       %int_1 = OpConstant %int 1
-         %18 = OpConstantComposite %v3int %int_1
+         %19 = OpConstantComposite %v3int %int_0 %int_0 %int_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %21 = OpConstantNull %v4float
+         %22 = OpConstantNull %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_1a062f = OpFunction %void None %8
          %11 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %21
+        %res = OpVariable %_ptr_Function_v4float Function %22
          %14 = OpLoad %7 %arg_0
-         %12 = OpImageRead %v4float %14 %18
+         %12 = OpImageRead %v4float %14 %19
                OpStore %res %12
                OpReturn
                OpFunctionEnd
 %vertex_main = OpFunction %void None %8
-         %23 = OpLabel
+         %24 = OpLabel
                OpStore %tint_pointsize %float_1
-         %25 = OpFunctionCall %void %textureLoad_1a062f
+         %26 = OpFunctionCall %void %textureLoad_1a062f
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %textureLoad_1a062f
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureLoad_1a062f
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %8
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureLoad_1a062f
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureLoad_1a062f
                OpReturn
                OpFunctionEnd
-
-
-Validation Failure:
-1:1: OpConstantComposite Constituent <id> count does not match Result Type <id> '15[%v3int]'s vector component count.
-  %18 = OpConstantComposite %v3int %int_1
-
diff --git a/test/intrinsics/gen/textureLoad/1f2016.wgsl.expected.hlsl b/test/intrinsics/gen/textureLoad/1f2016.wgsl.expected.hlsl
index e6296a1..58fdcc6 100644
--- a/test/intrinsics/gen/textureLoad/1f2016.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureLoad/1f2016.wgsl.expected.hlsl
@@ -1,12 +1,7 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 Texture3D<float4> arg_0 : register(t0, space1);
 
 void textureLoad_1f2016() {
-  float4 res = arg_0.Load(int4(0), 1);
+  float4 res = arg_0.Load(int4(0, 0, 0, 0), 1);
 }
 
 void vertex_main() {
@@ -25,18 +20,3 @@
   return;
 }
 
-
-tint_jDpZEi:4:32: error: too few elements in vector initialization (expected 4 elements, have 1)
-  float4 res = arg_0.Load(int4(0), 1);
-                               ^
-
-
-tint_jDpZEi:4:32: error: too few elements in vector initialization (expected 4 elements, have 1)
-  float4 res = arg_0.Load(int4(0), 1);
-                               ^
-
-
-tint_jDpZEi:4:32: error: too few elements in vector initialization (expected 4 elements, have 1)
-  float4 res = arg_0.Load(int4(0), 1);
-                               ^
-
diff --git a/test/intrinsics/gen/textureLoad/20fa2f.wgsl.expected.hlsl b/test/intrinsics/gen/textureLoad/20fa2f.wgsl.expected.hlsl
index 62fc6aa..ad5376e 100644
--- a/test/intrinsics/gen/textureLoad/20fa2f.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureLoad/20fa2f.wgsl.expected.hlsl
@@ -1,12 +1,7 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 void textureLoad_20fa2f() {
-  float4 res = arg_0.Load(int4(1, 0));
+  float4 res = arg_0.Load(int4(0, 0, 1, 0));
 }
 
 void vertex_main() {
@@ -25,18 +20,3 @@
   return;
 }
 
-
-tint_yeLScq:4:32: error: too few elements in vector initialization (expected 4 elements, have 2)
-  float4 res = arg_0.Load(int4(1, 0));
-                               ^
-
-
-tint_yeLScq:4:32: error: too few elements in vector initialization (expected 4 elements, have 2)
-  float4 res = arg_0.Load(int4(1, 0));
-                               ^
-
-
-tint_yeLScq:4:32: error: too few elements in vector initialization (expected 4 elements, have 2)
-  float4 res = arg_0.Load(int4(1, 0));
-                               ^
-
diff --git a/test/intrinsics/gen/textureLoad/20fa2f.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/20fa2f.wgsl.expected.spvasm
index ae7ed4a..38e66ad 100644
--- a/test/intrinsics/gen/textureLoad/20fa2f.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/20fa2f.wgsl.expected.spvasm
@@ -1,9 +1,7 @@
-SKIP: FAILED
-
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
@@ -36,38 +34,33 @@
     %v4float = OpTypeVector %float 4
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
+      %int_0 = OpConstant %int 0
       %int_1 = OpConstant %int 1
-         %18 = OpConstantComposite %v3int %int_1
+         %19 = OpConstantComposite %v3int %int_0 %int_0 %int_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %21 = OpConstantNull %v4float
+         %22 = OpConstantNull %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_20fa2f = OpFunction %void None %8
          %11 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %21
+        %res = OpVariable %_ptr_Function_v4float Function %22
          %14 = OpLoad %7 %arg_0
-         %12 = OpImageRead %v4float %14 %18
+         %12 = OpImageRead %v4float %14 %19
                OpStore %res %12
                OpReturn
                OpFunctionEnd
 %vertex_main = OpFunction %void None %8
-         %23 = OpLabel
+         %24 = OpLabel
                OpStore %tint_pointsize %float_1
-         %25 = OpFunctionCall %void %textureLoad_20fa2f
+         %26 = OpFunctionCall %void %textureLoad_20fa2f
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %textureLoad_20fa2f
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureLoad_20fa2f
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %8
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureLoad_20fa2f
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureLoad_20fa2f
                OpReturn
                OpFunctionEnd
-
-
-Validation Failure:
-1:1: OpConstantComposite Constituent <id> count does not match Result Type <id> '15[%v3int]'s vector component count.
-  %18 = OpConstantComposite %v3int %int_1
-
diff --git a/test/intrinsics/gen/textureLoad/2ae485.wgsl.expected.hlsl b/test/intrinsics/gen/textureLoad/2ae485.wgsl.expected.hlsl
index 469640f..f7bc458 100644
--- a/test/intrinsics/gen/textureLoad/2ae485.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureLoad/2ae485.wgsl.expected.hlsl
@@ -1,12 +1,7 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 Texture2D<int4> arg_0 : register(t0, space1);
 
 void textureLoad_2ae485() {
-  int4 res = arg_0.Load(int3(0));
+  int4 res = arg_0.Load(int3(0, 0, 0));
 }
 
 void vertex_main() {
@@ -25,18 +20,3 @@
   return;
 }
 
-
-tint_I3bEM0:4:30: error: too few elements in vector initialization (expected 3 elements, have 1)
-  int4 res = arg_0.Load(int3(0));
-                             ^
-
-
-tint_I3bEM0:4:30: error: too few elements in vector initialization (expected 3 elements, have 1)
-  int4 res = arg_0.Load(int3(0));
-                             ^
-
-
-tint_I3bEM0:4:30: error: too few elements in vector initialization (expected 3 elements, have 1)
-  int4 res = arg_0.Load(int3(0));
-                             ^
-
diff --git a/test/intrinsics/gen/textureLoad/3c0d9e.wgsl.expected.hlsl b/test/intrinsics/gen/textureLoad/3c0d9e.wgsl.expected.hlsl
index 4c4475b..560a7c3 100644
--- a/test/intrinsics/gen/textureLoad/3c0d9e.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureLoad/3c0d9e.wgsl.expected.hlsl
@@ -1,12 +1,7 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_3c0d9e() {
-  uint4 res = arg_0.Load(int3(0));
+  uint4 res = arg_0.Load(int3(0, 0, 0));
 }
 
 void vertex_main() {
@@ -25,18 +20,3 @@
   return;
 }
 
-
-tint_nGEaN9:4:31: error: too few elements in vector initialization (expected 3 elements, have 1)
-  uint4 res = arg_0.Load(int3(0));
-                              ^
-
-
-tint_nGEaN9:4:31: error: too few elements in vector initialization (expected 3 elements, have 1)
-  uint4 res = arg_0.Load(int3(0));
-                              ^
-
-
-tint_nGEaN9:4:31: error: too few elements in vector initialization (expected 3 elements, have 1)
-  uint4 res = arg_0.Load(int3(0));
-                              ^
-
diff --git a/test/intrinsics/gen/textureLoad/3c9587.wgsl.expected.hlsl b/test/intrinsics/gen/textureLoad/3c9587.wgsl.expected.hlsl
index 9670a67..a351a56 100644
--- a/test/intrinsics/gen/textureLoad/3c9587.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureLoad/3c9587.wgsl.expected.hlsl
@@ -1,12 +1,7 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 Texture2D<float4> arg_0 : register(t0, space1);
 
 void textureLoad_3c9587() {
-  float4 res = arg_0.Load(int3(0));
+  float4 res = arg_0.Load(int3(0, 0, 0));
 }
 
 void vertex_main() {
@@ -25,18 +20,3 @@
   return;
 }
 
-
-tint_NY3dUf:4:32: error: too few elements in vector initialization (expected 3 elements, have 1)
-  float4 res = arg_0.Load(int3(0));
-                               ^
-
-
-tint_NY3dUf:4:32: error: too few elements in vector initialization (expected 3 elements, have 1)
-  float4 res = arg_0.Load(int3(0));
-                               ^
-
-
-tint_NY3dUf:4:32: error: too few elements in vector initialization (expected 3 elements, have 1)
-  float4 res = arg_0.Load(int3(0));
-                               ^
-
diff --git a/test/intrinsics/gen/textureLoad/3d001b.wgsl.expected.hlsl b/test/intrinsics/gen/textureLoad/3d001b.wgsl.expected.hlsl
index 5672bad..0576fe6 100644
--- a/test/intrinsics/gen/textureLoad/3d001b.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureLoad/3d001b.wgsl.expected.hlsl
@@ -1,12 +1,7 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 Texture3D<int4> arg_0 : register(t0, space1);
 
 void textureLoad_3d001b() {
-  int4 res = arg_0.Load(int4(0));
+  int4 res = arg_0.Load(int4(0, 0, 0, 0));
 }
 
 void vertex_main() {
@@ -25,18 +20,3 @@
   return;
 }
 
-
-tint_7HF8Og:4:30: error: too few elements in vector initialization (expected 4 elements, have 1)
-  int4 res = arg_0.Load(int4(0));
-                             ^
-
-
-tint_7HF8Og:4:30: error: too few elements in vector initialization (expected 4 elements, have 1)
-  int4 res = arg_0.Load(int4(0));
-                             ^
-
-
-tint_7HF8Og:4:30: error: too few elements in vector initialization (expected 4 elements, have 1)
-  int4 res = arg_0.Load(int4(0));
-                             ^
-
diff --git a/test/intrinsics/gen/textureLoad/3d9c90.wgsl.expected.hlsl b/test/intrinsics/gen/textureLoad/3d9c90.wgsl.expected.hlsl
index 23429ff..e169362 100644
--- a/test/intrinsics/gen/textureLoad/3d9c90.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureLoad/3d9c90.wgsl.expected.hlsl
@@ -1,12 +1,7 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 Texture3D<float4> arg_0 : register(t0, space1);
 
 void textureLoad_3d9c90() {
-  float4 res = arg_0.Load(int4(0));
+  float4 res = arg_0.Load(int4(0, 0, 0, 0));
 }
 
 void vertex_main() {
@@ -25,18 +20,3 @@
   return;
 }
 
-
-tint_DNXias:4:32: error: too few elements in vector initialization (expected 4 elements, have 1)
-  float4 res = arg_0.Load(int4(0));
-                               ^
-
-
-tint_DNXias:4:32: error: too few elements in vector initialization (expected 4 elements, have 1)
-  float4 res = arg_0.Load(int4(0));
-                               ^
-
-
-tint_DNXias:4:32: error: too few elements in vector initialization (expected 4 elements, have 1)
-  float4 res = arg_0.Load(int4(0));
-                               ^
-
diff --git a/test/intrinsics/gen/textureLoad/484344.wgsl.expected.hlsl b/test/intrinsics/gen/textureLoad/484344.wgsl.expected.hlsl
index 37936dc..76de864 100644
--- a/test/intrinsics/gen/textureLoad/484344.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureLoad/484344.wgsl.expected.hlsl
@@ -1,12 +1,7 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 Texture2D<float4> arg_0 : register(t0, space1);
 
 void textureLoad_484344() {
-  float4 res = arg_0.Load(int3(0), 1);
+  float4 res = arg_0.Load(int3(0, 0, 0), 1);
 }
 
 void vertex_main() {
@@ -25,18 +20,3 @@
   return;
 }
 
-
-tint_UQRhQC:4:32: error: too few elements in vector initialization (expected 3 elements, have 1)
-  float4 res = arg_0.Load(int3(0), 1);
-                               ^
-
-
-tint_UQRhQC:4:32: error: too few elements in vector initialization (expected 3 elements, have 1)
-  float4 res = arg_0.Load(int3(0), 1);
-                               ^
-
-
-tint_UQRhQC:4:32: error: too few elements in vector initialization (expected 3 elements, have 1)
-  float4 res = arg_0.Load(int3(0), 1);
-                               ^
-
diff --git a/test/intrinsics/gen/textureLoad/4fd803.wgsl.expected.hlsl b/test/intrinsics/gen/textureLoad/4fd803.wgsl.expected.hlsl
index 83cfe48..7e4d6c0 100644
--- a/test/intrinsics/gen/textureLoad/4fd803.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureLoad/4fd803.wgsl.expected.hlsl
@@ -1,12 +1,7 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 Texture3D<int4> arg_0 : register(t0, space1);
 
 void textureLoad_4fd803() {
-  int4 res = arg_0.Load(int4(0), 1);
+  int4 res = arg_0.Load(int4(0, 0, 0, 0), 1);
 }
 
 void vertex_main() {
@@ -25,18 +20,3 @@
   return;
 }
 
-
-tint_njXxtO:4:30: error: too few elements in vector initialization (expected 4 elements, have 1)
-  int4 res = arg_0.Load(int4(0), 1);
-                             ^
-
-
-tint_njXxtO:4:30: error: too few elements in vector initialization (expected 4 elements, have 1)
-  int4 res = arg_0.Load(int4(0), 1);
-                             ^
-
-
-tint_njXxtO:4:30: error: too few elements in vector initialization (expected 4 elements, have 1)
-  int4 res = arg_0.Load(int4(0), 1);
-                             ^
-
diff --git a/test/intrinsics/gen/textureLoad/505aa2.wgsl.expected.hlsl b/test/intrinsics/gen/textureLoad/505aa2.wgsl.expected.hlsl
index a15566d..df305d0 100644
--- a/test/intrinsics/gen/textureLoad/505aa2.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureLoad/505aa2.wgsl.expected.hlsl
@@ -1,12 +1,7 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 Texture3D<int4> arg_0 : register(t0, space1);
 
 void textureLoad_505aa2() {
-  int4 res = arg_0.Load(int4(0));
+  int4 res = arg_0.Load(int4(0, 0, 0, 0));
 }
 
 void vertex_main() {
@@ -25,18 +20,3 @@
   return;
 }
 
-
-tint_sHFgpf:4:30: error: too few elements in vector initialization (expected 4 elements, have 1)
-  int4 res = arg_0.Load(int4(0));
-                             ^
-
-
-tint_sHFgpf:4:30: error: too few elements in vector initialization (expected 4 elements, have 1)
-  int4 res = arg_0.Load(int4(0));
-                             ^
-
-
-tint_sHFgpf:4:30: error: too few elements in vector initialization (expected 4 elements, have 1)
-  int4 res = arg_0.Load(int4(0));
-                             ^
-
diff --git a/test/intrinsics/gen/textureLoad/53378a.wgsl.expected.hlsl b/test/intrinsics/gen/textureLoad/53378a.wgsl.expected.hlsl
index 23334b1..0d1db96 100644
--- a/test/intrinsics/gen/textureLoad/53378a.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureLoad/53378a.wgsl.expected.hlsl
@@ -1,12 +1,7 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 Texture2D<int4> arg_0 : register(t0, space1);
 
 void textureLoad_53378a() {
-  int4 res = arg_0.Load(int3(0));
+  int4 res = arg_0.Load(int3(0, 0, 0));
 }
 
 void vertex_main() {
@@ -25,18 +20,3 @@
   return;
 }
 
-
-tint_OBikHu:4:30: error: too few elements in vector initialization (expected 3 elements, have 1)
-  int4 res = arg_0.Load(int3(0));
-                             ^
-
-
-tint_OBikHu:4:30: error: too few elements in vector initialization (expected 3 elements, have 1)
-  int4 res = arg_0.Load(int3(0));
-                             ^
-
-
-tint_OBikHu:4:30: error: too few elements in vector initialization (expected 3 elements, have 1)
-  int4 res = arg_0.Load(int3(0));
-                             ^
-
diff --git a/test/intrinsics/gen/textureLoad/560573.wgsl.expected.hlsl b/test/intrinsics/gen/textureLoad/560573.wgsl.expected.hlsl
index 1e7d2fb..4543212 100644
--- a/test/intrinsics/gen/textureLoad/560573.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureLoad/560573.wgsl.expected.hlsl
@@ -1,12 +1,7 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 void textureLoad_560573() {
-  int4 res = arg_0.Load(int4(1, 0));
+  int4 res = arg_0.Load(int4(0, 0, 1, 0));
 }
 
 void vertex_main() {
@@ -25,18 +20,3 @@
   return;
 }
 
-
-tint_VTctXI:4:30: error: too few elements in vector initialization (expected 4 elements, have 2)
-  int4 res = arg_0.Load(int4(1, 0));
-                             ^
-
-
-tint_VTctXI:4:30: error: too few elements in vector initialization (expected 4 elements, have 2)
-  int4 res = arg_0.Load(int4(1, 0));
-                             ^
-
-
-tint_VTctXI:4:30: error: too few elements in vector initialization (expected 4 elements, have 2)
-  int4 res = arg_0.Load(int4(1, 0));
-                             ^
-
diff --git a/test/intrinsics/gen/textureLoad/560573.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/560573.wgsl.expected.spvasm
index c8598fb..36259a7 100644
--- a/test/intrinsics/gen/textureLoad/560573.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/560573.wgsl.expected.spvasm
@@ -1,9 +1,7 @@
-SKIP: FAILED
-
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -35,38 +33,33 @@
           %9 = OpTypeFunction %void
       %v4int = OpTypeVector %int 4
       %v3int = OpTypeVector %int 3
+      %int_0 = OpConstant %int 0
       %int_1 = OpConstant %int 1
-         %18 = OpConstantComposite %v3int %int_1
+         %19 = OpConstantComposite %v3int %int_0 %int_0 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %21 = OpConstantNull %v4int
+         %22 = OpConstantNull %v4int
     %float_1 = OpConstant %float 1
 %textureLoad_560573 = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_v4int Function %21
+        %res = OpVariable %_ptr_Function_v4int Function %22
          %15 = OpLoad %7 %arg_0
-         %13 = OpImageRead %v4int %15 %18
+         %13 = OpImageRead %v4int %15 %19
                OpStore %res %13
                OpReturn
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
-         %23 = OpLabel
+         %24 = OpLabel
                OpStore %tint_pointsize %float_1
-         %25 = OpFunctionCall %void %textureLoad_560573
+         %26 = OpFunctionCall %void %textureLoad_560573
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %textureLoad_560573
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureLoad_560573
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureLoad_560573
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureLoad_560573
                OpReturn
                OpFunctionEnd
-
-
-Validation Failure:
-1:1: OpConstantComposite Constituent <id> count does not match Result Type <id> '16[%v3int]'s vector component count.
-  %18 = OpConstantComposite %v3int %int_1
-
diff --git a/test/intrinsics/gen/textureLoad/582015.wgsl.expected.hlsl b/test/intrinsics/gen/textureLoad/582015.wgsl.expected.hlsl
index a9bb487..cb7a094 100644
--- a/test/intrinsics/gen/textureLoad/582015.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureLoad/582015.wgsl.expected.hlsl
@@ -1,12 +1,7 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 void textureLoad_582015() {
-  int4 res = arg_0.Load(int4(1, 0));
+  int4 res = arg_0.Load(int4(0, 0, 1, 0));
 }
 
 void vertex_main() {
@@ -25,18 +20,3 @@
   return;
 }
 
-
-tint_zwnAkS:4:30: error: too few elements in vector initialization (expected 4 elements, have 2)
-  int4 res = arg_0.Load(int4(1, 0));
-                             ^
-
-
-tint_zwnAkS:4:30: error: too few elements in vector initialization (expected 4 elements, have 2)
-  int4 res = arg_0.Load(int4(1, 0));
-                             ^
-
-
-tint_zwnAkS:4:30: error: too few elements in vector initialization (expected 4 elements, have 2)
-  int4 res = arg_0.Load(int4(1, 0));
-                             ^
-
diff --git a/test/intrinsics/gen/textureLoad/582015.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/582015.wgsl.expected.spvasm
index 8fe9100..0af201a 100644
--- a/test/intrinsics/gen/textureLoad/582015.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/582015.wgsl.expected.spvasm
@@ -1,9 +1,7 @@
-SKIP: FAILED
-
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -35,38 +33,33 @@
           %9 = OpTypeFunction %void
       %v4int = OpTypeVector %int 4
       %v3int = OpTypeVector %int 3
+      %int_0 = OpConstant %int 0
       %int_1 = OpConstant %int 1
-         %18 = OpConstantComposite %v3int %int_1
+         %19 = OpConstantComposite %v3int %int_0 %int_0 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %21 = OpConstantNull %v4int
+         %22 = OpConstantNull %v4int
     %float_1 = OpConstant %float 1
 %textureLoad_582015 = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_v4int Function %21
+        %res = OpVariable %_ptr_Function_v4int Function %22
          %15 = OpLoad %7 %arg_0
-         %13 = OpImageRead %v4int %15 %18
+         %13 = OpImageRead %v4int %15 %19
                OpStore %res %13
                OpReturn
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
-         %23 = OpLabel
+         %24 = OpLabel
                OpStore %tint_pointsize %float_1
-         %25 = OpFunctionCall %void %textureLoad_582015
+         %26 = OpFunctionCall %void %textureLoad_582015
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %textureLoad_582015
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureLoad_582015
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureLoad_582015
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureLoad_582015
                OpReturn
                OpFunctionEnd
-
-
-Validation Failure:
-1:1: OpConstantComposite Constituent <id> count does not match Result Type <id> '16[%v3int]'s vector component count.
-  %18 = OpConstantComposite %v3int %int_1
-
diff --git a/test/intrinsics/gen/textureLoad/5d0a2f.wgsl.expected.hlsl b/test/intrinsics/gen/textureLoad/5d0a2f.wgsl.expected.hlsl
index 28e0438..279b8b2 100644
--- a/test/intrinsics/gen/textureLoad/5d0a2f.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureLoad/5d0a2f.wgsl.expected.hlsl
@@ -1,12 +1,7 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_5d0a2f() {
-  uint4 res = arg_0.Load(int4(1, 0));
+  uint4 res = arg_0.Load(int4(0, 0, 1, 0));
 }
 
 void vertex_main() {
@@ -25,18 +20,3 @@
   return;
 }
 
-
-tint_6yX9g1:4:31: error: too few elements in vector initialization (expected 4 elements, have 2)
-  uint4 res = arg_0.Load(int4(1, 0));
-                              ^
-
-
-tint_6yX9g1:4:31: error: too few elements in vector initialization (expected 4 elements, have 2)
-  uint4 res = arg_0.Load(int4(1, 0));
-                              ^
-
-
-tint_6yX9g1:4:31: error: too few elements in vector initialization (expected 4 elements, have 2)
-  uint4 res = arg_0.Load(int4(1, 0));
-                              ^
-
diff --git a/test/intrinsics/gen/textureLoad/5d0a2f.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/5d0a2f.wgsl.expected.spvasm
index 6bf1faa..1393b72 100644
--- a/test/intrinsics/gen/textureLoad/5d0a2f.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/5d0a2f.wgsl.expected.spvasm
@@ -1,9 +1,7 @@
-SKIP: FAILED
-
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 33
+; Bound: 34
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -36,38 +34,33 @@
      %v4uint = OpTypeVector %uint 4
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
+      %int_0 = OpConstant %int 0
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v3int %int_1
+         %20 = OpConstantComposite %v3int %int_0 %int_0 %int_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %22 = OpConstantNull %v4uint
+         %23 = OpConstantNull %v4uint
     %float_1 = OpConstant %float 1
 %textureLoad_5d0a2f = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_v4uint Function %22
+        %res = OpVariable %_ptr_Function_v4uint Function %23
          %15 = OpLoad %7 %arg_0
-         %13 = OpImageRead %v4uint %15 %19
+         %13 = OpImageRead %v4uint %15 %20
                OpStore %res %13
                OpReturn
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
-         %24 = OpLabel
+         %25 = OpLabel
                OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %textureLoad_5d0a2f
+         %27 = OpFunctionCall %void %textureLoad_5d0a2f
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureLoad_5d0a2f
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %textureLoad_5d0a2f
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureLoad_5d0a2f
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureLoad_5d0a2f
                OpReturn
                OpFunctionEnd
-
-
-Validation Failure:
-1:1: OpConstantComposite Constituent <id> count does not match Result Type <id> '16[%v3int]'s vector component count.
-  %19 = OpConstantComposite %v3int %int_1
-
diff --git a/test/intrinsics/gen/textureLoad/6154d4.wgsl.expected.hlsl b/test/intrinsics/gen/textureLoad/6154d4.wgsl.expected.hlsl
index 5642481..f66dcc0 100644
--- a/test/intrinsics/gen/textureLoad/6154d4.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureLoad/6154d4.wgsl.expected.hlsl
@@ -1,12 +1,7 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_6154d4() {
-  uint4 res = arg_0.Load(int3(0), 1);
+  uint4 res = arg_0.Load(int3(0, 0, 0), 1);
 }
 
 void vertex_main() {
@@ -25,18 +20,3 @@
   return;
 }
 
-
-tint_QZYT9D:4:31: error: too few elements in vector initialization (expected 3 elements, have 1)
-  uint4 res = arg_0.Load(int3(0), 1);
-                              ^
-
-
-tint_QZYT9D:4:31: error: too few elements in vector initialization (expected 3 elements, have 1)
-  uint4 res = arg_0.Load(int3(0), 1);
-                              ^
-
-
-tint_QZYT9D:4:31: error: too few elements in vector initialization (expected 3 elements, have 1)
-  uint4 res = arg_0.Load(int3(0), 1);
-                              ^
-
diff --git a/test/intrinsics/gen/textureLoad/62d125.wgsl.expected.hlsl b/test/intrinsics/gen/textureLoad/62d125.wgsl.expected.hlsl
index 9a9a6cf..d099ebf 100644
--- a/test/intrinsics/gen/textureLoad/62d125.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureLoad/62d125.wgsl.expected.hlsl
@@ -1,12 +1,7 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 Texture3D<float4> arg_0 : register(t0, space1);
 
 void textureLoad_62d125() {
-  float4 res = arg_0.Load(int4(0));
+  float4 res = arg_0.Load(int4(0, 0, 0, 0));
 }
 
 void vertex_main() {
@@ -25,18 +20,3 @@
   return;
 }
 
-
-tint_Q3PltH:4:32: error: too few elements in vector initialization (expected 4 elements, have 1)
-  float4 res = arg_0.Load(int4(0));
-                               ^
-
-
-tint_Q3PltH:4:32: error: too few elements in vector initialization (expected 4 elements, have 1)
-  float4 res = arg_0.Load(int4(0));
-                               ^
-
-
-tint_Q3PltH:4:32: error: too few elements in vector initialization (expected 4 elements, have 1)
-  float4 res = arg_0.Load(int4(0));
-                               ^
-
diff --git a/test/intrinsics/gen/textureLoad/67edca.wgsl.expected.hlsl b/test/intrinsics/gen/textureLoad/67edca.wgsl.expected.hlsl
index 709ab83..ef0fc27 100644
--- a/test/intrinsics/gen/textureLoad/67edca.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureLoad/67edca.wgsl.expected.hlsl
@@ -1,12 +1,7 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_67edca() {
-  uint4 res = arg_0.Load(int4(0));
+  uint4 res = arg_0.Load(int4(0, 0, 0, 0));
 }
 
 void vertex_main() {
@@ -25,18 +20,3 @@
   return;
 }
 
-
-tint_YIVt97:4:31: error: too few elements in vector initialization (expected 4 elements, have 1)
-  uint4 res = arg_0.Load(int4(0));
-                              ^
-
-
-tint_YIVt97:4:31: error: too few elements in vector initialization (expected 4 elements, have 1)
-  uint4 res = arg_0.Load(int4(0));
-                              ^
-
-
-tint_YIVt97:4:31: error: too few elements in vector initialization (expected 4 elements, have 1)
-  uint4 res = arg_0.Load(int4(0));
-                              ^
-
diff --git a/test/intrinsics/gen/textureLoad/749704.wgsl.expected.hlsl b/test/intrinsics/gen/textureLoad/749704.wgsl.expected.hlsl
index 2c3d946..8743700 100644
--- a/test/intrinsics/gen/textureLoad/749704.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureLoad/749704.wgsl.expected.hlsl
@@ -1,12 +1,7 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_749704() {
-  uint4 res = arg_0.Load(int3(0));
+  uint4 res = arg_0.Load(int3(0, 0, 0));
 }
 
 void vertex_main() {
@@ -25,18 +20,3 @@
   return;
 }
 
-
-tint_Jwx5mi:4:31: error: too few elements in vector initialization (expected 3 elements, have 1)
-  uint4 res = arg_0.Load(int3(0));
-                              ^
-
-
-tint_Jwx5mi:4:31: error: too few elements in vector initialization (expected 3 elements, have 1)
-  uint4 res = arg_0.Load(int3(0));
-                              ^
-
-
-tint_Jwx5mi:4:31: error: too few elements in vector initialization (expected 3 elements, have 1)
-  uint4 res = arg_0.Load(int3(0));
-                              ^
-
diff --git a/test/intrinsics/gen/textureLoad/79e697.wgsl.expected.hlsl b/test/intrinsics/gen/textureLoad/79e697.wgsl.expected.hlsl
index 1cddd6c..d7eef53 100644
--- a/test/intrinsics/gen/textureLoad/79e697.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureLoad/79e697.wgsl.expected.hlsl
@@ -1,12 +1,7 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 void textureLoad_79e697() {
-  int4 res = arg_0.Load(int4(1, 0), 1);
+  int4 res = arg_0.Load(int4(0, 0, 1, 0), 1);
 }
 
 void vertex_main() {
@@ -25,18 +20,3 @@
   return;
 }
 
-
-tint_P9Drzs:4:30: error: too few elements in vector initialization (expected 4 elements, have 2)
-  int4 res = arg_0.Load(int4(1, 0), 1);
-                             ^
-
-
-tint_P9Drzs:4:30: error: too few elements in vector initialization (expected 4 elements, have 2)
-  int4 res = arg_0.Load(int4(1, 0), 1);
-                             ^
-
-
-tint_P9Drzs:4:30: error: too few elements in vector initialization (expected 4 elements, have 2)
-  int4 res = arg_0.Load(int4(1, 0), 1);
-                             ^
-
diff --git a/test/intrinsics/gen/textureLoad/79e697.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/79e697.wgsl.expected.spvasm
index 5d05eba..a588443 100644
--- a/test/intrinsics/gen/textureLoad/79e697.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/79e697.wgsl.expected.spvasm
@@ -1,9 +1,7 @@
-SKIP: FAILED
-
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -34,38 +32,33 @@
           %9 = OpTypeFunction %void
       %v4int = OpTypeVector %int 4
       %v3int = OpTypeVector %int 3
+      %int_0 = OpConstant %int 0
       %int_1 = OpConstant %int 1
-         %18 = OpConstantComposite %v3int %int_1
+         %19 = OpConstantComposite %v3int %int_0 %int_0 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %21 = OpConstantNull %v4int
+         %22 = OpConstantNull %v4int
     %float_1 = OpConstant %float 1
 %textureLoad_79e697 = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_v4int Function %21
+        %res = OpVariable %_ptr_Function_v4int Function %22
          %15 = OpLoad %7 %arg_0
-         %13 = OpImageFetch %v4int %15 %18 Lod %int_1
+         %13 = OpImageFetch %v4int %15 %19 Lod %int_1
                OpStore %res %13
                OpReturn
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
-         %23 = OpLabel
+         %24 = OpLabel
                OpStore %tint_pointsize %float_1
-         %25 = OpFunctionCall %void %textureLoad_79e697
+         %26 = OpFunctionCall %void %textureLoad_79e697
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %textureLoad_79e697
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureLoad_79e697
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureLoad_79e697
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureLoad_79e697
                OpReturn
                OpFunctionEnd
-
-
-Validation Failure:
-1:1: OpConstantComposite Constituent <id> count does not match Result Type <id> '16[%v3int]'s vector component count.
-  %18 = OpConstantComposite %v3int %int_1
-
diff --git a/test/intrinsics/gen/textureLoad/7c90e5.wgsl.expected.hlsl b/test/intrinsics/gen/textureLoad/7c90e5.wgsl.expected.hlsl
index de8c82e..d04ec21 100644
--- a/test/intrinsics/gen/textureLoad/7c90e5.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureLoad/7c90e5.wgsl.expected.hlsl
@@ -1,12 +1,7 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_7c90e5() {
-  uint4 res = arg_0.Load(int4(1, 0), 1);
+  uint4 res = arg_0.Load(int4(0, 0, 1, 0), 1);
 }
 
 void vertex_main() {
@@ -25,18 +20,3 @@
   return;
 }
 
-
-tint_BFevEy:4:31: error: too few elements in vector initialization (expected 4 elements, have 2)
-  uint4 res = arg_0.Load(int4(1, 0), 1);
-                              ^
-
-
-tint_BFevEy:4:31: error: too few elements in vector initialization (expected 4 elements, have 2)
-  uint4 res = arg_0.Load(int4(1, 0), 1);
-                              ^
-
-
-tint_BFevEy:4:31: error: too few elements in vector initialization (expected 4 elements, have 2)
-  uint4 res = arg_0.Load(int4(1, 0), 1);
-                              ^
-
diff --git a/test/intrinsics/gen/textureLoad/7c90e5.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/7c90e5.wgsl.expected.spvasm
index 3446266..238c678 100644
--- a/test/intrinsics/gen/textureLoad/7c90e5.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/7c90e5.wgsl.expected.spvasm
@@ -1,9 +1,7 @@
-SKIP: FAILED
-
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 33
+; Bound: 34
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -35,38 +33,33 @@
      %v4uint = OpTypeVector %uint 4
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
+      %int_0 = OpConstant %int 0
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v3int %int_1
+         %20 = OpConstantComposite %v3int %int_0 %int_0 %int_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %22 = OpConstantNull %v4uint
+         %23 = OpConstantNull %v4uint
     %float_1 = OpConstant %float 1
 %textureLoad_7c90e5 = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_v4uint Function %22
+        %res = OpVariable %_ptr_Function_v4uint Function %23
          %15 = OpLoad %7 %arg_0
-         %13 = OpImageFetch %v4uint %15 %19 Lod %int_1
+         %13 = OpImageFetch %v4uint %15 %20 Lod %int_1
                OpStore %res %13
                OpReturn
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
-         %24 = OpLabel
+         %25 = OpLabel
                OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %textureLoad_7c90e5
+         %27 = OpFunctionCall %void %textureLoad_7c90e5
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureLoad_7c90e5
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %textureLoad_7c90e5
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureLoad_7c90e5
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureLoad_7c90e5
                OpReturn
                OpFunctionEnd
-
-
-Validation Failure:
-1:1: OpConstantComposite Constituent <id> count does not match Result Type <id> '16[%v3int]'s vector component count.
-  %19 = OpConstantComposite %v3int %int_1
-
diff --git a/test/intrinsics/gen/textureLoad/87be85.wgsl.expected.hlsl b/test/intrinsics/gen/textureLoad/87be85.wgsl.expected.hlsl
index 477020c..776a68d 100644
--- a/test/intrinsics/gen/textureLoad/87be85.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureLoad/87be85.wgsl.expected.hlsl
@@ -1,12 +1,7 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 void textureLoad_87be85() {
-  float4 res = arg_0.Load(int4(1, 0), 1);
+  float4 res = arg_0.Load(int4(0, 0, 1, 0), 1);
 }
 
 void vertex_main() {
@@ -25,18 +20,3 @@
   return;
 }
 
-
-tint_vATPFA:4:32: error: too few elements in vector initialization (expected 4 elements, have 2)
-  float4 res = arg_0.Load(int4(1, 0), 1);
-                               ^
-
-
-tint_vATPFA:4:32: error: too few elements in vector initialization (expected 4 elements, have 2)
-  float4 res = arg_0.Load(int4(1, 0), 1);
-                               ^
-
-
-tint_vATPFA:4:32: error: too few elements in vector initialization (expected 4 elements, have 2)
-  float4 res = arg_0.Load(int4(1, 0), 1);
-                               ^
-
diff --git a/test/intrinsics/gen/textureLoad/87be85.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/87be85.wgsl.expected.spvasm
index 66cb0c8..bb3b579 100644
--- a/test/intrinsics/gen/textureLoad/87be85.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/87be85.wgsl.expected.spvasm
@@ -1,9 +1,7 @@
-SKIP: FAILED
-
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -34,38 +32,33 @@
     %v4float = OpTypeVector %float 4
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
+      %int_0 = OpConstant %int 0
       %int_1 = OpConstant %int 1
-         %18 = OpConstantComposite %v3int %int_1
+         %19 = OpConstantComposite %v3int %int_0 %int_0 %int_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %21 = OpConstantNull %v4float
+         %22 = OpConstantNull %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_87be85 = OpFunction %void None %8
          %11 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %21
+        %res = OpVariable %_ptr_Function_v4float Function %22
          %14 = OpLoad %7 %arg_0
-         %12 = OpImageFetch %v4float %14 %18 Lod %int_1
+         %12 = OpImageFetch %v4float %14 %19 Lod %int_1
                OpStore %res %12
                OpReturn
                OpFunctionEnd
 %vertex_main = OpFunction %void None %8
-         %23 = OpLabel
+         %24 = OpLabel
                OpStore %tint_pointsize %float_1
-         %25 = OpFunctionCall %void %textureLoad_87be85
+         %26 = OpFunctionCall %void %textureLoad_87be85
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %textureLoad_87be85
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureLoad_87be85
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %8
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureLoad_87be85
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureLoad_87be85
                OpReturn
                OpFunctionEnd
-
-
-Validation Failure:
-1:1: OpConstantComposite Constituent <id> count does not match Result Type <id> '15[%v3int]'s vector component count.
-  %18 = OpConstantComposite %v3int %int_1
-
diff --git a/test/intrinsics/gen/textureLoad/8acf41.wgsl.expected.hlsl b/test/intrinsics/gen/textureLoad/8acf41.wgsl.expected.hlsl
index dd3ce78..7ea3d47 100644
--- a/test/intrinsics/gen/textureLoad/8acf41.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureLoad/8acf41.wgsl.expected.hlsl
@@ -1,12 +1,7 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 Texture2D<float4> arg_0 : register(t0, space1);
 
 void textureLoad_8acf41() {
-  float4 res = arg_0.Load(int3(0), 0);
+  float4 res = arg_0.Load(int3(0, 0, 0), 0);
 }
 
 void vertex_main() {
@@ -25,18 +20,3 @@
   return;
 }
 
-
-tint_ZQ8VDM:4:32: error: too few elements in vector initialization (expected 3 elements, have 1)
-  float4 res = arg_0.Load(int3(0), 0);
-                               ^
-
-
-tint_ZQ8VDM:4:32: error: too few elements in vector initialization (expected 3 elements, have 1)
-  float4 res = arg_0.Load(int3(0), 0);
-                               ^
-
-
-tint_ZQ8VDM:4:32: error: too few elements in vector initialization (expected 3 elements, have 1)
-  float4 res = arg_0.Load(int3(0), 0);
-                               ^
-
diff --git a/test/intrinsics/gen/textureLoad/8e5032.wgsl.expected.hlsl b/test/intrinsics/gen/textureLoad/8e5032.wgsl.expected.hlsl
index 5e873e1..3b15dee 100644
--- a/test/intrinsics/gen/textureLoad/8e5032.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureLoad/8e5032.wgsl.expected.hlsl
@@ -1,12 +1,7 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_8e5032() {
-  uint4 res = arg_0.Load(int4(1, 0));
+  uint4 res = arg_0.Load(int4(0, 0, 1, 0));
 }
 
 void vertex_main() {
@@ -25,18 +20,3 @@
   return;
 }
 
-
-tint_nKMIU1:4:31: error: too few elements in vector initialization (expected 4 elements, have 2)
-  uint4 res = arg_0.Load(int4(1, 0));
-                              ^
-
-
-tint_nKMIU1:4:31: error: too few elements in vector initialization (expected 4 elements, have 2)
-  uint4 res = arg_0.Load(int4(1, 0));
-                              ^
-
-
-tint_nKMIU1:4:31: error: too few elements in vector initialization (expected 4 elements, have 2)
-  uint4 res = arg_0.Load(int4(1, 0));
-                              ^
-
diff --git a/test/intrinsics/gen/textureLoad/8e5032.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/8e5032.wgsl.expected.spvasm
index 53582a8..d348de0 100644
--- a/test/intrinsics/gen/textureLoad/8e5032.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/8e5032.wgsl.expected.spvasm
@@ -1,9 +1,7 @@
-SKIP: FAILED
-
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 33
+; Bound: 34
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
@@ -37,38 +35,33 @@
      %v4uint = OpTypeVector %uint 4
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
+      %int_0 = OpConstant %int 0
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v3int %int_1
+         %20 = OpConstantComposite %v3int %int_0 %int_0 %int_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %22 = OpConstantNull %v4uint
+         %23 = OpConstantNull %v4uint
     %float_1 = OpConstant %float 1
 %textureLoad_8e5032 = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_v4uint Function %22
+        %res = OpVariable %_ptr_Function_v4uint Function %23
          %15 = OpLoad %7 %arg_0
-         %13 = OpImageRead %v4uint %15 %19
+         %13 = OpImageRead %v4uint %15 %20
                OpStore %res %13
                OpReturn
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
-         %24 = OpLabel
+         %25 = OpLabel
                OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %textureLoad_8e5032
+         %27 = OpFunctionCall %void %textureLoad_8e5032
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureLoad_8e5032
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %textureLoad_8e5032
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureLoad_8e5032
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureLoad_8e5032
                OpReturn
                OpFunctionEnd
-
-
-Validation Failure:
-1:1: OpConstantComposite Constituent <id> count does not match Result Type <id> '16[%v3int]'s vector component count.
-  %19 = OpConstantComposite %v3int %int_1
-
diff --git a/test/intrinsics/gen/textureLoad/936952.wgsl.expected.hlsl b/test/intrinsics/gen/textureLoad/936952.wgsl.expected.hlsl
index 2009c30..416f4e1 100644
--- a/test/intrinsics/gen/textureLoad/936952.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureLoad/936952.wgsl.expected.hlsl
@@ -1,12 +1,7 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 void textureLoad_936952() {
-  float4 res = arg_0.Load(int4(1, 0));
+  float4 res = arg_0.Load(int4(0, 0, 1, 0));
 }
 
 void vertex_main() {
@@ -25,18 +20,3 @@
   return;
 }
 
-
-tint_5agKeg:4:32: error: too few elements in vector initialization (expected 4 elements, have 2)
-  float4 res = arg_0.Load(int4(1, 0));
-                               ^
-
-
-tint_5agKeg:4:32: error: too few elements in vector initialization (expected 4 elements, have 2)
-  float4 res = arg_0.Load(int4(1, 0));
-                               ^
-
-
-tint_5agKeg:4:32: error: too few elements in vector initialization (expected 4 elements, have 2)
-  float4 res = arg_0.Load(int4(1, 0));
-                               ^
-
diff --git a/test/intrinsics/gen/textureLoad/936952.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/936952.wgsl.expected.spvasm
index 413f85a..57aab33 100644
--- a/test/intrinsics/gen/textureLoad/936952.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/936952.wgsl.expected.spvasm
@@ -1,9 +1,7 @@
-SKIP: FAILED
-
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -35,38 +33,33 @@
     %v4float = OpTypeVector %float 4
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
+      %int_0 = OpConstant %int 0
       %int_1 = OpConstant %int 1
-         %18 = OpConstantComposite %v3int %int_1
+         %19 = OpConstantComposite %v3int %int_0 %int_0 %int_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %21 = OpConstantNull %v4float
+         %22 = OpConstantNull %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_936952 = OpFunction %void None %8
          %11 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %21
+        %res = OpVariable %_ptr_Function_v4float Function %22
          %14 = OpLoad %7 %arg_0
-         %12 = OpImageRead %v4float %14 %18
+         %12 = OpImageRead %v4float %14 %19
                OpStore %res %12
                OpReturn
                OpFunctionEnd
 %vertex_main = OpFunction %void None %8
-         %23 = OpLabel
+         %24 = OpLabel
                OpStore %tint_pointsize %float_1
-         %25 = OpFunctionCall %void %textureLoad_936952
+         %26 = OpFunctionCall %void %textureLoad_936952
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %textureLoad_936952
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureLoad_936952
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %8
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureLoad_936952
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureLoad_936952
                OpReturn
                OpFunctionEnd
-
-
-Validation Failure:
-1:1: OpConstantComposite Constituent <id> count does not match Result Type <id> '15[%v3int]'s vector component count.
-  %18 = OpConstantComposite %v3int %int_1
-
diff --git a/test/intrinsics/gen/textureLoad/9a7c90.wgsl.expected.hlsl b/test/intrinsics/gen/textureLoad/9a7c90.wgsl.expected.hlsl
index c889dba..65f8c55 100644
--- a/test/intrinsics/gen/textureLoad/9a7c90.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureLoad/9a7c90.wgsl.expected.hlsl
@@ -1,12 +1,7 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_9a7c90() {
-  uint4 res = arg_0.Load(int4(0));
+  uint4 res = arg_0.Load(int4(0, 0, 0, 0));
 }
 
 void vertex_main() {
@@ -25,18 +20,3 @@
   return;
 }
 
-
-tint_AO9JZy:4:31: error: too few elements in vector initialization (expected 4 elements, have 1)
-  uint4 res = arg_0.Load(int4(0));
-                              ^
-
-
-tint_AO9JZy:4:31: error: too few elements in vector initialization (expected 4 elements, have 1)
-  uint4 res = arg_0.Load(int4(0));
-                              ^
-
-
-tint_AO9JZy:4:31: error: too few elements in vector initialization (expected 4 elements, have 1)
-  uint4 res = arg_0.Load(int4(0));
-                              ^
-
diff --git a/test/intrinsics/gen/textureLoad/9b2667.wgsl.expected.hlsl b/test/intrinsics/gen/textureLoad/9b2667.wgsl.expected.hlsl
index b94ff9a..5bd840f 100644
--- a/test/intrinsics/gen/textureLoad/9b2667.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureLoad/9b2667.wgsl.expected.hlsl
@@ -1,12 +1,7 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 Texture2DArray arg_0 : register(t0, space1);
 
 void textureLoad_9b2667() {
-  float res = arg_0.Load(int4(1, 0), 1);
+  float res = arg_0.Load(int4(0, 0, 1, 0), 1);
 }
 
 void vertex_main() {
@@ -25,18 +20,3 @@
   return;
 }
 
-
-tint_J1cKa6:4:31: error: too few elements in vector initialization (expected 4 elements, have 2)
-  float res = arg_0.Load(int4(1, 0), 1);
-                              ^
-
-
-tint_J1cKa6:4:31: error: too few elements in vector initialization (expected 4 elements, have 2)
-  float res = arg_0.Load(int4(1, 0), 1);
-                              ^
-
-
-tint_J1cKa6:4:31: error: too few elements in vector initialization (expected 4 elements, have 2)
-  float res = arg_0.Load(int4(1, 0), 1);
-                              ^
-
diff --git a/test/intrinsics/gen/textureLoad/9b2667.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/9b2667.wgsl.expected.spvasm
index e342e2c..8d6f3b2 100644
--- a/test/intrinsics/gen/textureLoad/9b2667.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/9b2667.wgsl.expected.spvasm
@@ -1,9 +1,7 @@
-SKIP: FAILED
-
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -34,38 +32,33 @@
     %v4float = OpTypeVector %float 4
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
+      %int_0 = OpConstant %int 0
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v3int %int_1
+         %20 = OpConstantComposite %v3int %int_0 %int_0 %int_1
 %_ptr_Function_float = OpTypePointer Function %float
     %float_1 = OpConstant %float 1
 %textureLoad_9b2667 = OpFunction %void None %8
          %11 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %4
          %15 = OpLoad %7 %arg_0
-         %13 = OpImageFetch %v4float %15 %19 Lod %int_1
+         %13 = OpImageFetch %v4float %15 %20 Lod %int_1
          %12 = OpCompositeExtract %float %13 0
                OpStore %res %12
                OpReturn
                OpFunctionEnd
 %vertex_main = OpFunction %void None %8
-         %23 = OpLabel
+         %24 = OpLabel
                OpStore %tint_pointsize %float_1
-         %25 = OpFunctionCall %void %textureLoad_9b2667
+         %26 = OpFunctionCall %void %textureLoad_9b2667
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %textureLoad_9b2667
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureLoad_9b2667
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %8
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureLoad_9b2667
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureLoad_9b2667
                OpReturn
                OpFunctionEnd
-
-
-Validation Failure:
-1:1: OpConstantComposite Constituent <id> count does not match Result Type <id> '16[%v3int]'s vector component count.
-  %19 = OpConstantComposite %v3int %int_1
-
diff --git a/test/intrinsics/gen/textureLoad/9c2a14.wgsl.expected.hlsl b/test/intrinsics/gen/textureLoad/9c2a14.wgsl.expected.hlsl
index 4768d80..52098a7 100644
--- a/test/intrinsics/gen/textureLoad/9c2a14.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureLoad/9c2a14.wgsl.expected.hlsl
@@ -1,12 +1,7 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 Texture2D<float4> arg_0 : register(t0, space1);
 
 void textureLoad_9c2a14() {
-  float4 res = arg_0.Load(int3(0));
+  float4 res = arg_0.Load(int3(0, 0, 0));
 }
 
 void vertex_main() {
@@ -25,18 +20,3 @@
   return;
 }
 
-
-tint_Z4LvLC:4:32: error: too few elements in vector initialization (expected 3 elements, have 1)
-  float4 res = arg_0.Load(int3(0));
-                               ^
-
-
-tint_Z4LvLC:4:32: error: too few elements in vector initialization (expected 3 elements, have 1)
-  float4 res = arg_0.Load(int3(0));
-                               ^
-
-
-tint_Z4LvLC:4:32: error: too few elements in vector initialization (expected 3 elements, have 1)
-  float4 res = arg_0.Load(int3(0));
-                               ^
-
diff --git a/test/intrinsics/gen/textureLoad/a583c9.wgsl.expected.hlsl b/test/intrinsics/gen/textureLoad/a583c9.wgsl.expected.hlsl
index d0e08b5..58d4c23 100644
--- a/test/intrinsics/gen/textureLoad/a583c9.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureLoad/a583c9.wgsl.expected.hlsl
@@ -1,12 +1,7 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 Texture2DMS<float4> arg_0 : register(t0, space1);
 
 void textureLoad_a583c9() {
-  float4 res = arg_0.Load(int3(0), 1);
+  float4 res = arg_0.Load(int3(0, 0, 0), 1);
 }
 
 void vertex_main() {
@@ -25,27 +20,3 @@
   return;
 }
 
-
-tint_0qET7a:4:32: error: too few elements in vector initialization (expected 3 elements, have 1)
-  float4 res = arg_0.Load(int3(0), 1);
-                               ^
-tint_0qET7a:4:27: warning: implicit truncation of vector type [-Wconversion]
-  float4 res = arg_0.Load(int3(0), 1);
-                          ^
-
-
-tint_0qET7a:4:32: error: too few elements in vector initialization (expected 3 elements, have 1)
-  float4 res = arg_0.Load(int3(0), 1);
-                               ^
-tint_0qET7a:4:27: warning: implicit truncation of vector type [-Wconversion]
-  float4 res = arg_0.Load(int3(0), 1);
-                          ^
-
-
-tint_0qET7a:4:32: error: too few elements in vector initialization (expected 3 elements, have 1)
-  float4 res = arg_0.Load(int3(0), 1);
-                               ^
-tint_0qET7a:4:27: warning: implicit truncation of vector type [-Wconversion]
-  float4 res = arg_0.Load(int3(0), 1);
-                          ^
-
diff --git a/test/intrinsics/gen/textureLoad/a6a85a.wgsl.expected.hlsl b/test/intrinsics/gen/textureLoad/a6a85a.wgsl.expected.hlsl
index 18e1fee..c30dc1f 100644
--- a/test/intrinsics/gen/textureLoad/a6a85a.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureLoad/a6a85a.wgsl.expected.hlsl
@@ -1,12 +1,7 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 Texture3D<float4> arg_0 : register(t0, space1);
 
 void textureLoad_a6a85a() {
-  float4 res = arg_0.Load(int4(0));
+  float4 res = arg_0.Load(int4(0, 0, 0, 0));
 }
 
 void vertex_main() {
@@ -25,18 +20,3 @@
   return;
 }
 
-
-tint_5T6Aqu:4:32: error: too few elements in vector initialization (expected 4 elements, have 1)
-  float4 res = arg_0.Load(int4(0));
-                               ^
-
-
-tint_5T6Aqu:4:32: error: too few elements in vector initialization (expected 4 elements, have 1)
-  float4 res = arg_0.Load(int4(0));
-                               ^
-
-
-tint_5T6Aqu:4:32: error: too few elements in vector initialization (expected 4 elements, have 1)
-  float4 res = arg_0.Load(int4(0));
-                               ^
-
diff --git a/test/intrinsics/gen/textureLoad/a6b61d.wgsl.expected.hlsl b/test/intrinsics/gen/textureLoad/a6b61d.wgsl.expected.hlsl
index b9d20ed..bdce0ae 100644
--- a/test/intrinsics/gen/textureLoad/a6b61d.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureLoad/a6b61d.wgsl.expected.hlsl
@@ -1,12 +1,7 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 void textureLoad_a6b61d() {
-  int4 res = arg_0.Load(int4(1, 0));
+  int4 res = arg_0.Load(int4(0, 0, 1, 0));
 }
 
 void vertex_main() {
@@ -25,18 +20,3 @@
   return;
 }
 
-
-tint_zy9Rzv:4:30: error: too few elements in vector initialization (expected 4 elements, have 2)
-  int4 res = arg_0.Load(int4(1, 0));
-                             ^
-
-
-tint_zy9Rzv:4:30: error: too few elements in vector initialization (expected 4 elements, have 2)
-  int4 res = arg_0.Load(int4(1, 0));
-                             ^
-
-
-tint_zy9Rzv:4:30: error: too few elements in vector initialization (expected 4 elements, have 2)
-  int4 res = arg_0.Load(int4(1, 0));
-                             ^
-
diff --git a/test/intrinsics/gen/textureLoad/a6b61d.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/a6b61d.wgsl.expected.spvasm
index 3d2357a..0b8fdaa 100644
--- a/test/intrinsics/gen/textureLoad/a6b61d.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/a6b61d.wgsl.expected.spvasm
@@ -1,9 +1,7 @@
-SKIP: FAILED
-
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -35,38 +33,33 @@
           %9 = OpTypeFunction %void
       %v4int = OpTypeVector %int 4
       %v3int = OpTypeVector %int 3
+      %int_0 = OpConstant %int 0
       %int_1 = OpConstant %int 1
-         %18 = OpConstantComposite %v3int %int_1
+         %19 = OpConstantComposite %v3int %int_0 %int_0 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %21 = OpConstantNull %v4int
+         %22 = OpConstantNull %v4int
     %float_1 = OpConstant %float 1
 %textureLoad_a6b61d = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_v4int Function %21
+        %res = OpVariable %_ptr_Function_v4int Function %22
          %15 = OpLoad %7 %arg_0
-         %13 = OpImageRead %v4int %15 %18
+         %13 = OpImageRead %v4int %15 %19
                OpStore %res %13
                OpReturn
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
-         %23 = OpLabel
+         %24 = OpLabel
                OpStore %tint_pointsize %float_1
-         %25 = OpFunctionCall %void %textureLoad_a6b61d
+         %26 = OpFunctionCall %void %textureLoad_a6b61d
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %textureLoad_a6b61d
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureLoad_a6b61d
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureLoad_a6b61d
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureLoad_a6b61d
                OpReturn
                OpFunctionEnd
-
-
-Validation Failure:
-1:1: OpConstantComposite Constituent <id> count does not match Result Type <id> '16[%v3int]'s vector component count.
-  %18 = OpConstantComposite %v3int %int_1
-
diff --git a/test/intrinsics/gen/textureLoad/a7a3c3.wgsl.expected.hlsl b/test/intrinsics/gen/textureLoad/a7a3c3.wgsl.expected.hlsl
index 66f97b3..791b428 100644
--- a/test/intrinsics/gen/textureLoad/a7a3c3.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureLoad/a7a3c3.wgsl.expected.hlsl
@@ -1,12 +1,7 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 Texture3D<int4> arg_0 : register(t0, space1);
 
 void textureLoad_a7a3c3() {
-  int4 res = arg_0.Load(int4(0));
+  int4 res = arg_0.Load(int4(0, 0, 0, 0));
 }
 
 void vertex_main() {
@@ -25,18 +20,3 @@
   return;
 }
 
-
-tint_bip4TJ:4:30: error: too few elements in vector initialization (expected 4 elements, have 1)
-  int4 res = arg_0.Load(int4(0));
-                             ^
-
-
-tint_bip4TJ:4:30: error: too few elements in vector initialization (expected 4 elements, have 1)
-  int4 res = arg_0.Load(int4(0));
-                             ^
-
-
-tint_bip4TJ:4:30: error: too few elements in vector initialization (expected 4 elements, have 1)
-  int4 res = arg_0.Load(int4(0));
-                             ^
-
diff --git a/test/intrinsics/gen/textureLoad/a9a9f5.wgsl.expected.hlsl b/test/intrinsics/gen/textureLoad/a9a9f5.wgsl.expected.hlsl
index 1a77cc1..9c47a89 100644
--- a/test/intrinsics/gen/textureLoad/a9a9f5.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureLoad/a9a9f5.wgsl.expected.hlsl
@@ -1,12 +1,7 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_a9a9f5() {
-  uint4 res = arg_0.Load(int4(0), 1);
+  uint4 res = arg_0.Load(int4(0, 0, 0, 0), 1);
 }
 
 void vertex_main() {
@@ -25,18 +20,3 @@
   return;
 }
 
-
-tint_bOsi23:4:31: error: too few elements in vector initialization (expected 4 elements, have 1)
-  uint4 res = arg_0.Load(int4(0), 1);
-                              ^
-
-
-tint_bOsi23:4:31: error: too few elements in vector initialization (expected 4 elements, have 1)
-  uint4 res = arg_0.Load(int4(0), 1);
-                              ^
-
-
-tint_bOsi23:4:31: error: too few elements in vector initialization (expected 4 elements, have 1)
-  uint4 res = arg_0.Load(int4(0), 1);
-                              ^
-
diff --git a/test/intrinsics/gen/textureLoad/b1bf79.wgsl.expected.hlsl b/test/intrinsics/gen/textureLoad/b1bf79.wgsl.expected.hlsl
index ef7bcdf..f65c488 100644
--- a/test/intrinsics/gen/textureLoad/b1bf79.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureLoad/b1bf79.wgsl.expected.hlsl
@@ -1,12 +1,7 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 Texture3D<int4> arg_0 : register(t0, space1);
 
 void textureLoad_b1bf79() {
-  int4 res = arg_0.Load(int4(0));
+  int4 res = arg_0.Load(int4(0, 0, 0, 0));
 }
 
 void vertex_main() {
@@ -25,18 +20,3 @@
   return;
 }
 
-
-tint_IIBxye:4:30: error: too few elements in vector initialization (expected 4 elements, have 1)
-  int4 res = arg_0.Load(int4(0));
-                             ^
-
-
-tint_IIBxye:4:30: error: too few elements in vector initialization (expected 4 elements, have 1)
-  int4 res = arg_0.Load(int4(0));
-                             ^
-
-
-tint_IIBxye:4:30: error: too few elements in vector initialization (expected 4 elements, have 1)
-  int4 res = arg_0.Load(int4(0));
-                             ^
-
diff --git a/test/intrinsics/gen/textureLoad/b58c6d.wgsl.expected.hlsl b/test/intrinsics/gen/textureLoad/b58c6d.wgsl.expected.hlsl
index 5ee3586..1989266 100644
--- a/test/intrinsics/gen/textureLoad/b58c6d.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureLoad/b58c6d.wgsl.expected.hlsl
@@ -1,12 +1,7 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 void textureLoad_b58c6d() {
-  float4 res = arg_0.Load(int4(1, 0));
+  float4 res = arg_0.Load(int4(0, 0, 1, 0));
 }
 
 void vertex_main() {
@@ -25,18 +20,3 @@
   return;
 }
 
-
-tint_w6a5sI:4:32: error: too few elements in vector initialization (expected 4 elements, have 2)
-  float4 res = arg_0.Load(int4(1, 0));
-                               ^
-
-
-tint_w6a5sI:4:32: error: too few elements in vector initialization (expected 4 elements, have 2)
-  float4 res = arg_0.Load(int4(1, 0));
-                               ^
-
-
-tint_w6a5sI:4:32: error: too few elements in vector initialization (expected 4 elements, have 2)
-  float4 res = arg_0.Load(int4(1, 0));
-                               ^
-
diff --git a/test/intrinsics/gen/textureLoad/b58c6d.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/b58c6d.wgsl.expected.spvasm
index 666c185..784789e 100644
--- a/test/intrinsics/gen/textureLoad/b58c6d.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/b58c6d.wgsl.expected.spvasm
@@ -1,9 +1,7 @@
-SKIP: FAILED
-
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -35,38 +33,33 @@
     %v4float = OpTypeVector %float 4
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
+      %int_0 = OpConstant %int 0
       %int_1 = OpConstant %int 1
-         %18 = OpConstantComposite %v3int %int_1
+         %19 = OpConstantComposite %v3int %int_0 %int_0 %int_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %21 = OpConstantNull %v4float
+         %22 = OpConstantNull %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_b58c6d = OpFunction %void None %8
          %11 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %21
+        %res = OpVariable %_ptr_Function_v4float Function %22
          %14 = OpLoad %7 %arg_0
-         %12 = OpImageRead %v4float %14 %18
+         %12 = OpImageRead %v4float %14 %19
                OpStore %res %12
                OpReturn
                OpFunctionEnd
 %vertex_main = OpFunction %void None %8
-         %23 = OpLabel
+         %24 = OpLabel
                OpStore %tint_pointsize %float_1
-         %25 = OpFunctionCall %void %textureLoad_b58c6d
+         %26 = OpFunctionCall %void %textureLoad_b58c6d
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %textureLoad_b58c6d
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureLoad_b58c6d
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %8
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureLoad_b58c6d
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureLoad_b58c6d
                OpReturn
                OpFunctionEnd
-
-
-Validation Failure:
-1:1: OpConstantComposite Constituent <id> count does not match Result Type <id> '15[%v3int]'s vector component count.
-  %18 = OpConstantComposite %v3int %int_1
-
diff --git a/test/intrinsics/gen/textureLoad/b6c458.wgsl.expected.hlsl b/test/intrinsics/gen/textureLoad/b6c458.wgsl.expected.hlsl
index 773c1c3..ae9a17e 100644
--- a/test/intrinsics/gen/textureLoad/b6c458.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureLoad/b6c458.wgsl.expected.hlsl
@@ -1,12 +1,7 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_b6c458() {
-  uint4 res = arg_0.Load(int3(0));
+  uint4 res = arg_0.Load(int3(0, 0, 0));
 }
 
 void vertex_main() {
@@ -25,18 +20,3 @@
   return;
 }
 
-
-tint_VnSeLa:4:31: error: too few elements in vector initialization (expected 3 elements, have 1)
-  uint4 res = arg_0.Load(int3(0));
-                              ^
-
-
-tint_VnSeLa:4:31: error: too few elements in vector initialization (expected 3 elements, have 1)
-  uint4 res = arg_0.Load(int3(0));
-                              ^
-
-
-tint_VnSeLa:4:31: error: too few elements in vector initialization (expected 3 elements, have 1)
-  uint4 res = arg_0.Load(int3(0));
-                              ^
-
diff --git a/test/intrinsics/gen/textureLoad/bfd154.wgsl.expected.hlsl b/test/intrinsics/gen/textureLoad/bfd154.wgsl.expected.hlsl
index 89f908b..ef2856b 100644
--- a/test/intrinsics/gen/textureLoad/bfd154.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureLoad/bfd154.wgsl.expected.hlsl
@@ -1,12 +1,7 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_bfd154() {
-  uint4 res = arg_0.Load(int4(0));
+  uint4 res = arg_0.Load(int4(0, 0, 0, 0));
 }
 
 void vertex_main() {
@@ -25,18 +20,3 @@
   return;
 }
 
-
-tint_MeG28m:4:31: error: too few elements in vector initialization (expected 4 elements, have 1)
-  uint4 res = arg_0.Load(int4(0));
-                              ^
-
-
-tint_MeG28m:4:31: error: too few elements in vector initialization (expected 4 elements, have 1)
-  uint4 res = arg_0.Load(int4(0));
-                              ^
-
-
-tint_MeG28m:4:31: error: too few elements in vector initialization (expected 4 elements, have 1)
-  uint4 res = arg_0.Load(int4(0));
-                              ^
-
diff --git a/test/intrinsics/gen/textureLoad/c07013.wgsl.expected.hlsl b/test/intrinsics/gen/textureLoad/c07013.wgsl.expected.hlsl
index f46158a..66daded 100644
--- a/test/intrinsics/gen/textureLoad/c07013.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureLoad/c07013.wgsl.expected.hlsl
@@ -1,12 +1,7 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 Texture2D<float4> arg_0 : register(t0, space1);
 
 void textureLoad_c07013() {
-  float4 res = arg_0.Load(int3(0));
+  float4 res = arg_0.Load(int3(0, 0, 0));
 }
 
 void vertex_main() {
@@ -25,18 +20,3 @@
   return;
 }
 
-
-tint_vwsIDu:4:32: error: too few elements in vector initialization (expected 3 elements, have 1)
-  float4 res = arg_0.Load(int3(0));
-                               ^
-
-
-tint_vwsIDu:4:32: error: too few elements in vector initialization (expected 3 elements, have 1)
-  float4 res = arg_0.Load(int3(0));
-                               ^
-
-
-tint_vwsIDu:4:32: error: too few elements in vector initialization (expected 3 elements, have 1)
-  float4 res = arg_0.Load(int3(0));
-                               ^
-
diff --git a/test/intrinsics/gen/textureLoad/c2a480.wgsl.expected.hlsl b/test/intrinsics/gen/textureLoad/c2a480.wgsl.expected.hlsl
index 5e1b742..95b3490 100644
--- a/test/intrinsics/gen/textureLoad/c2a480.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureLoad/c2a480.wgsl.expected.hlsl
@@ -1,12 +1,7 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 Texture2D<int4> arg_0 : register(t0, space1);
 
 void textureLoad_c2a480() {
-  int4 res = arg_0.Load(int3(0), 1);
+  int4 res = arg_0.Load(int3(0, 0, 0), 1);
 }
 
 void vertex_main() {
@@ -25,18 +20,3 @@
   return;
 }
 
-
-tint_iO1fuJ:4:30: error: too few elements in vector initialization (expected 3 elements, have 1)
-  int4 res = arg_0.Load(int3(0), 1);
-                             ^
-
-
-tint_iO1fuJ:4:30: error: too few elements in vector initialization (expected 3 elements, have 1)
-  int4 res = arg_0.Load(int3(0), 1);
-                             ^
-
-
-tint_iO1fuJ:4:30: error: too few elements in vector initialization (expected 3 elements, have 1)
-  int4 res = arg_0.Load(int3(0), 1);
-                             ^
-
diff --git a/test/intrinsics/gen/textureLoad/c378ee.wgsl.expected.hlsl b/test/intrinsics/gen/textureLoad/c378ee.wgsl.expected.hlsl
index de64c52..05ac6e1 100644
--- a/test/intrinsics/gen/textureLoad/c378ee.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureLoad/c378ee.wgsl.expected.hlsl
@@ -1,12 +1,7 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 Texture2DMS<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_c378ee() {
-  uint4 res = arg_0.Load(int3(0), 1);
+  uint4 res = arg_0.Load(int3(0, 0, 0), 1);
 }
 
 void vertex_main() {
@@ -25,27 +20,3 @@
   return;
 }
 
-
-tint_xcs7fj:4:31: error: too few elements in vector initialization (expected 3 elements, have 1)
-  uint4 res = arg_0.Load(int3(0), 1);
-                              ^
-tint_xcs7fj:4:26: warning: implicit truncation of vector type [-Wconversion]
-  uint4 res = arg_0.Load(int3(0), 1);
-                         ^
-
-
-tint_xcs7fj:4:31: error: too few elements in vector initialization (expected 3 elements, have 1)
-  uint4 res = arg_0.Load(int3(0), 1);
-                              ^
-tint_xcs7fj:4:26: warning: implicit truncation of vector type [-Wconversion]
-  uint4 res = arg_0.Load(int3(0), 1);
-                         ^
-
-
-tint_xcs7fj:4:31: error: too few elements in vector initialization (expected 3 elements, have 1)
-  uint4 res = arg_0.Load(int3(0), 1);
-                              ^
-tint_xcs7fj:4:26: warning: implicit truncation of vector type [-Wconversion]
-  uint4 res = arg_0.Load(int3(0), 1);
-                         ^
-
diff --git a/test/intrinsics/gen/textureLoad/c40dcb.wgsl.expected.hlsl b/test/intrinsics/gen/textureLoad/c40dcb.wgsl.expected.hlsl
index 42c8b6a..f12a0a9 100644
--- a/test/intrinsics/gen/textureLoad/c40dcb.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureLoad/c40dcb.wgsl.expected.hlsl
@@ -1,12 +1,7 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_c40dcb() {
-  uint4 res = arg_0.Load(int4(1, 0));
+  uint4 res = arg_0.Load(int4(0, 0, 1, 0));
 }
 
 void vertex_main() {
@@ -25,18 +20,3 @@
   return;
 }
 
-
-tint_nOyzgu:4:31: error: too few elements in vector initialization (expected 4 elements, have 2)
-  uint4 res = arg_0.Load(int4(1, 0));
-                              ^
-
-
-tint_nOyzgu:4:31: error: too few elements in vector initialization (expected 4 elements, have 2)
-  uint4 res = arg_0.Load(int4(1, 0));
-                              ^
-
-
-tint_nOyzgu:4:31: error: too few elements in vector initialization (expected 4 elements, have 2)
-  uint4 res = arg_0.Load(int4(1, 0));
-                              ^
-
diff --git a/test/intrinsics/gen/textureLoad/c40dcb.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/c40dcb.wgsl.expected.spvasm
index 843dad9..340717f 100644
--- a/test/intrinsics/gen/textureLoad/c40dcb.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/c40dcb.wgsl.expected.spvasm
@@ -1,9 +1,7 @@
-SKIP: FAILED
-
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 33
+; Bound: 34
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -36,38 +34,33 @@
      %v4uint = OpTypeVector %uint 4
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
+      %int_0 = OpConstant %int 0
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v3int %int_1
+         %20 = OpConstantComposite %v3int %int_0 %int_0 %int_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %22 = OpConstantNull %v4uint
+         %23 = OpConstantNull %v4uint
     %float_1 = OpConstant %float 1
 %textureLoad_c40dcb = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_v4uint Function %22
+        %res = OpVariable %_ptr_Function_v4uint Function %23
          %15 = OpLoad %7 %arg_0
-         %13 = OpImageRead %v4uint %15 %19
+         %13 = OpImageRead %v4uint %15 %20
                OpStore %res %13
                OpReturn
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
-         %24 = OpLabel
+         %25 = OpLabel
                OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %textureLoad_c40dcb
+         %27 = OpFunctionCall %void %textureLoad_c40dcb
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureLoad_c40dcb
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %textureLoad_c40dcb
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureLoad_c40dcb
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureLoad_c40dcb
                OpReturn
                OpFunctionEnd
-
-
-Validation Failure:
-1:1: OpConstantComposite Constituent <id> count does not match Result Type <id> '16[%v3int]'s vector component count.
-  %19 = OpConstantComposite %v3int %int_1
-
diff --git a/test/intrinsics/gen/textureLoad/c456bc.wgsl.expected.hlsl b/test/intrinsics/gen/textureLoad/c456bc.wgsl.expected.hlsl
index 3a38cae..e0648d8 100644
--- a/test/intrinsics/gen/textureLoad/c456bc.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureLoad/c456bc.wgsl.expected.hlsl
@@ -1,12 +1,7 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 Texture3D<float4> arg_0 : register(t0, space1);
 
 void textureLoad_c456bc() {
-  float4 res = arg_0.Load(int4(0));
+  float4 res = arg_0.Load(int4(0, 0, 0, 0));
 }
 
 void vertex_main() {
@@ -25,18 +20,3 @@
   return;
 }
 
-
-tint_QnncaH:4:32: error: too few elements in vector initialization (expected 4 elements, have 1)
-  float4 res = arg_0.Load(int4(0));
-                               ^
-
-
-tint_QnncaH:4:32: error: too few elements in vector initialization (expected 4 elements, have 1)
-  float4 res = arg_0.Load(int4(0));
-                               ^
-
-
-tint_QnncaH:4:32: error: too few elements in vector initialization (expected 4 elements, have 1)
-  float4 res = arg_0.Load(int4(0));
-                               ^
-
diff --git a/test/intrinsics/gen/textureLoad/d5c48d.wgsl.expected.hlsl b/test/intrinsics/gen/textureLoad/d5c48d.wgsl.expected.hlsl
index 4bd5092..3bb75ac 100644
--- a/test/intrinsics/gen/textureLoad/d5c48d.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureLoad/d5c48d.wgsl.expected.hlsl
@@ -1,12 +1,7 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 Texture2D<float4> arg_0 : register(t0, space1);
 
 void textureLoad_d5c48d() {
-  float4 res = arg_0.Load(int3(0));
+  float4 res = arg_0.Load(int3(0, 0, 0));
 }
 
 void vertex_main() {
@@ -25,18 +20,3 @@
   return;
 }
 
-
-tint_UeYBhz:4:32: error: too few elements in vector initialization (expected 3 elements, have 1)
-  float4 res = arg_0.Load(int3(0));
-                               ^
-
-
-tint_UeYBhz:4:32: error: too few elements in vector initialization (expected 3 elements, have 1)
-  float4 res = arg_0.Load(int3(0));
-                               ^
-
-
-tint_UeYBhz:4:32: error: too few elements in vector initialization (expected 3 elements, have 1)
-  float4 res = arg_0.Load(int3(0));
-                               ^
-
diff --git a/test/intrinsics/gen/textureLoad/d8617f.wgsl.expected.hlsl b/test/intrinsics/gen/textureLoad/d8617f.wgsl.expected.hlsl
index 32ca152..2f96813 100644
--- a/test/intrinsics/gen/textureLoad/d8617f.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureLoad/d8617f.wgsl.expected.hlsl
@@ -1,12 +1,7 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 void textureLoad_d8617f() {
-  int4 res = arg_0.Load(int4(1, 0));
+  int4 res = arg_0.Load(int4(0, 0, 1, 0));
 }
 
 void vertex_main() {
@@ -25,18 +20,3 @@
   return;
 }
 
-
-tint_yt2JYq:4:30: error: too few elements in vector initialization (expected 4 elements, have 2)
-  int4 res = arg_0.Load(int4(1, 0));
-                             ^
-
-
-tint_yt2JYq:4:30: error: too few elements in vector initialization (expected 4 elements, have 2)
-  int4 res = arg_0.Load(int4(1, 0));
-                             ^
-
-
-tint_yt2JYq:4:30: error: too few elements in vector initialization (expected 4 elements, have 2)
-  int4 res = arg_0.Load(int4(1, 0));
-                             ^
-
diff --git a/test/intrinsics/gen/textureLoad/d8617f.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/d8617f.wgsl.expected.spvasm
index bc71530..c478e65 100644
--- a/test/intrinsics/gen/textureLoad/d8617f.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/d8617f.wgsl.expected.spvasm
@@ -1,9 +1,7 @@
-SKIP: FAILED
-
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
@@ -36,38 +34,33 @@
           %9 = OpTypeFunction %void
       %v4int = OpTypeVector %int 4
       %v3int = OpTypeVector %int 3
+      %int_0 = OpConstant %int 0
       %int_1 = OpConstant %int 1
-         %18 = OpConstantComposite %v3int %int_1
+         %19 = OpConstantComposite %v3int %int_0 %int_0 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %21 = OpConstantNull %v4int
+         %22 = OpConstantNull %v4int
     %float_1 = OpConstant %float 1
 %textureLoad_d8617f = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_v4int Function %21
+        %res = OpVariable %_ptr_Function_v4int Function %22
          %15 = OpLoad %7 %arg_0
-         %13 = OpImageRead %v4int %15 %18
+         %13 = OpImageRead %v4int %15 %19
                OpStore %res %13
                OpReturn
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
-         %23 = OpLabel
+         %24 = OpLabel
                OpStore %tint_pointsize %float_1
-         %25 = OpFunctionCall %void %textureLoad_d8617f
+         %26 = OpFunctionCall %void %textureLoad_d8617f
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %textureLoad_d8617f
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureLoad_d8617f
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureLoad_d8617f
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureLoad_d8617f
                OpReturn
                OpFunctionEnd
-
-
-Validation Failure:
-1:1: OpConstantComposite Constituent <id> count does not match Result Type <id> '16[%v3int]'s vector component count.
-  %18 = OpConstantComposite %v3int %int_1
-
diff --git a/test/intrinsics/gen/textureLoad/dbd554.wgsl.expected.hlsl b/test/intrinsics/gen/textureLoad/dbd554.wgsl.expected.hlsl
index cad23b2..8cbc99e 100644
--- a/test/intrinsics/gen/textureLoad/dbd554.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureLoad/dbd554.wgsl.expected.hlsl
@@ -1,12 +1,7 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 Texture2D<int4> arg_0 : register(t0, space1);
 
 void textureLoad_dbd554() {
-  int4 res = arg_0.Load(int3(0));
+  int4 res = arg_0.Load(int3(0, 0, 0));
 }
 
 void vertex_main() {
@@ -25,18 +20,3 @@
   return;
 }
 
-
-tint_SLZaZo:4:30: error: too few elements in vector initialization (expected 3 elements, have 1)
-  int4 res = arg_0.Load(int3(0));
-                             ^
-
-
-tint_SLZaZo:4:30: error: too few elements in vector initialization (expected 3 elements, have 1)
-  int4 res = arg_0.Load(int3(0));
-                             ^
-
-
-tint_SLZaZo:4:30: error: too few elements in vector initialization (expected 3 elements, have 1)
-  int4 res = arg_0.Load(int3(0));
-                             ^
-
diff --git a/test/intrinsics/gen/textureLoad/dee8e7.wgsl.expected.hlsl b/test/intrinsics/gen/textureLoad/dee8e7.wgsl.expected.hlsl
index 37754ac..f11845c 100644
--- a/test/intrinsics/gen/textureLoad/dee8e7.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureLoad/dee8e7.wgsl.expected.hlsl
@@ -1,12 +1,7 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 Texture2D<int4> arg_0 : register(t0, space1);
 
 void textureLoad_dee8e7() {
-  int4 res = arg_0.Load(int3(0));
+  int4 res = arg_0.Load(int3(0, 0, 0));
 }
 
 void vertex_main() {
@@ -25,18 +20,3 @@
   return;
 }
 
-
-tint_aYg0gJ:4:30: error: too few elements in vector initialization (expected 3 elements, have 1)
-  int4 res = arg_0.Load(int3(0));
-                             ^
-
-
-tint_aYg0gJ:4:30: error: too few elements in vector initialization (expected 3 elements, have 1)
-  int4 res = arg_0.Load(int3(0));
-                             ^
-
-
-tint_aYg0gJ:4:30: error: too few elements in vector initialization (expected 3 elements, have 1)
-  int4 res = arg_0.Load(int3(0));
-                             ^
-
diff --git a/test/intrinsics/gen/textureLoad/e3d2cc.wgsl.expected.hlsl b/test/intrinsics/gen/textureLoad/e3d2cc.wgsl.expected.hlsl
index 760683e..724f813 100644
--- a/test/intrinsics/gen/textureLoad/e3d2cc.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureLoad/e3d2cc.wgsl.expected.hlsl
@@ -1,12 +1,7 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 Texture2DMS<int4> arg_0 : register(t0, space1);
 
 void textureLoad_e3d2cc() {
-  int4 res = arg_0.Load(int3(0), 1);
+  int4 res = arg_0.Load(int3(0, 0, 0), 1);
 }
 
 void vertex_main() {
@@ -25,27 +20,3 @@
   return;
 }
 
-
-tint_ANIEwS:4:30: error: too few elements in vector initialization (expected 3 elements, have 1)
-  int4 res = arg_0.Load(int3(0), 1);
-                             ^
-tint_ANIEwS:4:25: warning: implicit truncation of vector type [-Wconversion]
-  int4 res = arg_0.Load(int3(0), 1);
-                        ^
-
-
-tint_ANIEwS:4:30: error: too few elements in vector initialization (expected 3 elements, have 1)
-  int4 res = arg_0.Load(int3(0), 1);
-                             ^
-tint_ANIEwS:4:25: warning: implicit truncation of vector type [-Wconversion]
-  int4 res = arg_0.Load(int3(0), 1);
-                        ^
-
-
-tint_ANIEwS:4:30: error: too few elements in vector initialization (expected 3 elements, have 1)
-  int4 res = arg_0.Load(int3(0), 1);
-                             ^
-tint_ANIEwS:4:25: warning: implicit truncation of vector type [-Wconversion]
-  int4 res = arg_0.Load(int3(0), 1);
-                        ^
-
diff --git a/test/intrinsics/gen/textureLoad/e65916.wgsl.expected.hlsl b/test/intrinsics/gen/textureLoad/e65916.wgsl.expected.hlsl
index c6aaac4..1184561 100644
--- a/test/intrinsics/gen/textureLoad/e65916.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureLoad/e65916.wgsl.expected.hlsl
@@ -1,12 +1,7 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 Texture3D<int4> arg_0 : register(t0, space1);
 
 void textureLoad_e65916() {
-  int4 res = arg_0.Load(int4(0));
+  int4 res = arg_0.Load(int4(0, 0, 0, 0));
 }
 
 void vertex_main() {
@@ -25,18 +20,3 @@
   return;
 }
 
-
-tint_6JKVm3:4:30: error: too few elements in vector initialization (expected 4 elements, have 1)
-  int4 res = arg_0.Load(int4(0));
-                             ^
-
-
-tint_6JKVm3:4:30: error: too few elements in vector initialization (expected 4 elements, have 1)
-  int4 res = arg_0.Load(int4(0));
-                             ^
-
-
-tint_6JKVm3:4:30: error: too few elements in vector initialization (expected 4 elements, have 1)
-  int4 res = arg_0.Load(int4(0));
-                             ^
-
diff --git a/test/intrinsics/gen/textureLoad/e893d7.wgsl.expected.hlsl b/test/intrinsics/gen/textureLoad/e893d7.wgsl.expected.hlsl
index a030b91..d3f874e 100644
--- a/test/intrinsics/gen/textureLoad/e893d7.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureLoad/e893d7.wgsl.expected.hlsl
@@ -1,12 +1,7 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 Texture2D<float4> arg_0 : register(t0, space1);
 
 void textureLoad_e893d7() {
-  float4 res = arg_0.Load(int3(0));
+  float4 res = arg_0.Load(int3(0, 0, 0));
 }
 
 void vertex_main() {
@@ -25,18 +20,3 @@
   return;
 }
 
-
-tint_DMD0a9:4:32: error: too few elements in vector initialization (expected 3 elements, have 1)
-  float4 res = arg_0.Load(int3(0));
-                               ^
-
-
-tint_DMD0a9:4:32: error: too few elements in vector initialization (expected 3 elements, have 1)
-  float4 res = arg_0.Load(int3(0));
-                               ^
-
-
-tint_DMD0a9:4:32: error: too few elements in vector initialization (expected 3 elements, have 1)
-  float4 res = arg_0.Load(int3(0));
-                               ^
-
diff --git a/test/intrinsics/gen/textureLoad/eb573b.wgsl.expected.hlsl b/test/intrinsics/gen/textureLoad/eb573b.wgsl.expected.hlsl
index 0bdfa79..a4fc90a 100644
--- a/test/intrinsics/gen/textureLoad/eb573b.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureLoad/eb573b.wgsl.expected.hlsl
@@ -1,12 +1,7 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 Texture2D<int4> arg_0 : register(t0, space1);
 
 void textureLoad_eb573b() {
-  int4 res = arg_0.Load(int3(0));
+  int4 res = arg_0.Load(int3(0, 0, 0));
 }
 
 void vertex_main() {
@@ -25,18 +20,3 @@
   return;
 }
 
-
-tint_LzeeML:4:30: error: too few elements in vector initialization (expected 3 elements, have 1)
-  int4 res = arg_0.Load(int3(0));
-                             ^
-
-
-tint_LzeeML:4:30: error: too few elements in vector initialization (expected 3 elements, have 1)
-  int4 res = arg_0.Load(int3(0));
-                             ^
-
-
-tint_LzeeML:4:30: error: too few elements in vector initialization (expected 3 elements, have 1)
-  int4 res = arg_0.Load(int3(0));
-                             ^
-
diff --git a/test/intrinsics/gen/textureLoad/ecc823.wgsl.expected.hlsl b/test/intrinsics/gen/textureLoad/ecc823.wgsl.expected.hlsl
index b801b02..7a7b63c 100644
--- a/test/intrinsics/gen/textureLoad/ecc823.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureLoad/ecc823.wgsl.expected.hlsl
@@ -1,12 +1,7 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_ecc823() {
-  uint4 res = arg_0.Load(int3(0));
+  uint4 res = arg_0.Load(int3(0, 0, 0));
 }
 
 void vertex_main() {
@@ -25,18 +20,3 @@
   return;
 }
 
-
-tint_tjkojb:4:31: error: too few elements in vector initialization (expected 3 elements, have 1)
-  uint4 res = arg_0.Load(int3(0));
-                              ^
-
-
-tint_tjkojb:4:31: error: too few elements in vector initialization (expected 3 elements, have 1)
-  uint4 res = arg_0.Load(int3(0));
-                              ^
-
-
-tint_tjkojb:4:31: error: too few elements in vector initialization (expected 3 elements, have 1)
-  uint4 res = arg_0.Load(int3(0));
-                              ^
-
diff --git a/test/intrinsics/gen/textureLoad/ef5405.wgsl.expected.hlsl b/test/intrinsics/gen/textureLoad/ef5405.wgsl.expected.hlsl
index af010dd..e36270c 100644
--- a/test/intrinsics/gen/textureLoad/ef5405.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureLoad/ef5405.wgsl.expected.hlsl
@@ -1,12 +1,7 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_ef5405() {
-  uint4 res = arg_0.Load(int4(0));
+  uint4 res = arg_0.Load(int4(0, 0, 0, 0));
 }
 
 void vertex_main() {
@@ -25,18 +20,3 @@
   return;
 }
 
-
-tint_wn24Zg:4:31: error: too few elements in vector initialization (expected 4 elements, have 1)
-  uint4 res = arg_0.Load(int4(0));
-                              ^
-
-
-tint_wn24Zg:4:31: error: too few elements in vector initialization (expected 4 elements, have 1)
-  uint4 res = arg_0.Load(int4(0));
-                              ^
-
-
-tint_wn24Zg:4:31: error: too few elements in vector initialization (expected 4 elements, have 1)
-  uint4 res = arg_0.Load(int4(0));
-                              ^
-
diff --git a/test/intrinsics/gen/textureLoad/f379e2.wgsl.expected.hlsl b/test/intrinsics/gen/textureLoad/f379e2.wgsl.expected.hlsl
index e35c3e5..de2e3ed 100644
--- a/test/intrinsics/gen/textureLoad/f379e2.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureLoad/f379e2.wgsl.expected.hlsl
@@ -1,12 +1,7 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 void textureLoad_f379e2() {
-  float4 res = arg_0.Load(int4(1, 0));
+  float4 res = arg_0.Load(int4(0, 0, 1, 0));
 }
 
 void vertex_main() {
@@ -25,18 +20,3 @@
   return;
 }
 
-
-tint_fpAFiR:4:32: error: too few elements in vector initialization (expected 4 elements, have 2)
-  float4 res = arg_0.Load(int4(1, 0));
-                               ^
-
-
-tint_fpAFiR:4:32: error: too few elements in vector initialization (expected 4 elements, have 2)
-  float4 res = arg_0.Load(int4(1, 0));
-                               ^
-
-
-tint_fpAFiR:4:32: error: too few elements in vector initialization (expected 4 elements, have 2)
-  float4 res = arg_0.Load(int4(1, 0));
-                               ^
-
diff --git a/test/intrinsics/gen/textureLoad/f379e2.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/f379e2.wgsl.expected.spvasm
index 18bdda1..903570c 100644
--- a/test/intrinsics/gen/textureLoad/f379e2.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/f379e2.wgsl.expected.spvasm
@@ -1,9 +1,7 @@
-SKIP: FAILED
-
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -35,38 +33,33 @@
     %v4float = OpTypeVector %float 4
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
+      %int_0 = OpConstant %int 0
       %int_1 = OpConstant %int 1
-         %18 = OpConstantComposite %v3int %int_1
+         %19 = OpConstantComposite %v3int %int_0 %int_0 %int_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %21 = OpConstantNull %v4float
+         %22 = OpConstantNull %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_f379e2 = OpFunction %void None %8
          %11 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %21
+        %res = OpVariable %_ptr_Function_v4float Function %22
          %14 = OpLoad %7 %arg_0
-         %12 = OpImageRead %v4float %14 %18
+         %12 = OpImageRead %v4float %14 %19
                OpStore %res %12
                OpReturn
                OpFunctionEnd
 %vertex_main = OpFunction %void None %8
-         %23 = OpLabel
+         %24 = OpLabel
                OpStore %tint_pointsize %float_1
-         %25 = OpFunctionCall %void %textureLoad_f379e2
+         %26 = OpFunctionCall %void %textureLoad_f379e2
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %textureLoad_f379e2
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureLoad_f379e2
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %8
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureLoad_f379e2
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureLoad_f379e2
                OpReturn
                OpFunctionEnd
-
-
-Validation Failure:
-1:1: OpConstantComposite Constituent <id> count does not match Result Type <id> '15[%v3int]'s vector component count.
-  %18 = OpConstantComposite %v3int %int_1
-
diff --git a/test/intrinsics/gen/textureLoad/f56e6f.wgsl.expected.hlsl b/test/intrinsics/gen/textureLoad/f56e6f.wgsl.expected.hlsl
index 654bdf8..866fd9d 100644
--- a/test/intrinsics/gen/textureLoad/f56e6f.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureLoad/f56e6f.wgsl.expected.hlsl
@@ -1,12 +1,7 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_f56e6f() {
-  uint4 res = arg_0.Load(int4(0));
+  uint4 res = arg_0.Load(int4(0, 0, 0, 0));
 }
 
 void vertex_main() {
@@ -25,18 +20,3 @@
   return;
 }
 
-
-tint_qJ0MK4:4:31: error: too few elements in vector initialization (expected 4 elements, have 1)
-  uint4 res = arg_0.Load(int4(0));
-                              ^
-
-
-tint_qJ0MK4:4:31: error: too few elements in vector initialization (expected 4 elements, have 1)
-  uint4 res = arg_0.Load(int4(0));
-                              ^
-
-
-tint_qJ0MK4:4:31: error: too few elements in vector initialization (expected 4 elements, have 1)
-  uint4 res = arg_0.Load(int4(0));
-                              ^
-
diff --git a/test/intrinsics/gen/textureLoad/f74bd8.wgsl.expected.hlsl b/test/intrinsics/gen/textureLoad/f74bd8.wgsl.expected.hlsl
index 6d554da..2745df6 100644
--- a/test/intrinsics/gen/textureLoad/f74bd8.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureLoad/f74bd8.wgsl.expected.hlsl
@@ -1,12 +1,7 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 Texture3D<float4> arg_0 : register(t0, space1);
 
 void textureLoad_f74bd8() {
-  float4 res = arg_0.Load(int4(0));
+  float4 res = arg_0.Load(int4(0, 0, 0, 0));
 }
 
 void vertex_main() {
@@ -25,18 +20,3 @@
   return;
 }
 
-
-tint_8BEglU:4:32: error: too few elements in vector initialization (expected 4 elements, have 1)
-  float4 res = arg_0.Load(int4(0));
-                               ^
-
-
-tint_8BEglU:4:32: error: too few elements in vector initialization (expected 4 elements, have 1)
-  float4 res = arg_0.Load(int4(0));
-                               ^
-
-
-tint_8BEglU:4:32: error: too few elements in vector initialization (expected 4 elements, have 1)
-  float4 res = arg_0.Load(int4(0));
-                               ^
-
diff --git a/test/intrinsics/gen/textureLoad/fc6d36.wgsl.expected.hlsl b/test/intrinsics/gen/textureLoad/fc6d36.wgsl.expected.hlsl
index d316dbf..b35937a 100644
--- a/test/intrinsics/gen/textureLoad/fc6d36.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureLoad/fc6d36.wgsl.expected.hlsl
@@ -1,12 +1,7 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 void textureLoad_fc6d36() {
-  int4 res = arg_0.Load(int4(1, 0));
+  int4 res = arg_0.Load(int4(0, 0, 1, 0));
 }
 
 void vertex_main() {
@@ -25,18 +20,3 @@
   return;
 }
 
-
-tint_Lm3Z3W:4:30: error: too few elements in vector initialization (expected 4 elements, have 2)
-  int4 res = arg_0.Load(int4(1, 0));
-                             ^
-
-
-tint_Lm3Z3W:4:30: error: too few elements in vector initialization (expected 4 elements, have 2)
-  int4 res = arg_0.Load(int4(1, 0));
-                             ^
-
-
-tint_Lm3Z3W:4:30: error: too few elements in vector initialization (expected 4 elements, have 2)
-  int4 res = arg_0.Load(int4(1, 0));
-                             ^
-
diff --git a/test/intrinsics/gen/textureLoad/fc6d36.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/fc6d36.wgsl.expected.spvasm
index aa02704..7f42977 100644
--- a/test/intrinsics/gen/textureLoad/fc6d36.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/fc6d36.wgsl.expected.spvasm
@@ -1,9 +1,7 @@
-SKIP: FAILED
-
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -35,38 +33,33 @@
           %9 = OpTypeFunction %void
       %v4int = OpTypeVector %int 4
       %v3int = OpTypeVector %int 3
+      %int_0 = OpConstant %int 0
       %int_1 = OpConstant %int 1
-         %18 = OpConstantComposite %v3int %int_1
+         %19 = OpConstantComposite %v3int %int_0 %int_0 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %21 = OpConstantNull %v4int
+         %22 = OpConstantNull %v4int
     %float_1 = OpConstant %float 1
 %textureLoad_fc6d36 = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_v4int Function %21
+        %res = OpVariable %_ptr_Function_v4int Function %22
          %15 = OpLoad %7 %arg_0
-         %13 = OpImageRead %v4int %15 %18
+         %13 = OpImageRead %v4int %15 %19
                OpStore %res %13
                OpReturn
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
-         %23 = OpLabel
+         %24 = OpLabel
                OpStore %tint_pointsize %float_1
-         %25 = OpFunctionCall %void %textureLoad_fc6d36
+         %26 = OpFunctionCall %void %textureLoad_fc6d36
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %textureLoad_fc6d36
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureLoad_fc6d36
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureLoad_fc6d36
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureLoad_fc6d36
                OpReturn
                OpFunctionEnd
-
-
-Validation Failure:
-1:1: OpConstantComposite Constituent <id> count does not match Result Type <id> '16[%v3int]'s vector component count.
-  %18 = OpConstantComposite %v3int %int_1
-
diff --git a/test/intrinsics/gen/textureLoad/fdebd0.wgsl.expected.hlsl b/test/intrinsics/gen/textureLoad/fdebd0.wgsl.expected.hlsl
index ac749d4..e1ddcca 100644
--- a/test/intrinsics/gen/textureLoad/fdebd0.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureLoad/fdebd0.wgsl.expected.hlsl
@@ -1,12 +1,7 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_fdebd0() {
-  uint4 res = arg_0.Load(int4(1, 0));
+  uint4 res = arg_0.Load(int4(0, 0, 1, 0));
 }
 
 void vertex_main() {
@@ -25,18 +20,3 @@
   return;
 }
 
-
-tint_cI4djR:4:31: error: too few elements in vector initialization (expected 4 elements, have 2)
-  uint4 res = arg_0.Load(int4(1, 0));
-                              ^
-
-
-tint_cI4djR:4:31: error: too few elements in vector initialization (expected 4 elements, have 2)
-  uint4 res = arg_0.Load(int4(1, 0));
-                              ^
-
-
-tint_cI4djR:4:31: error: too few elements in vector initialization (expected 4 elements, have 2)
-  uint4 res = arg_0.Load(int4(1, 0));
-                              ^
-
diff --git a/test/intrinsics/gen/textureLoad/fdebd0.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/fdebd0.wgsl.expected.spvasm
index 1d39030..e773e58 100644
--- a/test/intrinsics/gen/textureLoad/fdebd0.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/fdebd0.wgsl.expected.spvasm
@@ -1,9 +1,7 @@
-SKIP: FAILED
-
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 33
+; Bound: 34
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -36,38 +34,33 @@
      %v4uint = OpTypeVector %uint 4
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
+      %int_0 = OpConstant %int 0
       %int_1 = OpConstant %int 1
-         %19 = OpConstantComposite %v3int %int_1
+         %20 = OpConstantComposite %v3int %int_0 %int_0 %int_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %22 = OpConstantNull %v4uint
+         %23 = OpConstantNull %v4uint
     %float_1 = OpConstant %float 1
 %textureLoad_fdebd0 = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_v4uint Function %22
+        %res = OpVariable %_ptr_Function_v4uint Function %23
          %15 = OpLoad %7 %arg_0
-         %13 = OpImageRead %v4uint %15 %19
+         %13 = OpImageRead %v4uint %15 %20
                OpStore %res %13
                OpReturn
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
-         %24 = OpLabel
+         %25 = OpLabel
                OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %textureLoad_fdebd0
+         %27 = OpFunctionCall %void %textureLoad_fdebd0
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureLoad_fdebd0
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %textureLoad_fdebd0
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureLoad_fdebd0
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureLoad_fdebd0
                OpReturn
                OpFunctionEnd
-
-
-Validation Failure:
-1:1: OpConstantComposite Constituent <id> count does not match Result Type <id> '16[%v3int]'s vector component count.
-  %19 = OpConstantComposite %v3int %int_1
-
diff --git a/test/intrinsics/gen/textureLoad/feab99.wgsl.expected.hlsl b/test/intrinsics/gen/textureLoad/feab99.wgsl.expected.hlsl
index f720249..03c7b20 100644
--- a/test/intrinsics/gen/textureLoad/feab99.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureLoad/feab99.wgsl.expected.hlsl
@@ -1,12 +1,7 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 Texture3D<float4> arg_0 : register(t0, space1);
 
 void textureLoad_feab99() {
-  float4 res = arg_0.Load(int4(0));
+  float4 res = arg_0.Load(int4(0, 0, 0, 0));
 }
 
 void vertex_main() {
@@ -25,18 +20,3 @@
   return;
 }
 
-
-tint_ChEjEj:4:32: error: too few elements in vector initialization (expected 4 elements, have 1)
-  float4 res = arg_0.Load(int4(0));
-                               ^
-
-
-tint_ChEjEj:4:32: error: too few elements in vector initialization (expected 4 elements, have 1)
-  float4 res = arg_0.Load(int4(0));
-                               ^
-
-
-tint_ChEjEj:4:32: error: too few elements in vector initialization (expected 4 elements, have 1)
-  float4 res = arg_0.Load(int4(0));
-                               ^
-
diff --git a/test/intrinsics/gen/textureSample/02aa9b.wgsl.expected.hlsl b/test/intrinsics/gen/textureSample/02aa9b.wgsl.expected.hlsl
index d326424..c6ce598 100644
--- a/test/intrinsics/gen/textureSample/02aa9b.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureSample/02aa9b.wgsl.expected.hlsl
@@ -1,13 +1,8 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 Texture2DArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
 void textureSample_02aa9b() {
-  float4 res = arg_0.Sample(arg_1, float3(float(1)), int2(0, 0));
+  float4 res = arg_0.Sample(arg_1, float3(0.0f, 0.0f, float(1)), int2(0, 0));
 }
 
 void fragment_main() {
@@ -15,8 +10,3 @@
   return;
 }
 
-
-tint_O72GUO:5:43: error: too few elements in vector initialization (expected 3 elements, have 1)
-  float4 res = arg_0.Sample(arg_1, float3(float(1)), int2(0, 0));
-                                          ^
-
diff --git a/test/intrinsics/gen/textureSample/02aa9b.wgsl.expected.spvasm b/test/intrinsics/gen/textureSample/02aa9b.wgsl.expected.spvasm
index 53aa580..5a0148c 100644
--- a/test/intrinsics/gen/textureSample/02aa9b.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureSample/02aa9b.wgsl.expected.spvasm
@@ -1,9 +1,7 @@
-SKIP: FAILED
-
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 31
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -30,32 +28,27 @@
     %v4float = OpTypeVector %float 4
          %16 = OpTypeSampledImage %3
     %v3float = OpTypeVector %float 3
+    %float_0 = OpConstant %float 0
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
       %v2int = OpTypeVector %int 2
-         %24 = OpConstantNull %v2int
+         %25 = OpConstantNull %v2int
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %27 = OpConstantNull %v4float
+         %28 = OpConstantNull %v4float
 %textureSample_02aa9b = OpFunction %void None %8
          %11 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %27
+        %res = OpVariable %_ptr_Function_v4float Function %28
          %14 = OpLoad %7 %arg_1
          %15 = OpLoad %3 %arg_0
          %17 = OpSampledImage %16 %15 %14
-         %19 = OpConvertSToF %float %int_1
-         %22 = OpCompositeConstruct %v3float %19
-         %12 = OpImageSampleImplicitLod %v4float %17 %22 ConstOffset %24
+         %20 = OpConvertSToF %float %int_1
+         %23 = OpCompositeConstruct %v3float %float_0 %float_0 %20
+         %12 = OpImageSampleImplicitLod %v4float %17 %23 ConstOffset %25
                OpStore %res %12
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureSample_02aa9b
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureSample_02aa9b
                OpReturn
                OpFunctionEnd
-
-
-Validation Failure:
-1:1: Expected number of constituents to be at least 2
-  %22 = OpCompositeConstruct %v3float %19
-
diff --git a/test/intrinsics/gen/textureSample/4dd1bf.wgsl.expected.hlsl b/test/intrinsics/gen/textureSample/4dd1bf.wgsl.expected.hlsl
index 7cee1c7..e84cf19 100644
--- a/test/intrinsics/gen/textureSample/4dd1bf.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureSample/4dd1bf.wgsl.expected.hlsl
@@ -1,13 +1,8 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 TextureCubeArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
 void textureSample_4dd1bf() {
-  float4 res = arg_0.Sample(arg_1, float4(float(1)));
+  float4 res = arg_0.Sample(arg_1, float4(0.0f, 0.0f, 0.0f, float(1)));
 }
 
 void fragment_main() {
@@ -15,8 +10,3 @@
   return;
 }
 
-
-tint_KfNSDx:5:43: error: too few elements in vector initialization (expected 4 elements, have 1)
-  float4 res = arg_0.Sample(arg_1, float4(float(1)));
-                                          ^
-
diff --git a/test/intrinsics/gen/textureSample/4dd1bf.wgsl.expected.spvasm b/test/intrinsics/gen/textureSample/4dd1bf.wgsl.expected.spvasm
index 3e5ee96..d67b63c 100644
--- a/test/intrinsics/gen/textureSample/4dd1bf.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureSample/4dd1bf.wgsl.expected.spvasm
@@ -1,9 +1,7 @@
-SKIP: FAILED
-
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 28
+; Bound: 29
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
@@ -30,30 +28,25 @@
           %8 = OpTypeFunction %void
     %v4float = OpTypeVector %float 4
          %16 = OpTypeSampledImage %3
+    %float_0 = OpConstant %float 0
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %24 = OpConstantNull %v4float
+         %25 = OpConstantNull %v4float
 %textureSample_4dd1bf = OpFunction %void None %8
          %11 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %24
+        %res = OpVariable %_ptr_Function_v4float Function %25
          %14 = OpLoad %7 %arg_1
          %15 = OpLoad %3 %arg_0
          %17 = OpSampledImage %16 %15 %14
-         %18 = OpConvertSToF %float %int_1
-         %21 = OpCompositeConstruct %v4float %18
-         %12 = OpImageSampleImplicitLod %v4float %17 %21
+         %19 = OpConvertSToF %float %int_1
+         %22 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %19
+         %12 = OpImageSampleImplicitLod %v4float %17 %22
                OpStore %res %12
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureSample_4dd1bf
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureSample_4dd1bf
                OpReturn
                OpFunctionEnd
-
-
-Validation Failure:
-1:1: Expected number of constituents to be at least 2
-  %21 = OpCompositeConstruct %v4float %18
-
diff --git a/test/intrinsics/gen/textureSample/6717ca.wgsl.expected.hlsl b/test/intrinsics/gen/textureSample/6717ca.wgsl.expected.hlsl
index 7215cbe..571b1df 100644
--- a/test/intrinsics/gen/textureSample/6717ca.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureSample/6717ca.wgsl.expected.hlsl
@@ -1,13 +1,8 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 Texture2DArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
 void textureSample_6717ca() {
-  float4 res = arg_0.Sample(arg_1, float3(float(1)));
+  float4 res = arg_0.Sample(arg_1, float3(0.0f, 0.0f, float(1)));
 }
 
 void fragment_main() {
@@ -15,8 +10,3 @@
   return;
 }
 
-
-tint_0ZWvLf:5:43: error: too few elements in vector initialization (expected 3 elements, have 1)
-  float4 res = arg_0.Sample(arg_1, float3(float(1)));
-                                          ^
-
diff --git a/test/intrinsics/gen/textureSample/6717ca.wgsl.expected.spvasm b/test/intrinsics/gen/textureSample/6717ca.wgsl.expected.spvasm
index 0879b64..9a6f969 100644
--- a/test/intrinsics/gen/textureSample/6717ca.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureSample/6717ca.wgsl.expected.spvasm
@@ -1,9 +1,7 @@
-SKIP: FAILED
-
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 29
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -30,30 +28,25 @@
     %v4float = OpTypeVector %float 4
          %16 = OpTypeSampledImage %3
     %v3float = OpTypeVector %float 3
+    %float_0 = OpConstant %float 0
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %25 = OpConstantNull %v4float
+         %26 = OpConstantNull %v4float
 %textureSample_6717ca = OpFunction %void None %8
          %11 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %25
+        %res = OpVariable %_ptr_Function_v4float Function %26
          %14 = OpLoad %7 %arg_1
          %15 = OpLoad %3 %arg_0
          %17 = OpSampledImage %16 %15 %14
-         %19 = OpConvertSToF %float %int_1
-         %22 = OpCompositeConstruct %v3float %19
-         %12 = OpImageSampleImplicitLod %v4float %17 %22
+         %20 = OpConvertSToF %float %int_1
+         %23 = OpCompositeConstruct %v3float %float_0 %float_0 %20
+         %12 = OpImageSampleImplicitLod %v4float %17 %23
                OpStore %res %12
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %textureSample_6717ca
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureSample_6717ca
                OpReturn
                OpFunctionEnd
-
-
-Validation Failure:
-1:1: Expected number of constituents to be at least 2
-  %22 = OpCompositeConstruct %v3float %19
-
diff --git a/test/intrinsics/gen/textureSample/7e9ffd.wgsl.expected.hlsl b/test/intrinsics/gen/textureSample/7e9ffd.wgsl.expected.hlsl
index 26b25cc..e49e0e2 100644
--- a/test/intrinsics/gen/textureSample/7e9ffd.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureSample/7e9ffd.wgsl.expected.hlsl
@@ -1,13 +1,8 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 Texture2DArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
 void textureSample_7e9ffd() {
-  float res = arg_0.Sample(arg_1, float3(float(1)));
+  float res = arg_0.Sample(arg_1, float3(0.0f, 0.0f, float(1)));
 }
 
 void fragment_main() {
@@ -15,11 +10,3 @@
   return;
 }
 
-
-tint_RyRxHD:5:42: error: too few elements in vector initialization (expected 3 elements, have 1)
-  float res = arg_0.Sample(arg_1, float3(float(1)));
-                                         ^
-tint_RyRxHD:5:9: warning: implicit truncation of vector type [-Wconversion]
-  float res = arg_0.Sample(arg_1, float3(float(1)));
-        ^
-
diff --git a/test/intrinsics/gen/textureSample/7e9ffd.wgsl.expected.spvasm b/test/intrinsics/gen/textureSample/7e9ffd.wgsl.expected.spvasm
index 3a24929..86f050b 100644
--- a/test/intrinsics/gen/textureSample/7e9ffd.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureSample/7e9ffd.wgsl.expected.spvasm
@@ -1,9 +1,7 @@
-SKIP: FAILED
-
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 30
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -30,31 +28,26 @@
     %v4float = OpTypeVector %float 4
          %17 = OpTypeSampledImage %3
     %v3float = OpTypeVector %float 3
+    %float_0 = OpConstant %float 0
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_float = OpTypePointer Function %float
-         %26 = OpConstantNull %float
+         %27 = OpConstantNull %float
 %textureSample_7e9ffd = OpFunction %void None %8
          %11 = OpLabel
-        %res = OpVariable %_ptr_Function_float Function %26
+        %res = OpVariable %_ptr_Function_float Function %27
          %15 = OpLoad %7 %arg_1
          %16 = OpLoad %3 %arg_0
          %18 = OpSampledImage %17 %16 %15
-         %20 = OpConvertSToF %float %int_1
-         %23 = OpCompositeConstruct %v3float %20
-         %13 = OpImageSampleImplicitLod %v4float %18 %23
+         %21 = OpConvertSToF %float %int_1
+         %24 = OpCompositeConstruct %v3float %float_0 %float_0 %21
+         %13 = OpImageSampleImplicitLod %v4float %18 %24
          %12 = OpCompositeExtract %float %13 0
                OpStore %res %12
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureSample_7e9ffd
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %textureSample_7e9ffd
                OpReturn
                OpFunctionEnd
-
-
-Validation Failure:
-1:1: Expected number of constituents to be at least 2
-  %23 = OpCompositeConstruct %v3float %20
-
diff --git a/test/intrinsics/gen/textureSample/8522e7.wgsl.expected.hlsl b/test/intrinsics/gen/textureSample/8522e7.wgsl.expected.hlsl
index ff31c64..c52349d 100644
--- a/test/intrinsics/gen/textureSample/8522e7.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureSample/8522e7.wgsl.expected.hlsl
@@ -1,13 +1,8 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 Texture2DArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
 void textureSample_8522e7() {
-  float res = arg_0.Sample(arg_1, float3(float(1)), int2(0, 0));
+  float res = arg_0.Sample(arg_1, float3(0.0f, 0.0f, float(1)), int2(0, 0));
 }
 
 void fragment_main() {
@@ -15,11 +10,3 @@
   return;
 }
 
-
-tint_jIHeES:5:42: error: too few elements in vector initialization (expected 3 elements, have 1)
-  float res = arg_0.Sample(arg_1, float3(float(1)), int2(0, 0));
-                                         ^
-tint_jIHeES:5:9: warning: implicit truncation of vector type [-Wconversion]
-  float res = arg_0.Sample(arg_1, float3(float(1)), int2(0, 0));
-        ^
-
diff --git a/test/intrinsics/gen/textureSample/8522e7.wgsl.expected.spvasm b/test/intrinsics/gen/textureSample/8522e7.wgsl.expected.spvasm
index 6df06c5..ff3e80c 100644
--- a/test/intrinsics/gen/textureSample/8522e7.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureSample/8522e7.wgsl.expected.spvasm
@@ -1,9 +1,7 @@
-SKIP: FAILED
-
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -30,33 +28,28 @@
     %v4float = OpTypeVector %float 4
          %17 = OpTypeSampledImage %3
     %v3float = OpTypeVector %float 3
+    %float_0 = OpConstant %float 0
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
       %v2int = OpTypeVector %int 2
-         %25 = OpConstantNull %v2int
+         %26 = OpConstantNull %v2int
 %_ptr_Function_float = OpTypePointer Function %float
-         %28 = OpConstantNull %float
+         %29 = OpConstantNull %float
 %textureSample_8522e7 = OpFunction %void None %8
          %11 = OpLabel
-        %res = OpVariable %_ptr_Function_float Function %28
+        %res = OpVariable %_ptr_Function_float Function %29
          %15 = OpLoad %7 %arg_1
          %16 = OpLoad %3 %arg_0
          %18 = OpSampledImage %17 %16 %15
-         %20 = OpConvertSToF %float %int_1
-         %23 = OpCompositeConstruct %v3float %20
-         %13 = OpImageSampleImplicitLod %v4float %18 %23 ConstOffset %25
+         %21 = OpConvertSToF %float %int_1
+         %24 = OpCompositeConstruct %v3float %float_0 %float_0 %21
+         %13 = OpImageSampleImplicitLod %v4float %18 %24 ConstOffset %26
          %12 = OpCompositeExtract %float %13 0
                OpStore %res %12
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureSample_8522e7
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureSample_8522e7
                OpReturn
                OpFunctionEnd
-
-
-Validation Failure:
-1:1: Expected number of constituents to be at least 2
-  %23 = OpCompositeConstruct %v3float %20
-
diff --git a/test/intrinsics/gen/textureSample/c2f4e8.wgsl.expected.hlsl b/test/intrinsics/gen/textureSample/c2f4e8.wgsl.expected.hlsl
index 7a08bcd..b8d0d33 100644
--- a/test/intrinsics/gen/textureSample/c2f4e8.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureSample/c2f4e8.wgsl.expected.hlsl
@@ -1,13 +1,8 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 TextureCubeArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
 void textureSample_c2f4e8() {
-  float res = arg_0.Sample(arg_1, float4(float(1)));
+  float res = arg_0.Sample(arg_1, float4(0.0f, 0.0f, 0.0f, float(1)));
 }
 
 void fragment_main() {
@@ -15,11 +10,3 @@
   return;
 }
 
-
-tint_YC11Cc:5:42: error: too few elements in vector initialization (expected 4 elements, have 1)
-  float res = arg_0.Sample(arg_1, float4(float(1)));
-                                         ^
-tint_YC11Cc:5:9: warning: implicit truncation of vector type [-Wconversion]
-  float res = arg_0.Sample(arg_1, float4(float(1)));
-        ^
-
diff --git a/test/intrinsics/gen/textureSample/c2f4e8.wgsl.expected.spvasm b/test/intrinsics/gen/textureSample/c2f4e8.wgsl.expected.spvasm
index 5d8ec28..6733792 100644
--- a/test/intrinsics/gen/textureSample/c2f4e8.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureSample/c2f4e8.wgsl.expected.spvasm
@@ -1,9 +1,7 @@
-SKIP: FAILED
-
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 29
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
@@ -30,31 +28,26 @@
           %8 = OpTypeFunction %void
     %v4float = OpTypeVector %float 4
          %17 = OpTypeSampledImage %3
+    %float_0 = OpConstant %float 0
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_float = OpTypePointer Function %float
-         %25 = OpConstantNull %float
+         %26 = OpConstantNull %float
 %textureSample_c2f4e8 = OpFunction %void None %8
          %11 = OpLabel
-        %res = OpVariable %_ptr_Function_float Function %25
+        %res = OpVariable %_ptr_Function_float Function %26
          %15 = OpLoad %7 %arg_1
          %16 = OpLoad %3 %arg_0
          %18 = OpSampledImage %17 %16 %15
-         %19 = OpConvertSToF %float %int_1
-         %22 = OpCompositeConstruct %v4float %19
-         %13 = OpImageSampleImplicitLod %v4float %18 %22
+         %20 = OpConvertSToF %float %int_1
+         %23 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %20
+         %13 = OpImageSampleImplicitLod %v4float %18 %23
          %12 = OpCompositeExtract %float %13 0
                OpStore %res %12
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %textureSample_c2f4e8
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureSample_c2f4e8
                OpReturn
                OpFunctionEnd
-
-
-Validation Failure:
-1:1: Expected number of constituents to be at least 2
-  %22 = OpCompositeConstruct %v4float %19
-
diff --git a/test/intrinsics/gen/textureSampleBias/65ac50.wgsl.expected.hlsl b/test/intrinsics/gen/textureSampleBias/65ac50.wgsl.expected.hlsl
index 1683e75..959d7ae 100644
--- a/test/intrinsics/gen/textureSampleBias/65ac50.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureSampleBias/65ac50.wgsl.expected.hlsl
@@ -1,13 +1,8 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 Texture2DArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleBias_65ac50() {
-  float4 res = arg_0.SampleBias(arg_1, float3(float(1)), 1.0f, int2(0, 0));
+  float4 res = arg_0.SampleBias(arg_1, float3(0.0f, 0.0f, float(1)), 1.0f, int2(0, 0));
 }
 
 void fragment_main() {
@@ -15,8 +10,3 @@
   return;
 }
 
-
-tint_faUSzc:5:47: error: too few elements in vector initialization (expected 3 elements, have 1)
-  float4 res = arg_0.SampleBias(arg_1, float3(float(1)), 1.0f, int2(0, 0));
-                                              ^
-
diff --git a/test/intrinsics/gen/textureSampleBias/65ac50.wgsl.expected.spvasm b/test/intrinsics/gen/textureSampleBias/65ac50.wgsl.expected.spvasm
index 60b9040..9b83b1f 100644
--- a/test/intrinsics/gen/textureSampleBias/65ac50.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureSampleBias/65ac50.wgsl.expected.spvasm
@@ -1,9 +1,7 @@
-SKIP: FAILED
-
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -30,33 +28,28 @@
     %v4float = OpTypeVector %float 4
          %16 = OpTypeSampledImage %3
     %v3float = OpTypeVector %float 3
+    %float_0 = OpConstant %float 0
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
     %float_1 = OpConstant %float 1
       %v2int = OpTypeVector %int 2
-         %25 = OpConstantNull %v2int
+         %26 = OpConstantNull %v2int
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %28 = OpConstantNull %v4float
+         %29 = OpConstantNull %v4float
 %textureSampleBias_65ac50 = OpFunction %void None %8
          %11 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %28
+        %res = OpVariable %_ptr_Function_v4float Function %29
          %14 = OpLoad %7 %arg_1
          %15 = OpLoad %3 %arg_0
          %17 = OpSampledImage %16 %15 %14
-         %19 = OpConvertSToF %float %int_1
-         %22 = OpCompositeConstruct %v3float %19
-         %12 = OpImageSampleImplicitLod %v4float %17 %22 Bias|ConstOffset %float_1 %25
+         %20 = OpConvertSToF %float %int_1
+         %23 = OpCompositeConstruct %v3float %float_0 %float_0 %20
+         %12 = OpImageSampleImplicitLod %v4float %17 %23 Bias|ConstOffset %float_1 %26
                OpStore %res %12
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureSampleBias_65ac50
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureSampleBias_65ac50
                OpReturn
                OpFunctionEnd
-
-
-Validation Failure:
-1:1: Expected number of constituents to be at least 2
-  %22 = OpCompositeConstruct %v3float %19
-
diff --git a/test/intrinsics/gen/textureSampleBias/80e579.wgsl.expected.hlsl b/test/intrinsics/gen/textureSampleBias/80e579.wgsl.expected.hlsl
index a0331fd..52b30f6 100644
--- a/test/intrinsics/gen/textureSampleBias/80e579.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureSampleBias/80e579.wgsl.expected.hlsl
@@ -1,13 +1,8 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 Texture2DArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleBias_80e579() {
-  float4 res = arg_0.SampleBias(arg_1, float3(float(1)), 1.0f);
+  float4 res = arg_0.SampleBias(arg_1, float3(0.0f, 0.0f, float(1)), 1.0f);
 }
 
 void fragment_main() {
@@ -15,8 +10,3 @@
   return;
 }
 
-
-tint_QgQYLu:5:47: error: too few elements in vector initialization (expected 3 elements, have 1)
-  float4 res = arg_0.SampleBias(arg_1, float3(float(1)), 1.0f);
-                                              ^
-
diff --git a/test/intrinsics/gen/textureSampleBias/80e579.wgsl.expected.spvasm b/test/intrinsics/gen/textureSampleBias/80e579.wgsl.expected.spvasm
index 3ee8e56..9907f75 100644
--- a/test/intrinsics/gen/textureSampleBias/80e579.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureSampleBias/80e579.wgsl.expected.spvasm
@@ -1,9 +1,7 @@
-SKIP: FAILED
-
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 30
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -30,31 +28,26 @@
     %v4float = OpTypeVector %float 4
          %16 = OpTypeSampledImage %3
     %v3float = OpTypeVector %float 3
+    %float_0 = OpConstant %float 0
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
     %float_1 = OpConstant %float 1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %26 = OpConstantNull %v4float
+         %27 = OpConstantNull %v4float
 %textureSampleBias_80e579 = OpFunction %void None %8
          %11 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %26
+        %res = OpVariable %_ptr_Function_v4float Function %27
          %14 = OpLoad %7 %arg_1
          %15 = OpLoad %3 %arg_0
          %17 = OpSampledImage %16 %15 %14
-         %19 = OpConvertSToF %float %int_1
-         %22 = OpCompositeConstruct %v3float %19
-         %12 = OpImageSampleImplicitLod %v4float %17 %22 Bias %float_1
+         %20 = OpConvertSToF %float %int_1
+         %23 = OpCompositeConstruct %v3float %float_0 %float_0 %20
+         %12 = OpImageSampleImplicitLod %v4float %17 %23 Bias %float_1
                OpStore %res %12
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureSampleBias_80e579
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %textureSampleBias_80e579
                OpReturn
                OpFunctionEnd
-
-
-Validation Failure:
-1:1: Expected number of constituents to be at least 2
-  %22 = OpCompositeConstruct %v3float %19
-
diff --git a/test/intrinsics/gen/textureSampleBias/eed7c4.wgsl.expected.hlsl b/test/intrinsics/gen/textureSampleBias/eed7c4.wgsl.expected.hlsl
index 06acc95..96b3de6 100644
--- a/test/intrinsics/gen/textureSampleBias/eed7c4.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureSampleBias/eed7c4.wgsl.expected.hlsl
@@ -1,13 +1,8 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 TextureCubeArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleBias_eed7c4() {
-  float4 res = arg_0.SampleBias(arg_1, float4(float(1)), 1.0f);
+  float4 res = arg_0.SampleBias(arg_1, float4(0.0f, 0.0f, 0.0f, float(1)), 1.0f);
 }
 
 void fragment_main() {
@@ -15,8 +10,3 @@
   return;
 }
 
-
-tint_NFwEG1:5:47: error: too few elements in vector initialization (expected 4 elements, have 1)
-  float4 res = arg_0.SampleBias(arg_1, float4(float(1)), 1.0f);
-                                              ^
-
diff --git a/test/intrinsics/gen/textureSampleBias/eed7c4.wgsl.expected.spvasm b/test/intrinsics/gen/textureSampleBias/eed7c4.wgsl.expected.spvasm
index 4c1050e..ade6cb9 100644
--- a/test/intrinsics/gen/textureSampleBias/eed7c4.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureSampleBias/eed7c4.wgsl.expected.spvasm
@@ -1,9 +1,7 @@
-SKIP: FAILED
-
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 29
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
@@ -30,31 +28,26 @@
           %8 = OpTypeFunction %void
     %v4float = OpTypeVector %float 4
          %16 = OpTypeSampledImage %3
+    %float_0 = OpConstant %float 0
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
     %float_1 = OpConstant %float 1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %25 = OpConstantNull %v4float
+         %26 = OpConstantNull %v4float
 %textureSampleBias_eed7c4 = OpFunction %void None %8
          %11 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %25
+        %res = OpVariable %_ptr_Function_v4float Function %26
          %14 = OpLoad %7 %arg_1
          %15 = OpLoad %3 %arg_0
          %17 = OpSampledImage %16 %15 %14
-         %18 = OpConvertSToF %float %int_1
-         %21 = OpCompositeConstruct %v4float %18
-         %12 = OpImageSampleImplicitLod %v4float %17 %21 Bias %float_1
+         %19 = OpConvertSToF %float %int_1
+         %22 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %19
+         %12 = OpImageSampleImplicitLod %v4float %17 %22 Bias %float_1
                OpStore %res %12
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %textureSampleBias_eed7c4
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureSampleBias_eed7c4
                OpReturn
                OpFunctionEnd
-
-
-Validation Failure:
-1:1: Expected number of constituents to be at least 2
-  %21 = OpCompositeConstruct %v4float %18
-
diff --git a/test/intrinsics/gen/textureSampleCompare/98b85c.wgsl.expected.hlsl b/test/intrinsics/gen/textureSampleCompare/98b85c.wgsl.expected.hlsl
index 46b286d..9718e17 100644
--- a/test/intrinsics/gen/textureSampleCompare/98b85c.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureSampleCompare/98b85c.wgsl.expected.hlsl
@@ -1,13 +1,8 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 Texture2DArray arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureSampleCompare_98b85c() {
-  float res = arg_0.SampleCmpLevelZero(arg_1, float3(float(1)), 1.0f, int2(0, 0));
+  float res = arg_0.SampleCmpLevelZero(arg_1, float3(0.0f, 0.0f, float(1)), 1.0f, int2(0, 0));
 }
 
 void fragment_main() {
@@ -15,8 +10,3 @@
   return;
 }
 
-
-tint_A6uvj1:5:54: error: too few elements in vector initialization (expected 3 elements, have 1)
-  float res = arg_0.SampleCmpLevelZero(arg_1, float3(float(1)), 1.0f, int2(0, 0));
-                                                     ^
-
diff --git a/test/intrinsics/gen/textureSampleCompare/98b85c.wgsl.expected.spvasm b/test/intrinsics/gen/textureSampleCompare/98b85c.wgsl.expected.spvasm
index c09a2bb..c6d728c 100644
--- a/test/intrinsics/gen/textureSampleCompare/98b85c.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureSampleCompare/98b85c.wgsl.expected.spvasm
@@ -1,5 +1,3 @@
-SKIP: FAILED
-
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
@@ -29,10 +27,10 @@
           %8 = OpTypeFunction %void
          %15 = OpTypeSampledImage %3
     %v3float = OpTypeVector %float 3
+    %float_0 = OpConstant %float 0
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
     %float_1 = OpConstant %float 1
-    %float_0 = OpConstant %float 0
       %v2int = OpTypeVector %int 2
          %25 = OpConstantNull %v2int
 %_ptr_Function_float = OpTypePointer Function %float
@@ -43,9 +41,9 @@
          %13 = OpLoad %7 %arg_1
          %14 = OpLoad %3 %arg_0
          %16 = OpSampledImage %15 %14 %13
-         %18 = OpConvertSToF %float %int_1
-         %21 = OpCompositeConstruct %v3float %18
-         %12 = OpImageSampleDrefExplicitLod %float %16 %21 %float_1 Lod|ConstOffset %float_0 %25
+         %19 = OpConvertSToF %float %int_1
+         %22 = OpCompositeConstruct %v3float %float_0 %float_0 %19
+         %12 = OpImageSampleDrefExplicitLod %float %16 %22 %float_1 Lod|ConstOffset %float_0 %25
                OpStore %res %12
                OpReturn
                OpFunctionEnd
@@ -54,9 +52,3 @@
          %31 = OpFunctionCall %void %textureSampleCompare_98b85c
                OpReturn
                OpFunctionEnd
-
-
-Validation Failure:
-1:1: Expected number of constituents to be at least 2
-  %21 = OpCompositeConstruct %v3float %18
-
diff --git a/test/intrinsics/gen/textureSampleCompare/a3ca7e.wgsl.expected.hlsl b/test/intrinsics/gen/textureSampleCompare/a3ca7e.wgsl.expected.hlsl
index 750b7d3..a35c5fe 100644
--- a/test/intrinsics/gen/textureSampleCompare/a3ca7e.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureSampleCompare/a3ca7e.wgsl.expected.hlsl
@@ -1,13 +1,8 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 TextureCubeArray arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureSampleCompare_a3ca7e() {
-  float res = arg_0.SampleCmpLevelZero(arg_1, float4(float(1)), 1.0f);
+  float res = arg_0.SampleCmpLevelZero(arg_1, float4(0.0f, 0.0f, 0.0f, float(1)), 1.0f);
 }
 
 void fragment_main() {
@@ -15,8 +10,3 @@
   return;
 }
 
-
-tint_IPHMMc:5:54: error: too few elements in vector initialization (expected 4 elements, have 1)
-  float res = arg_0.SampleCmpLevelZero(arg_1, float4(float(1)), 1.0f);
-                                                     ^
-
diff --git a/test/intrinsics/gen/textureSampleCompare/a3ca7e.wgsl.expected.spvasm b/test/intrinsics/gen/textureSampleCompare/a3ca7e.wgsl.expected.spvasm
index a5d0103..5c4eb00 100644
--- a/test/intrinsics/gen/textureSampleCompare/a3ca7e.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureSampleCompare/a3ca7e.wgsl.expected.spvasm
@@ -1,5 +1,3 @@
-SKIP: FAILED
-
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
@@ -30,10 +28,10 @@
           %8 = OpTypeFunction %void
          %15 = OpTypeSampledImage %3
     %v4float = OpTypeVector %float 4
+    %float_0 = OpConstant %float 0
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
     %float_1 = OpConstant %float 1
-    %float_0 = OpConstant %float 0
 %_ptr_Function_float = OpTypePointer Function %float
          %26 = OpConstantNull %float
 %textureSampleCompare_a3ca7e = OpFunction %void None %8
@@ -42,9 +40,9 @@
          %13 = OpLoad %7 %arg_1
          %14 = OpLoad %3 %arg_0
          %16 = OpSampledImage %15 %14 %13
-         %18 = OpConvertSToF %float %int_1
-         %21 = OpCompositeConstruct %v4float %18
-         %12 = OpImageSampleDrefExplicitLod %float %16 %21 %float_1 Lod %float_0
+         %19 = OpConvertSToF %float %int_1
+         %22 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %19
+         %12 = OpImageSampleDrefExplicitLod %float %16 %22 %float_1 Lod %float_0
                OpStore %res %12
                OpReturn
                OpFunctionEnd
@@ -53,9 +51,3 @@
          %29 = OpFunctionCall %void %textureSampleCompare_a3ca7e
                OpReturn
                OpFunctionEnd
-
-
-Validation Failure:
-1:1: Expected number of constituents to be at least 2
-  %21 = OpCompositeConstruct %v4float %18
-
diff --git a/test/intrinsics/gen/textureSampleCompare/dd431d.wgsl.expected.hlsl b/test/intrinsics/gen/textureSampleCompare/dd431d.wgsl.expected.hlsl
index 7c0e10b..ed24dff 100644
--- a/test/intrinsics/gen/textureSampleCompare/dd431d.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureSampleCompare/dd431d.wgsl.expected.hlsl
@@ -1,13 +1,8 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 Texture2DArray arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureSampleCompare_dd431d() {
-  float res = arg_0.SampleCmpLevelZero(arg_1, float3(float(1)), 1.0f);
+  float res = arg_0.SampleCmpLevelZero(arg_1, float3(0.0f, 0.0f, float(1)), 1.0f);
 }
 
 void fragment_main() {
@@ -15,8 +10,3 @@
   return;
 }
 
-
-tint_7sR8gj:5:54: error: too few elements in vector initialization (expected 3 elements, have 1)
-  float res = arg_0.SampleCmpLevelZero(arg_1, float3(float(1)), 1.0f);
-                                                     ^
-
diff --git a/test/intrinsics/gen/textureSampleCompare/dd431d.wgsl.expected.spvasm b/test/intrinsics/gen/textureSampleCompare/dd431d.wgsl.expected.spvasm
index b5642d7..a98e26d 100644
--- a/test/intrinsics/gen/textureSampleCompare/dd431d.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureSampleCompare/dd431d.wgsl.expected.spvasm
@@ -1,5 +1,3 @@
-SKIP: FAILED
-
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
@@ -29,10 +27,10 @@
           %8 = OpTypeFunction %void
          %15 = OpTypeSampledImage %3
     %v3float = OpTypeVector %float 3
+    %float_0 = OpConstant %float 0
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
     %float_1 = OpConstant %float 1
-    %float_0 = OpConstant %float 0
 %_ptr_Function_float = OpTypePointer Function %float
          %26 = OpConstantNull %float
 %textureSampleCompare_dd431d = OpFunction %void None %8
@@ -41,9 +39,9 @@
          %13 = OpLoad %7 %arg_1
          %14 = OpLoad %3 %arg_0
          %16 = OpSampledImage %15 %14 %13
-         %18 = OpConvertSToF %float %int_1
-         %21 = OpCompositeConstruct %v3float %18
-         %12 = OpImageSampleDrefExplicitLod %float %16 %21 %float_1 Lod %float_0
+         %19 = OpConvertSToF %float %int_1
+         %22 = OpCompositeConstruct %v3float %float_0 %float_0 %19
+         %12 = OpImageSampleDrefExplicitLod %float %16 %22 %float_1 Lod %float_0
                OpStore %res %12
                OpReturn
                OpFunctionEnd
@@ -52,9 +50,3 @@
          %29 = OpFunctionCall %void %textureSampleCompare_dd431d
                OpReturn
                OpFunctionEnd
-
-
-Validation Failure:
-1:1: Expected number of constituents to be at least 2
-  %21 = OpCompositeConstruct %v3float %18
-
diff --git a/test/intrinsics/gen/textureSampleGrad/2ecd8f.wgsl.expected.hlsl b/test/intrinsics/gen/textureSampleGrad/2ecd8f.wgsl.expected.hlsl
index 056e2ea..2c7cb0f 100644
--- a/test/intrinsics/gen/textureSampleGrad/2ecd8f.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureSampleGrad/2ecd8f.wgsl.expected.hlsl
@@ -1,13 +1,8 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 Texture2DArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleGrad_2ecd8f() {
-  float4 res = arg_0.SampleGrad(arg_1, float3(float(1)), float2(0.0f, 0.0f), float2(0.0f, 0.0f));
+  float4 res = arg_0.SampleGrad(arg_1, float3(0.0f, 0.0f, float(1)), float2(0.0f, 0.0f), float2(0.0f, 0.0f));
 }
 
 void vertex_main() {
@@ -26,18 +21,3 @@
   return;
 }
 
-
-tint_Qg4FBC:5:47: error: too few elements in vector initialization (expected 3 elements, have 1)
-  float4 res = arg_0.SampleGrad(arg_1, float3(float(1)), float2(0.0f, 0.0f), float2(0.0f, 0.0f));
-                                              ^
-
-
-tint_Qg4FBC:5:47: error: too few elements in vector initialization (expected 3 elements, have 1)
-  float4 res = arg_0.SampleGrad(arg_1, float3(float(1)), float2(0.0f, 0.0f), float2(0.0f, 0.0f));
-                                              ^
-
-
-tint_Qg4FBC:5:47: error: too few elements in vector initialization (expected 3 elements, have 1)
-  float4 res = arg_0.SampleGrad(arg_1, float3(float(1)), float2(0.0f, 0.0f), float2(0.0f, 0.0f));
-                                              ^
-
diff --git a/test/intrinsics/gen/textureSampleGrad/2ecd8f.wgsl.expected.spvasm b/test/intrinsics/gen/textureSampleGrad/2ecd8f.wgsl.expected.spvasm
index 5b3a1db..b0f83d4 100644
--- a/test/intrinsics/gen/textureSampleGrad/2ecd8f.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureSampleGrad/2ecd8f.wgsl.expected.spvasm
@@ -1,9 +1,7 @@
-SKIP: FAILED
-
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 42
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -40,44 +38,39 @@
     %v4float = OpTypeVector %float 4
          %19 = OpTypeSampledImage %7
     %v3float = OpTypeVector %float 3
+    %float_0 = OpConstant %float 0
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
     %v2float = OpTypeVector %float 2
-         %27 = OpConstantNull %v2float
+         %28 = OpConstantNull %v2float
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %30 = OpConstantNull %v4float
+         %31 = OpConstantNull %v4float
     %float_1 = OpConstant %float 1
 %textureSampleGrad_2ecd8f = OpFunction %void None %11
          %14 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %30
+        %res = OpVariable %_ptr_Function_v4float Function %31
          %17 = OpLoad %10 %arg_1
          %18 = OpLoad %7 %arg_0
          %20 = OpSampledImage %19 %18 %17
-         %22 = OpConvertSToF %float %int_1
-         %25 = OpCompositeConstruct %v3float %22
-         %15 = OpImageSampleExplicitLod %v4float %20 %25 Grad %27 %27
+         %23 = OpConvertSToF %float %int_1
+         %26 = OpCompositeConstruct %v3float %float_0 %float_0 %23
+         %15 = OpImageSampleExplicitLod %v4float %20 %26 Grad %28 %28
                OpStore %res %15
                OpReturn
                OpFunctionEnd
 %vertex_main = OpFunction %void None %11
-         %32 = OpLabel
+         %33 = OpLabel
                OpStore %tint_pointsize %float_1
-         %34 = OpFunctionCall %void %textureSampleGrad_2ecd8f
+         %35 = OpFunctionCall %void %textureSampleGrad_2ecd8f
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %11
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureSampleGrad_2ecd8f
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureSampleGrad_2ecd8f
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %11
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureSampleGrad_2ecd8f
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureSampleGrad_2ecd8f
                OpReturn
                OpFunctionEnd
-
-
-Validation Failure:
-1:1: Expected number of constituents to be at least 2
-  %25 = OpCompositeConstruct %v3float %22
-
diff --git a/test/intrinsics/gen/textureSampleGrad/872f00.wgsl.expected.hlsl b/test/intrinsics/gen/textureSampleGrad/872f00.wgsl.expected.hlsl
index c777f65..cbe1a90 100644
--- a/test/intrinsics/gen/textureSampleGrad/872f00.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureSampleGrad/872f00.wgsl.expected.hlsl
@@ -1,13 +1,8 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 Texture2DArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleGrad_872f00() {
-  float4 res = arg_0.SampleGrad(arg_1, float3(float(1)), float2(0.0f, 0.0f), float2(0.0f, 0.0f), int2(0, 0));
+  float4 res = arg_0.SampleGrad(arg_1, float3(0.0f, 0.0f, float(1)), float2(0.0f, 0.0f), float2(0.0f, 0.0f), int2(0, 0));
 }
 
 void vertex_main() {
@@ -26,18 +21,3 @@
   return;
 }
 
-
-tint_TQAGnF:5:47: error: too few elements in vector initialization (expected 3 elements, have 1)
-  float4 res = arg_0.SampleGrad(arg_1, float3(float(1)), float2(0.0f, 0.0f), float2(0.0f, 0.0f), int2(0, 0));
-                                              ^
-
-
-tint_TQAGnF:5:47: error: too few elements in vector initialization (expected 3 elements, have 1)
-  float4 res = arg_0.SampleGrad(arg_1, float3(float(1)), float2(0.0f, 0.0f), float2(0.0f, 0.0f), int2(0, 0));
-                                              ^
-
-
-tint_TQAGnF:5:47: error: too few elements in vector initialization (expected 3 elements, have 1)
-  float4 res = arg_0.SampleGrad(arg_1, float3(float(1)), float2(0.0f, 0.0f), float2(0.0f, 0.0f), int2(0, 0));
-                                              ^
-
diff --git a/test/intrinsics/gen/textureSampleGrad/872f00.wgsl.expected.spvasm b/test/intrinsics/gen/textureSampleGrad/872f00.wgsl.expected.spvasm
index b9742e4..3d88c6f 100644
--- a/test/intrinsics/gen/textureSampleGrad/872f00.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureSampleGrad/872f00.wgsl.expected.spvasm
@@ -1,9 +1,7 @@
-SKIP: FAILED
-
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 43
+; Bound: 44
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -40,46 +38,41 @@
     %v4float = OpTypeVector %float 4
          %19 = OpTypeSampledImage %7
     %v3float = OpTypeVector %float 3
+    %float_0 = OpConstant %float 0
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
     %v2float = OpTypeVector %float 2
-         %27 = OpConstantNull %v2float
+         %28 = OpConstantNull %v2float
       %v2int = OpTypeVector %int 2
-         %29 = OpConstantNull %v2int
+         %30 = OpConstantNull %v2int
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %32 = OpConstantNull %v4float
+         %33 = OpConstantNull %v4float
     %float_1 = OpConstant %float 1
 %textureSampleGrad_872f00 = OpFunction %void None %11
          %14 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %32
+        %res = OpVariable %_ptr_Function_v4float Function %33
          %17 = OpLoad %10 %arg_1
          %18 = OpLoad %7 %arg_0
          %20 = OpSampledImage %19 %18 %17
-         %22 = OpConvertSToF %float %int_1
-         %25 = OpCompositeConstruct %v3float %22
-         %15 = OpImageSampleExplicitLod %v4float %20 %25 Grad|ConstOffset %27 %27 %29
+         %23 = OpConvertSToF %float %int_1
+         %26 = OpCompositeConstruct %v3float %float_0 %float_0 %23
+         %15 = OpImageSampleExplicitLod %v4float %20 %26 Grad|ConstOffset %28 %28 %30
                OpStore %res %15
                OpReturn
                OpFunctionEnd
 %vertex_main = OpFunction %void None %11
-         %34 = OpLabel
+         %35 = OpLabel
                OpStore %tint_pointsize %float_1
-         %36 = OpFunctionCall %void %textureSampleGrad_872f00
+         %37 = OpFunctionCall %void %textureSampleGrad_872f00
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %11
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureSampleGrad_872f00
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureSampleGrad_872f00
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %11
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureSampleGrad_872f00
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureSampleGrad_872f00
                OpReturn
                OpFunctionEnd
-
-
-Validation Failure:
-1:1: Expected number of constituents to be at least 2
-  %25 = OpCompositeConstruct %v3float %22
-
diff --git a/test/intrinsics/gen/textureSampleGrad/e383db.wgsl.expected.hlsl b/test/intrinsics/gen/textureSampleGrad/e383db.wgsl.expected.hlsl
index 4824676..c5e5cb1 100644
--- a/test/intrinsics/gen/textureSampleGrad/e383db.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureSampleGrad/e383db.wgsl.expected.hlsl
@@ -1,13 +1,8 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 TextureCubeArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleGrad_e383db() {
-  float4 res = arg_0.SampleGrad(arg_1, float4(float(1)), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f));
+  float4 res = arg_0.SampleGrad(arg_1, float4(0.0f, 0.0f, 0.0f, float(1)), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f));
 }
 
 void vertex_main() {
@@ -26,18 +21,3 @@
   return;
 }
 
-
-tint_fHKVHJ:5:47: error: too few elements in vector initialization (expected 4 elements, have 1)
-  float4 res = arg_0.SampleGrad(arg_1, float4(float(1)), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f));
-                                              ^
-
-
-tint_fHKVHJ:5:47: error: too few elements in vector initialization (expected 4 elements, have 1)
-  float4 res = arg_0.SampleGrad(arg_1, float4(float(1)), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f));
-                                              ^
-
-
-tint_fHKVHJ:5:47: error: too few elements in vector initialization (expected 4 elements, have 1)
-  float4 res = arg_0.SampleGrad(arg_1, float4(float(1)), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f));
-                                              ^
-
diff --git a/test/intrinsics/gen/textureSampleGrad/e383db.wgsl.expected.spvasm b/test/intrinsics/gen/textureSampleGrad/e383db.wgsl.expected.spvasm
index 62e786b..f53698c 100644
--- a/test/intrinsics/gen/textureSampleGrad/e383db.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureSampleGrad/e383db.wgsl.expected.spvasm
@@ -1,9 +1,7 @@
-SKIP: FAILED
-
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 41
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
@@ -40,44 +38,39 @@
          %11 = OpTypeFunction %void
     %v4float = OpTypeVector %float 4
          %19 = OpTypeSampledImage %7
+    %float_0 = OpConstant %float 0
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
     %v3float = OpTypeVector %float 3
-         %26 = OpConstantNull %v3float
+         %27 = OpConstantNull %v3float
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %29 = OpConstantNull %v4float
+         %30 = OpConstantNull %v4float
     %float_1 = OpConstant %float 1
 %textureSampleGrad_e383db = OpFunction %void None %11
          %14 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %29
+        %res = OpVariable %_ptr_Function_v4float Function %30
          %17 = OpLoad %10 %arg_1
          %18 = OpLoad %7 %arg_0
          %20 = OpSampledImage %19 %18 %17
-         %21 = OpConvertSToF %float %int_1
-         %24 = OpCompositeConstruct %v4float %21
-         %15 = OpImageSampleExplicitLod %v4float %20 %24 Grad %26 %26
+         %22 = OpConvertSToF %float %int_1
+         %25 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %22
+         %15 = OpImageSampleExplicitLod %v4float %20 %25 Grad %27 %27
                OpStore %res %15
                OpReturn
                OpFunctionEnd
 %vertex_main = OpFunction %void None %11
-         %31 = OpLabel
+         %32 = OpLabel
                OpStore %tint_pointsize %float_1
-         %33 = OpFunctionCall %void %textureSampleGrad_e383db
+         %34 = OpFunctionCall %void %textureSampleGrad_e383db
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %11
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureSampleGrad_e383db
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureSampleGrad_e383db
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %11
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureSampleGrad_e383db
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureSampleGrad_e383db
                OpReturn
                OpFunctionEnd
-
-
-Validation Failure:
-1:1: Expected number of constituents to be at least 2
-  %24 = OpCompositeConstruct %v4float %21
-
diff --git a/test/intrinsics/gen/textureSampleLevel/0bdd9a.wgsl.expected.hlsl b/test/intrinsics/gen/textureSampleLevel/0bdd9a.wgsl.expected.hlsl
index f81fbbb..7267bff 100644
--- a/test/intrinsics/gen/textureSampleLevel/0bdd9a.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureSampleLevel/0bdd9a.wgsl.expected.hlsl
@@ -1,13 +1,8 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 TextureCubeArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_0bdd9a() {
-  float4 res = arg_0.SampleLevel(arg_1, float4(float(1)), 1.0f);
+  float4 res = arg_0.SampleLevel(arg_1, float4(0.0f, 0.0f, 0.0f, float(1)), 1.0f);
 }
 
 void vertex_main() {
@@ -26,18 +21,3 @@
   return;
 }
 
-
-tint_QjIcR9:5:48: error: too few elements in vector initialization (expected 4 elements, have 1)
-  float4 res = arg_0.SampleLevel(arg_1, float4(float(1)), 1.0f);
-                                               ^
-
-
-tint_QjIcR9:5:48: error: too few elements in vector initialization (expected 4 elements, have 1)
-  float4 res = arg_0.SampleLevel(arg_1, float4(float(1)), 1.0f);
-                                               ^
-
-
-tint_QjIcR9:5:48: error: too few elements in vector initialization (expected 4 elements, have 1)
-  float4 res = arg_0.SampleLevel(arg_1, float4(float(1)), 1.0f);
-                                               ^
-
diff --git a/test/intrinsics/gen/textureSampleLevel/0bdd9a.wgsl.expected.spvasm b/test/intrinsics/gen/textureSampleLevel/0bdd9a.wgsl.expected.spvasm
index cc17e05..ea7ebbf 100644
--- a/test/intrinsics/gen/textureSampleLevel/0bdd9a.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureSampleLevel/0bdd9a.wgsl.expected.spvasm
@@ -1,9 +1,7 @@
-SKIP: FAILED
-
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 39
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
@@ -40,42 +38,37 @@
          %11 = OpTypeFunction %void
     %v4float = OpTypeVector %float 4
          %19 = OpTypeSampledImage %7
+    %float_0 = OpConstant %float 0
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
     %float_1 = OpConstant %float 1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %28 = OpConstantNull %v4float
+         %29 = OpConstantNull %v4float
 %textureSampleLevel_0bdd9a = OpFunction %void None %11
          %14 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %28
+        %res = OpVariable %_ptr_Function_v4float Function %29
          %17 = OpLoad %10 %arg_1
          %18 = OpLoad %7 %arg_0
          %20 = OpSampledImage %19 %18 %17
-         %21 = OpConvertSToF %float %int_1
-         %24 = OpCompositeConstruct %v4float %21
-         %15 = OpImageSampleExplicitLod %v4float %20 %24 Lod %float_1
+         %22 = OpConvertSToF %float %int_1
+         %25 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %22
+         %15 = OpImageSampleExplicitLod %v4float %20 %25 Lod %float_1
                OpStore %res %15
                OpReturn
                OpFunctionEnd
 %vertex_main = OpFunction %void None %11
-         %30 = OpLabel
+         %31 = OpLabel
                OpStore %tint_pointsize %float_1
-         %31 = OpFunctionCall %void %textureSampleLevel_0bdd9a
+         %32 = OpFunctionCall %void %textureSampleLevel_0bdd9a
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %11
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureSampleLevel_0bdd9a
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureSampleLevel_0bdd9a
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %11
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureSampleLevel_0bdd9a
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureSampleLevel_0bdd9a
                OpReturn
                OpFunctionEnd
-
-
-Validation Failure:
-1:1: Expected number of constituents to be at least 2
-  %24 = OpCompositeConstruct %v4float %21
-
diff --git a/test/intrinsics/gen/textureSampleLevel/1bf73e.wgsl.expected.hlsl b/test/intrinsics/gen/textureSampleLevel/1bf73e.wgsl.expected.hlsl
index adfe0a7..f1ef0f0 100644
--- a/test/intrinsics/gen/textureSampleLevel/1bf73e.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureSampleLevel/1bf73e.wgsl.expected.hlsl
@@ -1,13 +1,8 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 Texture2DArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_1bf73e() {
-  float res = arg_0.SampleLevel(arg_1, float3(float(1)), 1);
+  float res = arg_0.SampleLevel(arg_1, float3(0.0f, 0.0f, float(1)), 1);
 }
 
 void vertex_main() {
@@ -26,27 +21,3 @@
   return;
 }
 
-
-tint_U83SMG:5:47: error: too few elements in vector initialization (expected 3 elements, have 1)
-  float res = arg_0.SampleLevel(arg_1, float3(float(1)), 1);
-                                              ^
-tint_U83SMG:5:9: warning: implicit truncation of vector type [-Wconversion]
-  float res = arg_0.SampleLevel(arg_1, float3(float(1)), 1);
-        ^
-
-
-tint_U83SMG:5:47: error: too few elements in vector initialization (expected 3 elements, have 1)
-  float res = arg_0.SampleLevel(arg_1, float3(float(1)), 1);
-                                              ^
-tint_U83SMG:5:9: warning: implicit truncation of vector type [-Wconversion]
-  float res = arg_0.SampleLevel(arg_1, float3(float(1)), 1);
-        ^
-
-
-tint_U83SMG:5:47: error: too few elements in vector initialization (expected 3 elements, have 1)
-  float res = arg_0.SampleLevel(arg_1, float3(float(1)), 1);
-                                              ^
-tint_U83SMG:5:9: warning: implicit truncation of vector type [-Wconversion]
-  float res = arg_0.SampleLevel(arg_1, float3(float(1)), 1);
-        ^
-
diff --git a/test/intrinsics/gen/textureSampleLevel/1bf73e.wgsl.expected.spvasm b/test/intrinsics/gen/textureSampleLevel/1bf73e.wgsl.expected.spvasm
index 39175d8..2f2429b 100644
--- a/test/intrinsics/gen/textureSampleLevel/1bf73e.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureSampleLevel/1bf73e.wgsl.expected.spvasm
@@ -1,9 +1,7 @@
-SKIP: FAILED
-
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 41
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -40,6 +38,7 @@
     %v4float = OpTypeVector %float 4
          %20 = OpTypeSampledImage %7
     %v3float = OpTypeVector %float 3
+    %float_0 = OpConstant %float 0
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_float = OpTypePointer Function %float
@@ -50,33 +49,27 @@
          %18 = OpLoad %10 %arg_1
          %19 = OpLoad %7 %arg_0
          %21 = OpSampledImage %20 %19 %18
-         %23 = OpConvertSToF %float %int_1
-         %26 = OpCompositeConstruct %v3float %23
-         %27 = OpConvertSToF %float %int_1
-         %16 = OpImageSampleExplicitLod %v4float %21 %26 Lod %27
+         %24 = OpConvertSToF %float %int_1
+         %27 = OpCompositeConstruct %v3float %float_0 %float_0 %24
+         %28 = OpConvertSToF %float %int_1
+         %16 = OpImageSampleExplicitLod %v4float %21 %27 Lod %28
          %15 = OpCompositeExtract %float %16 0
                OpStore %res %15
                OpReturn
                OpFunctionEnd
 %vertex_main = OpFunction %void None %11
-         %31 = OpLabel
+         %32 = OpLabel
                OpStore %tint_pointsize %float_1
-         %33 = OpFunctionCall %void %textureSampleLevel_1bf73e
+         %34 = OpFunctionCall %void %textureSampleLevel_1bf73e
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %11
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureSampleLevel_1bf73e
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureSampleLevel_1bf73e
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %11
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureSampleLevel_1bf73e
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureSampleLevel_1bf73e
                OpReturn
                OpFunctionEnd
-
-
-Validation Failure:
-1:1: Expected number of constituents to be at least 2
-  %26 = OpCompositeConstruct %v3float %23
-
diff --git a/test/intrinsics/gen/textureSampleLevel/302be4.wgsl.expected.hlsl b/test/intrinsics/gen/textureSampleLevel/302be4.wgsl.expected.hlsl
index bcca58d..3476f09 100644
--- a/test/intrinsics/gen/textureSampleLevel/302be4.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureSampleLevel/302be4.wgsl.expected.hlsl
@@ -1,13 +1,8 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 Texture2DArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_302be4() {
-  float4 res = arg_0.SampleLevel(arg_1, float3(float(1)), 1.0f);
+  float4 res = arg_0.SampleLevel(arg_1, float3(0.0f, 0.0f, float(1)), 1.0f);
 }
 
 void vertex_main() {
@@ -26,18 +21,3 @@
   return;
 }
 
-
-tint_wKzugP:5:48: error: too few elements in vector initialization (expected 3 elements, have 1)
-  float4 res = arg_0.SampleLevel(arg_1, float3(float(1)), 1.0f);
-                                               ^
-
-
-tint_wKzugP:5:48: error: too few elements in vector initialization (expected 3 elements, have 1)
-  float4 res = arg_0.SampleLevel(arg_1, float3(float(1)), 1.0f);
-                                               ^
-
-
-tint_wKzugP:5:48: error: too few elements in vector initialization (expected 3 elements, have 1)
-  float4 res = arg_0.SampleLevel(arg_1, float3(float(1)), 1.0f);
-                                               ^
-
diff --git a/test/intrinsics/gen/textureSampleLevel/302be4.wgsl.expected.spvasm b/test/intrinsics/gen/textureSampleLevel/302be4.wgsl.expected.spvasm
index 1569494..f6b4e48 100644
--- a/test/intrinsics/gen/textureSampleLevel/302be4.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureSampleLevel/302be4.wgsl.expected.spvasm
@@ -1,9 +1,7 @@
-SKIP: FAILED
-
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -40,42 +38,37 @@
     %v4float = OpTypeVector %float 4
          %19 = OpTypeSampledImage %7
     %v3float = OpTypeVector %float 3
+    %float_0 = OpConstant %float 0
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
     %float_1 = OpConstant %float 1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %29 = OpConstantNull %v4float
+         %30 = OpConstantNull %v4float
 %textureSampleLevel_302be4 = OpFunction %void None %11
          %14 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %29
+        %res = OpVariable %_ptr_Function_v4float Function %30
          %17 = OpLoad %10 %arg_1
          %18 = OpLoad %7 %arg_0
          %20 = OpSampledImage %19 %18 %17
-         %22 = OpConvertSToF %float %int_1
-         %25 = OpCompositeConstruct %v3float %22
-         %15 = OpImageSampleExplicitLod %v4float %20 %25 Lod %float_1
+         %23 = OpConvertSToF %float %int_1
+         %26 = OpCompositeConstruct %v3float %float_0 %float_0 %23
+         %15 = OpImageSampleExplicitLod %v4float %20 %26 Lod %float_1
                OpStore %res %15
                OpReturn
                OpFunctionEnd
 %vertex_main = OpFunction %void None %11
-         %31 = OpLabel
+         %32 = OpLabel
                OpStore %tint_pointsize %float_1
-         %32 = OpFunctionCall %void %textureSampleLevel_302be4
+         %33 = OpFunctionCall %void %textureSampleLevel_302be4
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %11
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureSampleLevel_302be4
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureSampleLevel_302be4
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %11
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureSampleLevel_302be4
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureSampleLevel_302be4
                OpReturn
                OpFunctionEnd
-
-
-Validation Failure:
-1:1: Expected number of constituents to be at least 2
-  %25 = OpCompositeConstruct %v3float %22
-
diff --git a/test/intrinsics/gen/textureSampleLevel/a4af26.wgsl.expected.hlsl b/test/intrinsics/gen/textureSampleLevel/a4af26.wgsl.expected.hlsl
index 77c9671..0e20614 100644
--- a/test/intrinsics/gen/textureSampleLevel/a4af26.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureSampleLevel/a4af26.wgsl.expected.hlsl
@@ -1,13 +1,8 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 Texture2DArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_a4af26() {
-  float4 res = arg_0.SampleLevel(arg_1, float3(float(1)), 1.0f, int2(0, 0));
+  float4 res = arg_0.SampleLevel(arg_1, float3(0.0f, 0.0f, float(1)), 1.0f, int2(0, 0));
 }
 
 void vertex_main() {
@@ -26,18 +21,3 @@
   return;
 }
 
-
-tint_TRKrS9:5:48: error: too few elements in vector initialization (expected 3 elements, have 1)
-  float4 res = arg_0.SampleLevel(arg_1, float3(float(1)), 1.0f, int2(0, 0));
-                                               ^
-
-
-tint_TRKrS9:5:48: error: too few elements in vector initialization (expected 3 elements, have 1)
-  float4 res = arg_0.SampleLevel(arg_1, float3(float(1)), 1.0f, int2(0, 0));
-                                               ^
-
-
-tint_TRKrS9:5:48: error: too few elements in vector initialization (expected 3 elements, have 1)
-  float4 res = arg_0.SampleLevel(arg_1, float3(float(1)), 1.0f, int2(0, 0));
-                                               ^
-
diff --git a/test/intrinsics/gen/textureSampleLevel/a4af26.wgsl.expected.spvasm b/test/intrinsics/gen/textureSampleLevel/a4af26.wgsl.expected.spvasm
index 9e4d041..f6449ee 100644
--- a/test/intrinsics/gen/textureSampleLevel/a4af26.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureSampleLevel/a4af26.wgsl.expected.spvasm
@@ -1,9 +1,7 @@
-SKIP: FAILED
-
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 42
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -40,44 +38,39 @@
     %v4float = OpTypeVector %float 4
          %19 = OpTypeSampledImage %7
     %v3float = OpTypeVector %float 3
+    %float_0 = OpConstant %float 0
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
     %float_1 = OpConstant %float 1
       %v2int = OpTypeVector %int 2
-         %28 = OpConstantNull %v2int
+         %29 = OpConstantNull %v2int
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %31 = OpConstantNull %v4float
+         %32 = OpConstantNull %v4float
 %textureSampleLevel_a4af26 = OpFunction %void None %11
          %14 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %31
+        %res = OpVariable %_ptr_Function_v4float Function %32
          %17 = OpLoad %10 %arg_1
          %18 = OpLoad %7 %arg_0
          %20 = OpSampledImage %19 %18 %17
-         %22 = OpConvertSToF %float %int_1
-         %25 = OpCompositeConstruct %v3float %22
-         %15 = OpImageSampleExplicitLod %v4float %20 %25 Lod|ConstOffset %float_1 %28
+         %23 = OpConvertSToF %float %int_1
+         %26 = OpCompositeConstruct %v3float %float_0 %float_0 %23
+         %15 = OpImageSampleExplicitLod %v4float %20 %26 Lod|ConstOffset %float_1 %29
                OpStore %res %15
                OpReturn
                OpFunctionEnd
 %vertex_main = OpFunction %void None %11
-         %33 = OpLabel
+         %34 = OpLabel
                OpStore %tint_pointsize %float_1
-         %34 = OpFunctionCall %void %textureSampleLevel_a4af26
+         %35 = OpFunctionCall %void %textureSampleLevel_a4af26
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %11
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureSampleLevel_a4af26
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureSampleLevel_a4af26
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %11
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureSampleLevel_a4af26
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureSampleLevel_a4af26
                OpReturn
                OpFunctionEnd
-
-
-Validation Failure:
-1:1: Expected number of constituents to be at least 2
-  %25 = OpCompositeConstruct %v3float %22
-
diff --git a/test/intrinsics/gen/textureSampleLevel/ae5e39.wgsl.expected.hlsl b/test/intrinsics/gen/textureSampleLevel/ae5e39.wgsl.expected.hlsl
index e9fe818..69978eb 100644
--- a/test/intrinsics/gen/textureSampleLevel/ae5e39.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureSampleLevel/ae5e39.wgsl.expected.hlsl
@@ -1,13 +1,8 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 TextureCubeArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_ae5e39() {
-  float res = arg_0.SampleLevel(arg_1, float4(float(1)), 1);
+  float res = arg_0.SampleLevel(arg_1, float4(0.0f, 0.0f, 0.0f, float(1)), 1);
 }
 
 void vertex_main() {
@@ -26,27 +21,3 @@
   return;
 }
 
-
-tint_4Cjjss:5:47: error: too few elements in vector initialization (expected 4 elements, have 1)
-  float res = arg_0.SampleLevel(arg_1, float4(float(1)), 1);
-                                              ^
-tint_4Cjjss:5:9: warning: implicit truncation of vector type [-Wconversion]
-  float res = arg_0.SampleLevel(arg_1, float4(float(1)), 1);
-        ^
-
-
-tint_4Cjjss:5:47: error: too few elements in vector initialization (expected 4 elements, have 1)
-  float res = arg_0.SampleLevel(arg_1, float4(float(1)), 1);
-                                              ^
-tint_4Cjjss:5:9: warning: implicit truncation of vector type [-Wconversion]
-  float res = arg_0.SampleLevel(arg_1, float4(float(1)), 1);
-        ^
-
-
-tint_4Cjjss:5:47: error: too few elements in vector initialization (expected 4 elements, have 1)
-  float res = arg_0.SampleLevel(arg_1, float4(float(1)), 1);
-                                              ^
-tint_4Cjjss:5:9: warning: implicit truncation of vector type [-Wconversion]
-  float res = arg_0.SampleLevel(arg_1, float4(float(1)), 1);
-        ^
-
diff --git a/test/intrinsics/gen/textureSampleLevel/ae5e39.wgsl.expected.spvasm b/test/intrinsics/gen/textureSampleLevel/ae5e39.wgsl.expected.spvasm
index 1cc06da..907f80d 100644
--- a/test/intrinsics/gen/textureSampleLevel/ae5e39.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureSampleLevel/ae5e39.wgsl.expected.spvasm
@@ -1,9 +1,7 @@
-SKIP: FAILED
-
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
@@ -40,6 +38,7 @@
          %11 = OpTypeFunction %void
     %v4float = OpTypeVector %float 4
          %20 = OpTypeSampledImage %7
+    %float_0 = OpConstant %float 0
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_float = OpTypePointer Function %float
@@ -50,33 +49,27 @@
          %18 = OpLoad %10 %arg_1
          %19 = OpLoad %7 %arg_0
          %21 = OpSampledImage %20 %19 %18
-         %22 = OpConvertSToF %float %int_1
-         %25 = OpCompositeConstruct %v4float %22
-         %26 = OpConvertSToF %float %int_1
-         %16 = OpImageSampleExplicitLod %v4float %21 %25 Lod %26
+         %23 = OpConvertSToF %float %int_1
+         %26 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %23
+         %27 = OpConvertSToF %float %int_1
+         %16 = OpImageSampleExplicitLod %v4float %21 %26 Lod %27
          %15 = OpCompositeExtract %float %16 0
                OpStore %res %15
                OpReturn
                OpFunctionEnd
 %vertex_main = OpFunction %void None %11
-         %30 = OpLabel
+         %31 = OpLabel
                OpStore %tint_pointsize %float_1
-         %32 = OpFunctionCall %void %textureSampleLevel_ae5e39
+         %33 = OpFunctionCall %void %textureSampleLevel_ae5e39
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %11
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureSampleLevel_ae5e39
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureSampleLevel_ae5e39
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %11
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureSampleLevel_ae5e39
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureSampleLevel_ae5e39
                OpReturn
                OpFunctionEnd
-
-
-Validation Failure:
-1:1: Expected number of constituents to be at least 2
-  %25 = OpCompositeConstruct %v4float %22
-
diff --git a/test/intrinsics/gen/textureSampleLevel/ba93b3.wgsl.expected.hlsl b/test/intrinsics/gen/textureSampleLevel/ba93b3.wgsl.expected.hlsl
index f6e94c5..91349dd 100644
--- a/test/intrinsics/gen/textureSampleLevel/ba93b3.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureSampleLevel/ba93b3.wgsl.expected.hlsl
@@ -1,13 +1,8 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 Texture2DArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_ba93b3() {
-  float res = arg_0.SampleLevel(arg_1, float3(float(1)), 1, int2(0, 0));
+  float res = arg_0.SampleLevel(arg_1, float3(0.0f, 0.0f, float(1)), 1, int2(0, 0));
 }
 
 void vertex_main() {
@@ -26,23 +21,3 @@
   return;
 }
 
-
-tint_yH0jAE:5:47: error: too few elements in vector initialization (expected 3 elements, have 1)
-  float res = arg_0.SampleLevel(arg_1, float3(float(1)), 1, int2(0, 0));
-                                              ^
-tint_yH0jAE:5:9: warning: implicit tru
-tint_yH0jAE:5:47: error: too few elements in vector initialization (expected 3 elements, have 1)
-  float res = arg_0.SampleLevel(arg_1, float3(float(1)), 1, int2(0, 0));
-                                              ^
-tint_yH0jAE:5:9: warning: implicit truncation of vector type [-Wconversion]
-  float res = arg_0.SampleLevel(arg_1, float3(float(1)), 1, int2(0, 0));
-        ^
-
-
-tint_yH0jAE:5:47: error: too few elements in vector initialization (expected 3 elements, have 1)
-  float res = arg_0.SampleLevel(arg_1, float3(float(1)), 1, int2(0, 0));
-                                              ^
-tint_yH0jAE:5:9: warning: implicit truncation of vector type [-Wconversion]
-  float res = arg_0.SampleLevel(arg_1, float3(float(1)), 1, int2(0, 0));
-        ^
-
diff --git a/test/intrinsics/gen/textureSampleLevel/ba93b3.wgsl.expected.spvasm b/test/intrinsics/gen/textureSampleLevel/ba93b3.wgsl.expected.spvasm
index d249923..27be8b2 100644
--- a/test/intrinsics/gen/textureSampleLevel/ba93b3.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureSampleLevel/ba93b3.wgsl.expected.spvasm
@@ -1,9 +1,7 @@
-SKIP: FAILED
-
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 42
+; Bound: 43
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -40,10 +38,11 @@
     %v4float = OpTypeVector %float 4
          %20 = OpTypeSampledImage %7
     %v3float = OpTypeVector %float 3
+    %float_0 = OpConstant %float 0
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
       %v2int = OpTypeVector %int 2
-         %29 = OpConstantNull %v2int
+         %30 = OpConstantNull %v2int
 %_ptr_Function_float = OpTypePointer Function %float
     %float_1 = OpConstant %float 1
 %textureSampleLevel_ba93b3 = OpFunction %void None %11
@@ -52,33 +51,27 @@
          %18 = OpLoad %10 %arg_1
          %19 = OpLoad %7 %arg_0
          %21 = OpSampledImage %20 %19 %18
-         %23 = OpConvertSToF %float %int_1
-         %26 = OpCompositeConstruct %v3float %23
-         %27 = OpConvertSToF %float %int_1
-         %16 = OpImageSampleExplicitLod %v4float %21 %26 Lod|ConstOffset %27 %29
+         %24 = OpConvertSToF %float %int_1
+         %27 = OpCompositeConstruct %v3float %float_0 %float_0 %24
+         %28 = OpConvertSToF %float %int_1
+         %16 = OpImageSampleExplicitLod %v4float %21 %27 Lod|ConstOffset %28 %30
          %15 = OpCompositeExtract %float %16 0
                OpStore %res %15
                OpReturn
                OpFunctionEnd
 %vertex_main = OpFunction %void None %11
-         %33 = OpLabel
+         %34 = OpLabel
                OpStore %tint_pointsize %float_1
-         %35 = OpFunctionCall %void %textureSampleLevel_ba93b3
+         %36 = OpFunctionCall %void %textureSampleLevel_ba93b3
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %11
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureSampleLevel_ba93b3
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureSampleLevel_ba93b3
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %11
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureSampleLevel_ba93b3
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureSampleLevel_ba93b3
                OpReturn
                OpFunctionEnd
-
-
-Validation Failure:
-1:1: Expected number of constituents to be at least 2
-  %26 = OpCompositeConstruct %v3float %23
-
diff --git a/test/intrinsics/gen/textureStore/1c02e7.wgsl.expected.hlsl b/test/intrinsics/gen/textureStore/1c02e7.wgsl.expected.hlsl
index dbbaade..eead151 100644
--- a/test/intrinsics/gen/textureStore/1c02e7.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureStore/1c02e7.wgsl.expected.hlsl
@@ -1,12 +1,7 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 void textureStore_1c02e7() {
-  arg_0[int3(1)] = int4(0, 0, 0, 0);
+  arg_0[int3(0, 0, 1)] = int4(0, 0, 0, 0);
 }
 
 void vertex_main() {
@@ -25,18 +20,3 @@
   return;
 }
 
-
-tint_9SEdo4:4:14: error: too few elements in vector initialization (expected 3 elements, have 1)
-  arg_0[int3(1)] = int4(0, 0, 0, 0);
-             ^
-
-
-tint_9SEdo4:4:14: error: too few elements in vector initialization (expected 3 elements, have 1)
-  arg_0[int3(1)] = int4(0, 0, 0, 0);
-             ^
-
-
-tint_9SEdo4:4:14: error: too few elements in vector initialization (expected 3 elements, have 1)
-  arg_0[int3(1)] = int4(0, 0, 0, 0);
-             ^
-
diff --git a/test/intrinsics/gen/textureStore/1c02e7.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/1c02e7.wgsl.expected.spvasm
index c842521..b1fef26 100644
--- a/test/intrinsics/gen/textureStore/1c02e7.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/1c02e7.wgsl.expected.spvasm
@@ -1,9 +1,7 @@
-SKIP: FAILED
-
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 30
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -33,36 +31,31 @@
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
       %v3int = OpTypeVector %int 3
+      %int_0 = OpConstant %int 0
       %int_1 = OpConstant %int 1
-         %17 = OpConstantComposite %v3int %int_1
+         %18 = OpConstantComposite %v3int %int_0 %int_0 %int_1
       %v4int = OpTypeVector %int 4
-         %19 = OpConstantNull %v4int
+         %20 = OpConstantNull %v4int
     %float_1 = OpConstant %float 1
 %textureStore_1c02e7 = OpFunction %void None %9
          %12 = OpLabel
          %14 = OpLoad %7 %arg_0
-               OpImageWrite %14 %17 %19
+               OpImageWrite %14 %18 %20
                OpReturn
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
-         %21 = OpLabel
+         %22 = OpLabel
                OpStore %tint_pointsize %float_1
-         %23 = OpFunctionCall %void %textureStore_1c02e7
+         %24 = OpFunctionCall %void %textureStore_1c02e7
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %25 = OpLabel
-         %26 = OpFunctionCall %void %textureStore_1c02e7
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_1c02e7
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureStore_1c02e7
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %textureStore_1c02e7
                OpReturn
                OpFunctionEnd
-
-
-Validation Failure:
-1:1: OpConstantComposite Constituent <id> count does not match Result Type <id> '15[%v3int]'s vector component count.
-  %17 = OpConstantComposite %v3int %int_1
-
diff --git a/test/intrinsics/gen/textureStore/22d955.wgsl.expected.hlsl b/test/intrinsics/gen/textureStore/22d955.wgsl.expected.hlsl
index cf011fc..20cec38 100644
--- a/test/intrinsics/gen/textureStore/22d955.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureStore/22d955.wgsl.expected.hlsl
@@ -1,12 +1,7 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 void textureStore_22d955() {
-  arg_0[int3(1)] = uint4(0u, 0u, 0u, 0u);
+  arg_0[int3(0, 0, 1)] = uint4(0u, 0u, 0u, 0u);
 }
 
 void vertex_main() {
@@ -25,18 +20,3 @@
   return;
 }
 
-
-tint_Qx2ZJJ:4:14: error: too few elements in vector initialization (expected 3 elements, have 1)
-  arg_0[int3(1)] = uint4(0u, 0u, 0u, 0u);
-             ^
-
-
-tint_Qx2ZJJ:4:14: error: too few elements in vector initialization (expected 3 elements, have 1)
-  arg_0[int3(1)] = uint4(0u, 0u, 0u, 0u);
-             ^
-
-
-tint_Qx2ZJJ:4:14: error: too few elements in vector initialization (expected 3 elements, have 1)
-  arg_0[int3(1)] = uint4(0u, 0u, 0u, 0u);
-             ^
-
diff --git a/test/intrinsics/gen/textureStore/22d955.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/22d955.wgsl.expected.spvasm
index 710de9a..01dc1cc 100644
--- a/test/intrinsics/gen/textureStore/22d955.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/22d955.wgsl.expected.spvasm
@@ -1,9 +1,7 @@
-SKIP: FAILED
-
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 31
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -34,36 +32,31 @@
           %9 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
+      %int_0 = OpConstant %int 0
       %int_1 = OpConstant %int 1
-         %18 = OpConstantComposite %v3int %int_1
+         %19 = OpConstantComposite %v3int %int_0 %int_0 %int_1
      %v4uint = OpTypeVector %uint 4
-         %20 = OpConstantNull %v4uint
+         %21 = OpConstantNull %v4uint
     %float_1 = OpConstant %float 1
 %textureStore_22d955 = OpFunction %void None %9
          %12 = OpLabel
          %14 = OpLoad %7 %arg_0
-               OpImageWrite %14 %18 %20
+               OpImageWrite %14 %19 %21
                OpReturn
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
-         %22 = OpLabel
+         %23 = OpLabel
                OpStore %tint_pointsize %float_1
-         %24 = OpFunctionCall %void %textureStore_22d955
+         %25 = OpFunctionCall %void %textureStore_22d955
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_22d955
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_22d955
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureStore_22d955
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_22d955
                OpReturn
                OpFunctionEnd
-
-
-Validation Failure:
-1:1: OpConstantComposite Constituent <id> count does not match Result Type <id> '15[%v3int]'s vector component count.
-  %18 = OpConstantComposite %v3int %int_1
-
diff --git a/test/intrinsics/gen/textureStore/32f368.wgsl.expected.hlsl b/test/intrinsics/gen/textureStore/32f368.wgsl.expected.hlsl
index f15b94b..1b4385d 100644
--- a/test/intrinsics/gen/textureStore/32f368.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureStore/32f368.wgsl.expected.hlsl
@@ -1,12 +1,7 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_32f368() {
-  arg_0[int3(1)] = float4(0.0f, 0.0f, 0.0f, 0.0f);
+  arg_0[int3(0, 0, 1)] = float4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
 void vertex_main() {
@@ -25,18 +20,3 @@
   return;
 }
 
-
-tint_CQZOh9:4:14: error: too few elements in vector initialization (expected 3 elements, have 1)
-  arg_0[int3(1)] = float4(0.0f, 0.0f, 0.0f, 0.0f);
-             ^
-
-
-tint_CQZOh9:4:14: error: too few elements in vector initialization (expected 3 elements, have 1)
-  arg_0[int3(1)] = float4(0.0f, 0.0f, 0.0f, 0.0f);
-             ^
-
-
-tint_CQZOh9:4:14: error: too few elements in vector initialization (expected 3 elements, have 1)
-  arg_0[int3(1)] = float4(0.0f, 0.0f, 0.0f, 0.0f);
-             ^
-
diff --git a/test/intrinsics/gen/textureStore/32f368.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/32f368.wgsl.expected.spvasm
index d8b5b0d..63c2b1c 100644
--- a/test/intrinsics/gen/textureStore/32f368.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/32f368.wgsl.expected.spvasm
@@ -1,9 +1,7 @@
-SKIP: FAILED
-
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 30
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -33,36 +31,31 @@
           %8 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
+      %int_0 = OpConstant %int 0
       %int_1 = OpConstant %int 1
-         %17 = OpConstantComposite %v3int %int_1
+         %18 = OpConstantComposite %v3int %int_0 %int_0 %int_1
     %v4float = OpTypeVector %float 4
-         %19 = OpConstantNull %v4float
+         %20 = OpConstantNull %v4float
     %float_1 = OpConstant %float 1
 %textureStore_32f368 = OpFunction %void None %8
          %11 = OpLabel
          %13 = OpLoad %7 %arg_0
-               OpImageWrite %13 %17 %19
+               OpImageWrite %13 %18 %20
                OpReturn
                OpFunctionEnd
 %vertex_main = OpFunction %void None %8
-         %21 = OpLabel
+         %22 = OpLabel
                OpStore %tint_pointsize %float_1
-         %23 = OpFunctionCall %void %textureStore_32f368
+         %24 = OpFunctionCall %void %textureStore_32f368
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %25 = OpLabel
-         %26 = OpFunctionCall %void %textureStore_32f368
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_32f368
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %8
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureStore_32f368
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %textureStore_32f368
                OpReturn
                OpFunctionEnd
-
-
-Validation Failure:
-1:1: OpConstantComposite Constituent <id> count does not match Result Type <id> '14[%v3int]'s vector component count.
-  %17 = OpConstantComposite %v3int %int_1
-
diff --git a/test/intrinsics/gen/textureStore/38e8d7.wgsl.expected.hlsl b/test/intrinsics/gen/textureStore/38e8d7.wgsl.expected.hlsl
index 269ec63..23abfe3 100644
--- a/test/intrinsics/gen/textureStore/38e8d7.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureStore/38e8d7.wgsl.expected.hlsl
@@ -1,12 +1,7 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 void textureStore_38e8d7() {
-  arg_0[int3(1)] = uint4(0u, 0u, 0u, 0u);
+  arg_0[int3(0, 0, 1)] = uint4(0u, 0u, 0u, 0u);
 }
 
 void vertex_main() {
@@ -25,18 +20,3 @@
   return;
 }
 
-
-tint_I6q35O:4:14: error: too few elements in vector initialization (expected 3 elements, have 1)
-  arg_0[int3(1)] = uint4(0u, 0u, 0u, 0u);
-             ^
-
-
-tint_I6q35O:4:14: error: too few elements in vector initialization (expected 3 elements, have 1)
-  arg_0[int3(1)] = uint4(0u, 0u, 0u, 0u);
-             ^
-
-
-tint_I6q35O:4:14: error: too few elements in vector initialization (expected 3 elements, have 1)
-  arg_0[int3(1)] = uint4(0u, 0u, 0u, 0u);
-             ^
-
diff --git a/test/intrinsics/gen/textureStore/38e8d7.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/38e8d7.wgsl.expected.spvasm
index d5e69af..fd1b989 100644
--- a/test/intrinsics/gen/textureStore/38e8d7.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/38e8d7.wgsl.expected.spvasm
@@ -1,9 +1,7 @@
-SKIP: FAILED
-
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 31
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -34,36 +32,31 @@
           %9 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
+      %int_0 = OpConstant %int 0
       %int_1 = OpConstant %int 1
-         %18 = OpConstantComposite %v3int %int_1
+         %19 = OpConstantComposite %v3int %int_0 %int_0 %int_1
      %v4uint = OpTypeVector %uint 4
-         %20 = OpConstantNull %v4uint
+         %21 = OpConstantNull %v4uint
     %float_1 = OpConstant %float 1
 %textureStore_38e8d7 = OpFunction %void None %9
          %12 = OpLabel
          %14 = OpLoad %7 %arg_0
-               OpImageWrite %14 %18 %20
+               OpImageWrite %14 %19 %21
                OpReturn
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
-         %22 = OpLabel
+         %23 = OpLabel
                OpStore %tint_pointsize %float_1
-         %24 = OpFunctionCall %void %textureStore_38e8d7
+         %25 = OpFunctionCall %void %textureStore_38e8d7
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_38e8d7
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_38e8d7
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureStore_38e8d7
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_38e8d7
                OpReturn
                OpFunctionEnd
-
-
-Validation Failure:
-1:1: OpConstantComposite Constituent <id> count does not match Result Type <id> '15[%v3int]'s vector component count.
-  %18 = OpConstantComposite %v3int %int_1
-
diff --git a/test/intrinsics/gen/textureStore/3a52ac.wgsl.expected.hlsl b/test/intrinsics/gen/textureStore/3a52ac.wgsl.expected.hlsl
index e40d375..1ccbf60 100644
--- a/test/intrinsics/gen/textureStore/3a52ac.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureStore/3a52ac.wgsl.expected.hlsl
@@ -1,12 +1,7 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 void textureStore_3a52ac() {
-  arg_0[int3(1)] = int4(0, 0, 0, 0);
+  arg_0[int3(0, 0, 1)] = int4(0, 0, 0, 0);
 }
 
 void vertex_main() {
@@ -25,18 +20,3 @@
   return;
 }
 
-
-tint_HKMJgS:4:14: error: too few elements in vector initialization (expected 3 elements, have 1)
-  arg_0[int3(1)] = int4(0, 0, 0, 0);
-             ^
-
-
-tint_HKMJgS:4:14: error: too few elements in vector initialization (expected 3 elements, have 1)
-  arg_0[int3(1)] = int4(0, 0, 0, 0);
-             ^
-
-
-tint_HKMJgS:4:14: error: too few elements in vector initialization (expected 3 elements, have 1)
-  arg_0[int3(1)] = int4(0, 0, 0, 0);
-             ^
-
diff --git a/test/intrinsics/gen/textureStore/3a52ac.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/3a52ac.wgsl.expected.spvasm
index 91f568d..c033a5b 100644
--- a/test/intrinsics/gen/textureStore/3a52ac.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/3a52ac.wgsl.expected.spvasm
@@ -1,9 +1,7 @@
-SKIP: FAILED
-
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 30
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -33,36 +31,31 @@
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
       %v3int = OpTypeVector %int 3
+      %int_0 = OpConstant %int 0
       %int_1 = OpConstant %int 1
-         %17 = OpConstantComposite %v3int %int_1
+         %18 = OpConstantComposite %v3int %int_0 %int_0 %int_1
       %v4int = OpTypeVector %int 4
-         %19 = OpConstantNull %v4int
+         %20 = OpConstantNull %v4int
     %float_1 = OpConstant %float 1
 %textureStore_3a52ac = OpFunction %void None %9
          %12 = OpLabel
          %14 = OpLoad %7 %arg_0
-               OpImageWrite %14 %17 %19
+               OpImageWrite %14 %18 %20
                OpReturn
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
-         %21 = OpLabel
+         %22 = OpLabel
                OpStore %tint_pointsize %float_1
-         %23 = OpFunctionCall %void %textureStore_3a52ac
+         %24 = OpFunctionCall %void %textureStore_3a52ac
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %25 = OpLabel
-         %26 = OpFunctionCall %void %textureStore_3a52ac
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_3a52ac
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureStore_3a52ac
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %textureStore_3a52ac
                OpReturn
                OpFunctionEnd
-
-
-Validation Failure:
-1:1: OpConstantComposite Constituent <id> count does not match Result Type <id> '15[%v3int]'s vector component count.
-  %17 = OpConstantComposite %v3int %int_1
-
diff --git a/test/intrinsics/gen/textureStore/3bb7a1.wgsl.expected.hlsl b/test/intrinsics/gen/textureStore/3bb7a1.wgsl.expected.hlsl
index a901a84..a8c5ece 100644
--- a/test/intrinsics/gen/textureStore/3bb7a1.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureStore/3bb7a1.wgsl.expected.hlsl
@@ -1,12 +1,7 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_3bb7a1() {
-  arg_0[int3(1)] = float4(0.0f, 0.0f, 0.0f, 0.0f);
+  arg_0[int3(0, 0, 1)] = float4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
 void vertex_main() {
@@ -25,18 +20,3 @@
   return;
 }
 
-
-tint_vqF2F7:4:14: error: too few elements in vector initialization (expected 3 elements, have 1)
-  arg_0[int3(1)] = float4(0.0f, 0.0f, 0.0f, 0.0f);
-             ^
-
-
-tint_vqF2F7:4:14: error: too few elements in vector initialization (expected 3 elements, have 1)
-  arg_0[int3(1)] = float4(0.0f, 0.0f, 0.0f, 0.0f);
-             ^
-
-
-tint_vqF2F7:4:14: error: too few elements in vector initialization (expected 3 elements, have 1)
-  arg_0[int3(1)] = float4(0.0f, 0.0f, 0.0f, 0.0f);
-             ^
-
diff --git a/test/intrinsics/gen/textureStore/3bb7a1.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/3bb7a1.wgsl.expected.spvasm
index 2a77606..312d773 100644
--- a/test/intrinsics/gen/textureStore/3bb7a1.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/3bb7a1.wgsl.expected.spvasm
@@ -1,9 +1,7 @@
-SKIP: FAILED
-
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 30
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -33,36 +31,31 @@
           %8 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
+      %int_0 = OpConstant %int 0
       %int_1 = OpConstant %int 1
-         %17 = OpConstantComposite %v3int %int_1
+         %18 = OpConstantComposite %v3int %int_0 %int_0 %int_1
     %v4float = OpTypeVector %float 4
-         %19 = OpConstantNull %v4float
+         %20 = OpConstantNull %v4float
     %float_1 = OpConstant %float 1
 %textureStore_3bb7a1 = OpFunction %void None %8
          %11 = OpLabel
          %13 = OpLoad %7 %arg_0
-               OpImageWrite %13 %17 %19
+               OpImageWrite %13 %18 %20
                OpReturn
                OpFunctionEnd
 %vertex_main = OpFunction %void None %8
-         %21 = OpLabel
+         %22 = OpLabel
                OpStore %tint_pointsize %float_1
-         %23 = OpFunctionCall %void %textureStore_3bb7a1
+         %24 = OpFunctionCall %void %textureStore_3bb7a1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %25 = OpLabel
-         %26 = OpFunctionCall %void %textureStore_3bb7a1
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_3bb7a1
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %8
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureStore_3bb7a1
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %textureStore_3bb7a1
                OpReturn
                OpFunctionEnd
-
-
-Validation Failure:
-1:1: OpConstantComposite Constituent <id> count does not match Result Type <id> '14[%v3int]'s vector component count.
-  %17 = OpConstantComposite %v3int %int_1
-
diff --git a/test/intrinsics/gen/textureStore/4fc057.wgsl.expected.hlsl b/test/intrinsics/gen/textureStore/4fc057.wgsl.expected.hlsl
index 1316e26..d7021c1 100644
--- a/test/intrinsics/gen/textureStore/4fc057.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureStore/4fc057.wgsl.expected.hlsl
@@ -1,12 +1,7 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_4fc057() {
-  arg_0[int3(1)] = float4(0.0f, 0.0f, 0.0f, 0.0f);
+  arg_0[int3(0, 0, 1)] = float4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
 void vertex_main() {
@@ -25,18 +20,3 @@
   return;
 }
 
-
-tint_1VwWVV:4:14: error: too few elements in vector initialization (expected 3 elements, have 1)
-  arg_0[int3(1)] = float4(0.0f, 0.0f, 0.0f, 0.0f);
-             ^
-
-
-tint_1VwWVV:4:14: error: too few elements in vector initialization (expected 3 elements, have 1)
-  arg_0[int3(1)] = float4(0.0f, 0.0f, 0.0f, 0.0f);
-             ^
-
-
-tint_1VwWVV:4:14: error: too few elements in vector initialization (expected 3 elements, have 1)
-  arg_0[int3(1)] = float4(0.0f, 0.0f, 0.0f, 0.0f);
-             ^
-
diff --git a/test/intrinsics/gen/textureStore/4fc057.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/4fc057.wgsl.expected.spvasm
index 9d0621b..53d44de 100644
--- a/test/intrinsics/gen/textureStore/4fc057.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/4fc057.wgsl.expected.spvasm
@@ -1,9 +1,7 @@
-SKIP: FAILED
-
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 30
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -33,36 +31,31 @@
           %8 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
+      %int_0 = OpConstant %int 0
       %int_1 = OpConstant %int 1
-         %17 = OpConstantComposite %v3int %int_1
+         %18 = OpConstantComposite %v3int %int_0 %int_0 %int_1
     %v4float = OpTypeVector %float 4
-         %19 = OpConstantNull %v4float
+         %20 = OpConstantNull %v4float
     %float_1 = OpConstant %float 1
 %textureStore_4fc057 = OpFunction %void None %8
          %11 = OpLabel
          %13 = OpLoad %7 %arg_0
-               OpImageWrite %13 %17 %19
+               OpImageWrite %13 %18 %20
                OpReturn
                OpFunctionEnd
 %vertex_main = OpFunction %void None %8
-         %21 = OpLabel
+         %22 = OpLabel
                OpStore %tint_pointsize %float_1
-         %23 = OpFunctionCall %void %textureStore_4fc057
+         %24 = OpFunctionCall %void %textureStore_4fc057
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %25 = OpLabel
-         %26 = OpFunctionCall %void %textureStore_4fc057
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_4fc057
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %8
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureStore_4fc057
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %textureStore_4fc057
                OpReturn
                OpFunctionEnd
-
-
-Validation Failure:
-1:1: OpConstantComposite Constituent <id> count does not match Result Type <id> '14[%v3int]'s vector component count.
-  %17 = OpConstantComposite %v3int %int_1
-
diff --git a/test/intrinsics/gen/textureStore/60975f.wgsl.expected.hlsl b/test/intrinsics/gen/textureStore/60975f.wgsl.expected.hlsl
index a3b60bb..e26e62a 100644
--- a/test/intrinsics/gen/textureStore/60975f.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureStore/60975f.wgsl.expected.hlsl
@@ -1,12 +1,7 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_60975f() {
-  arg_0[int3(1)] = float4(0.0f, 0.0f, 0.0f, 0.0f);
+  arg_0[int3(0, 0, 1)] = float4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
 void vertex_main() {
@@ -25,18 +20,3 @@
   return;
 }
 
-
-tint_vi6mOd:4:14: error: too few elements in vector initialization (expected 3 elements, have 1)
-  arg_0[int3(1)] = float4(0.0f, 0.0f, 0.0f, 0.0f);
-             ^
-
-
-tint_vi6mOd:4:14: error: too few elements in vector initialization (expected 3 elements, have 1)
-  arg_0[int3(1)] = float4(0.0f, 0.0f, 0.0f, 0.0f);
-             ^
-
-
-tint_vi6mOd:4:14: error: too few elements in vector initialization (expected 3 elements, have 1)
-  arg_0[int3(1)] = float4(0.0f, 0.0f, 0.0f, 0.0f);
-             ^
-
diff --git a/test/intrinsics/gen/textureStore/60975f.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/60975f.wgsl.expected.spvasm
index 3a5c361..2336b53 100644
--- a/test/intrinsics/gen/textureStore/60975f.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/60975f.wgsl.expected.spvasm
@@ -1,9 +1,7 @@
-SKIP: FAILED
-
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 30
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -33,36 +31,31 @@
           %8 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
+      %int_0 = OpConstant %int 0
       %int_1 = OpConstant %int 1
-         %17 = OpConstantComposite %v3int %int_1
+         %18 = OpConstantComposite %v3int %int_0 %int_0 %int_1
     %v4float = OpTypeVector %float 4
-         %19 = OpConstantNull %v4float
+         %20 = OpConstantNull %v4float
     %float_1 = OpConstant %float 1
 %textureStore_60975f = OpFunction %void None %8
          %11 = OpLabel
          %13 = OpLoad %7 %arg_0
-               OpImageWrite %13 %17 %19
+               OpImageWrite %13 %18 %20
                OpReturn
                OpFunctionEnd
 %vertex_main = OpFunction %void None %8
-         %21 = OpLabel
+         %22 = OpLabel
                OpStore %tint_pointsize %float_1
-         %23 = OpFunctionCall %void %textureStore_60975f
+         %24 = OpFunctionCall %void %textureStore_60975f
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %25 = OpLabel
-         %26 = OpFunctionCall %void %textureStore_60975f
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_60975f
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %8
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureStore_60975f
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %textureStore_60975f
                OpReturn
                OpFunctionEnd
-
-
-Validation Failure:
-1:1: OpConstantComposite Constituent <id> count does not match Result Type <id> '14[%v3int]'s vector component count.
-  %17 = OpConstantComposite %v3int %int_1
-
diff --git a/test/intrinsics/gen/textureStore/6da692.wgsl.expected.hlsl b/test/intrinsics/gen/textureStore/6da692.wgsl.expected.hlsl
index ddf5d6f..716225b 100644
--- a/test/intrinsics/gen/textureStore/6da692.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureStore/6da692.wgsl.expected.hlsl
@@ -1,12 +1,7 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 void textureStore_6da692() {
-  arg_0[int3(1)] = uint4(0u, 0u, 0u, 0u);
+  arg_0[int3(0, 0, 1)] = uint4(0u, 0u, 0u, 0u);
 }
 
 void vertex_main() {
@@ -25,18 +20,3 @@
   return;
 }
 
-
-tint_aYSvaH:4:14: error: too few elements in vector initialization (expected 3 elements, have 1)
-  arg_0[int3(1)] = uint4(0u, 0u, 0u, 0u);
-             ^
-
-
-tint_aYSvaH:4:14: error: too few elements in vector initialization (expected 3 elements, have 1)
-  arg_0[int3(1)] = uint4(0u, 0u, 0u, 0u);
-             ^
-
-
-tint_aYSvaH:4:14: error: too few elements in vector initialization (expected 3 elements, have 1)
-  arg_0[int3(1)] = uint4(0u, 0u, 0u, 0u);
-             ^
-
diff --git a/test/intrinsics/gen/textureStore/6da692.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/6da692.wgsl.expected.spvasm
index 2c7fc02..6f6bf71 100644
--- a/test/intrinsics/gen/textureStore/6da692.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/6da692.wgsl.expected.spvasm
@@ -1,9 +1,7 @@
-SKIP: FAILED
-
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 31
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -34,36 +32,31 @@
           %9 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
+      %int_0 = OpConstant %int 0
       %int_1 = OpConstant %int 1
-         %18 = OpConstantComposite %v3int %int_1
+         %19 = OpConstantComposite %v3int %int_0 %int_0 %int_1
      %v4uint = OpTypeVector %uint 4
-         %20 = OpConstantNull %v4uint
+         %21 = OpConstantNull %v4uint
     %float_1 = OpConstant %float 1
 %textureStore_6da692 = OpFunction %void None %9
          %12 = OpLabel
          %14 = OpLoad %7 %arg_0
-               OpImageWrite %14 %18 %20
+               OpImageWrite %14 %19 %21
                OpReturn
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
-         %22 = OpLabel
+         %23 = OpLabel
                OpStore %tint_pointsize %float_1
-         %24 = OpFunctionCall %void %textureStore_6da692
+         %25 = OpFunctionCall %void %textureStore_6da692
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_6da692
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_6da692
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureStore_6da692
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_6da692
                OpReturn
                OpFunctionEnd
-
-
-Validation Failure:
-1:1: OpConstantComposite Constituent <id> count does not match Result Type <id> '15[%v3int]'s vector component count.
-  %18 = OpConstantComposite %v3int %int_1
-
diff --git a/test/intrinsics/gen/textureStore/7cec8d.wgsl.expected.hlsl b/test/intrinsics/gen/textureStore/7cec8d.wgsl.expected.hlsl
index 5fb0ec2..2068667 100644
--- a/test/intrinsics/gen/textureStore/7cec8d.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureStore/7cec8d.wgsl.expected.hlsl
@@ -1,12 +1,7 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 void textureStore_7cec8d() {
-  arg_0[int3(1)] = int4(0, 0, 0, 0);
+  arg_0[int3(0, 0, 1)] = int4(0, 0, 0, 0);
 }
 
 void vertex_main() {
@@ -25,18 +20,3 @@
   return;
 }
 
-
-tint_9ZEmy6:4:14: error: too few elements in vector initialization (expected 3 elements, have 1)
-  arg_0[int3(1)] = int4(0, 0, 0, 0);
-             ^
-
-
-tint_9ZEmy6:4:14: error: too few elements in vector initialization (expected 3 elements, have 1)
-  arg_0[int3(1)] = int4(0, 0, 0, 0);
-             ^
-
-
-tint_9ZEmy6:4:14: error: too few elements in vector initialization (expected 3 elements, have 1)
-  arg_0[int3(1)] = int4(0, 0, 0, 0);
-             ^
-
diff --git a/test/intrinsics/gen/textureStore/7cec8d.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/7cec8d.wgsl.expected.spvasm
index 9abd3e4..359d905 100644
--- a/test/intrinsics/gen/textureStore/7cec8d.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/7cec8d.wgsl.expected.spvasm
@@ -1,9 +1,7 @@
-SKIP: FAILED
-
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 30
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -33,36 +31,31 @@
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
       %v3int = OpTypeVector %int 3
+      %int_0 = OpConstant %int 0
       %int_1 = OpConstant %int 1
-         %17 = OpConstantComposite %v3int %int_1
+         %18 = OpConstantComposite %v3int %int_0 %int_0 %int_1
       %v4int = OpTypeVector %int 4
-         %19 = OpConstantNull %v4int
+         %20 = OpConstantNull %v4int
     %float_1 = OpConstant %float 1
 %textureStore_7cec8d = OpFunction %void None %9
          %12 = OpLabel
          %14 = OpLoad %7 %arg_0
-               OpImageWrite %14 %17 %19
+               OpImageWrite %14 %18 %20
                OpReturn
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
-         %21 = OpLabel
+         %22 = OpLabel
                OpStore %tint_pointsize %float_1
-         %23 = OpFunctionCall %void %textureStore_7cec8d
+         %24 = OpFunctionCall %void %textureStore_7cec8d
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %25 = OpLabel
-         %26 = OpFunctionCall %void %textureStore_7cec8d
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_7cec8d
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureStore_7cec8d
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %textureStore_7cec8d
                OpReturn
                OpFunctionEnd
-
-
-Validation Failure:
-1:1: OpConstantComposite Constituent <id> count does not match Result Type <id> '15[%v3int]'s vector component count.
-  %17 = OpConstantComposite %v3int %int_1
-
diff --git a/test/intrinsics/gen/textureStore/8e0479.wgsl.expected.hlsl b/test/intrinsics/gen/textureStore/8e0479.wgsl.expected.hlsl
index 6abe930..b9dc391 100644
--- a/test/intrinsics/gen/textureStore/8e0479.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureStore/8e0479.wgsl.expected.hlsl
@@ -1,12 +1,7 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 void textureStore_8e0479() {
-  arg_0[int3(1)] = uint4(0u, 0u, 0u, 0u);
+  arg_0[int3(0, 0, 1)] = uint4(0u, 0u, 0u, 0u);
 }
 
 void vertex_main() {
@@ -25,18 +20,3 @@
   return;
 }
 
-
-tint_hVYKYf:4:14: error: too few elements in vector initialization (expected 3 elements, have 1)
-  arg_0[int3(1)] = uint4(0u, 0u, 0u, 0u);
-             ^
-
-
-tint_hVYKYf:4:14: error: too few elements in vector initialization (expected 3 elements, have 1)
-  arg_0[int3(1)] = uint4(0u, 0u, 0u, 0u);
-             ^
-
-
-tint_hVYKYf:4:14: error: too few elements in vector initialization (expected 3 elements, have 1)
-  arg_0[int3(1)] = uint4(0u, 0u, 0u, 0u);
-             ^
-
diff --git a/test/intrinsics/gen/textureStore/8e0479.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/8e0479.wgsl.expected.spvasm
index 8703aad..b8b2544 100644
--- a/test/intrinsics/gen/textureStore/8e0479.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/8e0479.wgsl.expected.spvasm
@@ -1,9 +1,7 @@
-SKIP: FAILED
-
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 31
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -34,36 +32,31 @@
           %9 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
+      %int_0 = OpConstant %int 0
       %int_1 = OpConstant %int 1
-         %18 = OpConstantComposite %v3int %int_1
+         %19 = OpConstantComposite %v3int %int_0 %int_0 %int_1
      %v4uint = OpTypeVector %uint 4
-         %20 = OpConstantNull %v4uint
+         %21 = OpConstantNull %v4uint
     %float_1 = OpConstant %float 1
 %textureStore_8e0479 = OpFunction %void None %9
          %12 = OpLabel
          %14 = OpLoad %7 %arg_0
-               OpImageWrite %14 %18 %20
+               OpImageWrite %14 %19 %21
                OpReturn
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
-         %22 = OpLabel
+         %23 = OpLabel
                OpStore %tint_pointsize %float_1
-         %24 = OpFunctionCall %void %textureStore_8e0479
+         %25 = OpFunctionCall %void %textureStore_8e0479
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_8e0479
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_8e0479
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureStore_8e0479
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_8e0479
                OpReturn
                OpFunctionEnd
-
-
-Validation Failure:
-1:1: OpConstantComposite Constituent <id> count does not match Result Type <id> '15[%v3int]'s vector component count.
-  %18 = OpConstantComposite %v3int %int_1
-
diff --git a/test/intrinsics/gen/textureStore/9d9cd5.wgsl.expected.hlsl b/test/intrinsics/gen/textureStore/9d9cd5.wgsl.expected.hlsl
index 425d016..8c4350d 100644
--- a/test/intrinsics/gen/textureStore/9d9cd5.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureStore/9d9cd5.wgsl.expected.hlsl
@@ -1,12 +1,7 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_9d9cd5() {
-  arg_0[int3(1)] = float4(0.0f, 0.0f, 0.0f, 0.0f);
+  arg_0[int3(0, 0, 1)] = float4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
 void vertex_main() {
@@ -25,18 +20,3 @@
   return;
 }
 
-
-tint_Ff8P0L:4:14: error: too few elements in vector initialization (expected 3 elements, have 1)
-  arg_0[int3(1)] = float4(0.0f, 0.0f, 0.0f, 0.0f);
-             ^
-
-
-tint_Ff8P0L:4:14: error: too few elements in vector initialization (expected 3 elements, have 1)
-  arg_0[int3(1)] = float4(0.0f, 0.0f, 0.0f, 0.0f);
-             ^
-
-
-tint_Ff8P0L:4:14: error: too few elements in vector initialization (expected 3 elements, have 1)
-  arg_0[int3(1)] = float4(0.0f, 0.0f, 0.0f, 0.0f);
-             ^
-
diff --git a/test/intrinsics/gen/textureStore/9d9cd5.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/9d9cd5.wgsl.expected.spvasm
index 43f07cb..a719ffe 100644
--- a/test/intrinsics/gen/textureStore/9d9cd5.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/9d9cd5.wgsl.expected.spvasm
@@ -1,9 +1,7 @@
-SKIP: FAILED
-
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 30
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -33,36 +31,31 @@
           %8 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
+      %int_0 = OpConstant %int 0
       %int_1 = OpConstant %int 1
-         %17 = OpConstantComposite %v3int %int_1
+         %18 = OpConstantComposite %v3int %int_0 %int_0 %int_1
     %v4float = OpTypeVector %float 4
-         %19 = OpConstantNull %v4float
+         %20 = OpConstantNull %v4float
     %float_1 = OpConstant %float 1
 %textureStore_9d9cd5 = OpFunction %void None %8
          %11 = OpLabel
          %13 = OpLoad %7 %arg_0
-               OpImageWrite %13 %17 %19
+               OpImageWrite %13 %18 %20
                OpReturn
                OpFunctionEnd
 %vertex_main = OpFunction %void None %8
-         %21 = OpLabel
+         %22 = OpLabel
                OpStore %tint_pointsize %float_1
-         %23 = OpFunctionCall %void %textureStore_9d9cd5
+         %24 = OpFunctionCall %void %textureStore_9d9cd5
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %25 = OpLabel
-         %26 = OpFunctionCall %void %textureStore_9d9cd5
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_9d9cd5
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %8
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureStore_9d9cd5
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %textureStore_9d9cd5
                OpReturn
                OpFunctionEnd
-
-
-Validation Failure:
-1:1: OpConstantComposite Constituent <id> count does not match Result Type <id> '14[%v3int]'s vector component count.
-  %17 = OpConstantComposite %v3int %int_1
-
diff --git a/test/intrinsics/gen/textureStore/c863be.wgsl.expected.hlsl b/test/intrinsics/gen/textureStore/c863be.wgsl.expected.hlsl
index 172a759..1301b87 100644
--- a/test/intrinsics/gen/textureStore/c863be.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureStore/c863be.wgsl.expected.hlsl
@@ -1,12 +1,7 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_c863be() {
-  arg_0[int3(1)] = float4(0.0f, 0.0f, 0.0f, 0.0f);
+  arg_0[int3(0, 0, 1)] = float4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
 void vertex_main() {
@@ -25,18 +20,3 @@
   return;
 }
 
-
-tint_pF4PtE:4:14: error: too few elements in vector initialization (expected 3 elements, have 1)
-  arg_0[int3(1)] = float4(0.0f, 0.0f, 0.0f, 0.0f);
-             ^
-
-
-tint_pF4PtE:4:14: error: too few elements in vector initialization (expected 3 elements, have 1)
-  arg_0[int3(1)] = float4(0.0f, 0.0f, 0.0f, 0.0f);
-             ^
-
-
-tint_pF4PtE:4:14: error: too few elements in vector initialization (expected 3 elements, have 1)
-  arg_0[int3(1)] = float4(0.0f, 0.0f, 0.0f, 0.0f);
-             ^
-
diff --git a/test/intrinsics/gen/textureStore/c863be.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/c863be.wgsl.expected.spvasm
index 765d58a..2efc16e 100644
--- a/test/intrinsics/gen/textureStore/c863be.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/c863be.wgsl.expected.spvasm
@@ -1,9 +1,7 @@
-SKIP: FAILED
-
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 30
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
@@ -34,36 +32,31 @@
           %8 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
+      %int_0 = OpConstant %int 0
       %int_1 = OpConstant %int 1
-         %17 = OpConstantComposite %v3int %int_1
+         %18 = OpConstantComposite %v3int %int_0 %int_0 %int_1
     %v4float = OpTypeVector %float 4
-         %19 = OpConstantNull %v4float
+         %20 = OpConstantNull %v4float
     %float_1 = OpConstant %float 1
 %textureStore_c863be = OpFunction %void None %8
          %11 = OpLabel
          %13 = OpLoad %7 %arg_0
-               OpImageWrite %13 %17 %19
+               OpImageWrite %13 %18 %20
                OpReturn
                OpFunctionEnd
 %vertex_main = OpFunction %void None %8
-         %21 = OpLabel
+         %22 = OpLabel
                OpStore %tint_pointsize %float_1
-         %23 = OpFunctionCall %void %textureStore_c863be
+         %24 = OpFunctionCall %void %textureStore_c863be
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %25 = OpLabel
-         %26 = OpFunctionCall %void %textureStore_c863be
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_c863be
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %8
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureStore_c863be
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %textureStore_c863be
                OpReturn
                OpFunctionEnd
-
-
-Validation Failure:
-1:1: OpConstantComposite Constituent <id> count does not match Result Type <id> '14[%v3int]'s vector component count.
-  %17 = OpConstantComposite %v3int %int_1
-
diff --git a/test/intrinsics/gen/textureStore/dde364.wgsl.expected.hlsl b/test/intrinsics/gen/textureStore/dde364.wgsl.expected.hlsl
index 37c71f3..cd99618 100644
--- a/test/intrinsics/gen/textureStore/dde364.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureStore/dde364.wgsl.expected.hlsl
@@ -1,12 +1,7 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 void textureStore_dde364() {
-  arg_0[int3(1)] = uint4(0u, 0u, 0u, 0u);
+  arg_0[int3(0, 0, 1)] = uint4(0u, 0u, 0u, 0u);
 }
 
 void vertex_main() {
@@ -25,18 +20,3 @@
   return;
 }
 
-
-tint_0wYTiw:4:14: error: too few elements in vector initialization (expected 3 elements, have 1)
-  arg_0[int3(1)] = uint4(0u, 0u, 0u, 0u);
-             ^
-
-
-tint_0wYTiw:4:14: error: too few elements in vector initialization (expected 3 elements, have 1)
-  arg_0[int3(1)] = uint4(0u, 0u, 0u, 0u);
-             ^
-
-
-tint_0wYTiw:4:14: error: too few elements in vector initialization (expected 3 elements, have 1)
-  arg_0[int3(1)] = uint4(0u, 0u, 0u, 0u);
-             ^
-
diff --git a/test/intrinsics/gen/textureStore/dde364.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/dde364.wgsl.expected.spvasm
index 6e0667f..847c8f1 100644
--- a/test/intrinsics/gen/textureStore/dde364.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/dde364.wgsl.expected.spvasm
@@ -1,9 +1,7 @@
-SKIP: FAILED
-
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 31
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
@@ -35,36 +33,31 @@
           %9 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
+      %int_0 = OpConstant %int 0
       %int_1 = OpConstant %int 1
-         %18 = OpConstantComposite %v3int %int_1
+         %19 = OpConstantComposite %v3int %int_0 %int_0 %int_1
      %v4uint = OpTypeVector %uint 4
-         %20 = OpConstantNull %v4uint
+         %21 = OpConstantNull %v4uint
     %float_1 = OpConstant %float 1
 %textureStore_dde364 = OpFunction %void None %9
          %12 = OpLabel
          %14 = OpLoad %7 %arg_0
-               OpImageWrite %14 %18 %20
+               OpImageWrite %14 %19 %21
                OpReturn
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
-         %22 = OpLabel
+         %23 = OpLabel
                OpStore %tint_pointsize %float_1
-         %24 = OpFunctionCall %void %textureStore_dde364
+         %25 = OpFunctionCall %void %textureStore_dde364
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_dde364
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %textureStore_dde364
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureStore_dde364
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_dde364
                OpReturn
                OpFunctionEnd
-
-
-Validation Failure:
-1:1: OpConstantComposite Constituent <id> count does not match Result Type <id> '15[%v3int]'s vector component count.
-  %18 = OpConstantComposite %v3int %int_1
-
diff --git a/test/intrinsics/gen/textureStore/f9be83.wgsl.expected.hlsl b/test/intrinsics/gen/textureStore/f9be83.wgsl.expected.hlsl
index 5314d71..f4b305b 100644
--- a/test/intrinsics/gen/textureStore/f9be83.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureStore/f9be83.wgsl.expected.hlsl
@@ -1,12 +1,7 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 void textureStore_f9be83() {
-  arg_0[int3(1)] = int4(0, 0, 0, 0);
+  arg_0[int3(0, 0, 1)] = int4(0, 0, 0, 0);
 }
 
 void vertex_main() {
@@ -25,18 +20,3 @@
   return;
 }
 
-
-tint_sMS6hH:4:14: error: too few elements in vector initialization (expected 3 elements, have 1)
-  arg_0[int3(1)] = int4(0, 0, 0, 0);
-             ^
-
-
-tint_sMS6hH:4:14: error: too few elements in vector initialization (expected 3 elements, have 1)
-  arg_0[int3(1)] = int4(0, 0, 0, 0);
-             ^
-
-
-tint_sMS6hH:4:14: error: too few elements in vector initialization (expected 3 elements, have 1)
-  arg_0[int3(1)] = int4(0, 0, 0, 0);
-             ^
-
diff --git a/test/intrinsics/gen/textureStore/f9be83.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/f9be83.wgsl.expected.spvasm
index 9d3e7de..08795cd 100644
--- a/test/intrinsics/gen/textureStore/f9be83.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/f9be83.wgsl.expected.spvasm
@@ -1,9 +1,7 @@
-SKIP: FAILED
-
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 30
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
@@ -34,36 +32,31 @@
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
       %v3int = OpTypeVector %int 3
+      %int_0 = OpConstant %int 0
       %int_1 = OpConstant %int 1
-         %17 = OpConstantComposite %v3int %int_1
+         %18 = OpConstantComposite %v3int %int_0 %int_0 %int_1
       %v4int = OpTypeVector %int 4
-         %19 = OpConstantNull %v4int
+         %20 = OpConstantNull %v4int
     %float_1 = OpConstant %float 1
 %textureStore_f9be83 = OpFunction %void None %9
          %12 = OpLabel
          %14 = OpLoad %7 %arg_0
-               OpImageWrite %14 %17 %19
+               OpImageWrite %14 %18 %20
                OpReturn
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
-         %21 = OpLabel
+         %22 = OpLabel
                OpStore %tint_pointsize %float_1
-         %23 = OpFunctionCall %void %textureStore_f9be83
+         %24 = OpFunctionCall %void %textureStore_f9be83
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %25 = OpLabel
-         %26 = OpFunctionCall %void %textureStore_f9be83
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_f9be83
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureStore_f9be83
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %textureStore_f9be83
                OpReturn
                OpFunctionEnd
-
-
-Validation Failure:
-1:1: OpConstantComposite Constituent <id> count does not match Result Type <id> '15[%v3int]'s vector component count.
-  %17 = OpConstantComposite %v3int %int_1
-
diff --git a/test/intrinsics/gen/textureStore/fbf53f.wgsl.expected.hlsl b/test/intrinsics/gen/textureStore/fbf53f.wgsl.expected.hlsl
index 295677c..174ca73 100644
--- a/test/intrinsics/gen/textureStore/fbf53f.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureStore/fbf53f.wgsl.expected.hlsl
@@ -1,12 +1,7 @@
-SKIP: FAILED
-
-
-
-Validation Failure:
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 void textureStore_fbf53f() {
-  arg_0[int3(1)] = int4(0, 0, 0, 0);
+  arg_0[int3(0, 0, 1)] = int4(0, 0, 0, 0);
 }
 
 void vertex_main() {
@@ -25,18 +20,3 @@
   return;
 }
 
-
-tint_gLldW2:4:14: error: too few elements in vector initialization (expected 3 elements, have 1)
-  arg_0[int3(1)] = int4(0, 0, 0, 0);
-             ^
-
-
-tint_gLldW2:4:14: error: too few elements in vector initialization (expected 3 elements, have 1)
-  arg_0[int3(1)] = int4(0, 0, 0, 0);
-             ^
-
-
-tint_gLldW2:4:14: error: too few elements in vector initialization (expected 3 elements, have 1)
-  arg_0[int3(1)] = int4(0, 0, 0, 0);
-             ^
-
diff --git a/test/intrinsics/gen/textureStore/fbf53f.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/fbf53f.wgsl.expected.spvasm
index eb4f353..7f56ec3 100644
--- a/test/intrinsics/gen/textureStore/fbf53f.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/fbf53f.wgsl.expected.spvasm
@@ -1,9 +1,7 @@
-SKIP: FAILED
-
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 30
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -33,36 +31,31 @@
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
       %v3int = OpTypeVector %int 3
+      %int_0 = OpConstant %int 0
       %int_1 = OpConstant %int 1
-         %17 = OpConstantComposite %v3int %int_1
+         %18 = OpConstantComposite %v3int %int_0 %int_0 %int_1
       %v4int = OpTypeVector %int 4
-         %19 = OpConstantNull %v4int
+         %20 = OpConstantNull %v4int
     %float_1 = OpConstant %float 1
 %textureStore_fbf53f = OpFunction %void None %9
          %12 = OpLabel
          %14 = OpLoad %7 %arg_0
-               OpImageWrite %14 %17 %19
+               OpImageWrite %14 %18 %20
                OpReturn
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
-         %21 = OpLabel
+         %22 = OpLabel
                OpStore %tint_pointsize %float_1
-         %23 = OpFunctionCall %void %textureStore_fbf53f
+         %24 = OpFunctionCall %void %textureStore_fbf53f
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %25 = OpLabel
-         %26 = OpFunctionCall %void %textureStore_fbf53f
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_fbf53f
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureStore_fbf53f
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %textureStore_fbf53f
                OpReturn
                OpFunctionEnd
-
-
-Validation Failure:
-1:1: OpConstantComposite Constituent <id> count does not match Result Type <id> '15[%v3int]'s vector component count.
-  %17 = OpConstantComposite %v3int %int_1
-