tint/writer/glsl: Inline constant expressions

This is required to handle materialized values, and for constant
expressions.

Bug: tint:1504
Change-Id: Ie0177f148e08a0e1a3f4d7e06e283f121655804b
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/92080
Commit-Queue: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Antonio Maiorano <amaiorano@google.com>
diff --git a/src/tint/writer/glsl/generator_impl.cc b/src/tint/writer/glsl/generator_impl.cc
index 8a48156..eb44f14 100644
--- a/src/tint/writer/glsl/generator_impl.cc
+++ b/src/tint/writer/glsl/generator_impl.cc
@@ -32,10 +32,10 @@
 #include "src/tint/sem/atomic.h"
 #include "src/tint/sem/block_statement.h"
 #include "src/tint/sem/call.h"
+#include "src/tint/sem/constant.h"
 #include "src/tint/sem/depth_multisampled_texture.h"
 #include "src/tint/sem/depth_texture.h"
 #include "src/tint/sem/function.h"
-#include "src/tint/sem/materialize.h"
 #include "src/tint/sem/member_accessor_expression.h"
 #include "src/tint/sem/module.h"
 #include "src/tint/sem/multisampled_texture.h"
@@ -147,6 +147,18 @@
     return "unknown";
 }
 
+void PrintF32(std::ostream& out, float value) {
+    // Note: Currently inf and nan should not be constructable, but this is implemented for the day
+    // we support them.
+    if (std::isinf(value)) {
+        out << (value >= 0 ? "uintBitsToFloat(0x7f800000u)" : "uintBitsToFloat(0xff800000u)");
+    } else if (std::isnan(value)) {
+        out << "uintBitsToFloat(0x7fc00000u)";
+    } else {
+        out << FloatToString(value) << "f";
+    }
+}
+
 }  // namespace
 
 SanitizedResult::SanitizedResult() = default;
@@ -691,12 +703,7 @@
 }
 
 bool GeneratorImpl::EmitCall(std::ostream& out, const ast::CallExpression* expr) {
-    auto* sem = builder_.Sem().Get(expr);
-    if (auto* m = sem->As<sem::Materialize>()) {
-        // TODO(crbug.com/tint/1504): Just emit the constant value.
-        sem = m->Expr();
-    }
-    auto* call = sem->As<sem::Call>();
+    auto* call = builder_.Sem().Get<sem::Call>(expr);
     auto* target = call->Target();
 
     if (target->Is<sem::Function>()) {
@@ -1762,34 +1769,42 @@
 }
 
 bool GeneratorImpl::EmitExpression(std::ostream& out, const ast::Expression* expr) {
-    if (auto* a = expr->As<ast::IndexAccessorExpression>()) {
-        return EmitIndexAccessor(out, a);
+    if (auto* sem = builder_.Sem().Get(expr)) {
+        if (auto constant = sem->ConstantValue()) {
+            return EmitConstant(out, constant);
+        }
     }
-    if (auto* b = expr->As<ast::BinaryExpression>()) {
-        return EmitBinary(out, b);
-    }
-    if (auto* b = expr->As<ast::BitcastExpression>()) {
-        return EmitBitcast(out, b);
-    }
-    if (auto* c = expr->As<ast::CallExpression>()) {
-        return EmitCall(out, c);
-    }
-    if (auto* i = expr->As<ast::IdentifierExpression>()) {
-        return EmitIdentifier(out, i);
-    }
-    if (auto* l = expr->As<ast::LiteralExpression>()) {
-        return EmitLiteral(out, l);
-    }
-    if (auto* m = expr->As<ast::MemberAccessorExpression>()) {
-        return EmitMemberAccessor(out, m);
-    }
-    if (auto* u = expr->As<ast::UnaryOpExpression>()) {
-        return EmitUnaryOp(out, u);
-    }
-
-    diagnostics_.add_error(diag::System::Writer,
-                           "unknown expression type: " + std::string(expr->TypeInfo().name));
-    return false;
+    return Switch(
+        expr,
+        [&](const ast::IndexAccessorExpression* a) {  //
+            return EmitIndexAccessor(out, a);
+        },
+        [&](const ast::BinaryExpression* b) {  //
+            return EmitBinary(out, b);
+        },
+        [&](const ast::BitcastExpression* b) {  //
+            return EmitBitcast(out, b);
+        },
+        [&](const ast::CallExpression* c) {  //
+            return EmitCall(out, c);
+        },
+        [&](const ast::IdentifierExpression* i) {  //
+            return EmitIdentifier(out, i);
+        },
+        [&](const ast::LiteralExpression* l) {  //
+            return EmitLiteral(out, l);
+        },
+        [&](const ast::MemberAccessorExpression* m) {  //
+            return EmitMemberAccessor(out, m);
+        },
+        [&](const ast::UnaryOpExpression* u) {  //
+            return EmitUnaryOp(out, u);
+        },
+        [&](Default) {  //
+            diagnostics_.add_error(diag::System::Writer, "unknown expression type: " +
+                                                             std::string(expr->TypeInfo().name));
+            return false;
+        });
 }
 
 bool GeneratorImpl::EmitIdentifier(std::ostream& out, const ast::IdentifierExpression* expr) {
@@ -2192,6 +2207,94 @@
     return true;
 }
 
+bool GeneratorImpl::EmitConstant(std::ostream& out, const sem::Constant& constant) {
+    auto emit_bool = [&](size_t element_idx) {
+        out << (constant.Element<AInt>(element_idx) ? "true" : "false");
+        return true;
+    };
+    auto emit_f32 = [&](size_t element_idx) {
+        PrintF32(out, static_cast<float>(constant.Element<AFloat>(element_idx)));
+        return true;
+    };
+    auto emit_i32 = [&](size_t element_idx) {
+        out << constant.Element<AInt>(element_idx).value;
+        return true;
+    };
+    auto emit_u32 = [&](size_t element_idx) {
+        out << constant.Element<AInt>(element_idx).value << "u";
+        return true;
+    };
+    auto emit_vector = [&](const sem::Vector* vec_ty, size_t start, size_t end) {
+        if (!EmitType(out, vec_ty, ast::StorageClass::kNone, ast::Access::kUndefined, "")) {
+            return false;
+        }
+
+        ScopedParen sp(out);
+
+        auto emit_els = [&](auto emit_el) {
+            if (constant.AllEqual(start, end)) {
+                return emit_el(start);
+            }
+            for (size_t i = start; i < end; i++) {
+                if (i > start) {
+                    out << ", ";
+                }
+                if (!emit_el(i)) {
+                    return false;
+                }
+            }
+            return true;
+        };
+
+        return Switch(
+            vec_ty->type(),                                         //
+            [&](const sem::Bool*) { return emit_els(emit_bool); },  //
+            [&](const sem::F32*) { return emit_els(emit_f32); },    //
+            [&](const sem::I32*) { return emit_els(emit_i32); },    //
+            [&](const sem::U32*) { return emit_els(emit_u32); },    //
+            [&](Default) {
+                diagnostics_.add_error(diag::System::Writer,
+                                       "unhandled constant vector element type: " +
+                                           builder_.FriendlyName(vec_ty->type()));
+                return false;
+            });
+    };
+    auto emit_matrix = [&](const sem::Matrix* m) {
+        if (!EmitType(out, constant.Type(), ast::StorageClass::kNone, ast::Access::kUndefined,
+                      "")) {
+            return false;
+        }
+
+        ScopedParen sp(out);
+
+        for (size_t column_idx = 0; column_idx < m->columns(); column_idx++) {
+            if (column_idx > 0) {
+                out << ", ";
+            }
+            size_t start = m->rows() * column_idx;
+            size_t end = m->rows() * (column_idx + 1);
+            if (!emit_vector(m->ColumnType(), start, end)) {
+                return false;
+            }
+        }
+        return true;
+    };
+    return Switch(
+        constant.Type(),                                                                   //
+        [&](const sem::Bool*) { return emit_bool(0); },                                    //
+        [&](const sem::F32*) { return emit_f32(0); },                                      //
+        [&](const sem::I32*) { return emit_i32(0); },                                      //
+        [&](const sem::U32*) { return emit_u32(0); },                                      //
+        [&](const sem::Vector* v) { return emit_vector(v, 0, constant.ElementCount()); },  //
+        [&](const sem::Matrix* m) { return emit_matrix(m); },                              //
+        [&](Default) {
+            diagnostics_.add_error(
+                diag::System::Writer,
+                "unhandled constant type: " + builder_.FriendlyName(constant.Type()));
+            return false;
+        });
+}
+
 bool GeneratorImpl::EmitLiteral(std::ostream& out, const ast::LiteralExpression* lit) {
     return Switch(
         lit,
@@ -2200,15 +2303,7 @@
             return true;
         },
         [&](const ast::FloatLiteralExpression* l) {
-            auto f32 = static_cast<float>(l->value);
-            if (std::isinf(f32)) {
-                out << (l->value >= 0 ? "uintBitsToFloat(0x7f800000u)"
-                                      : "uintBitsToFloat(0xff800000u)");
-            } else if (std::isnan(l->value)) {
-                out << "uintBitsToFloat(0x7fc00000u)";
-            } else {
-                out << FloatToString(f32) << "f";
-            }
+            PrintF32(out, static_cast<float>(l->value));
             return true;
         },
         [&](const ast::IntLiteralExpression* l) {
diff --git a/src/tint/writer/glsl/generator_impl.h b/src/tint/writer/glsl/generator_impl.h
index 1d566ca..bcf84b0 100644
--- a/src/tint/writer/glsl/generator_impl.h
+++ b/src/tint/writer/glsl/generator_impl.h
@@ -42,6 +42,7 @@
 // Forward declarations
 namespace tint::sem {
 class Call;
+class Constant;
 class Builtin;
 class TypeConstructor;
 class TypeConversion;
@@ -338,6 +339,11 @@
     /// @param stmt the statement to emit
     /// @returns true if the statement was successfully emitted
     bool EmitIf(const ast::IfStatement* stmt);
+    /// Handles a constant value
+    /// @param out the output stream
+    /// @param constant the constant value to emit
+    /// @returns true if the constant value was successfully emitted
+    bool EmitConstant(std::ostream& out, const sem::Constant& constant);
     /// Handles a literal
     /// @param out the output stream
     /// @param lit the literal to emit
diff --git a/src/tint/writer/glsl/generator_impl_binary_test.cc b/src/tint/writer/glsl/generator_impl_binary_test.cc
index 07456d9..0d019a9 100644
--- a/src/tint/writer/glsl/generator_impl_binary_test.cc
+++ b/src/tint/writer/glsl/generator_impl_binary_test.cc
@@ -134,9 +134,7 @@
 
     std::stringstream out;
     EXPECT_TRUE(gen.EmitExpression(out, expr)) << gen.error();
-    EXPECT_EQ(out.str(),
-              "(vec3(1.0f, 1.0f, 1.0f) * "
-              "1.0f)");
+    EXPECT_EQ(out.str(), "(vec3(1.0f) * 1.0f)");
 }
 
 TEST_F(GlslGeneratorImplTest_Binary, Multiply_ScalarVector) {
@@ -151,9 +149,7 @@
 
     std::stringstream out;
     EXPECT_TRUE(gen.EmitExpression(out, expr)) << gen.error();
-    EXPECT_EQ(out.str(),
-              "(1.0f * vec3(1.0f, 1.0f, "
-              "1.0f))");
+    EXPECT_EQ(out.str(), "(1.0f * vec3(1.0f))");
 }
 
 TEST_F(GlslGeneratorImplTest_Binary, Multiply_MatrixScalar) {
@@ -198,7 +194,7 @@
 
     std::stringstream out;
     EXPECT_TRUE(gen.EmitExpression(out, expr)) << gen.error();
-    EXPECT_EQ(out.str(), "(mat * vec3(1.0f, 1.0f, 1.0f))");
+    EXPECT_EQ(out.str(), "(mat * vec3(1.0f))");
 }
 
 TEST_F(GlslGeneratorImplTest_Binary, Multiply_VectorMatrix) {
@@ -213,7 +209,7 @@
 
     std::stringstream out;
     EXPECT_TRUE(gen.EmitExpression(out, expr)) << gen.error();
-    EXPECT_EQ(out.str(), "(vec3(1.0f, 1.0f, 1.0f) * mat)");
+    EXPECT_EQ(out.str(), "(vec3(1.0f) * mat)");
 }
 
 TEST_F(GlslGeneratorImplTest_Binary, Multiply_MatrixMatrix) {
diff --git a/src/tint/writer/glsl/generator_impl_builtin_test.cc b/src/tint/writer/glsl/generator_impl_builtin_test.cc
index 7942ed5..6f2c555 100644
--- a/src/tint/writer/glsl/generator_impl_builtin_test.cc
+++ b/src/tint/writer/glsl/generator_impl_builtin_test.cc
@@ -334,7 +334,7 @@
 
 
 void test_function() {
-  tint_modf(vec3(0.0f, 0.0f, 0.0f));
+  tint_modf(vec3(0.0f));
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -394,7 +394,7 @@
 
 
 void test_function() {
-  tint_frexp(vec3(0.0f, 0.0f, 0.0f));
+  tint_frexp(vec3(0.0f));
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/src/tint/writer/glsl/generator_impl_builtin_texture_test.cc b/src/tint/writer/glsl/generator_impl_builtin_texture_test.cc
index cb111ee..42db16b 100644
--- a/src/tint/writer/glsl/generator_impl_builtin_texture_test.cc
+++ b/src/tint/writer/glsl/generator_impl_builtin_texture_test.cc
@@ -193,7 +193,7 @@
         case ValidTextureOverload::kSampleGrad2dF32:
             return R"(textureGrad(tint_symbol_sampler, vec2(1.0f, 2.0f), vec2(3.0f, 4.0f), vec2(5.0f, 6.0f));)";
         case ValidTextureOverload::kSampleGrad2dOffsetF32:
-            return R"(textureGradOffset(tint_symbol_sampler, vec2(1.0f, 2.0f), vec2(3.0f, 4.0f), vec2(5.0f, 6.0f), ivec2(7, 7));)";
+            return R"(textureGradOffset(tint_symbol_sampler, vec2(1.0f, 2.0f), vec2(3.0f, 4.0f), vec2(5.0f, 6.0f), ivec2(7));)";
         case ValidTextureOverload::kSampleGrad2dArrayF32:
             return R"(textureGrad(tint_symbol_sampler, vec3(1.0f, 2.0f, float(3)), vec2(4.0f, 5.0f), vec2(6.0f, 7.0f));)";
         case ValidTextureOverload::kSampleGrad2dArrayOffsetF32:
diff --git a/src/tint/writer/glsl/generator_impl_cast_test.cc b/src/tint/writer/glsl/generator_impl_cast_test.cc
index 3666782..c4f9c05 100644
--- a/src/tint/writer/glsl/generator_impl_cast_test.cc
+++ b/src/tint/writer/glsl/generator_impl_cast_test.cc
@@ -29,7 +29,7 @@
 
     std::stringstream out;
     ASSERT_TRUE(gen.EmitExpression(out, cast)) << gen.error();
-    EXPECT_EQ(out.str(), "float(1)");
+    EXPECT_EQ(out.str(), "1.0f");
 }
 
 TEST_F(GlslGeneratorImplTest_Cast, EmitExpression_Cast_Vector) {
@@ -40,7 +40,7 @@
 
     std::stringstream out;
     ASSERT_TRUE(gen.EmitExpression(out, cast)) << gen.error();
-    EXPECT_EQ(out.str(), "vec3(ivec3(1, 2, 3))");
+    EXPECT_EQ(out.str(), "vec3(1.0f, 2.0f, 3.0f)");
 }
 
 }  // namespace
diff --git a/src/tint/writer/glsl/generator_impl_constructor_test.cc b/src/tint/writer/glsl/generator_impl_constructor_test.cc
index 4fa3c0a..e70ecaf 100644
--- a/src/tint/writer/glsl/generator_impl_constructor_test.cc
+++ b/src/tint/writer/glsl/generator_impl_constructor_test.cc
@@ -67,7 +67,7 @@
     GeneratorImpl& gen = Build();
 
     ASSERT_TRUE(gen.Generate()) << gen.error();
-    EXPECT_THAT(gen.result(), HasSubstr("float(-0.000012f)"));
+    EXPECT_THAT(gen.result(), HasSubstr("-0.000012f"));
 }
 
 TEST_F(GlslGeneratorImplTest_Constructor, EmitConstructor_Type_Bool) {
@@ -76,7 +76,7 @@
     GeneratorImpl& gen = Build();
 
     ASSERT_TRUE(gen.Generate()) << gen.error();
-    EXPECT_THAT(gen.result(), HasSubstr("bool(true)"));
+    EXPECT_THAT(gen.result(), HasSubstr("true"));
 }
 
 TEST_F(GlslGeneratorImplTest_Constructor, EmitConstructor_Type_Int) {
@@ -85,7 +85,7 @@
     GeneratorImpl& gen = Build();
 
     ASSERT_TRUE(gen.Generate()) << gen.error();
-    EXPECT_THAT(gen.result(), HasSubstr("int(-12345)"));
+    EXPECT_THAT(gen.result(), HasSubstr("-12345"));
 }
 
 TEST_F(GlslGeneratorImplTest_Constructor, EmitConstructor_Type_Uint) {
@@ -94,7 +94,7 @@
     GeneratorImpl& gen = Build();
 
     ASSERT_TRUE(gen.Generate()) << gen.error();
-    EXPECT_THAT(gen.result(), HasSubstr("uint(12345u)"));
+    EXPECT_THAT(gen.result(), HasSubstr("12345u"));
 }
 
 TEST_F(GlslGeneratorImplTest_Constructor, EmitConstructor_Type_Vec) {
@@ -112,7 +112,7 @@
     GeneratorImpl& gen = Build();
 
     ASSERT_TRUE(gen.Generate()) << gen.error();
-    EXPECT_THAT(gen.result(), HasSubstr("vec3(0.0f, 0.0f, 0.0f)"));
+    EXPECT_THAT(gen.result(), HasSubstr("vec3(0.0f)"));
 }
 
 TEST_F(GlslGeneratorImplTest_Constructor, EmitConstructor_Type_Vec_SingleScalar_Float) {
@@ -168,7 +168,7 @@
 
     ASSERT_TRUE(gen.Generate()) << gen.error();
 
-    EXPECT_THAT(gen.result(), HasSubstr("mat2x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f)"));
+    EXPECT_THAT(gen.result(), HasSubstr("mat2x3(vec3(0.0f), vec3(0.0f)"));
 }
 
 TEST_F(GlslGeneratorImplTest_Constructor, EmitConstructor_Type_Array) {
diff --git a/src/tint/writer/glsl/generator_impl_function_test.cc b/src/tint/writer/glsl/generator_impl_function_test.cc
index f352415..201e757 100644
--- a/src/tint/writer/glsl/generator_impl_function_test.cc
+++ b/src/tint/writer/glsl/generator_impl_function_test.cc
@@ -222,7 +222,7 @@
 };
 
 Interface vert_main() {
-  Interface tint_symbol = Interface(vec4(0.0f, 0.0f, 0.0f, 0.0f), 0.5f, 0.25f);
+  Interface tint_symbol = Interface(vec4(0.0f), 0.5f, 0.25f);
   return tint_symbol;
 }
 
@@ -789,9 +789,9 @@
     ASSERT_TRUE(gen.Generate()) << gen.error();
     EXPECT_EQ(gen.result(), R"(#version 310 es
 
-const int width = int(2);
-const int height = int(3);
-const int depth = int(4);
+const int width = 2;
+const int height = 3;
+const int depth = 4;
 layout(local_size_x = 2, local_size_y = 3, local_size_z = 4) in;
 void main() {
   return;
@@ -816,15 +816,15 @@
     EXPECT_EQ(gen.result(), R"(#version 310 es
 
 #ifndef WGSL_SPEC_CONSTANT_7
-#define WGSL_SPEC_CONSTANT_7 int(2)
+#define WGSL_SPEC_CONSTANT_7 2
 #endif
 const int width = WGSL_SPEC_CONSTANT_7;
 #ifndef WGSL_SPEC_CONSTANT_8
-#define WGSL_SPEC_CONSTANT_8 int(3)
+#define WGSL_SPEC_CONSTANT_8 3
 #endif
 const int height = WGSL_SPEC_CONSTANT_8;
 #ifndef WGSL_SPEC_CONSTANT_9
-#define WGSL_SPEC_CONSTANT_9 int(4)
+#define WGSL_SPEC_CONSTANT_9 4
 #endif
 const int depth = WGSL_SPEC_CONSTANT_9;
 layout(local_size_x = WGSL_SPEC_CONSTANT_7, local_size_y = WGSL_SPEC_CONSTANT_8, local_size_z = WGSL_SPEC_CONSTANT_9) in;
diff --git a/src/tint/writer/glsl/generator_impl_member_accessor_test.cc b/src/tint/writer/glsl/generator_impl_member_accessor_test.cc
index 935df75..4f7fdb1 100644
--- a/src/tint/writer/glsl/generator_impl_member_accessor_test.cc
+++ b/src/tint/writer/glsl/generator_impl_member_accessor_test.cc
@@ -291,7 +291,7 @@
   mat2x3 b;
 } data;
 void tint_symbol() {
-  data.b = mat2x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
+  data.b = mat2x3(vec3(0.0f), vec3(0.0f));
 }
 
 void main() {
diff --git a/src/tint/writer/glsl/generator_impl_variable_decl_statement_test.cc b/src/tint/writer/glsl/generator_impl_variable_decl_statement_test.cc
index d293dba..5d95bc6 100644
--- a/src/tint/writer/glsl/generator_impl_variable_decl_statement_test.cc
+++ b/src/tint/writer/glsl/generator_impl_variable_decl_statement_test.cc
@@ -98,7 +98,7 @@
     GeneratorImpl& gen = Build();
 
     ASSERT_TRUE(gen.EmitStatement(stmt)) << gen.error();
-    EXPECT_EQ(gen.result(), R"(vec3 a = vec3(0.0f, 0.0f, 0.0f);
+    EXPECT_EQ(gen.result(), R"(vec3 a = vec3(0.0f);
 )");
 }
 
@@ -112,7 +112,7 @@
 
     ASSERT_TRUE(gen.EmitStatement(stmt)) << gen.error();
     EXPECT_EQ(gen.result(),
-              R"(mat2x3 a = mat2x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
+              R"(mat2x3 a = mat2x3(vec3(0.0f), vec3(0.0f));
 )");
 }
 
diff --git a/test/tint/access/let/matrix.wgsl.expected.glsl b/test/tint/access/let/matrix.wgsl.expected.glsl
index 0add115..590ce6f 100644
--- a/test/tint/access/let/matrix.wgsl.expected.glsl
+++ b/test/tint/access/let/matrix.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 void tint_symbol() {
   mat3 m = mat3(vec3(1.0f, 2.0f, 3.0f), vec3(4.0f, 5.0f, 6.0f), vec3(7.0f, 8.0f, 9.0f));
-  vec3 v = m[1];
+  vec3 v = mat3(vec3(1.0f, 2.0f, 3.0f), vec3(4.0f, 5.0f, 6.0f), vec3(7.0f, 8.0f, 9.0f))[1];
   float f = v[1];
 }
 
diff --git a/test/tint/access/let/vector.wgsl.expected.glsl b/test/tint/access/let/vector.wgsl.expected.glsl
index 4f43d1f..533c099 100644
--- a/test/tint/access/let/vector.wgsl.expected.glsl
+++ b/test/tint/access/let/vector.wgsl.expected.glsl
@@ -2,9 +2,9 @@
 
 void tint_symbol() {
   vec3 v = vec3(1.0f, 2.0f, 3.0f);
-  float scalar = v.y;
-  vec2 swizzle2 = v.xz;
-  vec3 swizzle3 = v.xzy;
+  float scalar = vec3(1.0f, 2.0f, 3.0f).y;
+  vec2 swizzle2 = vec3(1.0f, 2.0f, 3.0f).xz;
+  vec3 swizzle3 = vec3(1.0f, 2.0f, 3.0f).xzy;
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/access/var/matrix.spvasm.expected.glsl b/test/tint/access/var/matrix.spvasm.expected.glsl
index 41a4d28..dce14700 100644
--- a/test/tint/access/var/matrix.spvasm.expected.glsl
+++ b/test/tint/access/var/matrix.spvasm.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void main_1() {
-  mat3 m = mat3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
+  mat3 m = mat3(vec3(0.0f), vec3(0.0f), vec3(0.0f));
   vec3 x_15 = m[1];
   float x_16 = x_15.y;
   return;
diff --git a/test/tint/access/var/vector.spvasm.expected.glsl b/test/tint/access/var/vector.spvasm.expected.glsl
index 44c40a7..fb15d08 100644
--- a/test/tint/access/var/vector.spvasm.expected.glsl
+++ b/test/tint/access/var/vector.spvasm.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void main_1() {
-  vec3 v = vec3(0.0f, 0.0f, 0.0f);
+  vec3 v = vec3(0.0f);
   float x_14 = v.y;
   vec3 x_16 = v;
   vec2 x_17 = vec2(x_16.x, x_16.z);
diff --git a/test/tint/array/type_constructor.wgsl.expected.glsl b/test/tint/array/type_constructor.wgsl.expected.glsl
index 82b9843..f995ab7 100644
--- a/test/tint/array/type_constructor.wgsl.expected.glsl
+++ b/test/tint/array/type_constructor.wgsl.expected.glsl
@@ -4,7 +4,7 @@
   int x = 42;
   int empty[4] = int[4](0, 0, 0, 0);
   int nonempty[4] = int[4](1, 2, 3, 4);
-  int nonempty_with_expr[4] = int[4](1, x, (x + 1), nonempty[3]);
+  int nonempty_with_expr[4] = int[4](1, 42, (42 + 1), nonempty[3]);
   int nested_empty[2][3][4] = int[2][3][4](int[3][4](int[4](0, 0, 0, 0), int[4](0, 0, 0, 0), int[4](0, 0, 0, 0)), int[3][4](int[4](0, 0, 0, 0), int[4](0, 0, 0, 0), int[4](0, 0, 0, 0)));
   int tint_symbol_1[4] = int[4](1, 2, 3, 4);
   int tint_symbol_2[4] = int[4](5, 6, 7, 8);
@@ -15,7 +15,7 @@
   int tint_symbol_7[4] = int[4](21, 22, 23, 24);
   int tint_symbol_8[3][4] = int[3][4](tint_symbol_5, tint_symbol_6, tint_symbol_7);
   int nested_nonempty[2][3][4] = int[2][3][4](tint_symbol_4, tint_symbol_8);
-  int tint_symbol_9[4] = int[4](1, 2, x, (x + 1));
+  int tint_symbol_9[4] = int[4](1, 2, 42, (42 + 1));
   int tint_symbol_10[4] = int[4](5, 6, nonempty[2], (nonempty[3] + 1));
   int tint_symbol_11[3][4] = int[3][4](tint_symbol_9, tint_symbol_10, nonempty);
   int nested_nonempty_with_expr[2][3][4] = int[2][3][4](tint_symbol_11, nested_nonempty[1]);
@@ -23,7 +23,7 @@
   int subexpr_empty = tint_symbol_12[1];
   int tint_symbol_13[4] = int[4](1, 2, 3, 4);
   int subexpr_nonempty = tint_symbol_13[2];
-  int tint_symbol_14[4] = int[4](1, x, (x + 1), nonempty[3]);
+  int tint_symbol_14[4] = int[4](1, 42, (42 + 1), nonempty[3]);
   int subexpr_nonempty_with_expr = tint_symbol_14[2];
   int tint_symbol_15[2][4] = int[2][4](int[4](0, 0, 0, 0), int[4](0, 0, 0, 0));
   int subexpr_nested_empty[4] = tint_symbol_15[1];
@@ -31,7 +31,7 @@
   int tint_symbol_17[4] = int[4](5, 6, 7, 8);
   int tint_symbol_18[2][4] = int[2][4](tint_symbol_16, tint_symbol_17);
   int subexpr_nested_nonempty[4] = tint_symbol_18[1];
-  int tint_symbol_19[4] = int[4](1, x, (x + 1), nonempty[3]);
+  int tint_symbol_19[4] = int[4](1, 42, (42 + 1), nonempty[3]);
   int tint_symbol_20[2][4] = int[2][4](tint_symbol_19, nested_nonempty[1][2]);
   int subexpr_nested_nonempty_with_expr[4] = tint_symbol_20[1];
 }
diff --git a/test/tint/buffer/storage/dynamic_index/write.wgsl.expected.glsl b/test/tint/buffer/storage/dynamic_index/write.wgsl.expected.glsl
index 5d063fa..e30425c 100644
--- a/test/tint/buffer/storage/dynamic_index/write.wgsl.expected.glsl
+++ b/test/tint/buffer/storage/dynamic_index/write.wgsl.expected.glsl
@@ -16,14 +16,14 @@
   Inner arr[];
 } s;
 void tint_symbol(uint idx) {
-  s.arr[idx].a = ivec3(0, 0, 0);
+  s.arr[idx].a = ivec3(0);
   s.arr[idx].b = 0;
-  s.arr[idx].c = uvec3(0u, 0u, 0u);
+  s.arr[idx].c = uvec3(0u);
   s.arr[idx].d = 0u;
-  s.arr[idx].e = vec3(0.0f, 0.0f, 0.0f);
+  s.arr[idx].e = vec3(0.0f);
   s.arr[idx].f = 0.0f;
-  s.arr[idx].g = mat2x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
-  s.arr[idx].h = mat3x2(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
+  s.arr[idx].g = mat2x3(vec3(0.0f), vec3(0.0f));
+  s.arr[idx].h = mat3x2(vec2(0.0f), vec2(0.0f), vec2(0.0f));
   ivec4 tint_symbol_1[4] = ivec4[4](ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0));
   s.arr[idx].i = tint_symbol_1;
 }
diff --git a/test/tint/buffer/storage/static_index/write.wgsl.expected.glsl b/test/tint/buffer/storage/static_index/write.wgsl.expected.glsl
index d463db6..947728e 100644
--- a/test/tint/buffer/storage/static_index/write.wgsl.expected.glsl
+++ b/test/tint/buffer/storage/static_index/write.wgsl.expected.glsl
@@ -30,14 +30,14 @@
   Inner j[4];
 } s;
 void tint_symbol() {
-  s.a = ivec3(0, 0, 0);
+  s.a = ivec3(0);
   s.b = 0;
-  s.c = uvec3(0u, 0u, 0u);
+  s.c = uvec3(0u);
   s.d = 0u;
-  s.e = vec3(0.0f, 0.0f, 0.0f);
+  s.e = vec3(0.0f);
   s.f = 0.0f;
-  s.g = mat2x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
-  s.h = mat3x2(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
+  s.g = mat2x3(vec3(0.0f), vec3(0.0f));
+  s.h = mat3x2(vec2(0.0f), vec2(0.0f), vec2(0.0f));
   Inner tint_symbol_1 = Inner(0);
   s.i = tint_symbol_1;
   Inner tint_symbol_2[4] = Inner[4](Inner(0), Inner(0), Inner(0), Inner(0));
diff --git a/test/tint/bug/chromium/1251009.wgsl.expected.glsl b/test/tint/bug/chromium/1251009.wgsl.expected.glsl
index 930840f..5ae88f4 100644
--- a/test/tint/bug/chromium/1251009.wgsl.expected.glsl
+++ b/test/tint/bug/chromium/1251009.wgsl.expected.glsl
@@ -16,7 +16,7 @@
 
 vec4 tint_symbol(VertexInputs0 inputs0, uint loc1, uint instance_index, VertexInputs1 inputs1) {
   uint foo = (inputs0.vertex_index + instance_index);
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/bug/dawn/947.wgsl.expected.glsl b/test/tint/bug/dawn/947.wgsl.expected.glsl
index 934d7e7..ce20459 100644
--- a/test/tint/bug/dawn/947.wgsl.expected.glsl
+++ b/test/tint/bug/dawn/947.wgsl.expected.glsl
@@ -31,7 +31,7 @@
 VertexOutputs vs_main(uint VertexIndex) {
   vec2 texcoord[3] = vec2[3](vec2(-0.5f, 0.0f), vec2(1.5f, 0.0f), vec2(0.5f, 2.0f));
   VertexOutputs tint_symbol = VertexOutputs(vec2(0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  tint_symbol.position = vec4(((texcoord[VertexIndex] * 2.0f) - vec2(1.0f, 1.0f)), 0.0f, 1.0f);
+  tint_symbol.position = vec4(((texcoord[VertexIndex] * 2.0f) - vec2(1.0f)), 0.0f, 1.0f);
   bool flipY = (uniforms.u_scale.y < 0.0f);
   if (flipY) {
     tint_symbol.texcoords = ((((texcoord[VertexIndex] * uniforms.u_scale) + uniforms.u_offset) * vec2(1.0f, -1.0f)) + vec2(0.0f, 1.0f));
@@ -69,10 +69,10 @@
 uniform highp sampler2D myTexture_mySampler;
 
 vec4 fs_main(vec2 texcoord) {
-  vec2 clampedTexcoord = clamp(texcoord, vec2(0.0f, 0.0f), vec2(1.0f, 1.0f));
+  vec2 clampedTexcoord = clamp(texcoord, vec2(0.0f), vec2(1.0f));
   if (!(all(equal(clampedTexcoord, texcoord)))) {
     tint_discard = true;
-    return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+    return vec4(0.0f);
   }
   vec4 srcColor = texture(myTexture_mySampler, texcoord);
   return srcColor;
diff --git a/test/tint/bug/tint/1118.wgsl.expected.glsl b/test/tint/bug/tint/1118.wgsl.expected.glsl
index dcd108a..8d15905 100644
--- a/test/tint/bug/tint/1118.wgsl.expected.glsl
+++ b/test/tint/bug/tint/1118.wgsl.expected.glsl
@@ -78,24 +78,24 @@
     return;
   }
   vec4 x_34 = x_29.vEyePosition;
-  vec3 x_38 = vec3(0.0f, 0.0f, 0.0f);
-  viewDirectionW = normalize((vec3(x_34.x, x_34.y, x_34.z) - x_38));
-  baseColor = vec4(1.0f, 1.0f, 1.0f, 1.0f);
+  vec3 x_38 = vec3(0.0f);
+  viewDirectionW = normalize((vec3(x_34.x, x_34.y, x_34.z) - vec3(0.0f)));
+  baseColor = vec4(1.0f);
   vec4 x_52 = x_49.vDiffuseColor;
   diffuseColor = vec3(x_52.x, x_52.y, x_52.z);
   float x_60 = x_49.vDiffuseColor.w;
   alpha = x_60;
-  vec3 x_62 = vec3(0.0f, 0.0f, 0.0f);
-  vec3 x_64 = vec3(0.0f, 0.0f, 0.0f);
-  normalW = normalize(-(cross(dFdx(x_62), dFdy(x_64))));
-  uvOffset = vec2(0.0f, 0.0f);
-  vec4 x_74 = vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  vec3 x_62 = vec3(0.0f);
+  vec3 x_64 = vec3(0.0f);
+  normalW = normalize(-(cross(dFdx(vec3(0.0f)), dFdy(vec3(0.0f)))));
+  uvOffset = vec2(0.0f);
+  vec4 x_74 = vec4(0.0f);
   vec4 x_76 = baseColor;
-  vec3 x_78 = (vec3(x_76.x, x_76.y, x_76.z) * vec3(x_74.x, x_74.y, x_74.z));
+  vec3 x_78 = (vec3(x_76.x, x_76.y, x_76.z) * vec3(vec4(0.0f).x, vec4(0.0f).y, vec4(0.0f).z));
   baseColor = vec4(x_78.x, x_78.y, x_78.z, baseColor.w);
-  baseAmbientColor = vec3(1.0f, 1.0f, 1.0f);
+  baseAmbientColor = vec3(1.0f);
   glossiness = 0.0f;
-  diffuseBase = vec3(0.0f, 0.0f, 0.0f);
+  diffuseBase = vec3(0.0f);
   shadow = 1.0f;
   refractionColor = vec4(0.0f, 0.0f, 0.0f, 1.0f);
   reflectionColor = vec4(0.0f, 0.0f, 0.0f, 1.0f);
@@ -106,14 +106,14 @@
   vec3 x_99 = emissiveColor;
   vec3 x_103 = x_49.vAmbientColor;
   vec4 x_108 = baseColor;
-  finalDiffuse = (clamp((((x_96 * x_97) + x_99) + x_103), vec3(0.0f, 0.0f, 0.0f), vec3(1.0f, 1.0f, 1.0f)) * vec3(x_108.x, x_108.y, x_108.z));
-  finalSpecular = vec3(0.0f, 0.0f, 0.0f);
+  finalDiffuse = (clamp((((x_96 * x_97) + x_99) + x_103), vec3(0.0f), vec3(1.0f)) * vec3(x_108.x, x_108.y, x_108.z));
+  finalSpecular = vec3(0.0f);
   vec4 x_118 = reflectionColor;
   vec4 x_121 = refractionColor;
   vec3 x_123 = ((((finalDiffuse * baseAmbientColor) + finalSpecular) + vec3(x_118.x, x_118.y, x_118.z)) + vec3(x_121.x, x_121.y, x_121.z));
   color = vec4(x_123.x, x_123.y, x_123.z, alpha);
   vec4 x_129 = color;
-  vec3 x_132 = max(vec3(x_129.x, x_129.y, x_129.z), vec3(0.0f, 0.0f, 0.0f));
+  vec3 x_132 = max(vec3(x_129.x, x_129.y, x_129.z), vec3(0.0f));
   color = vec4(x_132.x, x_132.y, x_132.z, color.w);
   float x_140 = x_137.visibility;
   float x_142 = color.w;
diff --git a/test/tint/bug/tint/1121.wgsl.expected.glsl b/test/tint/bug/tint/1121.wgsl.expected.glsl
index da9bf0f..48d14d6 100644
--- a/test/tint/bug/tint/1121.wgsl.expected.glsl
+++ b/test/tint/bug/tint/1121.wgsl.expected.glsl
@@ -81,10 +81,10 @@
   {
     for(int y_1 = 0; (y_1 < 2); y_1 = (y_1 + 1)) {
       {
-        for(int x_1 = 0; (x_1 < TILE_COUNT_X); x_1 = (x_1 + 1)) {
-          ivec2 tilePixel0Idx = ivec2((x_1 * TILE_SIZE), (y_1 * TILE_SIZE));
+        for(int x_1 = 0; (x_1 < 2); x_1 = (x_1 + 1)) {
+          ivec2 tilePixel0Idx = ivec2((x_1 * 16), (y_1 * 16));
           vec2 floorCoord = (((2.0f * vec2(tilePixel0Idx)) / uniforms.fullScreenSize.xy) - vec2(1.0f));
-          vec2 ceilCoord = (((2.0f * vec2((tilePixel0Idx + ivec2(TILE_SIZE)))) / uniforms.fullScreenSize.xy) - vec2(1.0f));
+          vec2 ceilCoord = (((2.0f * vec2((tilePixel0Idx + ivec2(16)))) / uniforms.fullScreenSize.xy) - vec2(1.0f));
           vec2 viewFloorCoord = vec2((((-(viewNear) * floorCoord.x) - (M[2][0] * viewNear)) / M[0][0]), (((-(viewNear) * floorCoord.y) - (M[2][1] * viewNear)) / M[1][1]));
           vec2 viewCeilCoord = vec2((((-(viewNear) * ceilCoord.x) - (M[2][0] * viewNear)) / M[0][0]), (((-(viewNear) * ceilCoord.y) - (M[2][1] * viewNear)) / M[1][1]));
           frustumPlanes[0] = vec4(1.0f, 0.0f, (-(viewFloorCoord.x) / viewNear), 0.0f);
@@ -115,7 +115,7 @@
             }
           }
           if ((dp >= 0.0f)) {
-            uint tileId = uint((x_1 + (y_1 * TILE_COUNT_X)));
+            uint tileId = uint((x_1 + (y_1 * 2)));
             bool tint_tmp = (tileId < 0u);
             if (!tint_tmp) {
               tint_tmp = (tileId >= config.numTiles);
diff --git a/test/tint/bug/tint/1520.spvasm.expected.glsl b/test/tint/bug/tint/1520.spvasm.expected.glsl
index 358bd77..468864c 100644
--- a/test/tint/bug/tint/1520.spvasm.expected.glsl
+++ b/test/tint/bug/tint/1520.spvasm.expected.glsl
@@ -36,20 +36,20 @@
   ok = true;
   x_41_phi = false;
   if (true) {
-    x_40 = all(equal((ivec4(0, 0, 0, 0) / ivec4(x_27, x_27, x_27, x_27)), ivec4(0, 0, 0, 0)));
+    x_40 = all(equal((ivec4(0) / ivec4(x_27, x_27, x_27, x_27)), ivec4(0)));
     x_41_phi = x_40;
   }
   bool x_41 = x_41_phi;
   ok = x_41;
   ivec4 x_44 = ivec4(x_27, x_27, x_27, x_27);
   val = x_44;
-  ivec4 x_47 = (x_44 + ivec4(1, 1, 1, 1));
+  ivec4 x_47 = (x_44 + ivec4(1));
   val = x_47;
-  ivec4 x_48 = (x_47 - ivec4(1, 1, 1, 1));
+  ivec4 x_48 = (x_47 - ivec4(1));
   val = x_48;
-  ivec4 x_49 = (x_48 + ivec4(1, 1, 1, 1));
+  ivec4 x_49 = (x_48 + ivec4(1));
   val = x_49;
-  ivec4 x_50 = (x_49 - ivec4(1, 1, 1, 1));
+  ivec4 x_50 = (x_49 - ivec4(1));
   val = x_50;
   x_55_phi = false;
   if (x_41) {
@@ -58,13 +58,13 @@
   }
   bool x_55 = x_55_phi;
   ok = x_55;
-  ivec4 x_58 = (x_50 * ivec4(2, 2, 2, 2));
+  ivec4 x_58 = (x_50 * ivec4(2));
   val = x_58;
-  ivec4 x_59 = (x_58 / ivec4(2, 2, 2, 2));
+  ivec4 x_59 = (x_58 / ivec4(2));
   val = x_59;
-  ivec4 x_60 = (x_59 * ivec4(2, 2, 2, 2));
+  ivec4 x_60 = (x_59 * ivec4(2));
   val = x_60;
-  ivec4 x_61 = (x_60 / ivec4(2, 2, 2, 2));
+  ivec4 x_61 = (x_60 / ivec4(2));
   val = x_61;
   x_66_phi = false;
   if (x_55) {
@@ -97,20 +97,20 @@
   x_9_ok = true;
   x_87_phi = false;
   if (true) {
-    x_86 = all(equal((vec4(0.0f, 0.0f, 0.0f, 0.0f) / vec4(x_77, x_77, x_77, x_77)), vec4(0.0f, 0.0f, 0.0f, 0.0f)));
+    x_86 = all(equal((vec4(0.0f) / vec4(x_77, x_77, x_77, x_77)), vec4(0.0f)));
     x_87_phi = x_86;
   }
   bool x_87 = x_87_phi;
   x_9_ok = x_87;
   vec4 x_89 = vec4(x_77, x_77, x_77, x_77);
   x_10_val = x_89;
-  vec4 x_92 = (x_89 + vec4(1.0f, 1.0f, 1.0f, 1.0f));
+  vec4 x_92 = (x_89 + vec4(1.0f));
   x_10_val = x_92;
-  vec4 x_93 = (x_92 - vec4(1.0f, 1.0f, 1.0f, 1.0f));
+  vec4 x_93 = (x_92 - vec4(1.0f));
   x_10_val = x_93;
-  vec4 x_94 = (x_93 + vec4(1.0f, 1.0f, 1.0f, 1.0f));
+  vec4 x_94 = (x_93 + vec4(1.0f));
   x_10_val = x_94;
-  vec4 x_95 = (x_94 - vec4(1.0f, 1.0f, 1.0f, 1.0f));
+  vec4 x_95 = (x_94 - vec4(1.0f));
   x_10_val = x_95;
   x_100_phi = false;
   if (x_87) {
@@ -119,13 +119,13 @@
   }
   bool x_100 = x_100_phi;
   x_9_ok = x_100;
-  vec4 x_103 = (x_95 * vec4(2.0f, 2.0f, 2.0f, 2.0f));
+  vec4 x_103 = (x_95 * vec4(2.0f));
   x_10_val = x_103;
-  vec4 x_104 = (x_103 / vec4(2.0f, 2.0f, 2.0f, 2.0f));
+  vec4 x_104 = (x_103 / vec4(2.0f));
   x_10_val = x_104;
-  vec4 x_105 = (x_104 * vec4(2.0f, 2.0f, 2.0f, 2.0f));
+  vec4 x_105 = (x_104 * vec4(2.0f));
   x_10_val = x_105;
-  vec4 x_106 = (x_105 / vec4(2.0f, 2.0f, 2.0f, 2.0f));
+  vec4 x_106 = (x_105 / vec4(2.0f));
   x_10_val = x_106;
   x_111_phi = false;
   if (x_100) {
diff --git a/test/tint/bug/tint/292.wgsl.expected.glsl b/test/tint/bug/tint/292.wgsl.expected.glsl
index 6a9c904..6d11586 100644
--- a/test/tint/bug/tint/292.wgsl.expected.glsl
+++ b/test/tint/bug/tint/292.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 vec4 tint_symbol() {
   vec3 light = vec3(1.200000048f, 1.0f, 2.0f);
   vec3 negative_light = -(light);
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/bug/tint/403.wgsl.expected.glsl b/test/tint/bug/tint/403.wgsl.expected.glsl
index de1c92f..d82b85d 100644
--- a/test/tint/bug/tint/403.wgsl.expected.glsl
+++ b/test/tint/bug/tint/403.wgsl.expected.glsl
@@ -21,7 +21,7 @@
   mat2 x_23 = x_20.transform1;
   mat2 x_28 = x_26.transform2;
   uint x_46 = tint_symbol_1;
-  vec2 tint_symbol_2[3] = vec2[3](vec2(-1.0f, 1.0f), vec2(1.0f, 1.0f), vec2(-1.0f, -1.0f));
+  vec2 tint_symbol_2[3] = vec2[3](vec2(-1.0f, 1.0f), vec2(1.0f), vec2(-1.0f));
   indexable = tint_symbol_2;
   vec2 x_51 = indexable[x_46];
   vec2 x_52 = (mat2((x_23[0u] + x_28[0u]), (x_23[1u] + x_28[1u])) * x_51);
diff --git a/test/tint/bug/tint/413.spvasm.expected.glsl b/test/tint/bug/tint/413.spvasm.expected.glsl
index 2853804..4d7262d 100644
--- a/test/tint/bug/tint/413.spvasm.expected.glsl
+++ b/test/tint/bug/tint/413.spvasm.expected.glsl
@@ -4,11 +4,11 @@
 uniform highp usampler2D Src_1;
 void main_1() {
   uvec4 srcValue = uvec4(0u, 0u, 0u, 0u);
-  uvec4 x_18 = texelFetch(Src_1, ivec2(0, 0), 0);
+  uvec4 x_18 = texelFetch(Src_1, ivec2(0), 0);
   srcValue = x_18;
   uint x_22 = srcValue.x;
   srcValue.x = (x_22 + uint(1));
-  imageStore(Dst, ivec2(0, 0), srcValue);
+  imageStore(Dst, ivec2(0), srcValue);
   return;
 }
 
diff --git a/test/tint/bug/tint/453.wgsl.expected.glsl b/test/tint/bug/tint/453.wgsl.expected.glsl
index c400cdf..1059fb2 100644
--- a/test/tint/bug/tint/453.wgsl.expected.glsl
+++ b/test/tint/bug/tint/453.wgsl.expected.glsl
@@ -4,11 +4,11 @@
 uniform highp usampler2D Src_1;
 void tint_symbol() {
   uvec4 srcValue = uvec4(0u, 0u, 0u, 0u);
-  uvec4 x_22 = texelFetch(Src_1, ivec2(0, 0), 0);
+  uvec4 x_22 = texelFetch(Src_1, ivec2(0), 0);
   srcValue = x_22;
   uint x_24 = srcValue.x;
   uint x_25 = (x_24 + 1u);
-  imageStore(Dst, ivec2(0, 0), srcValue.xxxx);
+  imageStore(Dst, ivec2(0), srcValue.xxxx);
   return;
 }
 
diff --git a/test/tint/bug/tint/534.wgsl.expected.glsl b/test/tint/bug/tint/534.wgsl.expected.glsl
index 1b68dd7..cf35895 100644
--- a/test/tint/bug/tint/534.wgsl.expected.glsl
+++ b/test/tint/bug/tint/534.wgsl.expected.glsl
@@ -48,9 +48,9 @@
   }
   uint outputIndex = ((GlobalInvocationID.y * uint(size.x)) + GlobalInvocationID.x);
   if (success) {
-    tint_symbol.result[outputIndex] = uint(1);
+    tint_symbol.result[outputIndex] = 1u;
   } else {
-    tint_symbol.result[outputIndex] = uint(0);
+    tint_symbol.result[outputIndex] = 0u;
   }
 }
 
diff --git a/test/tint/bug/tint/749.spvasm.expected.glsl b/test/tint/bug/tint/749.spvasm.expected.glsl
index 61e0490..96a7c14 100644
--- a/test/tint/bug/tint/749.spvasm.expected.glsl
+++ b/test/tint/bug/tint/749.spvasm.expected.glsl
@@ -807,7 +807,7 @@
   int i_2 = 0;
   vec2 uv = vec2(0.0f, 0.0f);
   vec2 x_717 = uv;
-  uv = vec2(0.0f, 0.0f);
+  uv = vec2(0.0f);
   uv = x_717;
   i_2 = 0;
   QuicksortObject x_721 = obj;
@@ -824,10 +824,10 @@
     vec2 x_431 = vec2(vec3(1.0f, 2.0f, 3.0f).x, vec3(1.0f, 2.0f, 3.0f).x);
     int x_158 = i_2;
     vec2 x_723 = uv;
-    uv = vec2(0.0f, 0.0f);
+    uv = vec2(0.0f);
     uv = x_723;
     vec3 x_725 = color;
-    color = vec3(0.0f, 0.0f, 0.0f);
+    color = vec3(0.0f);
     color = x_725;
     vec2 x_432 = vec2(x_431.y, x_431.y);
     QuicksortObject x_726 = obj;
@@ -841,7 +841,7 @@
   QuicksortObject tint_symbol_44 = QuicksortObject(tint_symbol_43);
   obj = tint_symbol_44;
   obj = x_756;
-  vec2 x_446 = vec2(vec2(0.0f, 0.0f).x, vec2(0.0f, 0.0f).x);
+  vec2 x_446 = vec2(vec2(0.0f).x, vec2(0.0f).x);
   int x_757 = i_2;
   i_2 = 0;
   i_2 = x_757;
@@ -853,11 +853,11 @@
   obj = x_758;
   vec4 x_184 = tint_symbol;
   vec2 x_759 = uv;
-  uv = vec2(0.0f, 0.0f);
+  uv = vec2(0.0f);
   uv = x_759;
-  vec2 x_447 = vec2(vec2(0.0f, 0.0f).y, vec2(0.0f, 0.0f).y);
+  vec2 x_447 = vec2(vec2(0.0f).y, vec2(0.0f).y);
   vec2 x_760 = uv;
-  uv = vec2(0.0f, 0.0f);
+  uv = vec2(0.0f);
   uv = x_760;
   vec2 x_185 = vec2(x_184.x, x_184.y);
   vec3 x_448 = vec3(x_185.y, x_446.y, x_446.y);
@@ -867,7 +867,7 @@
   obj = tint_symbol_48;
   obj = x_761;
   vec2 x_762 = uv;
-  uv = vec2(0.0f, 0.0f);
+  uv = vec2(0.0f);
   uv = x_762;
   vec2 x_191 = x_188.resolution;
   QuicksortObject x_763 = obj;
@@ -877,7 +877,7 @@
   obj = x_763;
   vec3 x_449 = vec3(x_184.y, vec3(1.0f, 2.0f, 3.0f).z, x_184.w);
   vec3 x_764 = color;
-  color = vec3(0.0f, 0.0f, 0.0f);
+  color = vec3(0.0f);
   color = x_764;
   vec2 x_192 = (x_185 / x_191);
   QuicksortObject x_765 = obj;
@@ -887,15 +887,15 @@
   obj = x_765;
   vec2 x_450 = vec2(x_447.x, x_185.y);
   vec3 x_766 = color;
-  color = vec3(0.0f, 0.0f, 0.0f);
+  color = vec3(0.0f);
   vec3 x_767 = color;
-  color = vec3(0.0f, 0.0f, 0.0f);
+  color = vec3(0.0f);
   color = x_767;
   color = x_766;
   uv = x_192;
   color = vec3(1.0f, 2.0f, 3.0f);
   vec3 x_768 = color;
-  color = vec3(0.0f, 0.0f, 0.0f);
+  color = vec3(0.0f);
   color = x_768;
   vec3 x_451 = vec3(x_185.x, x_185.y, x_446.y);
   QuicksortObject x_769 = obj;
@@ -931,10 +931,10 @@
   vec3 x_453 = vec3(x_451.x, x_450.x, x_450.y);
   color.x = (x_206 + float(x_201));
   vec2 x_776 = uv;
-  uv = vec2(0.0f, 0.0f);
+  uv = vec2(0.0f);
   uv = x_776;
   vec2 x_777 = uv;
-  uv = vec2(0.0f, 0.0f);
+  uv = vec2(0.0f);
   uv = x_777;
   vec2 x_454 = vec2(x_184.y, x_184.y);
   float x_210 = uv.x;
@@ -954,7 +954,7 @@
     int x_781 = obj.numbers[0u];
     obj.numbers[0u] = 0;
     obj.numbers[0u] = x_781;
-    vec3 x_456 = vec3(vec2(0.0f, 0.0f).y, x_448.y, x_448.y);
+    vec3 x_456 = vec3(vec2(0.0f).y, x_448.y, x_448.y);
     float x_782 = uv.x;
     uv.x = 0.0f;
     uv.x = x_782;
@@ -966,14 +966,14 @@
     obj = x_783;
     vec2 x_457 = vec2(x_454.x, x_454.x);
     vec2 x_784 = uv;
-    uv = vec2(0.0f, 0.0f);
+    uv = vec2(0.0f);
     uv = x_784;
     QuicksortObject x_785 = obj;
     int tint_symbol_63[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
     QuicksortObject tint_symbol_64 = QuicksortObject(tint_symbol_63);
     obj = tint_symbol_64;
     obj = x_785;
-    vec2 x_458 = vec2(vec3(1.0f, 2.0f, 3.0f).z, vec2(0.0f, 0.0f).y);
+    vec2 x_458 = vec2(vec3(1.0f, 2.0f, 3.0f).z, vec2(0.0f).y);
     int x_786 = i_2;
     i_2 = 0;
     i_2 = x_786;
@@ -982,10 +982,10 @@
     color[0] = 0.0f;
     color[0] = x_787;
     vec3 x_788 = color;
-    color = vec3(0.0f, 0.0f, 0.0f);
+    color = vec3(0.0f);
     color = x_788;
     vec3 x_789 = color;
-    color = vec3(0.0f, 0.0f, 0.0f);
+    color = vec3(0.0f);
     color = x_789;
     vec3 x_459 = vec3(x_454.y, x_454.y, x_447.y);
     float x_790 = color[0];
@@ -1008,12 +1008,12 @@
   uv.x = x_794;
   vec3 x_460 = vec3(x_453.z, x_453.y, x_453.y);
   vec2 x_795 = uv;
-  uv = vec2(0.0f, 0.0f);
+  uv = vec2(0.0f);
   uv = x_795;
   float x_796 = uv.x;
   uv.x = 0.0f;
   uv.x = x_796;
-  vec2 x_461 = vec2(vec2(0.0f, 0.0f).y, vec2(0.0f, 0.0f).y);
+  vec2 x_461 = vec2(vec2(0.0f).y, vec2(0.0f).y);
   float x_797 = uv.x;
   uv.x = 0.0f;
   uv.x = x_797;
@@ -1057,7 +1057,7 @@
     int x_808 = i_2;
     i_2 = 0;
     i_2 = x_808;
-    vec2 x_466 = vec2(x_455.y, vec2(0.0f, 0.0f).y);
+    vec2 x_466 = vec2(x_455.y, vec2(0.0f).y);
     int x_809 = i_2;
     i_2 = 0;
     i_2 = x_809;
@@ -1075,7 +1075,7 @@
   uv.x = x_812;
   float x_238 = uv[0];
   vec3 x_813 = color;
-  color = vec3(0.0f, 0.0f, 0.0f);
+  color = vec3(0.0f);
   color = x_813;
   float x_814 = color.x;
   color.x = 0.0f;
@@ -1102,7 +1102,7 @@
     uv.x = x_819;
     float x_249 = color.z;
     vec3 x_820 = color;
-    color = vec3(0.0f, 0.0f, 0.0f);
+    color = vec3(0.0f);
     color = x_820;
     vec3 x_469 = vec3(x_467.x, x_191.y, x_467.y);
     float x_821 = color.z;
@@ -1111,13 +1111,13 @@
     int x_822 = obj.numbers[0u];
     obj.numbers[0u] = 0;
     obj.numbers[0u] = x_822;
-    vec2 x_470 = vec2(vec2(0.0f, 0.0f).x, vec2(0.0f, 0.0f).y);
+    vec2 x_470 = vec2(vec2(0.0f).x, vec2(0.0f).y);
     float x_823 = color.z;
     color.z = 0.0f;
     color.z = x_823;
     color.z = (x_249 + float(x_245));
     vec2 x_824 = uv;
-    uv = vec2(0.0f, 0.0f);
+    uv = vec2(0.0f);
     uv = x_824;
     vec2 x_471 = vec2(x_470.y, x_470.y);
   }
@@ -1130,7 +1130,7 @@
   uv[0] = 0.0f;
   uv[0] = x_826;
   vec3 x_827 = color;
-  color = vec3(0.0f, 0.0f, 0.0f);
+  color = vec3(0.0f);
   color = x_827;
   vec3 x_473 = vec3(x_446.y, x_453.x, x_453.x);
   int x_828 = obj.numbers[4];
@@ -1153,7 +1153,7 @@
   color.x = x_832;
   vec2 x_476 = vec2(x_451.z, x_460.y);
   color.y = (x_257 + float(x_254));
-  vec3 x_477 = vec3(vec2(0.0f, 0.0f).x, x_472.x, vec2(0.0f, 0.0f).y);
+  vec3 x_477 = vec3(vec2(0.0f).x, x_472.x, vec2(0.0f).y);
   float x_833 = uv.x;
   uv.x = 0.0f;
   uv.x = x_833;
@@ -1168,21 +1168,21 @@
   int x_836 = i_2;
   i_2 = 0;
   i_2 = x_836;
-  vec3 x_479 = vec3(vec2(0.0f, 0.0f).y, x_454.y, vec2(0.0f, 0.0f).x);
+  vec3 x_479 = vec3(vec2(0.0f).y, x_454.y, vec2(0.0f).x);
   int x_837 = obj.numbers[0u];
   obj.numbers[0u] = 0;
   obj.numbers[0u] = x_837;
   float x_838 = color.y;
   color.y = 0.0f;
   color.y = x_838;
-  vec3 x_480 = vec3(x_446.x, x_446.x, vec2(0.0f, 0.0f).y);
+  vec3 x_480 = vec3(x_446.x, x_446.x, vec2(0.0f).y);
   float x_839 = uv.x;
   uv.x = 0.0f;
   uv.x = x_839;
   if ((x_261 > 0.25f)) {
     vec2 x_481 = vec2(x_447.x, x_480.z);
     vec3 x_840 = color;
-    color = vec3(0.0f, 0.0f, 0.0f);
+    color = vec3(0.0f);
     color = x_840;
     int x_267 = obj.numbers[5u];
     float x_841 = color.x;
@@ -1259,7 +1259,7 @@
     vec2 x_488 = vec2(x_473.z, x_473.y);
     float x_283 = color.y;
     vec2 x_860 = uv;
-    uv = vec2(0.0f, 0.0f);
+    uv = vec2(0.0f);
     uv = x_860;
     float x_861 = color.x;
     color.x = 0.0f;
@@ -1309,14 +1309,14 @@
   obj.numbers[4] = x_871;
   if ((x_287 > 0.75f)) {
     vec3 x_872 = color;
-    color = vec3(0.0f, 0.0f, 0.0f);
+    color = vec3(0.0f);
     color = x_872;
     float x_873 = color.x;
     color.x = 0.0f;
     color.x = x_873;
     vec3 x_495 = vec3(x_192.y, x_192.x, x_192.y);
     vec3 x_874 = color;
-    color = vec3(0.0f, 0.0f, 0.0f);
+    color = vec3(0.0f);
     color = x_874;
     int x_293 = obj.numbers[7];
     float x_875 = uv.x;
@@ -1369,7 +1369,7 @@
   i_2 = x_887;
   vec2 x_502 = vec2(x_451.y, x_192.y);
   vec2 x_888 = uv;
-  uv = vec2(0.0f, 0.0f);
+  uv = vec2(0.0f);
   uv = x_888;
   int x_301 = obj.numbers[8];
   int x_889 = i_2;
@@ -1382,7 +1382,7 @@
   float x_891 = color.y;
   color.y = 0.0f;
   color.y = x_891;
-  vec2 x_504 = vec2(x_453.y, vec2(0.0f, 0.0f).x);
+  vec2 x_504 = vec2(x_453.y, vec2(0.0f).x);
   float x_892 = color.x;
   color.x = 0.0f;
   color.x = x_892;
@@ -1407,7 +1407,7 @@
   color.y = x_897;
   color.z = (x_304 + float(x_301));
   vec2 x_898 = uv;
-  uv = vec2(0.0f, 0.0f);
+  uv = vec2(0.0f);
   uv = x_898;
   float x_899 = uv.x;
   uv.x = 0.0f;
@@ -1440,7 +1440,7 @@
   i_2 = x_906;
   vec2 x_511 = vec2(x_485.z, x_485.y);
   vec3 x_907 = color;
-  color = vec3(0.0f, 0.0f, 0.0f);
+  color = vec3(0.0f);
   color = x_907;
   float x_908 = uv.y;
   uv.y = 0.0f;
@@ -1476,16 +1476,16 @@
     color.x = 0.0f;
     color.x = x_915;
     vec3 x_916 = color;
-    color = vec3(0.0f, 0.0f, 0.0f);
+    color = vec3(0.0f);
     color = x_916;
     vec2 x_516 = vec2(x_452.x, x_452.x);
     vec2 x_917 = uv;
-    uv = vec2(0.0f, 0.0f);
+    uv = vec2(0.0f);
     uv = x_917;
     float x_918 = uv.x;
     uv.x = 0.0f;
     uv.x = x_918;
-    vec3 x_517 = vec3(vec2(0.0f, 0.0f).x, vec2(0.0f, 0.0f).x, vec2(0.0f, 0.0f).y);
+    vec3 x_517 = vec3(vec2(0.0f).x, vec2(0.0f).x, vec2(0.0f).y);
     color.x = (float(x_317) + x_320);
     float x_919 = color.x;
     color.x = 0.0f;
diff --git a/test/tint/bug/tint/764.wgsl.expected.glsl b/test/tint/bug/tint/764.wgsl.expected.glsl
index c104ce3..1b62f39 100644
--- a/test/tint/bug/tint/764.wgsl.expected.glsl
+++ b/test/tint/bug/tint/764.wgsl.expected.glsl
@@ -5,8 +5,8 @@
   return;
 }
 void f() {
-  mat4 m = mat4(vec4(1.0f, 1.0f, 1.0f, 1.0f), vec4(1.0f, 1.0f, 1.0f, 1.0f), vec4(1.0f, 1.0f, 1.0f, 1.0f), vec4(1.0f, 1.0f, 1.0f, 1.0f));
-  vec4 v1 = m[0];
+  mat4 m = mat4(vec4(1.0f), vec4(1.0f), vec4(1.0f), vec4(1.0f));
+  vec4 v1 = mat4(vec4(1.0f), vec4(1.0f), vec4(1.0f), vec4(1.0f))[0];
   float a = v1[0];
 }
 
diff --git a/test/tint/bug/tint/824.wgsl.expected.glsl b/test/tint/bug/tint/824.wgsl.expected.glsl
index 7ff968b..0656691 100644
--- a/test/tint/bug/tint/824.wgsl.expected.glsl
+++ b/test/tint/bug/tint/824.wgsl.expected.glsl
@@ -7,11 +7,11 @@
 };
 
 Output tint_symbol(uint VertexIndex, uint InstanceIndex) {
-  vec2 zv[4] = vec2[4](vec2(0.200000003f, 0.200000003f), vec2(0.300000012f, 0.300000012f), vec2(-0.100000001f, -0.100000001f), vec2(1.100000024f, 1.100000024f));
+  vec2 zv[4] = vec2[4](vec2(0.200000003f), vec2(0.300000012f), vec2(-0.100000001f), vec2(1.100000024f));
   float z = zv[InstanceIndex].x;
   Output tint_symbol_1 = Output(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
   tint_symbol_1.Position = vec4(0.5f, 0.5f, z, 1.0f);
-  vec4 colors[4] = vec4[4](vec4(1.0f, 0.0f, 0.0f, 1.0f), vec4(0.0f, 1.0f, 0.0f, 1.0f), vec4(0.0f, 0.0f, 1.0f, 1.0f), vec4(1.0f, 1.0f, 1.0f, 1.0f));
+  vec4 colors[4] = vec4[4](vec4(1.0f, 0.0f, 0.0f, 1.0f), vec4(0.0f, 1.0f, 0.0f, 1.0f), vec4(0.0f, 0.0f, 1.0f, 1.0f), vec4(1.0f));
   tint_symbol_1.color = colors[InstanceIndex];
   return tint_symbol_1;
 }
diff --git a/test/tint/bug/tint/825.wgsl.expected.glsl b/test/tint/bug/tint/825.wgsl.expected.glsl
index 9c9c067..b9b91ef 100644
--- a/test/tint/bug/tint/825.wgsl.expected.glsl
+++ b/test/tint/bug/tint/825.wgsl.expected.glsl
@@ -8,6 +8,6 @@
   int i = 0;
   int j = 0;
   mat2 m = mat2(vec2(1.0f, 2.0f), vec2(3.0f, 4.0f));
-  float f_1 = m[i][j];
+  float f_1 = mat2(vec2(1.0f, 2.0f), vec2(3.0f, 4.0f))[i][j];
 }
 
diff --git a/test/tint/bug/tint/827.wgsl.expected.glsl b/test/tint/bug/tint/827.wgsl.expected.glsl
index 482c7d3..562b29a 100644
--- a/test/tint/bug/tint/827.wgsl.expected.glsl
+++ b/test/tint/bug/tint/827.wgsl.expected.glsl
@@ -6,7 +6,7 @@
 } result;
 uniform highp sampler2D tex_1;
 void tint_symbol(uvec3 GlobalInvocationId) {
-  result.values[((GlobalInvocationId.y * width) + GlobalInvocationId.x)] = texelFetch(tex_1, ivec2(int(GlobalInvocationId.x), int(GlobalInvocationId.y)), 0).x;
+  result.values[((GlobalInvocationId.y * 128u) + GlobalInvocationId.x)] = texelFetch(tex_1, ivec2(int(GlobalInvocationId.x), int(GlobalInvocationId.y)), 0).x;
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/bug/tint/913.wgsl.expected.glsl b/test/tint/bug/tint/913.wgsl.expected.glsl
index bd770ef..edf3ff7 100644
--- a/test/tint/bug/tint/913.wgsl.expected.glsl
+++ b/test/tint/bug/tint/913.wgsl.expected.glsl
@@ -46,7 +46,7 @@
   if ((tint_tmp)) {
     bool tint_tmp_3 = success;
     if (tint_tmp_3) {
-      tint_tmp_3 = all(equal(texelFetch(dst_1, ivec2(dstTexCoord), 0), nonCoveredColor));
+      tint_tmp_3 = all(equal(texelFetch(dst_1, ivec2(dstTexCoord), 0), vec4(0.0f, 1.0f, 0.0f, 1.0f)));
     }
     success = (tint_tmp_3);
   } else {
diff --git a/test/tint/bug/tint/914.wgsl.expected.glsl b/test/tint/bug/tint/914.wgsl.expected.glsl
index 5ec38c1..7e66546 100644
--- a/test/tint/bug/tint/914.wgsl.expected.glsl
+++ b/test/tint/bug/tint/914.wgsl.expected.glsl
@@ -71,32 +71,32 @@
     }
   }
   barrier();
-  uint tileRow = (local_id.y * RowPerThread);
-  uint tileCol = (local_id.x * ColPerThread);
-  uint globalRow = (global_id.y * RowPerThread);
-  uint globalCol = (global_id.x * ColPerThread);
-  uint numTiles = (((uniforms.dimInner - 1u) / TileInner) + 1u);
+  uint tileRow = (local_id.y * 4u);
+  uint tileCol = (local_id.x * 4u);
+  uint globalRow = (global_id.y * 4u);
+  uint globalCol = (global_id.x * 4u);
+  uint numTiles = (((uniforms.dimInner - 1u) / 64u) + 1u);
   float acc[16] = float[16](0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
   float ACached = 0.0f;
   float BCached[4] = float[4](0.0f, 0.0f, 0.0f, 0.0f);
   {
-    for(uint index = 0u; (index < (RowPerThread * ColPerThread)); index = (index + 1u)) {
+    for(uint index = 0u; (index < (4u * 4u)); index = (index + 1u)) {
       acc[index] = 0.0f;
     }
   }
-  uint ColPerThreadA = (TileInner / 16u);
+  uint ColPerThreadA = (64u / 16u);
   uint tileColA = (local_id.x * ColPerThreadA);
-  uint RowPerThreadB = (TileInner / 16u);
+  uint RowPerThreadB = (64u / 16u);
   uint tileRowB = (local_id.y * RowPerThreadB);
   {
     for(uint t = 0u; (t < numTiles); t = (t + 1u)) {
       {
-        for(uint innerRow = 0u; (innerRow < RowPerThread); innerRow = (innerRow + 1u)) {
+        for(uint innerRow = 0u; (innerRow < 4u); innerRow = (innerRow + 1u)) {
           {
             for(uint innerCol = 0u; (innerCol < ColPerThreadA); innerCol = (innerCol + 1u)) {
               uint inputRow = (tileRow + innerRow);
               uint inputCol = (tileColA + innerCol);
-              float tint_symbol_1 = mm_readA((globalRow + innerRow), ((t * TileInner) + inputCol));
+              float tint_symbol_1 = mm_readA((globalRow + innerRow), ((t * 64u) + inputCol));
               mm_Asub[inputRow][inputCol] = tint_symbol_1;
             }
           }
@@ -105,10 +105,10 @@
       {
         for(uint innerRow = 0u; (innerRow < RowPerThreadB); innerRow = (innerRow + 1u)) {
           {
-            for(uint innerCol = 0u; (innerCol < ColPerThread); innerCol = (innerCol + 1u)) {
+            for(uint innerCol = 0u; (innerCol < 4u); innerCol = (innerCol + 1u)) {
               uint inputRow = (tileRowB + innerRow);
               uint inputCol = (tileCol + innerCol);
-              float tint_symbol_2 = mm_readB(((t * TileInner) + inputRow), (globalCol + innerCol));
+              float tint_symbol_2 = mm_readB(((t * 64u) + inputRow), (globalCol + innerCol));
               mm_Bsub[innerCol][inputCol] = tint_symbol_2;
             }
           }
@@ -116,18 +116,18 @@
       }
       barrier();
       {
-        for(uint k = 0u; (k < TileInner); k = (k + 1u)) {
+        for(uint k = 0u; (k < 64u); k = (k + 1u)) {
           {
-            for(uint inner = 0u; (inner < ColPerThread); inner = (inner + 1u)) {
+            for(uint inner = 0u; (inner < 4u); inner = (inner + 1u)) {
               BCached[inner] = mm_Bsub[k][(tileCol + inner)];
             }
           }
           {
-            for(uint innerRow = 0u; (innerRow < RowPerThread); innerRow = (innerRow + 1u)) {
+            for(uint innerRow = 0u; (innerRow < 4u); innerRow = (innerRow + 1u)) {
               ACached = mm_Asub[(tileRow + innerRow)][k];
               {
-                for(uint innerCol = 0u; (innerCol < ColPerThread); innerCol = (innerCol + 1u)) {
-                  uint index = ((innerRow * ColPerThread) + innerCol);
+                for(uint innerCol = 0u; (innerCol < 4u); innerCol = (innerCol + 1u)) {
+                  uint index = ((innerRow * 4u) + innerCol);
                   acc[index] = (acc[index] + (ACached * BCached[innerCol]));
                 }
               }
@@ -139,10 +139,10 @@
     }
   }
   {
-    for(uint innerRow = 0u; (innerRow < RowPerThread); innerRow = (innerRow + 1u)) {
+    for(uint innerRow = 0u; (innerRow < 4u); innerRow = (innerRow + 1u)) {
       {
-        for(uint innerCol = 0u; (innerCol < ColPerThread); innerCol = (innerCol + 1u)) {
-          uint index = ((innerRow * ColPerThread) + innerCol);
+        for(uint innerCol = 0u; (innerCol < 4u); innerCol = (innerCol + 1u)) {
+          uint index = ((innerRow * 4u) + innerCol);
           mm_write((globalRow + innerRow), (globalCol + innerCol), acc[index]);
         }
       }
diff --git a/test/tint/bug/tint/942.wgsl.expected.glsl b/test/tint/bug/tint/942.wgsl.expected.glsl
index bd112c5..d194f13 100644
--- a/test/tint/bug/tint/942.wgsl.expected.glsl
+++ b/test/tint/bug/tint/942.wgsl.expected.glsl
@@ -28,7 +28,7 @@
     for(uint idx = local_invocation_index; (idx < 1024u); idx = (idx + 64u)) {
       uint i_1 = (idx / 256u);
       uint i_2 = (idx % 256u);
-      tile[i_1][i_2] = vec3(0.0f, 0.0f, 0.0f);
+      tile[i_1][i_2] = vec3(0.0f);
     }
   }
   barrier();
@@ -43,7 +43,7 @@
           if ((flip.value != 0u)) {
             loadIndex = loadIndex.yx;
           }
-          tile[r][((4u * LocalInvocationID.x) + c)] = textureLod(inputTex_samp, ((vec2(loadIndex) + vec2(0.25f, 0.25f)) / vec2(dims)), 0.0f).rgb;
+          tile[r][((4u * LocalInvocationID.x) + c)] = textureLod(inputTex_samp, ((vec2(loadIndex) + vec2(0.25f)) / vec2(dims)), 0.0f).rgb;
         }
       }
     }
@@ -67,7 +67,7 @@
             tint_tmp = all(lessThan(writeIndex, dims));
           }
           if ((tint_tmp)) {
-            vec3 acc = vec3(0.0f, 0.0f, 0.0f);
+            vec3 acc = vec3(0.0f);
             {
               for(uint f = 0u; (f < params.filterDim); f = (f + 1u)) {
                 uint i = ((center + f) - filterOffset);
diff --git a/test/tint/bug/tint/943.spvasm.expected.glsl b/test/tint/bug/tint/943.spvasm.expected.glsl
index 3f81f5a..2f05a68 100644
--- a/test/tint/bug/tint/943.spvasm.expected.glsl
+++ b/test/tint/bug/tint/943.spvasm.expected.glsl
@@ -40,7 +40,7 @@
   bool x_87 = false;
   bool x_88_phi = false;
   ivec2 x_76 = coord;
-  bool x_81 = all(greaterThanEqual(x_76, ivec2(0, 0)));
+  bool x_81 = all(greaterThanEqual(x_76, ivec2(0)));
   x_88_phi = x_81;
   if (x_81) {
     ivec2 x_84 = coord;
diff --git a/test/tint/bug/tint/948.wgsl.expected.glsl b/test/tint/bug/tint/948.wgsl.expected.glsl
index 992a6e7..c4742f4 100644
--- a/test/tint/bug/tint/948.wgsl.expected.glsl
+++ b/test/tint/bug/tint/948.wgsl.expected.glsl
@@ -67,7 +67,7 @@
   vec4 x_40 = texture(frameMapTexture_frameMapSampler, vec2(fX, 0.0f), 0.0f);
   vec4 x_47 = texture(frameMapTexture_frameMapSampler, vec2(fX, 0.25f), 0.0f);
   vec4 x_54 = texture(frameMapTexture_frameMapSampler, vec2(fX, 0.5f), 0.0f);
-  return mat4(vec4(x_40.x, x_40.y, x_40.z, x_40.w), vec4(x_47.x, x_47.y, x_47.z, x_47.w), vec4(x_54.x, x_54.y, x_54.z, x_54.w), vec4(vec4(0.0f, 0.0f, 0.0f, 0.0f).x, vec4(0.0f, 0.0f, 0.0f, 0.0f).y, vec4(0.0f, 0.0f, 0.0f, 0.0f).z, vec4(0.0f, 0.0f, 0.0f, 0.0f).w));
+  return mat4(vec4(x_40.x, x_40.y, x_40.z, x_40.w), vec4(x_47.x, x_47.y, x_47.z, x_47.w), vec4(x_54.x, x_54.y, x_54.z, x_54.w), vec4(vec4(0.0f).x, vec4(0.0f).y, vec4(0.0f).z, vec4(0.0f).w));
 }
 
 uniform highp sampler2D tileMapsTexture1_tileMapsSampler;
@@ -93,17 +93,17 @@
   vec4 nc = vec4(0.0f, 0.0f, 0.0f, 0.0f);
   float alpha = 0.0f;
   vec3 mixed = vec3(0.0f, 0.0f, 0.0f);
-  color = vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  color = vec4(0.0f);
   tileUV = fract(tUV);
   float x_91 = tileUV.y;
   tileUV.y = (1.0f - x_91);
   tileID = floor(tUV);
   vec2 x_101 = x_20.spriteMapSize;
-  sheetUnits = (vec2(1.0f, 1.0f) / x_101);
+  sheetUnits = (vec2(1.0f) / x_101);
   float x_106 = x_20.spriteCount;
   spriteUnits = (1.0f / x_106);
   vec2 x_111 = x_20.stageSize;
-  stageUnits = (vec2(1.0f, 1.0f) / x_111);
+  stageUnits = (vec2(1.0f) / x_111);
   i = 0;
   {
     for(; (i < 2); i = (i + 1)) {
@@ -111,14 +111,14 @@
         case 1: {
           vec2 x_150 = tileID;
           vec2 x_154 = x_20.stageSize;
-          vec4 x_156 = texture(tileMapsTexture1_tileMapsSampler, ((x_150 + vec2(0.5f, 0.5f)) / x_154), 0.0f);
+          vec4 x_156 = texture(tileMapsTexture1_tileMapsSampler, ((x_150 + vec2(0.5f)) / x_154), 0.0f);
           frameID_1 = x_156.x;
           break;
         }
         case 0: {
           vec2 x_136 = tileID;
           vec2 x_140 = x_20.stageSize;
-          vec4 x_142 = texture(tileMapsTexture0_tileMapsSampler, ((x_136 + vec2(0.5f, 0.5f)) / x_140), 0.0f);
+          vec4 x_142 = texture(tileMapsTexture0_tileMapsSampler, ((x_136 + vec2(0.5f)) / x_140), 0.0f);
           frameID_1 = x_142.x;
           break;
         }
diff --git a/test/tint/bug/tint/949.wgsl.expected.glsl b/test/tint/bug/tint/949.wgsl.expected.glsl
index 247d05c..8cac306 100644
--- a/test/tint/bug/tint/949.wgsl.expected.glsl
+++ b/test/tint/bug/tint/949.wgsl.expected.glsl
@@ -159,7 +159,7 @@
   vec3 x_119 = textureSample;
   mat3 x_125 = cotangentFrame_1;
   param = x_125;
-  param_1 = ((x_119 * 2.0f) - vec3(1.0f, 1.0f, 1.0f));
+  param_1 = ((x_119 * 2.0f) - vec3(1.0f));
   float x_128 = scale_1;
   param_2 = x_128;
   vec3 x_129 = perturbNormalBase_mf33_vf3_f1_(param, param_1, param_2);
@@ -250,7 +250,7 @@
   vec3 specularOutput = vec3(0.0f, 0.0f, 0.0f);
   vec3 output3 = vec3(0.0f, 0.0f, 0.0f);
   u_Float = 100.0f;
-  u_Color = vec3(0.5f, 0.5f, 0.5f);
+  u_Color = vec3(0.5f);
   vec4 x_262 = texture(TextureSamplerTexture_TextureSamplerSampler, vMainuv);
   tempTextureRead = x_262;
   vec4 x_264 = tempTextureRead;
@@ -259,8 +259,8 @@
   vec3 x_279 = x_269.u_cameraPosition;
   vec4 x_282 = v_output1;
   output5 = normalize((x_279 - vec3(x_282.x, x_282.y, x_282.z)));
-  output4 = vec4(0.0f, 0.0f, 0.0f, 0.0f);
-  uvOffset = vec2(0.0f, 0.0f);
+  output4 = vec4(0.0f);
+  uvOffset = vec2(0.0f);
   float x_292 = x_269.u_bumpStrength;
   normalScale = (1.0f / x_292);
   if (tint_symbol) {
@@ -292,8 +292,8 @@
   numSamples = (15.0f + (dot((invTBN * -(output5)), (invTBN * vec3(x_366.x, x_366.y, x_366.z))) * -11.0f));
   stepSize = (1.0f / numSamples);
   currRayHeight = 1.0f;
-  vCurrOffset = vec2(0.0f, 0.0f);
-  vLastOffset = vec2(0.0f, 0.0f);
+  vCurrOffset = vec2(0.0f);
+  vLastOffset = vec2(0.0f);
   lastSampledHeight = 1.0f;
   currSampledHeight = 1.0f;
   i = 0;
@@ -334,8 +334,8 @@
   viewDirectionW_1 = normalize((x_481 - vec3(x_482.x, x_482.y, x_482.z)));
   shadow = 1.0f;
   glossiness_1 = (1.0f * u_Float);
-  diffuseBase = vec3(0.0f, 0.0f, 0.0f);
-  specularBase = vec3(0.0f, 0.0f, 0.0f);
+  diffuseBase = vec3(0.0f);
+  specularBase = vec3(0.0f);
   vec4 x_494 = output4;
   normalW = vec3(x_494.x, x_494.y, x_494.z);
   param_11 = viewDirectionW_1;
diff --git a/test/tint/builtins/extractBits/vec3/i32.spvasm.expected.glsl b/test/tint/builtins/extractBits/vec3/i32.spvasm.expected.glsl
index e0f5e2b..960ed2f 100644
--- a/test/tint/builtins/extractBits/vec3/i32.spvasm.expected.glsl
+++ b/test/tint/builtins/extractBits/vec3/i32.spvasm.expected.glsl
@@ -7,7 +7,7 @@
 }
 
 void f_1() {
-  ivec3 v = ivec3(0, 0, 0);
+  ivec3 v = ivec3(0);
   uint offset_1 = 0u;
   uint count = 0u;
   ivec3 x_15 = tint_extract_bits(v, offset_1, count);
diff --git a/test/tint/builtins/extractBits/vec3/u32.spvasm.expected.glsl b/test/tint/builtins/extractBits/vec3/u32.spvasm.expected.glsl
index 457d137..c5150f2 100644
--- a/test/tint/builtins/extractBits/vec3/u32.spvasm.expected.glsl
+++ b/test/tint/builtins/extractBits/vec3/u32.spvasm.expected.glsl
@@ -7,7 +7,7 @@
 }
 
 void f_1() {
-  uvec3 v = uvec3(0u, 0u, 0u);
+  uvec3 v = uvec3(0u);
   uint offset_1 = 0u;
   uint count = 0u;
   uvec3 x_14 = tint_extract_bits(v, offset_1, count);
diff --git a/test/tint/builtins/gen/abs/002533.wgsl.expected.glsl b/test/tint/builtins/gen/abs/002533.wgsl.expected.glsl
index cd42630..d3b54a5 100644
--- a/test/tint/builtins/gen/abs/002533.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/abs/002533.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void abs_002533() {
-  vec4 res = abs(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = abs(vec4(0.0f));
 }
 
 vec4 vertex_main() {
   abs_002533();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void abs_002533() {
-  vec4 res = abs(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = abs(vec4(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void abs_002533() {
-  vec4 res = abs(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = abs(vec4(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/abs/005174.wgsl.expected.glsl b/test/tint/builtins/gen/abs/005174.wgsl.expected.glsl
index c2d7352..61ee184 100644
--- a/test/tint/builtins/gen/abs/005174.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/abs/005174.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void abs_005174() {
-  vec3 res = abs(vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = abs(vec3(0.0f));
 }
 
 vec4 vertex_main() {
   abs_005174();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void abs_005174() {
-  vec3 res = abs(vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = abs(vec3(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void abs_005174() {
-  vec3 res = abs(vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = abs(vec3(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/abs/1ce782.wgsl.expected.glsl b/test/tint/builtins/gen/abs/1ce782.wgsl.expected.glsl
index 8667ab2..175e413 100644
--- a/test/tint/builtins/gen/abs/1ce782.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/abs/1ce782.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void abs_1ce782() {
-  uvec4 res = uvec4(0u, 0u, 0u, 0u);
+  uvec4 res = uvec4(0u);
 }
 
 vec4 vertex_main() {
   abs_1ce782();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void abs_1ce782() {
-  uvec4 res = uvec4(0u, 0u, 0u, 0u);
+  uvec4 res = uvec4(0u);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void abs_1ce782() {
-  uvec4 res = uvec4(0u, 0u, 0u, 0u);
+  uvec4 res = uvec4(0u);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/abs/1e9d53.wgsl.expected.glsl b/test/tint/builtins/gen/abs/1e9d53.wgsl.expected.glsl
index 3f21129..0e7d450 100644
--- a/test/tint/builtins/gen/abs/1e9d53.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/abs/1e9d53.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void abs_1e9d53() {
-  vec2 res = abs(vec2(0.0f, 0.0f));
+  vec2 res = abs(vec2(0.0f));
 }
 
 vec4 vertex_main() {
   abs_1e9d53();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void abs_1e9d53() {
-  vec2 res = abs(vec2(0.0f, 0.0f));
+  vec2 res = abs(vec2(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void abs_1e9d53() {
-  vec2 res = abs(vec2(0.0f, 0.0f));
+  vec2 res = abs(vec2(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/abs/467cd1.wgsl.expected.glsl b/test/tint/builtins/gen/abs/467cd1.wgsl.expected.glsl
index aab9311..6f63e08 100644
--- a/test/tint/builtins/gen/abs/467cd1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/abs/467cd1.wgsl.expected.glsl
@@ -6,7 +6,7 @@
 
 vec4 vertex_main() {
   abs_467cd1();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/abs/4ad288.wgsl.expected.glsl b/test/tint/builtins/gen/abs/4ad288.wgsl.expected.glsl
index 78aa43e..57f766d 100644
--- a/test/tint/builtins/gen/abs/4ad288.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/abs/4ad288.wgsl.expected.glsl
@@ -6,7 +6,7 @@
 
 vec4 vertex_main() {
   abs_4ad288();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/abs/5ad50a.wgsl.expected.glsl b/test/tint/builtins/gen/abs/5ad50a.wgsl.expected.glsl
index 3b5f8bc..37c0c7e 100644
--- a/test/tint/builtins/gen/abs/5ad50a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/abs/5ad50a.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void abs_5ad50a() {
-  ivec3 res = abs(ivec3(0, 0, 0));
+  ivec3 res = abs(ivec3(0));
 }
 
 vec4 vertex_main() {
   abs_5ad50a();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void abs_5ad50a() {
-  ivec3 res = abs(ivec3(0, 0, 0));
+  ivec3 res = abs(ivec3(0));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void abs_5ad50a() {
-  ivec3 res = abs(ivec3(0, 0, 0));
+  ivec3 res = abs(ivec3(0));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/abs/7326de.wgsl.expected.glsl b/test/tint/builtins/gen/abs/7326de.wgsl.expected.glsl
index f4cd3ae..e417867 100644
--- a/test/tint/builtins/gen/abs/7326de.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/abs/7326de.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void abs_7326de() {
-  uvec3 res = uvec3(0u, 0u, 0u);
+  uvec3 res = uvec3(0u);
 }
 
 vec4 vertex_main() {
   abs_7326de();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void abs_7326de() {
-  uvec3 res = uvec3(0u, 0u, 0u);
+  uvec3 res = uvec3(0u);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void abs_7326de() {
-  uvec3 res = uvec3(0u, 0u, 0u);
+  uvec3 res = uvec3(0u);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/abs/7f28e6.wgsl.expected.glsl b/test/tint/builtins/gen/abs/7f28e6.wgsl.expected.glsl
index d3615c4..97b437b 100644
--- a/test/tint/builtins/gen/abs/7f28e6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/abs/7f28e6.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void abs_7f28e6() {
-  uvec2 res = uvec2(0u, 0u);
+  uvec2 res = uvec2(0u);
 }
 
 vec4 vertex_main() {
   abs_7f28e6();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void abs_7f28e6() {
-  uvec2 res = uvec2(0u, 0u);
+  uvec2 res = uvec2(0u);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void abs_7f28e6() {
-  uvec2 res = uvec2(0u, 0u);
+  uvec2 res = uvec2(0u);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/abs/7faa9e.wgsl.expected.glsl b/test/tint/builtins/gen/abs/7faa9e.wgsl.expected.glsl
index 8bbe6e9..dfd614c 100644
--- a/test/tint/builtins/gen/abs/7faa9e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/abs/7faa9e.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void abs_7faa9e() {
-  ivec2 res = abs(ivec2(0, 0));
+  ivec2 res = abs(ivec2(0));
 }
 
 vec4 vertex_main() {
   abs_7faa9e();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void abs_7faa9e() {
-  ivec2 res = abs(ivec2(0, 0));
+  ivec2 res = abs(ivec2(0));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void abs_7faa9e() {
-  ivec2 res = abs(ivec2(0, 0));
+  ivec2 res = abs(ivec2(0));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/abs/9c80a6.wgsl.expected.glsl b/test/tint/builtins/gen/abs/9c80a6.wgsl.expected.glsl
index 79e1928..c4dc1ed 100644
--- a/test/tint/builtins/gen/abs/9c80a6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/abs/9c80a6.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void abs_9c80a6() {
-  ivec4 res = abs(ivec4(0, 0, 0, 0));
+  ivec4 res = abs(ivec4(0));
 }
 
 vec4 vertex_main() {
   abs_9c80a6();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void abs_9c80a6() {
-  ivec4 res = abs(ivec4(0, 0, 0, 0));
+  ivec4 res = abs(ivec4(0));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void abs_9c80a6() {
-  ivec4 res = abs(ivec4(0, 0, 0, 0));
+  ivec4 res = abs(ivec4(0));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/abs/b96037.wgsl.expected.glsl b/test/tint/builtins/gen/abs/b96037.wgsl.expected.glsl
index 317cc1e..53edae5 100644
--- a/test/tint/builtins/gen/abs/b96037.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/abs/b96037.wgsl.expected.glsl
@@ -6,7 +6,7 @@
 
 vec4 vertex_main() {
   abs_b96037();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/acos/489247.wgsl.expected.glsl b/test/tint/builtins/gen/acos/489247.wgsl.expected.glsl
index a91f29c..92c7481 100644
--- a/test/tint/builtins/gen/acos/489247.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/acos/489247.wgsl.expected.glsl
@@ -6,7 +6,7 @@
 
 vec4 vertex_main() {
   acos_489247();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/acos/8e2acf.wgsl.expected.glsl b/test/tint/builtins/gen/acos/8e2acf.wgsl.expected.glsl
index 8680941..8181a20 100644
--- a/test/tint/builtins/gen/acos/8e2acf.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/acos/8e2acf.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void acos_8e2acf() {
-  vec4 res = acos(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = acos(vec4(0.0f));
 }
 
 vec4 vertex_main() {
   acos_8e2acf();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void acos_8e2acf() {
-  vec4 res = acos(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = acos(vec4(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void acos_8e2acf() {
-  vec4 res = acos(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = acos(vec4(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/acos/a610c4.wgsl.expected.glsl b/test/tint/builtins/gen/acos/a610c4.wgsl.expected.glsl
index 886d13f..5ef2975 100644
--- a/test/tint/builtins/gen/acos/a610c4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/acos/a610c4.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void acos_a610c4() {
-  vec3 res = acos(vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = acos(vec3(0.0f));
 }
 
 vec4 vertex_main() {
   acos_a610c4();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void acos_a610c4() {
-  vec3 res = acos(vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = acos(vec3(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void acos_a610c4() {
-  vec3 res = acos(vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = acos(vec3(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/acos/dfc915.wgsl.expected.glsl b/test/tint/builtins/gen/acos/dfc915.wgsl.expected.glsl
index 6c1ac64..c55a73f 100644
--- a/test/tint/builtins/gen/acos/dfc915.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/acos/dfc915.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void acos_dfc915() {
-  vec2 res = acos(vec2(0.0f, 0.0f));
+  vec2 res = acos(vec2(0.0f));
 }
 
 vec4 vertex_main() {
   acos_dfc915();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void acos_dfc915() {
-  vec2 res = acos(vec2(0.0f, 0.0f));
+  vec2 res = acos(vec2(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void acos_dfc915() {
-  vec2 res = acos(vec2(0.0f, 0.0f));
+  vec2 res = acos(vec2(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/all/353d6a.wgsl.expected.glsl b/test/tint/builtins/gen/all/353d6a.wgsl.expected.glsl
index 133f923..180d4b4 100644
--- a/test/tint/builtins/gen/all/353d6a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/all/353d6a.wgsl.expected.glsl
@@ -6,7 +6,7 @@
 
 vec4 vertex_main() {
   all_353d6a();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/all/986c7b.wgsl.expected.glsl b/test/tint/builtins/gen/all/986c7b.wgsl.expected.glsl
index ad9ee03..3a2912c 100644
--- a/test/tint/builtins/gen/all/986c7b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/all/986c7b.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void all_986c7b() {
-  bool res = all(bvec4(false, false, false, false));
+  bool res = all(bvec4(false));
 }
 
 vec4 vertex_main() {
   all_986c7b();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void all_986c7b() {
-  bool res = all(bvec4(false, false, false, false));
+  bool res = all(bvec4(false));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void all_986c7b() {
-  bool res = all(bvec4(false, false, false, false));
+  bool res = all(bvec4(false));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/all/bd2dba.wgsl.expected.glsl b/test/tint/builtins/gen/all/bd2dba.wgsl.expected.glsl
index 0aec2a7..e1108b9 100644
--- a/test/tint/builtins/gen/all/bd2dba.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/all/bd2dba.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void all_bd2dba() {
-  bool res = all(bvec3(false, false, false));
+  bool res = all(bvec3(false));
 }
 
 vec4 vertex_main() {
   all_bd2dba();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void all_bd2dba() {
-  bool res = all(bvec3(false, false, false));
+  bool res = all(bvec3(false));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void all_bd2dba() {
-  bool res = all(bvec3(false, false, false));
+  bool res = all(bvec3(false));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/all/f46790.wgsl.expected.glsl b/test/tint/builtins/gen/all/f46790.wgsl.expected.glsl
index f3bd430..ba3e950 100644
--- a/test/tint/builtins/gen/all/f46790.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/all/f46790.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void all_f46790() {
-  bool res = all(bvec2(false, false));
+  bool res = all(bvec2(false));
 }
 
 vec4 vertex_main() {
   all_f46790();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void all_f46790() {
-  bool res = all(bvec2(false, false));
+  bool res = all(bvec2(false));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void all_f46790() {
-  bool res = all(bvec2(false, false));
+  bool res = all(bvec2(false));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/any/083428.wgsl.expected.glsl b/test/tint/builtins/gen/any/083428.wgsl.expected.glsl
index 9c22156..a703a0b 100644
--- a/test/tint/builtins/gen/any/083428.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/any/083428.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void any_083428() {
-  bool res = any(bvec4(false, false, false, false));
+  bool res = any(bvec4(false));
 }
 
 vec4 vertex_main() {
   any_083428();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void any_083428() {
-  bool res = any(bvec4(false, false, false, false));
+  bool res = any(bvec4(false));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void any_083428() {
-  bool res = any(bvec4(false, false, false, false));
+  bool res = any(bvec4(false));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/any/0e3e58.wgsl.expected.glsl b/test/tint/builtins/gen/any/0e3e58.wgsl.expected.glsl
index 87a9a7b..9ab5cb1 100644
--- a/test/tint/builtins/gen/any/0e3e58.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/any/0e3e58.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void any_0e3e58() {
-  bool res = any(bvec2(false, false));
+  bool res = any(bvec2(false));
 }
 
 vec4 vertex_main() {
   any_0e3e58();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void any_0e3e58() {
-  bool res = any(bvec2(false, false));
+  bool res = any(bvec2(false));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void any_0e3e58() {
-  bool res = any(bvec2(false, false));
+  bool res = any(bvec2(false));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/any/2ab91a.wgsl.expected.glsl b/test/tint/builtins/gen/any/2ab91a.wgsl.expected.glsl
index 9543854..1ea6828 100644
--- a/test/tint/builtins/gen/any/2ab91a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/any/2ab91a.wgsl.expected.glsl
@@ -6,7 +6,7 @@
 
 vec4 vertex_main() {
   any_2ab91a();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/any/e755c1.wgsl.expected.glsl b/test/tint/builtins/gen/any/e755c1.wgsl.expected.glsl
index 9c4ed83..4d5e877 100644
--- a/test/tint/builtins/gen/any/e755c1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/any/e755c1.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void any_e755c1() {
-  bool res = any(bvec3(false, false, false));
+  bool res = any(bvec3(false));
 }
 
 vec4 vertex_main() {
   any_e755c1();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void any_e755c1() {
-  bool res = any(bvec3(false, false, false));
+  bool res = any(bvec3(false));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void any_e755c1() {
-  bool res = any(bvec3(false, false, false));
+  bool res = any(bvec3(false));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/arrayLength/1588cd.wgsl.expected.glsl b/test/tint/builtins/gen/arrayLength/1588cd.wgsl.expected.glsl
index bd731f7..a143e18 100644
--- a/test/tint/builtins/gen/arrayLength/1588cd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/arrayLength/1588cd.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 
 vec4 vertex_main() {
   arrayLength_1588cd();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/arrayLength/61b1c7.wgsl.expected.glsl b/test/tint/builtins/gen/arrayLength/61b1c7.wgsl.expected.glsl
index 3825f71..46667de 100644
--- a/test/tint/builtins/gen/arrayLength/61b1c7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/arrayLength/61b1c7.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 
 vec4 vertex_main() {
   arrayLength_61b1c7();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/arrayLength/a0f5ca.wgsl.expected.glsl b/test/tint/builtins/gen/arrayLength/a0f5ca.wgsl.expected.glsl
index da41f22..44aaf23 100644
--- a/test/tint/builtins/gen/arrayLength/a0f5ca.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/arrayLength/a0f5ca.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 
 vec4 vertex_main() {
   arrayLength_a0f5ca();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/arrayLength/cdd123.wgsl.expected.glsl b/test/tint/builtins/gen/arrayLength/cdd123.wgsl.expected.glsl
index d68cc4c..dac4336 100644
--- a/test/tint/builtins/gen/arrayLength/cdd123.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/arrayLength/cdd123.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 
 vec4 vertex_main() {
   arrayLength_cdd123();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/arrayLength/cfca0a.wgsl.expected.glsl b/test/tint/builtins/gen/arrayLength/cfca0a.wgsl.expected.glsl
index 4503a34..e159bef 100644
--- a/test/tint/builtins/gen/arrayLength/cfca0a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/arrayLength/cfca0a.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 
 vec4 vertex_main() {
   arrayLength_cfca0a();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/arrayLength/eb510f.wgsl.expected.glsl b/test/tint/builtins/gen/arrayLength/eb510f.wgsl.expected.glsl
index ac1b3b5..a11f1aa 100644
--- a/test/tint/builtins/gen/arrayLength/eb510f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/arrayLength/eb510f.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 
 vec4 vertex_main() {
   arrayLength_eb510f();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/asin/064953.wgsl.expected.glsl b/test/tint/builtins/gen/asin/064953.wgsl.expected.glsl
index 5501634..32288e1 100644
--- a/test/tint/builtins/gen/asin/064953.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/asin/064953.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void asin_064953() {
-  vec4 res = asin(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = asin(vec4(0.0f));
 }
 
 vec4 vertex_main() {
   asin_064953();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void asin_064953() {
-  vec4 res = asin(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = asin(vec4(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void asin_064953() {
-  vec4 res = asin(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = asin(vec4(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/asin/7b6a44.wgsl.expected.glsl b/test/tint/builtins/gen/asin/7b6a44.wgsl.expected.glsl
index 3d07aab..ba3c81d 100644
--- a/test/tint/builtins/gen/asin/7b6a44.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/asin/7b6a44.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void asin_7b6a44() {
-  vec2 res = asin(vec2(0.0f, 0.0f));
+  vec2 res = asin(vec2(0.0f));
 }
 
 vec4 vertex_main() {
   asin_7b6a44();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void asin_7b6a44() {
-  vec2 res = asin(vec2(0.0f, 0.0f));
+  vec2 res = asin(vec2(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void asin_7b6a44() {
-  vec2 res = asin(vec2(0.0f, 0.0f));
+  vec2 res = asin(vec2(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/asin/8cd9c9.wgsl.expected.glsl b/test/tint/builtins/gen/asin/8cd9c9.wgsl.expected.glsl
index ad06010..0093e6c 100644
--- a/test/tint/builtins/gen/asin/8cd9c9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/asin/8cd9c9.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void asin_8cd9c9() {
-  vec3 res = asin(vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = asin(vec3(0.0f));
 }
 
 vec4 vertex_main() {
   asin_8cd9c9();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void asin_8cd9c9() {
-  vec3 res = asin(vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = asin(vec3(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void asin_8cd9c9() {
-  vec3 res = asin(vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = asin(vec3(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/asin/c0c272.wgsl.expected.glsl b/test/tint/builtins/gen/asin/c0c272.wgsl.expected.glsl
index fba3bee..97564dc 100644
--- a/test/tint/builtins/gen/asin/c0c272.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/asin/c0c272.wgsl.expected.glsl
@@ -6,7 +6,7 @@
 
 vec4 vertex_main() {
   asin_c0c272();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/atan/02979a.wgsl.expected.glsl b/test/tint/builtins/gen/atan/02979a.wgsl.expected.glsl
index e409c45..ba9c6a0 100644
--- a/test/tint/builtins/gen/atan/02979a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/atan/02979a.wgsl.expected.glsl
@@ -6,7 +6,7 @@
 
 vec4 vertex_main() {
   atan_02979a();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/atan/331e6d.wgsl.expected.glsl b/test/tint/builtins/gen/atan/331e6d.wgsl.expected.glsl
index 029fbd8..594add7 100644
--- a/test/tint/builtins/gen/atan/331e6d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/atan/331e6d.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void atan_331e6d() {
-  vec3 res = atan(vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = atan(vec3(0.0f));
 }
 
 vec4 vertex_main() {
   atan_331e6d();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void atan_331e6d() {
-  vec3 res = atan(vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = atan(vec3(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void atan_331e6d() {
-  vec3 res = atan(vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = atan(vec3(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/atan/a8b696.wgsl.expected.glsl b/test/tint/builtins/gen/atan/a8b696.wgsl.expected.glsl
index 8c441db..e1ef79d 100644
--- a/test/tint/builtins/gen/atan/a8b696.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/atan/a8b696.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void atan_a8b696() {
-  vec4 res = atan(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = atan(vec4(0.0f));
 }
 
 vec4 vertex_main() {
   atan_a8b696();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void atan_a8b696() {
-  vec4 res = atan(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = atan(vec4(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void atan_a8b696() {
-  vec4 res = atan(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = atan(vec4(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/atan/ad96e4.wgsl.expected.glsl b/test/tint/builtins/gen/atan/ad96e4.wgsl.expected.glsl
index 9fff633..89dfe35 100644
--- a/test/tint/builtins/gen/atan/ad96e4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/atan/ad96e4.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void atan_ad96e4() {
-  vec2 res = atan(vec2(0.0f, 0.0f));
+  vec2 res = atan(vec2(0.0f));
 }
 
 vec4 vertex_main() {
   atan_ad96e4();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void atan_ad96e4() {
-  vec2 res = atan(vec2(0.0f, 0.0f));
+  vec2 res = atan(vec2(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void atan_ad96e4() {
-  vec2 res = atan(vec2(0.0f, 0.0f));
+  vec2 res = atan(vec2(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/atan2/57fb13.wgsl.expected.glsl b/test/tint/builtins/gen/atan2/57fb13.wgsl.expected.glsl
index e3a8ec4..ce4a3fa 100644
--- a/test/tint/builtins/gen/atan2/57fb13.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/atan2/57fb13.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void atan2_57fb13() {
-  vec2 res = atan(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+  vec2 res = atan(vec2(0.0f), vec2(0.0f));
 }
 
 vec4 vertex_main() {
   atan2_57fb13();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void atan2_57fb13() {
-  vec2 res = atan(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+  vec2 res = atan(vec2(0.0f), vec2(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void atan2_57fb13() {
-  vec2 res = atan(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+  vec2 res = atan(vec2(0.0f), vec2(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/atan2/96057c.wgsl.expected.glsl b/test/tint/builtins/gen/atan2/96057c.wgsl.expected.glsl
index 0f96e8a..37d0f9a 100644
--- a/test/tint/builtins/gen/atan2/96057c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/atan2/96057c.wgsl.expected.glsl
@@ -6,7 +6,7 @@
 
 vec4 vertex_main() {
   atan2_96057c();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/atan2/a70d0d.wgsl.expected.glsl b/test/tint/builtins/gen/atan2/a70d0d.wgsl.expected.glsl
index dc776ae..199e4b3 100644
--- a/test/tint/builtins/gen/atan2/a70d0d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/atan2/a70d0d.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void atan2_a70d0d() {
-  vec3 res = atan(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = atan(vec3(0.0f), vec3(0.0f));
 }
 
 vec4 vertex_main() {
   atan2_a70d0d();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void atan2_a70d0d() {
-  vec3 res = atan(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = atan(vec3(0.0f), vec3(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void atan2_a70d0d() {
-  vec3 res = atan(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = atan(vec3(0.0f), vec3(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/atan2/ae713e.wgsl.expected.glsl b/test/tint/builtins/gen/atan2/ae713e.wgsl.expected.glsl
index 938d025..afe5cf1 100644
--- a/test/tint/builtins/gen/atan2/ae713e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/atan2/ae713e.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void atan2_ae713e() {
-  vec4 res = atan(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = atan(vec4(0.0f), vec4(0.0f));
 }
 
 vec4 vertex_main() {
   atan2_ae713e();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void atan2_ae713e() {
-  vec4 res = atan(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = atan(vec4(0.0f), vec4(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void atan2_ae713e() {
-  vec4 res = atan(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = atan(vec4(0.0f), vec4(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/ceil/34064b.wgsl.expected.glsl b/test/tint/builtins/gen/ceil/34064b.wgsl.expected.glsl
index fd1f85f..f84576f 100644
--- a/test/tint/builtins/gen/ceil/34064b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/ceil/34064b.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void ceil_34064b() {
-  vec3 res = ceil(vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = ceil(vec3(0.0f));
 }
 
 vec4 vertex_main() {
   ceil_34064b();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void ceil_34064b() {
-  vec3 res = ceil(vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = ceil(vec3(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void ceil_34064b() {
-  vec3 res = ceil(vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = ceil(vec3(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/ceil/678655.wgsl.expected.glsl b/test/tint/builtins/gen/ceil/678655.wgsl.expected.glsl
index 882df5a..08ca901 100644
--- a/test/tint/builtins/gen/ceil/678655.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/ceil/678655.wgsl.expected.glsl
@@ -6,7 +6,7 @@
 
 vec4 vertex_main() {
   ceil_678655();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/ceil/96f597.wgsl.expected.glsl b/test/tint/builtins/gen/ceil/96f597.wgsl.expected.glsl
index 11797be..eb63086 100644
--- a/test/tint/builtins/gen/ceil/96f597.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/ceil/96f597.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void ceil_96f597() {
-  vec2 res = ceil(vec2(0.0f, 0.0f));
+  vec2 res = ceil(vec2(0.0f));
 }
 
 vec4 vertex_main() {
   ceil_96f597();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void ceil_96f597() {
-  vec2 res = ceil(vec2(0.0f, 0.0f));
+  vec2 res = ceil(vec2(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void ceil_96f597() {
-  vec2 res = ceil(vec2(0.0f, 0.0f));
+  vec2 res = ceil(vec2(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/ceil/b74c16.wgsl.expected.glsl b/test/tint/builtins/gen/ceil/b74c16.wgsl.expected.glsl
index 0376e24..da3b29e 100644
--- a/test/tint/builtins/gen/ceil/b74c16.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/ceil/b74c16.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void ceil_b74c16() {
-  vec4 res = ceil(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = ceil(vec4(0.0f));
 }
 
 vec4 vertex_main() {
   ceil_b74c16();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void ceil_b74c16() {
-  vec4 res = ceil(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = ceil(vec4(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void ceil_b74c16() {
-  vec4 res = ceil(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = ceil(vec4(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/clamp/0acf8f.wgsl.expected.glsl b/test/tint/builtins/gen/clamp/0acf8f.wgsl.expected.glsl
index 4c72620..2fc9424 100644
--- a/test/tint/builtins/gen/clamp/0acf8f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/clamp/0acf8f.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void clamp_0acf8f() {
-  vec2 res = clamp(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+  vec2 res = clamp(vec2(0.0f), vec2(0.0f), vec2(0.0f));
 }
 
 vec4 vertex_main() {
   clamp_0acf8f();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void clamp_0acf8f() {
-  vec2 res = clamp(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+  vec2 res = clamp(vec2(0.0f), vec2(0.0f), vec2(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void clamp_0acf8f() {
-  vec2 res = clamp(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+  vec2 res = clamp(vec2(0.0f), vec2(0.0f), vec2(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/clamp/1a32e3.wgsl.expected.glsl b/test/tint/builtins/gen/clamp/1a32e3.wgsl.expected.glsl
index 45c941d..15c29ae 100644
--- a/test/tint/builtins/gen/clamp/1a32e3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/clamp/1a32e3.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void clamp_1a32e3() {
-  ivec4 res = clamp(ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0));
+  ivec4 res = clamp(ivec4(0), ivec4(0), ivec4(0));
 }
 
 vec4 vertex_main() {
   clamp_1a32e3();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void clamp_1a32e3() {
-  ivec4 res = clamp(ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0));
+  ivec4 res = clamp(ivec4(0), ivec4(0), ivec4(0));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void clamp_1a32e3() {
-  ivec4 res = clamp(ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0));
+  ivec4 res = clamp(ivec4(0), ivec4(0), ivec4(0));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/clamp/2bd567.wgsl.expected.glsl b/test/tint/builtins/gen/clamp/2bd567.wgsl.expected.glsl
index 8e0dc56..378d401 100644
--- a/test/tint/builtins/gen/clamp/2bd567.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/clamp/2bd567.wgsl.expected.glsl
@@ -6,7 +6,7 @@
 
 vec4 vertex_main() {
   clamp_2bd567();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/clamp/2bde41.wgsl.expected.glsl b/test/tint/builtins/gen/clamp/2bde41.wgsl.expected.glsl
index df48145..11c5f03 100644
--- a/test/tint/builtins/gen/clamp/2bde41.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/clamp/2bde41.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void clamp_2bde41() {
-  vec4 res = clamp(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = clamp(vec4(0.0f), vec4(0.0f), vec4(0.0f));
 }
 
 vec4 vertex_main() {
   clamp_2bde41();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void clamp_2bde41() {
-  vec4 res = clamp(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = clamp(vec4(0.0f), vec4(0.0f), vec4(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void clamp_2bde41() {
-  vec4 res = clamp(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = clamp(vec4(0.0f), vec4(0.0f), vec4(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/clamp/548fc7.wgsl.expected.glsl b/test/tint/builtins/gen/clamp/548fc7.wgsl.expected.glsl
index d85d1c5..8da4004 100644
--- a/test/tint/builtins/gen/clamp/548fc7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/clamp/548fc7.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void clamp_548fc7() {
-  uvec3 res = clamp(uvec3(0u, 0u, 0u), uvec3(0u, 0u, 0u), uvec3(0u, 0u, 0u));
+  uvec3 res = clamp(uvec3(0u), uvec3(0u), uvec3(0u));
 }
 
 vec4 vertex_main() {
   clamp_548fc7();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void clamp_548fc7() {
-  uvec3 res = clamp(uvec3(0u, 0u, 0u), uvec3(0u, 0u, 0u), uvec3(0u, 0u, 0u));
+  uvec3 res = clamp(uvec3(0u), uvec3(0u), uvec3(0u));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void clamp_548fc7() {
-  uvec3 res = clamp(uvec3(0u, 0u, 0u), uvec3(0u, 0u, 0u), uvec3(0u, 0u, 0u));
+  uvec3 res = clamp(uvec3(0u), uvec3(0u), uvec3(0u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/clamp/5f0819.wgsl.expected.glsl b/test/tint/builtins/gen/clamp/5f0819.wgsl.expected.glsl
index 1690757..e09e900 100644
--- a/test/tint/builtins/gen/clamp/5f0819.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/clamp/5f0819.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void clamp_5f0819() {
-  ivec3 res = clamp(ivec3(0, 0, 0), ivec3(0, 0, 0), ivec3(0, 0, 0));
+  ivec3 res = clamp(ivec3(0), ivec3(0), ivec3(0));
 }
 
 vec4 vertex_main() {
   clamp_5f0819();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void clamp_5f0819() {
-  ivec3 res = clamp(ivec3(0, 0, 0), ivec3(0, 0, 0), ivec3(0, 0, 0));
+  ivec3 res = clamp(ivec3(0), ivec3(0), ivec3(0));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void clamp_5f0819() {
-  ivec3 res = clamp(ivec3(0, 0, 0), ivec3(0, 0, 0), ivec3(0, 0, 0));
+  ivec3 res = clamp(ivec3(0), ivec3(0), ivec3(0));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/clamp/6c1749.wgsl.expected.glsl b/test/tint/builtins/gen/clamp/6c1749.wgsl.expected.glsl
index 7b02d80..4add75c 100644
--- a/test/tint/builtins/gen/clamp/6c1749.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/clamp/6c1749.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void clamp_6c1749() {
-  ivec2 res = clamp(ivec2(0, 0), ivec2(0, 0), ivec2(0, 0));
+  ivec2 res = clamp(ivec2(0), ivec2(0), ivec2(0));
 }
 
 vec4 vertex_main() {
   clamp_6c1749();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void clamp_6c1749() {
-  ivec2 res = clamp(ivec2(0, 0), ivec2(0, 0), ivec2(0, 0));
+  ivec2 res = clamp(ivec2(0), ivec2(0), ivec2(0));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void clamp_6c1749() {
-  ivec2 res = clamp(ivec2(0, 0), ivec2(0, 0), ivec2(0, 0));
+  ivec2 res = clamp(ivec2(0), ivec2(0), ivec2(0));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/clamp/7706d7.wgsl.expected.glsl b/test/tint/builtins/gen/clamp/7706d7.wgsl.expected.glsl
index a53b3e7..5578471 100644
--- a/test/tint/builtins/gen/clamp/7706d7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/clamp/7706d7.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void clamp_7706d7() {
-  uvec2 res = clamp(uvec2(0u, 0u), uvec2(0u, 0u), uvec2(0u, 0u));
+  uvec2 res = clamp(uvec2(0u), uvec2(0u), uvec2(0u));
 }
 
 vec4 vertex_main() {
   clamp_7706d7();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void clamp_7706d7() {
-  uvec2 res = clamp(uvec2(0u, 0u), uvec2(0u, 0u), uvec2(0u, 0u));
+  uvec2 res = clamp(uvec2(0u), uvec2(0u), uvec2(0u));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void clamp_7706d7() {
-  uvec2 res = clamp(uvec2(0u, 0u), uvec2(0u, 0u), uvec2(0u, 0u));
+  uvec2 res = clamp(uvec2(0u), uvec2(0u), uvec2(0u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/clamp/867397.wgsl.expected.glsl b/test/tint/builtins/gen/clamp/867397.wgsl.expected.glsl
index 1a12c34..792b15f 100644
--- a/test/tint/builtins/gen/clamp/867397.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/clamp/867397.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void clamp_867397() {
-  vec3 res = clamp(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = clamp(vec3(0.0f), vec3(0.0f), vec3(0.0f));
 }
 
 vec4 vertex_main() {
   clamp_867397();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void clamp_867397() {
-  vec3 res = clamp(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = clamp(vec3(0.0f), vec3(0.0f), vec3(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void clamp_867397() {
-  vec3 res = clamp(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = clamp(vec3(0.0f), vec3(0.0f), vec3(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/clamp/a2de25.wgsl.expected.glsl b/test/tint/builtins/gen/clamp/a2de25.wgsl.expected.glsl
index 37b98f1..002c0bd 100644
--- a/test/tint/builtins/gen/clamp/a2de25.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/clamp/a2de25.wgsl.expected.glsl
@@ -6,7 +6,7 @@
 
 vec4 vertex_main() {
   clamp_a2de25();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/clamp/b07c65.wgsl.expected.glsl b/test/tint/builtins/gen/clamp/b07c65.wgsl.expected.glsl
index cca602a..1f7e91e 100644
--- a/test/tint/builtins/gen/clamp/b07c65.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/clamp/b07c65.wgsl.expected.glsl
@@ -6,7 +6,7 @@
 
 vec4 vertex_main() {
   clamp_b07c65();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/clamp/bd43ce.wgsl.expected.glsl b/test/tint/builtins/gen/clamp/bd43ce.wgsl.expected.glsl
index 1671786..5e8edd1 100644
--- a/test/tint/builtins/gen/clamp/bd43ce.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/clamp/bd43ce.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void clamp_bd43ce() {
-  uvec4 res = clamp(uvec4(0u, 0u, 0u, 0u), uvec4(0u, 0u, 0u, 0u), uvec4(0u, 0u, 0u, 0u));
+  uvec4 res = clamp(uvec4(0u), uvec4(0u), uvec4(0u));
 }
 
 vec4 vertex_main() {
   clamp_bd43ce();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void clamp_bd43ce() {
-  uvec4 res = clamp(uvec4(0u, 0u, 0u, 0u), uvec4(0u, 0u, 0u, 0u), uvec4(0u, 0u, 0u, 0u));
+  uvec4 res = clamp(uvec4(0u), uvec4(0u), uvec4(0u));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void clamp_bd43ce() {
-  uvec4 res = clamp(uvec4(0u, 0u, 0u, 0u), uvec4(0u, 0u, 0u, 0u), uvec4(0u, 0u, 0u, 0u));
+  uvec4 res = clamp(uvec4(0u), uvec4(0u), uvec4(0u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/cos/16dc15.wgsl.expected.glsl b/test/tint/builtins/gen/cos/16dc15.wgsl.expected.glsl
index f2a6239..31aca9f 100644
--- a/test/tint/builtins/gen/cos/16dc15.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/cos/16dc15.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void cos_16dc15() {
-  vec3 res = cos(vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = cos(vec3(0.0f));
 }
 
 vec4 vertex_main() {
   cos_16dc15();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void cos_16dc15() {
-  vec3 res = cos(vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = cos(vec3(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void cos_16dc15() {
-  vec3 res = cos(vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = cos(vec3(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/cos/29d66d.wgsl.expected.glsl b/test/tint/builtins/gen/cos/29d66d.wgsl.expected.glsl
index 82d20b8..38b3b1f 100644
--- a/test/tint/builtins/gen/cos/29d66d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/cos/29d66d.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void cos_29d66d() {
-  vec4 res = cos(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = cos(vec4(0.0f));
 }
 
 vec4 vertex_main() {
   cos_29d66d();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void cos_29d66d() {
-  vec4 res = cos(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = cos(vec4(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void cos_29d66d() {
-  vec4 res = cos(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = cos(vec4(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/cos/c3b486.wgsl.expected.glsl b/test/tint/builtins/gen/cos/c3b486.wgsl.expected.glsl
index 86e401c..06d925e 100644
--- a/test/tint/builtins/gen/cos/c3b486.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/cos/c3b486.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void cos_c3b486() {
-  vec2 res = cos(vec2(0.0f, 0.0f));
+  vec2 res = cos(vec2(0.0f));
 }
 
 vec4 vertex_main() {
   cos_c3b486();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void cos_c3b486() {
-  vec2 res = cos(vec2(0.0f, 0.0f));
+  vec2 res = cos(vec2(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void cos_c3b486() {
-  vec2 res = cos(vec2(0.0f, 0.0f));
+  vec2 res = cos(vec2(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/cos/c5c28e.wgsl.expected.glsl b/test/tint/builtins/gen/cos/c5c28e.wgsl.expected.glsl
index 054c1d2..44893f8 100644
--- a/test/tint/builtins/gen/cos/c5c28e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/cos/c5c28e.wgsl.expected.glsl
@@ -6,7 +6,7 @@
 
 vec4 vertex_main() {
   cos_c5c28e();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/cosh/377652.wgsl.expected.glsl b/test/tint/builtins/gen/cosh/377652.wgsl.expected.glsl
index 3a08952..e4bf7bc 100644
--- a/test/tint/builtins/gen/cosh/377652.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/cosh/377652.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void cosh_377652() {
-  vec3 res = cosh(vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = cosh(vec3(0.0f));
 }
 
 vec4 vertex_main() {
   cosh_377652();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void cosh_377652() {
-  vec3 res = cosh(vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = cosh(vec3(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void cosh_377652() {
-  vec3 res = cosh(vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = cosh(vec3(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/cosh/c13756.wgsl.expected.glsl b/test/tint/builtins/gen/cosh/c13756.wgsl.expected.glsl
index b207eb9..a59e413 100644
--- a/test/tint/builtins/gen/cosh/c13756.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/cosh/c13756.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void cosh_c13756() {
-  vec2 res = cosh(vec2(0.0f, 0.0f));
+  vec2 res = cosh(vec2(0.0f));
 }
 
 vec4 vertex_main() {
   cosh_c13756();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void cosh_c13756() {
-  vec2 res = cosh(vec2(0.0f, 0.0f));
+  vec2 res = cosh(vec2(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void cosh_c13756() {
-  vec2 res = cosh(vec2(0.0f, 0.0f));
+  vec2 res = cosh(vec2(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/cosh/da92dd.wgsl.expected.glsl b/test/tint/builtins/gen/cosh/da92dd.wgsl.expected.glsl
index 14dfd00..0d980ed 100644
--- a/test/tint/builtins/gen/cosh/da92dd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/cosh/da92dd.wgsl.expected.glsl
@@ -6,7 +6,7 @@
 
 vec4 vertex_main() {
   cosh_da92dd();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/cosh/e0c1de.wgsl.expected.glsl b/test/tint/builtins/gen/cosh/e0c1de.wgsl.expected.glsl
index 1c14215..0cf7d85 100644
--- a/test/tint/builtins/gen/cosh/e0c1de.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/cosh/e0c1de.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void cosh_e0c1de() {
-  vec4 res = cosh(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = cosh(vec4(0.0f));
 }
 
 vec4 vertex_main() {
   cosh_e0c1de();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void cosh_e0c1de() {
-  vec4 res = cosh(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = cosh(vec4(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void cosh_e0c1de() {
-  vec4 res = cosh(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = cosh(vec4(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/countLeadingZeros/208d46.wgsl.expected.glsl b/test/tint/builtins/gen/countLeadingZeros/208d46.wgsl.expected.glsl
index 1ea064e..4282edf 100644
--- a/test/tint/builtins/gen/countLeadingZeros/208d46.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/countLeadingZeros/208d46.wgsl.expected.glsl
@@ -21,7 +21,7 @@
 
 vec4 vertex_main() {
   countLeadingZeros_208d46();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/countLeadingZeros/6d4656.wgsl.expected.glsl b/test/tint/builtins/gen/countLeadingZeros/6d4656.wgsl.expected.glsl
index caff692..d9b4f1d 100644
--- a/test/tint/builtins/gen/countLeadingZeros/6d4656.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/countLeadingZeros/6d4656.wgsl.expected.glsl
@@ -21,7 +21,7 @@
 
 vec4 vertex_main() {
   countLeadingZeros_6d4656();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/countLeadingZeros/70783f.wgsl.expected.glsl b/test/tint/builtins/gen/countLeadingZeros/70783f.wgsl.expected.glsl
index 1518710..0b2ab6c 100644
--- a/test/tint/builtins/gen/countLeadingZeros/70783f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/countLeadingZeros/70783f.wgsl.expected.glsl
@@ -16,12 +16,12 @@
 }
 
 void countLeadingZeros_70783f() {
-  uvec2 res = tint_count_leading_zeros(uvec2(0u, 0u));
+  uvec2 res = tint_count_leading_zeros(uvec2(0u));
 }
 
 vec4 vertex_main() {
   countLeadingZeros_70783f();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -51,7 +51,7 @@
 }
 
 void countLeadingZeros_70783f() {
-  uvec2 res = tint_count_leading_zeros(uvec2(0u, 0u));
+  uvec2 res = tint_count_leading_zeros(uvec2(0u));
 }
 
 void fragment_main() {
@@ -80,7 +80,7 @@
 }
 
 void countLeadingZeros_70783f() {
-  uvec2 res = tint_count_leading_zeros(uvec2(0u, 0u));
+  uvec2 res = tint_count_leading_zeros(uvec2(0u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/countLeadingZeros/7c38a6.wgsl.expected.glsl b/test/tint/builtins/gen/countLeadingZeros/7c38a6.wgsl.expected.glsl
index a8a6a3c..89d2e75 100644
--- a/test/tint/builtins/gen/countLeadingZeros/7c38a6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/countLeadingZeros/7c38a6.wgsl.expected.glsl
@@ -16,12 +16,12 @@
 }
 
 void countLeadingZeros_7c38a6() {
-  ivec3 res = tint_count_leading_zeros(ivec3(0, 0, 0));
+  ivec3 res = tint_count_leading_zeros(ivec3(0));
 }
 
 vec4 vertex_main() {
   countLeadingZeros_7c38a6();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -51,7 +51,7 @@
 }
 
 void countLeadingZeros_7c38a6() {
-  ivec3 res = tint_count_leading_zeros(ivec3(0, 0, 0));
+  ivec3 res = tint_count_leading_zeros(ivec3(0));
 }
 
 void fragment_main() {
@@ -80,7 +80,7 @@
 }
 
 void countLeadingZeros_7c38a6() {
-  ivec3 res = tint_count_leading_zeros(ivec3(0, 0, 0));
+  ivec3 res = tint_count_leading_zeros(ivec3(0));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/countLeadingZeros/858d40.wgsl.expected.glsl b/test/tint/builtins/gen/countLeadingZeros/858d40.wgsl.expected.glsl
index 38387a6..408a00a 100644
--- a/test/tint/builtins/gen/countLeadingZeros/858d40.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/countLeadingZeros/858d40.wgsl.expected.glsl
@@ -16,12 +16,12 @@
 }
 
 void countLeadingZeros_858d40() {
-  ivec2 res = tint_count_leading_zeros(ivec2(0, 0));
+  ivec2 res = tint_count_leading_zeros(ivec2(0));
 }
 
 vec4 vertex_main() {
   countLeadingZeros_858d40();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -51,7 +51,7 @@
 }
 
 void countLeadingZeros_858d40() {
-  ivec2 res = tint_count_leading_zeros(ivec2(0, 0));
+  ivec2 res = tint_count_leading_zeros(ivec2(0));
 }
 
 void fragment_main() {
@@ -80,7 +80,7 @@
 }
 
 void countLeadingZeros_858d40() {
-  ivec2 res = tint_count_leading_zeros(ivec2(0, 0));
+  ivec2 res = tint_count_leading_zeros(ivec2(0));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/countLeadingZeros/ab6345.wgsl.expected.glsl b/test/tint/builtins/gen/countLeadingZeros/ab6345.wgsl.expected.glsl
index 244da5a..58f7a24 100644
--- a/test/tint/builtins/gen/countLeadingZeros/ab6345.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/countLeadingZeros/ab6345.wgsl.expected.glsl
@@ -16,12 +16,12 @@
 }
 
 void countLeadingZeros_ab6345() {
-  uvec3 res = tint_count_leading_zeros(uvec3(0u, 0u, 0u));
+  uvec3 res = tint_count_leading_zeros(uvec3(0u));
 }
 
 vec4 vertex_main() {
   countLeadingZeros_ab6345();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -51,7 +51,7 @@
 }
 
 void countLeadingZeros_ab6345() {
-  uvec3 res = tint_count_leading_zeros(uvec3(0u, 0u, 0u));
+  uvec3 res = tint_count_leading_zeros(uvec3(0u));
 }
 
 void fragment_main() {
@@ -80,7 +80,7 @@
 }
 
 void countLeadingZeros_ab6345() {
-  uvec3 res = tint_count_leading_zeros(uvec3(0u, 0u, 0u));
+  uvec3 res = tint_count_leading_zeros(uvec3(0u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/countLeadingZeros/eab32b.wgsl.expected.glsl b/test/tint/builtins/gen/countLeadingZeros/eab32b.wgsl.expected.glsl
index 4fcb722..01427b6 100644
--- a/test/tint/builtins/gen/countLeadingZeros/eab32b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/countLeadingZeros/eab32b.wgsl.expected.glsl
@@ -16,12 +16,12 @@
 }
 
 void countLeadingZeros_eab32b() {
-  ivec4 res = tint_count_leading_zeros(ivec4(0, 0, 0, 0));
+  ivec4 res = tint_count_leading_zeros(ivec4(0));
 }
 
 vec4 vertex_main() {
   countLeadingZeros_eab32b();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -51,7 +51,7 @@
 }
 
 void countLeadingZeros_eab32b() {
-  ivec4 res = tint_count_leading_zeros(ivec4(0, 0, 0, 0));
+  ivec4 res = tint_count_leading_zeros(ivec4(0));
 }
 
 void fragment_main() {
@@ -80,7 +80,7 @@
 }
 
 void countLeadingZeros_eab32b() {
-  ivec4 res = tint_count_leading_zeros(ivec4(0, 0, 0, 0));
+  ivec4 res = tint_count_leading_zeros(ivec4(0));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/countLeadingZeros/f70103.wgsl.expected.glsl b/test/tint/builtins/gen/countLeadingZeros/f70103.wgsl.expected.glsl
index 529e6c5..9c298ef 100644
--- a/test/tint/builtins/gen/countLeadingZeros/f70103.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/countLeadingZeros/f70103.wgsl.expected.glsl
@@ -16,12 +16,12 @@
 }
 
 void countLeadingZeros_f70103() {
-  uvec4 res = tint_count_leading_zeros(uvec4(0u, 0u, 0u, 0u));
+  uvec4 res = tint_count_leading_zeros(uvec4(0u));
 }
 
 vec4 vertex_main() {
   countLeadingZeros_f70103();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -51,7 +51,7 @@
 }
 
 void countLeadingZeros_f70103() {
-  uvec4 res = tint_count_leading_zeros(uvec4(0u, 0u, 0u, 0u));
+  uvec4 res = tint_count_leading_zeros(uvec4(0u));
 }
 
 void fragment_main() {
@@ -80,7 +80,7 @@
 }
 
 void countLeadingZeros_f70103() {
-  uvec4 res = tint_count_leading_zeros(uvec4(0u, 0u, 0u, 0u));
+  uvec4 res = tint_count_leading_zeros(uvec4(0u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/countOneBits/0d0e46.wgsl.expected.glsl b/test/tint/builtins/gen/countOneBits/0d0e46.wgsl.expected.glsl
index cbb7698..092ed67 100644
--- a/test/tint/builtins/gen/countOneBits/0d0e46.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/countOneBits/0d0e46.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void countOneBits_0d0e46() {
-  uvec4 res = uvec4(bitCount(uvec4(0u, 0u, 0u, 0u)));
+  uvec4 res = uvec4(bitCount(uvec4(0u)));
 }
 
 vec4 vertex_main() {
   countOneBits_0d0e46();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void countOneBits_0d0e46() {
-  uvec4 res = uvec4(bitCount(uvec4(0u, 0u, 0u, 0u)));
+  uvec4 res = uvec4(bitCount(uvec4(0u)));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void countOneBits_0d0e46() {
-  uvec4 res = uvec4(bitCount(uvec4(0u, 0u, 0u, 0u)));
+  uvec4 res = uvec4(bitCount(uvec4(0u)));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/countOneBits/0f7980.wgsl.expected.glsl b/test/tint/builtins/gen/countOneBits/0f7980.wgsl.expected.glsl
index 9f5e277..5ccbb6c 100644
--- a/test/tint/builtins/gen/countOneBits/0f7980.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/countOneBits/0f7980.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void countOneBits_0f7980() {
-  ivec4 res = ivec4(bitCount(ivec4(0, 0, 0, 0)));
+  ivec4 res = ivec4(bitCount(ivec4(0)));
 }
 
 vec4 vertex_main() {
   countOneBits_0f7980();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void countOneBits_0f7980() {
-  ivec4 res = ivec4(bitCount(ivec4(0, 0, 0, 0)));
+  ivec4 res = ivec4(bitCount(ivec4(0)));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void countOneBits_0f7980() {
-  ivec4 res = ivec4(bitCount(ivec4(0, 0, 0, 0)));
+  ivec4 res = ivec4(bitCount(ivec4(0)));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/countOneBits/65d2ae.wgsl.expected.glsl b/test/tint/builtins/gen/countOneBits/65d2ae.wgsl.expected.glsl
index d7bd59f..3ad83bd 100644
--- a/test/tint/builtins/gen/countOneBits/65d2ae.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/countOneBits/65d2ae.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void countOneBits_65d2ae() {
-  ivec3 res = ivec3(bitCount(ivec3(0, 0, 0)));
+  ivec3 res = ivec3(bitCount(ivec3(0)));
 }
 
 vec4 vertex_main() {
   countOneBits_65d2ae();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void countOneBits_65d2ae() {
-  ivec3 res = ivec3(bitCount(ivec3(0, 0, 0)));
+  ivec3 res = ivec3(bitCount(ivec3(0)));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void countOneBits_65d2ae() {
-  ivec3 res = ivec3(bitCount(ivec3(0, 0, 0)));
+  ivec3 res = ivec3(bitCount(ivec3(0)));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/countOneBits/690cfc.wgsl.expected.glsl b/test/tint/builtins/gen/countOneBits/690cfc.wgsl.expected.glsl
index b7cf531..67b9273 100644
--- a/test/tint/builtins/gen/countOneBits/690cfc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/countOneBits/690cfc.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void countOneBits_690cfc() {
-  uvec3 res = uvec3(bitCount(uvec3(0u, 0u, 0u)));
+  uvec3 res = uvec3(bitCount(uvec3(0u)));
 }
 
 vec4 vertex_main() {
   countOneBits_690cfc();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void countOneBits_690cfc() {
-  uvec3 res = uvec3(bitCount(uvec3(0u, 0u, 0u)));
+  uvec3 res = uvec3(bitCount(uvec3(0u)));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void countOneBits_690cfc() {
-  uvec3 res = uvec3(bitCount(uvec3(0u, 0u, 0u)));
+  uvec3 res = uvec3(bitCount(uvec3(0u)));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/countOneBits/94fd81.wgsl.expected.glsl b/test/tint/builtins/gen/countOneBits/94fd81.wgsl.expected.glsl
index 4993176..3ec504d 100644
--- a/test/tint/builtins/gen/countOneBits/94fd81.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/countOneBits/94fd81.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void countOneBits_94fd81() {
-  uvec2 res = uvec2(bitCount(uvec2(0u, 0u)));
+  uvec2 res = uvec2(bitCount(uvec2(0u)));
 }
 
 vec4 vertex_main() {
   countOneBits_94fd81();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void countOneBits_94fd81() {
-  uvec2 res = uvec2(bitCount(uvec2(0u, 0u)));
+  uvec2 res = uvec2(bitCount(uvec2(0u)));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void countOneBits_94fd81() {
-  uvec2 res = uvec2(bitCount(uvec2(0u, 0u)));
+  uvec2 res = uvec2(bitCount(uvec2(0u)));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/countOneBits/ae44f9.wgsl.expected.glsl b/test/tint/builtins/gen/countOneBits/ae44f9.wgsl.expected.glsl
index a934668..73089c9 100644
--- a/test/tint/builtins/gen/countOneBits/ae44f9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/countOneBits/ae44f9.wgsl.expected.glsl
@@ -6,7 +6,7 @@
 
 vec4 vertex_main() {
   countOneBits_ae44f9();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/countOneBits/af90e2.wgsl.expected.glsl b/test/tint/builtins/gen/countOneBits/af90e2.wgsl.expected.glsl
index 3bd591e..e76abcb 100644
--- a/test/tint/builtins/gen/countOneBits/af90e2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/countOneBits/af90e2.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void countOneBits_af90e2() {
-  ivec2 res = ivec2(bitCount(ivec2(0, 0)));
+  ivec2 res = ivec2(bitCount(ivec2(0)));
 }
 
 vec4 vertex_main() {
   countOneBits_af90e2();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void countOneBits_af90e2() {
-  ivec2 res = ivec2(bitCount(ivec2(0, 0)));
+  ivec2 res = ivec2(bitCount(ivec2(0)));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void countOneBits_af90e2() {
-  ivec2 res = ivec2(bitCount(ivec2(0, 0)));
+  ivec2 res = ivec2(bitCount(ivec2(0)));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/countOneBits/fd88b2.wgsl.expected.glsl b/test/tint/builtins/gen/countOneBits/fd88b2.wgsl.expected.glsl
index d1d70b1..6f0d56c 100644
--- a/test/tint/builtins/gen/countOneBits/fd88b2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/countOneBits/fd88b2.wgsl.expected.glsl
@@ -6,7 +6,7 @@
 
 vec4 vertex_main() {
   countOneBits_fd88b2();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/countTrailingZeros/1ad138.wgsl.expected.glsl b/test/tint/builtins/gen/countTrailingZeros/1ad138.wgsl.expected.glsl
index 4ccfc62..b8b3bbc 100644
--- a/test/tint/builtins/gen/countTrailingZeros/1ad138.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/countTrailingZeros/1ad138.wgsl.expected.glsl
@@ -16,12 +16,12 @@
 }
 
 void countTrailingZeros_1ad138() {
-  uvec2 res = tint_count_trailing_zeros(uvec2(0u, 0u));
+  uvec2 res = tint_count_trailing_zeros(uvec2(0u));
 }
 
 vec4 vertex_main() {
   countTrailingZeros_1ad138();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -51,7 +51,7 @@
 }
 
 void countTrailingZeros_1ad138() {
-  uvec2 res = tint_count_trailing_zeros(uvec2(0u, 0u));
+  uvec2 res = tint_count_trailing_zeros(uvec2(0u));
 }
 
 void fragment_main() {
@@ -80,7 +80,7 @@
 }
 
 void countTrailingZeros_1ad138() {
-  uvec2 res = tint_count_trailing_zeros(uvec2(0u, 0u));
+  uvec2 res = tint_count_trailing_zeros(uvec2(0u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/countTrailingZeros/1dc84a.wgsl.expected.glsl b/test/tint/builtins/gen/countTrailingZeros/1dc84a.wgsl.expected.glsl
index ff17ff2..eac4b40 100644
--- a/test/tint/builtins/gen/countTrailingZeros/1dc84a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/countTrailingZeros/1dc84a.wgsl.expected.glsl
@@ -16,12 +16,12 @@
 }
 
 void countTrailingZeros_1dc84a() {
-  ivec4 res = tint_count_trailing_zeros(ivec4(0, 0, 0, 0));
+  ivec4 res = tint_count_trailing_zeros(ivec4(0));
 }
 
 vec4 vertex_main() {
   countTrailingZeros_1dc84a();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -51,7 +51,7 @@
 }
 
 void countTrailingZeros_1dc84a() {
-  ivec4 res = tint_count_trailing_zeros(ivec4(0, 0, 0, 0));
+  ivec4 res = tint_count_trailing_zeros(ivec4(0));
 }
 
 void fragment_main() {
@@ -80,7 +80,7 @@
 }
 
 void countTrailingZeros_1dc84a() {
-  ivec4 res = tint_count_trailing_zeros(ivec4(0, 0, 0, 0));
+  ivec4 res = tint_count_trailing_zeros(ivec4(0));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/countTrailingZeros/21e394.wgsl.expected.glsl b/test/tint/builtins/gen/countTrailingZeros/21e394.wgsl.expected.glsl
index 1bbef2c..48ead3c 100644
--- a/test/tint/builtins/gen/countTrailingZeros/21e394.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/countTrailingZeros/21e394.wgsl.expected.glsl
@@ -21,7 +21,7 @@
 
 vec4 vertex_main() {
   countTrailingZeros_21e394();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/countTrailingZeros/327c37.wgsl.expected.glsl b/test/tint/builtins/gen/countTrailingZeros/327c37.wgsl.expected.glsl
index a1fa87b..f984ba0 100644
--- a/test/tint/builtins/gen/countTrailingZeros/327c37.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/countTrailingZeros/327c37.wgsl.expected.glsl
@@ -16,12 +16,12 @@
 }
 
 void countTrailingZeros_327c37() {
-  ivec2 res = tint_count_trailing_zeros(ivec2(0, 0));
+  ivec2 res = tint_count_trailing_zeros(ivec2(0));
 }
 
 vec4 vertex_main() {
   countTrailingZeros_327c37();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -51,7 +51,7 @@
 }
 
 void countTrailingZeros_327c37() {
-  ivec2 res = tint_count_trailing_zeros(ivec2(0, 0));
+  ivec2 res = tint_count_trailing_zeros(ivec2(0));
 }
 
 void fragment_main() {
@@ -80,7 +80,7 @@
 }
 
 void countTrailingZeros_327c37() {
-  ivec2 res = tint_count_trailing_zeros(ivec2(0, 0));
+  ivec2 res = tint_count_trailing_zeros(ivec2(0));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/countTrailingZeros/42fed6.wgsl.expected.glsl b/test/tint/builtins/gen/countTrailingZeros/42fed6.wgsl.expected.glsl
index f1169c0..79ef865 100644
--- a/test/tint/builtins/gen/countTrailingZeros/42fed6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/countTrailingZeros/42fed6.wgsl.expected.glsl
@@ -21,7 +21,7 @@
 
 vec4 vertex_main() {
   countTrailingZeros_42fed6();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/countTrailingZeros/8ed26f.wgsl.expected.glsl b/test/tint/builtins/gen/countTrailingZeros/8ed26f.wgsl.expected.glsl
index 8d1921a..a6f056e 100644
--- a/test/tint/builtins/gen/countTrailingZeros/8ed26f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/countTrailingZeros/8ed26f.wgsl.expected.glsl
@@ -16,12 +16,12 @@
 }
 
 void countTrailingZeros_8ed26f() {
-  uvec3 res = tint_count_trailing_zeros(uvec3(0u, 0u, 0u));
+  uvec3 res = tint_count_trailing_zeros(uvec3(0u));
 }
 
 vec4 vertex_main() {
   countTrailingZeros_8ed26f();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -51,7 +51,7 @@
 }
 
 void countTrailingZeros_8ed26f() {
-  uvec3 res = tint_count_trailing_zeros(uvec3(0u, 0u, 0u));
+  uvec3 res = tint_count_trailing_zeros(uvec3(0u));
 }
 
 void fragment_main() {
@@ -80,7 +80,7 @@
 }
 
 void countTrailingZeros_8ed26f() {
-  uvec3 res = tint_count_trailing_zeros(uvec3(0u, 0u, 0u));
+  uvec3 res = tint_count_trailing_zeros(uvec3(0u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/countTrailingZeros/acfacb.wgsl.expected.glsl b/test/tint/builtins/gen/countTrailingZeros/acfacb.wgsl.expected.glsl
index 70cded2..411c89f 100644
--- a/test/tint/builtins/gen/countTrailingZeros/acfacb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/countTrailingZeros/acfacb.wgsl.expected.glsl
@@ -16,12 +16,12 @@
 }
 
 void countTrailingZeros_acfacb() {
-  ivec3 res = tint_count_trailing_zeros(ivec3(0, 0, 0));
+  ivec3 res = tint_count_trailing_zeros(ivec3(0));
 }
 
 vec4 vertex_main() {
   countTrailingZeros_acfacb();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -51,7 +51,7 @@
 }
 
 void countTrailingZeros_acfacb() {
-  ivec3 res = tint_count_trailing_zeros(ivec3(0, 0, 0));
+  ivec3 res = tint_count_trailing_zeros(ivec3(0));
 }
 
 void fragment_main() {
@@ -80,7 +80,7 @@
 }
 
 void countTrailingZeros_acfacb() {
-  ivec3 res = tint_count_trailing_zeros(ivec3(0, 0, 0));
+  ivec3 res = tint_count_trailing_zeros(ivec3(0));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/countTrailingZeros/d2b4a0.wgsl.expected.glsl b/test/tint/builtins/gen/countTrailingZeros/d2b4a0.wgsl.expected.glsl
index ab87795..805b7d6 100644
--- a/test/tint/builtins/gen/countTrailingZeros/d2b4a0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/countTrailingZeros/d2b4a0.wgsl.expected.glsl
@@ -16,12 +16,12 @@
 }
 
 void countTrailingZeros_d2b4a0() {
-  uvec4 res = tint_count_trailing_zeros(uvec4(0u, 0u, 0u, 0u));
+  uvec4 res = tint_count_trailing_zeros(uvec4(0u));
 }
 
 vec4 vertex_main() {
   countTrailingZeros_d2b4a0();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -51,7 +51,7 @@
 }
 
 void countTrailingZeros_d2b4a0() {
-  uvec4 res = tint_count_trailing_zeros(uvec4(0u, 0u, 0u, 0u));
+  uvec4 res = tint_count_trailing_zeros(uvec4(0u));
 }
 
 void fragment_main() {
@@ -80,7 +80,7 @@
 }
 
 void countTrailingZeros_d2b4a0() {
-  uvec4 res = tint_count_trailing_zeros(uvec4(0u, 0u, 0u, 0u));
+  uvec4 res = tint_count_trailing_zeros(uvec4(0u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/cross/041cb0.wgsl.expected.glsl b/test/tint/builtins/gen/cross/041cb0.wgsl.expected.glsl
index f1c9d98..b0e727f 100644
--- a/test/tint/builtins/gen/cross/041cb0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/cross/041cb0.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void cross_041cb0() {
-  vec3 res = cross(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = cross(vec3(0.0f), vec3(0.0f));
 }
 
 vec4 vertex_main() {
   cross_041cb0();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void cross_041cb0() {
-  vec3 res = cross(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = cross(vec3(0.0f), vec3(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void cross_041cb0() {
-  vec3 res = cross(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = cross(vec3(0.0f), vec3(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/degrees/0d170c.wgsl.expected.glsl b/test/tint/builtins/gen/degrees/0d170c.wgsl.expected.glsl
index 3c08ce8..12590e8 100644
--- a/test/tint/builtins/gen/degrees/0d170c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/degrees/0d170c.wgsl.expected.glsl
@@ -6,12 +6,12 @@
 
 
 void degrees_0d170c() {
-  vec4 res = tint_degrees(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = tint_degrees(vec4(0.0f));
 }
 
 vec4 vertex_main() {
   degrees_0d170c();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -31,7 +31,7 @@
 
 
 void degrees_0d170c() {
-  vec4 res = tint_degrees(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = tint_degrees(vec4(0.0f));
 }
 
 void fragment_main() {
@@ -50,7 +50,7 @@
 
 
 void degrees_0d170c() {
-  vec4 res = tint_degrees(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = tint_degrees(vec4(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/degrees/1ad5df.wgsl.expected.glsl b/test/tint/builtins/gen/degrees/1ad5df.wgsl.expected.glsl
index b25e180..bf6f838 100644
--- a/test/tint/builtins/gen/degrees/1ad5df.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/degrees/1ad5df.wgsl.expected.glsl
@@ -6,12 +6,12 @@
 
 
 void degrees_1ad5df() {
-  vec2 res = tint_degrees(vec2(0.0f, 0.0f));
+  vec2 res = tint_degrees(vec2(0.0f));
 }
 
 vec4 vertex_main() {
   degrees_1ad5df();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -31,7 +31,7 @@
 
 
 void degrees_1ad5df() {
-  vec2 res = tint_degrees(vec2(0.0f, 0.0f));
+  vec2 res = tint_degrees(vec2(0.0f));
 }
 
 void fragment_main() {
@@ -50,7 +50,7 @@
 
 
 void degrees_1ad5df() {
-  vec2 res = tint_degrees(vec2(0.0f, 0.0f));
+  vec2 res = tint_degrees(vec2(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/degrees/2af623.wgsl.expected.glsl b/test/tint/builtins/gen/degrees/2af623.wgsl.expected.glsl
index 5fda564..bcc2318 100644
--- a/test/tint/builtins/gen/degrees/2af623.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/degrees/2af623.wgsl.expected.glsl
@@ -6,12 +6,12 @@
 
 
 void degrees_2af623() {
-  vec3 res = tint_degrees(vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = tint_degrees(vec3(0.0f));
 }
 
 vec4 vertex_main() {
   degrees_2af623();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -31,7 +31,7 @@
 
 
 void degrees_2af623() {
-  vec3 res = tint_degrees(vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = tint_degrees(vec3(0.0f));
 }
 
 void fragment_main() {
@@ -50,7 +50,7 @@
 
 
 void degrees_2af623() {
-  vec3 res = tint_degrees(vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = tint_degrees(vec3(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/degrees/51f705.wgsl.expected.glsl b/test/tint/builtins/gen/degrees/51f705.wgsl.expected.glsl
index 1bfcfd1..59dac38 100644
--- a/test/tint/builtins/gen/degrees/51f705.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/degrees/51f705.wgsl.expected.glsl
@@ -11,7 +11,7 @@
 
 vec4 vertex_main() {
   degrees_51f705();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/determinant/2b62ba.wgsl.expected.glsl b/test/tint/builtins/gen/determinant/2b62ba.wgsl.expected.glsl
index 0cbc139..748013d 100644
--- a/test/tint/builtins/gen/determinant/2b62ba.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/determinant/2b62ba.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void determinant_2b62ba() {
-  float res = determinant(mat3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
+  float res = determinant(mat3(vec3(0.0f), vec3(0.0f), vec3(0.0f)));
 }
 
 vec4 vertex_main() {
   determinant_2b62ba();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void determinant_2b62ba() {
-  float res = determinant(mat3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
+  float res = determinant(mat3(vec3(0.0f), vec3(0.0f), vec3(0.0f)));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void determinant_2b62ba() {
-  float res = determinant(mat3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
+  float res = determinant(mat3(vec3(0.0f), vec3(0.0f), vec3(0.0f)));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/determinant/a0a87c.wgsl.expected.glsl b/test/tint/builtins/gen/determinant/a0a87c.wgsl.expected.glsl
index 0fa9810..92c1ca4 100644
--- a/test/tint/builtins/gen/determinant/a0a87c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/determinant/a0a87c.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void determinant_a0a87c() {
-  float res = determinant(mat4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
+  float res = determinant(mat4(vec4(0.0f), vec4(0.0f), vec4(0.0f), vec4(0.0f)));
 }
 
 vec4 vertex_main() {
   determinant_a0a87c();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void determinant_a0a87c() {
-  float res = determinant(mat4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
+  float res = determinant(mat4(vec4(0.0f), vec4(0.0f), vec4(0.0f), vec4(0.0f)));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void determinant_a0a87c() {
-  float res = determinant(mat4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
+  float res = determinant(mat4(vec4(0.0f), vec4(0.0f), vec4(0.0f), vec4(0.0f)));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/determinant/e19305.wgsl.expected.glsl b/test/tint/builtins/gen/determinant/e19305.wgsl.expected.glsl
index aa318d5..4e63bbf 100644
--- a/test/tint/builtins/gen/determinant/e19305.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/determinant/e19305.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void determinant_e19305() {
-  float res = determinant(mat2(0.0f, 0.0f, 0.0f, 0.0f));
+  float res = determinant(mat2(vec2(0.0f), vec2(0.0f)));
 }
 
 vec4 vertex_main() {
   determinant_e19305();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void determinant_e19305() {
-  float res = determinant(mat2(0.0f, 0.0f, 0.0f, 0.0f));
+  float res = determinant(mat2(vec2(0.0f), vec2(0.0f)));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void determinant_e19305() {
-  float res = determinant(mat2(0.0f, 0.0f, 0.0f, 0.0f));
+  float res = determinant(mat2(vec2(0.0f), vec2(0.0f)));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/distance/0657d4.wgsl.expected.glsl b/test/tint/builtins/gen/distance/0657d4.wgsl.expected.glsl
index 117bc7a..9394720 100644
--- a/test/tint/builtins/gen/distance/0657d4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/distance/0657d4.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void distance_0657d4() {
-  float res = distance(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+  float res = distance(vec3(0.0f), vec3(0.0f));
 }
 
 vec4 vertex_main() {
   distance_0657d4();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void distance_0657d4() {
-  float res = distance(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+  float res = distance(vec3(0.0f), vec3(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void distance_0657d4() {
-  float res = distance(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+  float res = distance(vec3(0.0f), vec3(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/distance/9646ea.wgsl.expected.glsl b/test/tint/builtins/gen/distance/9646ea.wgsl.expected.glsl
index 2f1166e..02ce2b8 100644
--- a/test/tint/builtins/gen/distance/9646ea.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/distance/9646ea.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void distance_9646ea() {
-  float res = distance(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  float res = distance(vec4(0.0f), vec4(0.0f));
 }
 
 vec4 vertex_main() {
   distance_9646ea();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void distance_9646ea() {
-  float res = distance(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  float res = distance(vec4(0.0f), vec4(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void distance_9646ea() {
-  float res = distance(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  float res = distance(vec4(0.0f), vec4(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/distance/aa4055.wgsl.expected.glsl b/test/tint/builtins/gen/distance/aa4055.wgsl.expected.glsl
index 80020a6..d155adb 100644
--- a/test/tint/builtins/gen/distance/aa4055.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/distance/aa4055.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void distance_aa4055() {
-  float res = distance(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+  float res = distance(vec2(0.0f), vec2(0.0f));
 }
 
 vec4 vertex_main() {
   distance_aa4055();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void distance_aa4055() {
-  float res = distance(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+  float res = distance(vec2(0.0f), vec2(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void distance_aa4055() {
-  float res = distance(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+  float res = distance(vec2(0.0f), vec2(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/distance/cfed73.wgsl.expected.glsl b/test/tint/builtins/gen/distance/cfed73.wgsl.expected.glsl
index 672d01e..1bdaa15 100644
--- a/test/tint/builtins/gen/distance/cfed73.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/distance/cfed73.wgsl.expected.glsl
@@ -6,7 +6,7 @@
 
 vec4 vertex_main() {
   distance_cfed73();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/dot/0c577b.wgsl.expected.glsl b/test/tint/builtins/gen/dot/0c577b.wgsl.expected.glsl
index acf4859..b37f9a3 100644
--- a/test/tint/builtins/gen/dot/0c577b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/dot/0c577b.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void dot_0c577b() {
-  float res = dot(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  float res = dot(vec4(0.0f), vec4(0.0f));
 }
 
 vec4 vertex_main() {
   dot_0c577b();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void dot_0c577b() {
-  float res = dot(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  float res = dot(vec4(0.0f), vec4(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void dot_0c577b() {
-  float res = dot(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  float res = dot(vec4(0.0f), vec4(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/dot/7548a0.wgsl.expected.glsl b/test/tint/builtins/gen/dot/7548a0.wgsl.expected.glsl
index c78810e..c3420c6 100644
--- a/test/tint/builtins/gen/dot/7548a0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/dot/7548a0.wgsl.expected.glsl
@@ -5,12 +5,12 @@
 }
 
 void dot_7548a0() {
-  uint res = tint_int_dot(uvec3(0u, 0u, 0u), uvec3(0u, 0u, 0u));
+  uint res = tint_int_dot(uvec3(0u), uvec3(0u));
 }
 
 vec4 vertex_main() {
   dot_7548a0();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -29,7 +29,7 @@
 }
 
 void dot_7548a0() {
-  uint res = tint_int_dot(uvec3(0u, 0u, 0u), uvec3(0u, 0u, 0u));
+  uint res = tint_int_dot(uvec3(0u), uvec3(0u));
 }
 
 void fragment_main() {
@@ -47,7 +47,7 @@
 }
 
 void dot_7548a0() {
-  uint res = tint_int_dot(uvec3(0u, 0u, 0u), uvec3(0u, 0u, 0u));
+  uint res = tint_int_dot(uvec3(0u), uvec3(0u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/dot/883f0e.wgsl.expected.glsl b/test/tint/builtins/gen/dot/883f0e.wgsl.expected.glsl
index 2fe3818..c5011b8 100644
--- a/test/tint/builtins/gen/dot/883f0e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/dot/883f0e.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void dot_883f0e() {
-  float res = dot(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+  float res = dot(vec2(0.0f), vec2(0.0f));
 }
 
 vec4 vertex_main() {
   dot_883f0e();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void dot_883f0e() {
-  float res = dot(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+  float res = dot(vec2(0.0f), vec2(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void dot_883f0e() {
-  float res = dot(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+  float res = dot(vec2(0.0f), vec2(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/dot/97c7ee.wgsl.expected.glsl b/test/tint/builtins/gen/dot/97c7ee.wgsl.expected.glsl
index 5731473..45bb902 100644
--- a/test/tint/builtins/gen/dot/97c7ee.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/dot/97c7ee.wgsl.expected.glsl
@@ -5,12 +5,12 @@
 }
 
 void dot_97c7ee() {
-  uint res = tint_int_dot(uvec2(0u, 0u), uvec2(0u, 0u));
+  uint res = tint_int_dot(uvec2(0u), uvec2(0u));
 }
 
 vec4 vertex_main() {
   dot_97c7ee();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -29,7 +29,7 @@
 }
 
 void dot_97c7ee() {
-  uint res = tint_int_dot(uvec2(0u, 0u), uvec2(0u, 0u));
+  uint res = tint_int_dot(uvec2(0u), uvec2(0u));
 }
 
 void fragment_main() {
@@ -47,7 +47,7 @@
 }
 
 void dot_97c7ee() {
-  uint res = tint_int_dot(uvec2(0u, 0u), uvec2(0u, 0u));
+  uint res = tint_int_dot(uvec2(0u), uvec2(0u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/dot/ba4246.wgsl.expected.glsl b/test/tint/builtins/gen/dot/ba4246.wgsl.expected.glsl
index adbbc86..9854f92 100644
--- a/test/tint/builtins/gen/dot/ba4246.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/dot/ba4246.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void dot_ba4246() {
-  float res = dot(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+  float res = dot(vec3(0.0f), vec3(0.0f));
 }
 
 vec4 vertex_main() {
   dot_ba4246();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void dot_ba4246() {
-  float res = dot(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+  float res = dot(vec3(0.0f), vec3(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void dot_ba4246() {
-  float res = dot(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+  float res = dot(vec3(0.0f), vec3(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/dot/e994c7.wgsl.expected.glsl b/test/tint/builtins/gen/dot/e994c7.wgsl.expected.glsl
index 4b6d0fc..68262d7 100644
--- a/test/tint/builtins/gen/dot/e994c7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/dot/e994c7.wgsl.expected.glsl
@@ -5,12 +5,12 @@
 }
 
 void dot_e994c7() {
-  uint res = tint_int_dot(uvec4(0u, 0u, 0u, 0u), uvec4(0u, 0u, 0u, 0u));
+  uint res = tint_int_dot(uvec4(0u), uvec4(0u));
 }
 
 vec4 vertex_main() {
   dot_e994c7();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -29,7 +29,7 @@
 }
 
 void dot_e994c7() {
-  uint res = tint_int_dot(uvec4(0u, 0u, 0u, 0u), uvec4(0u, 0u, 0u, 0u));
+  uint res = tint_int_dot(uvec4(0u), uvec4(0u));
 }
 
 void fragment_main() {
@@ -47,7 +47,7 @@
 }
 
 void dot_e994c7() {
-  uint res = tint_int_dot(uvec4(0u, 0u, 0u, 0u), uvec4(0u, 0u, 0u, 0u));
+  uint res = tint_int_dot(uvec4(0u), uvec4(0u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/dot/ef6b1d.wgsl.expected.glsl b/test/tint/builtins/gen/dot/ef6b1d.wgsl.expected.glsl
index ca39242..0594e64 100644
--- a/test/tint/builtins/gen/dot/ef6b1d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/dot/ef6b1d.wgsl.expected.glsl
@@ -5,12 +5,12 @@
 }
 
 void dot_ef6b1d() {
-  int res = tint_int_dot(ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0));
+  int res = tint_int_dot(ivec4(0), ivec4(0));
 }
 
 vec4 vertex_main() {
   dot_ef6b1d();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -29,7 +29,7 @@
 }
 
 void dot_ef6b1d() {
-  int res = tint_int_dot(ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0));
+  int res = tint_int_dot(ivec4(0), ivec4(0));
 }
 
 void fragment_main() {
@@ -47,7 +47,7 @@
 }
 
 void dot_ef6b1d() {
-  int res = tint_int_dot(ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0));
+  int res = tint_int_dot(ivec4(0), ivec4(0));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/dot/f1312c.wgsl.expected.glsl b/test/tint/builtins/gen/dot/f1312c.wgsl.expected.glsl
index dc8c2e5..0298564 100644
--- a/test/tint/builtins/gen/dot/f1312c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/dot/f1312c.wgsl.expected.glsl
@@ -5,12 +5,12 @@
 }
 
 void dot_f1312c() {
-  int res = tint_int_dot(ivec3(0, 0, 0), ivec3(0, 0, 0));
+  int res = tint_int_dot(ivec3(0), ivec3(0));
 }
 
 vec4 vertex_main() {
   dot_f1312c();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -29,7 +29,7 @@
 }
 
 void dot_f1312c() {
-  int res = tint_int_dot(ivec3(0, 0, 0), ivec3(0, 0, 0));
+  int res = tint_int_dot(ivec3(0), ivec3(0));
 }
 
 void fragment_main() {
@@ -47,7 +47,7 @@
 }
 
 void dot_f1312c() {
-  int res = tint_int_dot(ivec3(0, 0, 0), ivec3(0, 0, 0));
+  int res = tint_int_dot(ivec3(0), ivec3(0));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/dot/fc5f7c.wgsl.expected.glsl b/test/tint/builtins/gen/dot/fc5f7c.wgsl.expected.glsl
index 73c8588..696f8d7 100644
--- a/test/tint/builtins/gen/dot/fc5f7c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/dot/fc5f7c.wgsl.expected.glsl
@@ -5,12 +5,12 @@
 }
 
 void dot_fc5f7c() {
-  int res = tint_int_dot(ivec2(0, 0), ivec2(0, 0));
+  int res = tint_int_dot(ivec2(0), ivec2(0));
 }
 
 vec4 vertex_main() {
   dot_fc5f7c();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -29,7 +29,7 @@
 }
 
 void dot_fc5f7c() {
-  int res = tint_int_dot(ivec2(0, 0), ivec2(0, 0));
+  int res = tint_int_dot(ivec2(0), ivec2(0));
 }
 
 void fragment_main() {
@@ -47,7 +47,7 @@
 }
 
 void dot_fc5f7c() {
-  int res = tint_int_dot(ivec2(0, 0), ivec2(0, 0));
+  int res = tint_int_dot(ivec2(0), ivec2(0));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/dpdx/0763f7.wgsl.expected.glsl b/test/tint/builtins/gen/dpdx/0763f7.wgsl.expected.glsl
index afd86a6..41d238f 100644
--- a/test/tint/builtins/gen/dpdx/0763f7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/dpdx/0763f7.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 precision mediump float;
 
 void dpdx_0763f7() {
-  vec3 res = dFdx(vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = dFdx(vec3(0.0f));
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/dpdx/99edb1.wgsl.expected.glsl b/test/tint/builtins/gen/dpdx/99edb1.wgsl.expected.glsl
index 9e216a1..fd45bd8 100644
--- a/test/tint/builtins/gen/dpdx/99edb1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/dpdx/99edb1.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 precision mediump float;
 
 void dpdx_99edb1() {
-  vec2 res = dFdx(vec2(0.0f, 0.0f));
+  vec2 res = dFdx(vec2(0.0f));
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/dpdx/c487fa.wgsl.expected.glsl b/test/tint/builtins/gen/dpdx/c487fa.wgsl.expected.glsl
index c165181..98a8bd0 100644
--- a/test/tint/builtins/gen/dpdx/c487fa.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/dpdx/c487fa.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 precision mediump float;
 
 void dpdx_c487fa() {
-  vec4 res = dFdx(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = dFdx(vec4(0.0f));
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/dpdxCoarse/9581cf.wgsl.expected.glsl b/test/tint/builtins/gen/dpdxCoarse/9581cf.wgsl.expected.glsl
index 448520e..a8cd3ea 100644
--- a/test/tint/builtins/gen/dpdxCoarse/9581cf.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/dpdxCoarse/9581cf.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 precision mediump float;
 
 void dpdxCoarse_9581cf() {
-  vec2 res = dFdx(vec2(0.0f, 0.0f));
+  vec2 res = dFdx(vec2(0.0f));
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/dpdxCoarse/c28641.wgsl.expected.glsl b/test/tint/builtins/gen/dpdxCoarse/c28641.wgsl.expected.glsl
index 06c1a26..47f54a4 100644
--- a/test/tint/builtins/gen/dpdxCoarse/c28641.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/dpdxCoarse/c28641.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 precision mediump float;
 
 void dpdxCoarse_c28641() {
-  vec4 res = dFdx(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = dFdx(vec4(0.0f));
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/dpdxCoarse/f64d7b.wgsl.expected.glsl b/test/tint/builtins/gen/dpdxCoarse/f64d7b.wgsl.expected.glsl
index 549fd3c..5f96f8b 100644
--- a/test/tint/builtins/gen/dpdxCoarse/f64d7b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/dpdxCoarse/f64d7b.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 precision mediump float;
 
 void dpdxCoarse_f64d7b() {
-  vec3 res = dFdx(vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = dFdx(vec3(0.0f));
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/dpdxFine/8c5069.wgsl.expected.glsl b/test/tint/builtins/gen/dpdxFine/8c5069.wgsl.expected.glsl
index 22d75e5..ef312f1 100644
--- a/test/tint/builtins/gen/dpdxFine/8c5069.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/dpdxFine/8c5069.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 precision mediump float;
 
 void dpdxFine_8c5069() {
-  vec4 res = dFdx(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = dFdx(vec4(0.0f));
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/dpdxFine/9631de.wgsl.expected.glsl b/test/tint/builtins/gen/dpdxFine/9631de.wgsl.expected.glsl
index 3a4f31f..262d045 100644
--- a/test/tint/builtins/gen/dpdxFine/9631de.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/dpdxFine/9631de.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 precision mediump float;
 
 void dpdxFine_9631de() {
-  vec2 res = dFdx(vec2(0.0f, 0.0f));
+  vec2 res = dFdx(vec2(0.0f));
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/dpdxFine/f92fb6.wgsl.expected.glsl b/test/tint/builtins/gen/dpdxFine/f92fb6.wgsl.expected.glsl
index f538aa8..6344b7b 100644
--- a/test/tint/builtins/gen/dpdxFine/f92fb6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/dpdxFine/f92fb6.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 precision mediump float;
 
 void dpdxFine_f92fb6() {
-  vec3 res = dFdx(vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = dFdx(vec3(0.0f));
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/dpdy/699a05.wgsl.expected.glsl b/test/tint/builtins/gen/dpdy/699a05.wgsl.expected.glsl
index be1c83c..ebda67f 100644
--- a/test/tint/builtins/gen/dpdy/699a05.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/dpdy/699a05.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 precision mediump float;
 
 void dpdy_699a05() {
-  vec4 res = dFdy(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = dFdy(vec4(0.0f));
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/dpdy/a8b56e.wgsl.expected.glsl b/test/tint/builtins/gen/dpdy/a8b56e.wgsl.expected.glsl
index 157f26d..e577258 100644
--- a/test/tint/builtins/gen/dpdy/a8b56e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/dpdy/a8b56e.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 precision mediump float;
 
 void dpdy_a8b56e() {
-  vec2 res = dFdy(vec2(0.0f, 0.0f));
+  vec2 res = dFdy(vec2(0.0f));
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/dpdy/feb40f.wgsl.expected.glsl b/test/tint/builtins/gen/dpdy/feb40f.wgsl.expected.glsl
index a61a45c..bace10e 100644
--- a/test/tint/builtins/gen/dpdy/feb40f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/dpdy/feb40f.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 precision mediump float;
 
 void dpdy_feb40f() {
-  vec3 res = dFdy(vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = dFdy(vec3(0.0f));
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/dpdyCoarse/3e1ab4.wgsl.expected.glsl b/test/tint/builtins/gen/dpdyCoarse/3e1ab4.wgsl.expected.glsl
index 1b228fa..6da11de 100644
--- a/test/tint/builtins/gen/dpdyCoarse/3e1ab4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/dpdyCoarse/3e1ab4.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 precision mediump float;
 
 void dpdyCoarse_3e1ab4() {
-  vec2 res = dFdy(vec2(0.0f, 0.0f));
+  vec2 res = dFdy(vec2(0.0f));
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/dpdyCoarse/445d24.wgsl.expected.glsl b/test/tint/builtins/gen/dpdyCoarse/445d24.wgsl.expected.glsl
index c8ca190..d12e314 100644
--- a/test/tint/builtins/gen/dpdyCoarse/445d24.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/dpdyCoarse/445d24.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 precision mediump float;
 
 void dpdyCoarse_445d24() {
-  vec4 res = dFdy(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = dFdy(vec4(0.0f));
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/dpdyCoarse/ae1873.wgsl.expected.glsl b/test/tint/builtins/gen/dpdyCoarse/ae1873.wgsl.expected.glsl
index 8f92ba1..7c4ab8d 100644
--- a/test/tint/builtins/gen/dpdyCoarse/ae1873.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/dpdyCoarse/ae1873.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 precision mediump float;
 
 void dpdyCoarse_ae1873() {
-  vec3 res = dFdy(vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = dFdy(vec3(0.0f));
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/dpdyFine/1fb7ab.wgsl.expected.glsl b/test/tint/builtins/gen/dpdyFine/1fb7ab.wgsl.expected.glsl
index a6411fc..db84fd2 100644
--- a/test/tint/builtins/gen/dpdyFine/1fb7ab.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/dpdyFine/1fb7ab.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 precision mediump float;
 
 void dpdyFine_1fb7ab() {
-  vec3 res = dFdy(vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = dFdy(vec3(0.0f));
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/dpdyFine/d0a648.wgsl.expected.glsl b/test/tint/builtins/gen/dpdyFine/d0a648.wgsl.expected.glsl
index 149154b..3543055 100644
--- a/test/tint/builtins/gen/dpdyFine/d0a648.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/dpdyFine/d0a648.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 precision mediump float;
 
 void dpdyFine_d0a648() {
-  vec4 res = dFdy(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = dFdy(vec4(0.0f));
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/dpdyFine/df33aa.wgsl.expected.glsl b/test/tint/builtins/gen/dpdyFine/df33aa.wgsl.expected.glsl
index c4192de..4266041 100644
--- a/test/tint/builtins/gen/dpdyFine/df33aa.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/dpdyFine/df33aa.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 precision mediump float;
 
 void dpdyFine_df33aa() {
-  vec2 res = dFdy(vec2(0.0f, 0.0f));
+  vec2 res = dFdy(vec2(0.0f));
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/exp/0f70eb.wgsl.expected.glsl b/test/tint/builtins/gen/exp/0f70eb.wgsl.expected.glsl
index 97f8f76..cca2080 100644
--- a/test/tint/builtins/gen/exp/0f70eb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/exp/0f70eb.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void exp_0f70eb() {
-  vec4 res = exp(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = exp(vec4(0.0f));
 }
 
 vec4 vertex_main() {
   exp_0f70eb();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void exp_0f70eb() {
-  vec4 res = exp(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = exp(vec4(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void exp_0f70eb() {
-  vec4 res = exp(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = exp(vec4(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/exp/1951e7.wgsl.expected.glsl b/test/tint/builtins/gen/exp/1951e7.wgsl.expected.glsl
index e8e1d5a..b1aab44 100644
--- a/test/tint/builtins/gen/exp/1951e7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/exp/1951e7.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void exp_1951e7() {
-  vec2 res = exp(vec2(0.0f, 0.0f));
+  vec2 res = exp(vec2(0.0f));
 }
 
 vec4 vertex_main() {
   exp_1951e7();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void exp_1951e7() {
-  vec2 res = exp(vec2(0.0f, 0.0f));
+  vec2 res = exp(vec2(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void exp_1951e7() {
-  vec2 res = exp(vec2(0.0f, 0.0f));
+  vec2 res = exp(vec2(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/exp/771fd2.wgsl.expected.glsl b/test/tint/builtins/gen/exp/771fd2.wgsl.expected.glsl
index 9824cea..f5c1b66 100644
--- a/test/tint/builtins/gen/exp/771fd2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/exp/771fd2.wgsl.expected.glsl
@@ -6,7 +6,7 @@
 
 vec4 vertex_main() {
   exp_771fd2();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/exp/d98450.wgsl.expected.glsl b/test/tint/builtins/gen/exp/d98450.wgsl.expected.glsl
index 4e5ca74..d0b64ec 100644
--- a/test/tint/builtins/gen/exp/d98450.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/exp/d98450.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void exp_d98450() {
-  vec3 res = exp(vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = exp(vec3(0.0f));
 }
 
 vec4 vertex_main() {
   exp_d98450();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void exp_d98450() {
-  vec3 res = exp(vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = exp(vec3(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void exp_d98450() {
-  vec3 res = exp(vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = exp(vec3(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/exp2/1f8680.wgsl.expected.glsl b/test/tint/builtins/gen/exp2/1f8680.wgsl.expected.glsl
index fe72690..d3e1f70b 100644
--- a/test/tint/builtins/gen/exp2/1f8680.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/exp2/1f8680.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void exp2_1f8680() {
-  vec3 res = exp2(vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = exp2(vec3(0.0f));
 }
 
 vec4 vertex_main() {
   exp2_1f8680();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void exp2_1f8680() {
-  vec3 res = exp2(vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = exp2(vec3(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void exp2_1f8680() {
-  vec3 res = exp2(vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = exp2(vec3(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/exp2/a9d0a7.wgsl.expected.glsl b/test/tint/builtins/gen/exp2/a9d0a7.wgsl.expected.glsl
index b9fe1af4..1da316a 100644
--- a/test/tint/builtins/gen/exp2/a9d0a7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/exp2/a9d0a7.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void exp2_a9d0a7() {
-  vec4 res = exp2(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = exp2(vec4(0.0f));
 }
 
 vec4 vertex_main() {
   exp2_a9d0a7();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void exp2_a9d0a7() {
-  vec4 res = exp2(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = exp2(vec4(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void exp2_a9d0a7() {
-  vec4 res = exp2(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = exp2(vec4(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/exp2/d6777c.wgsl.expected.glsl b/test/tint/builtins/gen/exp2/d6777c.wgsl.expected.glsl
index 7480b99..77e9358 100644
--- a/test/tint/builtins/gen/exp2/d6777c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/exp2/d6777c.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void exp2_d6777c() {
-  vec2 res = exp2(vec2(0.0f, 0.0f));
+  vec2 res = exp2(vec2(0.0f));
 }
 
 vec4 vertex_main() {
   exp2_d6777c();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void exp2_d6777c() {
-  vec2 res = exp2(vec2(0.0f, 0.0f));
+  vec2 res = exp2(vec2(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void exp2_d6777c() {
-  vec2 res = exp2(vec2(0.0f, 0.0f));
+  vec2 res = exp2(vec2(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/exp2/dea523.wgsl.expected.glsl b/test/tint/builtins/gen/exp2/dea523.wgsl.expected.glsl
index 10e50bd..d209b71 100644
--- a/test/tint/builtins/gen/exp2/dea523.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/exp2/dea523.wgsl.expected.glsl
@@ -6,7 +6,7 @@
 
 vec4 vertex_main() {
   exp2_dea523();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/extractBits/12b197.wgsl.expected.glsl b/test/tint/builtins/gen/extractBits/12b197.wgsl.expected.glsl
index cd4a93e..ae3b503 100644
--- a/test/tint/builtins/gen/extractBits/12b197.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/extractBits/12b197.wgsl.expected.glsl
@@ -7,12 +7,12 @@
 }
 
 void extractBits_12b197() {
-  uvec3 res = tint_extract_bits(uvec3(0u, 0u, 0u), 1u, 1u);
+  uvec3 res = tint_extract_bits(uvec3(0u), 1u, 1u);
 }
 
 vec4 vertex_main() {
   extractBits_12b197();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -33,7 +33,7 @@
 }
 
 void extractBits_12b197() {
-  uvec3 res = tint_extract_bits(uvec3(0u, 0u, 0u), 1u, 1u);
+  uvec3 res = tint_extract_bits(uvec3(0u), 1u, 1u);
 }
 
 void fragment_main() {
@@ -53,7 +53,7 @@
 }
 
 void extractBits_12b197() {
-  uvec3 res = tint_extract_bits(uvec3(0u, 0u, 0u), 1u, 1u);
+  uvec3 res = tint_extract_bits(uvec3(0u), 1u, 1u);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/extractBits/249874.wgsl.expected.glsl b/test/tint/builtins/gen/extractBits/249874.wgsl.expected.glsl
index cd0fc29..e0523f2 100644
--- a/test/tint/builtins/gen/extractBits/249874.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/extractBits/249874.wgsl.expected.glsl
@@ -12,7 +12,7 @@
 
 vec4 vertex_main() {
   extractBits_249874();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/extractBits/631377.wgsl.expected.glsl b/test/tint/builtins/gen/extractBits/631377.wgsl.expected.glsl
index 572e0ab..7bd05b0 100644
--- a/test/tint/builtins/gen/extractBits/631377.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/extractBits/631377.wgsl.expected.glsl
@@ -7,12 +7,12 @@
 }
 
 void extractBits_631377() {
-  uvec4 res = tint_extract_bits(uvec4(0u, 0u, 0u, 0u), 1u, 1u);
+  uvec4 res = tint_extract_bits(uvec4(0u), 1u, 1u);
 }
 
 vec4 vertex_main() {
   extractBits_631377();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -33,7 +33,7 @@
 }
 
 void extractBits_631377() {
-  uvec4 res = tint_extract_bits(uvec4(0u, 0u, 0u, 0u), 1u, 1u);
+  uvec4 res = tint_extract_bits(uvec4(0u), 1u, 1u);
 }
 
 void fragment_main() {
@@ -53,7 +53,7 @@
 }
 
 void extractBits_631377() {
-  uvec4 res = tint_extract_bits(uvec4(0u, 0u, 0u, 0u), 1u, 1u);
+  uvec4 res = tint_extract_bits(uvec4(0u), 1u, 1u);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/extractBits/a99a8d.wgsl.expected.glsl b/test/tint/builtins/gen/extractBits/a99a8d.wgsl.expected.glsl
index 9691bda..609c281 100644
--- a/test/tint/builtins/gen/extractBits/a99a8d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/extractBits/a99a8d.wgsl.expected.glsl
@@ -7,12 +7,12 @@
 }
 
 void extractBits_a99a8d() {
-  ivec2 res = tint_extract_bits(ivec2(0, 0), 1u, 1u);
+  ivec2 res = tint_extract_bits(ivec2(0), 1u, 1u);
 }
 
 vec4 vertex_main() {
   extractBits_a99a8d();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -33,7 +33,7 @@
 }
 
 void extractBits_a99a8d() {
-  ivec2 res = tint_extract_bits(ivec2(0, 0), 1u, 1u);
+  ivec2 res = tint_extract_bits(ivec2(0), 1u, 1u);
 }
 
 void fragment_main() {
@@ -53,7 +53,7 @@
 }
 
 void extractBits_a99a8d() {
-  ivec2 res = tint_extract_bits(ivec2(0, 0), 1u, 1u);
+  ivec2 res = tint_extract_bits(ivec2(0), 1u, 1u);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/extractBits/ce81f8.wgsl.expected.glsl b/test/tint/builtins/gen/extractBits/ce81f8.wgsl.expected.glsl
index 281e95a..814cdc1 100644
--- a/test/tint/builtins/gen/extractBits/ce81f8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/extractBits/ce81f8.wgsl.expected.glsl
@@ -12,7 +12,7 @@
 
 vec4 vertex_main() {
   extractBits_ce81f8();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/extractBits/e04f5d.wgsl.expected.glsl b/test/tint/builtins/gen/extractBits/e04f5d.wgsl.expected.glsl
index 9da789f..7116733 100644
--- a/test/tint/builtins/gen/extractBits/e04f5d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/extractBits/e04f5d.wgsl.expected.glsl
@@ -7,12 +7,12 @@
 }
 
 void extractBits_e04f5d() {
-  ivec3 res = tint_extract_bits(ivec3(0, 0, 0), 1u, 1u);
+  ivec3 res = tint_extract_bits(ivec3(0), 1u, 1u);
 }
 
 vec4 vertex_main() {
   extractBits_e04f5d();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -33,7 +33,7 @@
 }
 
 void extractBits_e04f5d() {
-  ivec3 res = tint_extract_bits(ivec3(0, 0, 0), 1u, 1u);
+  ivec3 res = tint_extract_bits(ivec3(0), 1u, 1u);
 }
 
 void fragment_main() {
@@ -53,7 +53,7 @@
 }
 
 void extractBits_e04f5d() {
-  ivec3 res = tint_extract_bits(ivec3(0, 0, 0), 1u, 1u);
+  ivec3 res = tint_extract_bits(ivec3(0), 1u, 1u);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/extractBits/f28f69.wgsl.expected.glsl b/test/tint/builtins/gen/extractBits/f28f69.wgsl.expected.glsl
index 0f8eaf5..2141ce0 100644
--- a/test/tint/builtins/gen/extractBits/f28f69.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/extractBits/f28f69.wgsl.expected.glsl
@@ -7,12 +7,12 @@
 }
 
 void extractBits_f28f69() {
-  uvec2 res = tint_extract_bits(uvec2(0u, 0u), 1u, 1u);
+  uvec2 res = tint_extract_bits(uvec2(0u), 1u, 1u);
 }
 
 vec4 vertex_main() {
   extractBits_f28f69();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -33,7 +33,7 @@
 }
 
 void extractBits_f28f69() {
-  uvec2 res = tint_extract_bits(uvec2(0u, 0u), 1u, 1u);
+  uvec2 res = tint_extract_bits(uvec2(0u), 1u, 1u);
 }
 
 void fragment_main() {
@@ -53,7 +53,7 @@
 }
 
 void extractBits_f28f69() {
-  uvec2 res = tint_extract_bits(uvec2(0u, 0u), 1u, 1u);
+  uvec2 res = tint_extract_bits(uvec2(0u), 1u, 1u);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/extractBits/fb850f.wgsl.expected.glsl b/test/tint/builtins/gen/extractBits/fb850f.wgsl.expected.glsl
index 8be319c..99cbbb9 100644
--- a/test/tint/builtins/gen/extractBits/fb850f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/extractBits/fb850f.wgsl.expected.glsl
@@ -7,12 +7,12 @@
 }
 
 void extractBits_fb850f() {
-  ivec4 res = tint_extract_bits(ivec4(0, 0, 0, 0), 1u, 1u);
+  ivec4 res = tint_extract_bits(ivec4(0), 1u, 1u);
 }
 
 vec4 vertex_main() {
   extractBits_fb850f();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -33,7 +33,7 @@
 }
 
 void extractBits_fb850f() {
-  ivec4 res = tint_extract_bits(ivec4(0, 0, 0, 0), 1u, 1u);
+  ivec4 res = tint_extract_bits(ivec4(0), 1u, 1u);
 }
 
 void fragment_main() {
@@ -53,7 +53,7 @@
 }
 
 void extractBits_fb850f() {
-  ivec4 res = tint_extract_bits(ivec4(0, 0, 0, 0), 1u, 1u);
+  ivec4 res = tint_extract_bits(ivec4(0), 1u, 1u);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/faceForward/5afbd5.wgsl.expected.glsl b/test/tint/builtins/gen/faceForward/5afbd5.wgsl.expected.glsl
index b030a26..5920218 100644
--- a/test/tint/builtins/gen/faceForward/5afbd5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/faceForward/5afbd5.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void faceForward_5afbd5() {
-  vec3 res = faceforward(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = faceforward(vec3(0.0f), vec3(0.0f), vec3(0.0f));
 }
 
 vec4 vertex_main() {
   faceForward_5afbd5();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void faceForward_5afbd5() {
-  vec3 res = faceforward(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = faceforward(vec3(0.0f), vec3(0.0f), vec3(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void faceForward_5afbd5() {
-  vec3 res = faceforward(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = faceforward(vec3(0.0f), vec3(0.0f), vec3(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/faceForward/b316e5.wgsl.expected.glsl b/test/tint/builtins/gen/faceForward/b316e5.wgsl.expected.glsl
index c0d11c8..50e49c8 100644
--- a/test/tint/builtins/gen/faceForward/b316e5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/faceForward/b316e5.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void faceForward_b316e5() {
-  vec4 res = faceforward(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = faceforward(vec4(0.0f), vec4(0.0f), vec4(0.0f));
 }
 
 vec4 vertex_main() {
   faceForward_b316e5();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void faceForward_b316e5() {
-  vec4 res = faceforward(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = faceforward(vec4(0.0f), vec4(0.0f), vec4(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void faceForward_b316e5() {
-  vec4 res = faceforward(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = faceforward(vec4(0.0f), vec4(0.0f), vec4(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/faceForward/e6908b.wgsl.expected.glsl b/test/tint/builtins/gen/faceForward/e6908b.wgsl.expected.glsl
index 14e6ef2..f1845d1 100644
--- a/test/tint/builtins/gen/faceForward/e6908b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/faceForward/e6908b.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void faceForward_e6908b() {
-  vec2 res = faceforward(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+  vec2 res = faceforward(vec2(0.0f), vec2(0.0f), vec2(0.0f));
 }
 
 vec4 vertex_main() {
   faceForward_e6908b();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void faceForward_e6908b() {
-  vec2 res = faceforward(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+  vec2 res = faceforward(vec2(0.0f), vec2(0.0f), vec2(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void faceForward_e6908b() {
-  vec2 res = faceforward(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+  vec2 res = faceforward(vec2(0.0f), vec2(0.0f), vec2(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/firstLeadingBit/000ff3.wgsl.expected.glsl b/test/tint/builtins/gen/firstLeadingBit/000ff3.wgsl.expected.glsl
index fcf4b3d..2601481 100644
--- a/test/tint/builtins/gen/firstLeadingBit/000ff3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/firstLeadingBit/000ff3.wgsl.expected.glsl
@@ -16,12 +16,12 @@
 }
 
 void firstLeadingBit_000ff3() {
-  uvec4 res = tint_first_leading_bit(uvec4(0u, 0u, 0u, 0u));
+  uvec4 res = tint_first_leading_bit(uvec4(0u));
 }
 
 vec4 vertex_main() {
   firstLeadingBit_000ff3();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -51,7 +51,7 @@
 }
 
 void firstLeadingBit_000ff3() {
-  uvec4 res = tint_first_leading_bit(uvec4(0u, 0u, 0u, 0u));
+  uvec4 res = tint_first_leading_bit(uvec4(0u));
 }
 
 void fragment_main() {
@@ -80,7 +80,7 @@
 }
 
 void firstLeadingBit_000ff3() {
-  uvec4 res = tint_first_leading_bit(uvec4(0u, 0u, 0u, 0u));
+  uvec4 res = tint_first_leading_bit(uvec4(0u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/firstLeadingBit/35053e.wgsl.expected.glsl b/test/tint/builtins/gen/firstLeadingBit/35053e.wgsl.expected.glsl
index efe831f..77236c8 100644
--- a/test/tint/builtins/gen/firstLeadingBit/35053e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/firstLeadingBit/35053e.wgsl.expected.glsl
@@ -16,12 +16,12 @@
 }
 
 void firstLeadingBit_35053e() {
-  ivec3 res = tint_first_leading_bit(ivec3(0, 0, 0));
+  ivec3 res = tint_first_leading_bit(ivec3(0));
 }
 
 vec4 vertex_main() {
   firstLeadingBit_35053e();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -51,7 +51,7 @@
 }
 
 void firstLeadingBit_35053e() {
-  ivec3 res = tint_first_leading_bit(ivec3(0, 0, 0));
+  ivec3 res = tint_first_leading_bit(ivec3(0));
 }
 
 void fragment_main() {
@@ -80,7 +80,7 @@
 }
 
 void firstLeadingBit_35053e() {
-  ivec3 res = tint_first_leading_bit(ivec3(0, 0, 0));
+  ivec3 res = tint_first_leading_bit(ivec3(0));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/firstLeadingBit/3fd7d0.wgsl.expected.glsl b/test/tint/builtins/gen/firstLeadingBit/3fd7d0.wgsl.expected.glsl
index 4fe9cb7..8536bb5 100644
--- a/test/tint/builtins/gen/firstLeadingBit/3fd7d0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/firstLeadingBit/3fd7d0.wgsl.expected.glsl
@@ -16,12 +16,12 @@
 }
 
 void firstLeadingBit_3fd7d0() {
-  uvec3 res = tint_first_leading_bit(uvec3(0u, 0u, 0u));
+  uvec3 res = tint_first_leading_bit(uvec3(0u));
 }
 
 vec4 vertex_main() {
   firstLeadingBit_3fd7d0();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -51,7 +51,7 @@
 }
 
 void firstLeadingBit_3fd7d0() {
-  uvec3 res = tint_first_leading_bit(uvec3(0u, 0u, 0u));
+  uvec3 res = tint_first_leading_bit(uvec3(0u));
 }
 
 void fragment_main() {
@@ -80,7 +80,7 @@
 }
 
 void firstLeadingBit_3fd7d0() {
-  uvec3 res = tint_first_leading_bit(uvec3(0u, 0u, 0u));
+  uvec3 res = tint_first_leading_bit(uvec3(0u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/firstLeadingBit/57a1a3.wgsl.expected.glsl b/test/tint/builtins/gen/firstLeadingBit/57a1a3.wgsl.expected.glsl
index 1e85a2a..27ce842 100644
--- a/test/tint/builtins/gen/firstLeadingBit/57a1a3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/firstLeadingBit/57a1a3.wgsl.expected.glsl
@@ -21,7 +21,7 @@
 
 vec4 vertex_main() {
   firstLeadingBit_57a1a3();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/firstLeadingBit/6fe804.wgsl.expected.glsl b/test/tint/builtins/gen/firstLeadingBit/6fe804.wgsl.expected.glsl
index 9310a7c..f4787ff 100644
--- a/test/tint/builtins/gen/firstLeadingBit/6fe804.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/firstLeadingBit/6fe804.wgsl.expected.glsl
@@ -16,12 +16,12 @@
 }
 
 void firstLeadingBit_6fe804() {
-  uvec2 res = tint_first_leading_bit(uvec2(0u, 0u));
+  uvec2 res = tint_first_leading_bit(uvec2(0u));
 }
 
 vec4 vertex_main() {
   firstLeadingBit_6fe804();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -51,7 +51,7 @@
 }
 
 void firstLeadingBit_6fe804() {
-  uvec2 res = tint_first_leading_bit(uvec2(0u, 0u));
+  uvec2 res = tint_first_leading_bit(uvec2(0u));
 }
 
 void fragment_main() {
@@ -80,7 +80,7 @@
 }
 
 void firstLeadingBit_6fe804() {
-  uvec2 res = tint_first_leading_bit(uvec2(0u, 0u));
+  uvec2 res = tint_first_leading_bit(uvec2(0u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/firstLeadingBit/a622c2.wgsl.expected.glsl b/test/tint/builtins/gen/firstLeadingBit/a622c2.wgsl.expected.glsl
index 1f91cc6..1612541 100644
--- a/test/tint/builtins/gen/firstLeadingBit/a622c2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/firstLeadingBit/a622c2.wgsl.expected.glsl
@@ -16,12 +16,12 @@
 }
 
 void firstLeadingBit_a622c2() {
-  ivec2 res = tint_first_leading_bit(ivec2(0, 0));
+  ivec2 res = tint_first_leading_bit(ivec2(0));
 }
 
 vec4 vertex_main() {
   firstLeadingBit_a622c2();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -51,7 +51,7 @@
 }
 
 void firstLeadingBit_a622c2() {
-  ivec2 res = tint_first_leading_bit(ivec2(0, 0));
+  ivec2 res = tint_first_leading_bit(ivec2(0));
 }
 
 void fragment_main() {
@@ -80,7 +80,7 @@
 }
 
 void firstLeadingBit_a622c2() {
-  ivec2 res = tint_first_leading_bit(ivec2(0, 0));
+  ivec2 res = tint_first_leading_bit(ivec2(0));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/firstLeadingBit/c1f940.wgsl.expected.glsl b/test/tint/builtins/gen/firstLeadingBit/c1f940.wgsl.expected.glsl
index b589e3b..9639c39 100644
--- a/test/tint/builtins/gen/firstLeadingBit/c1f940.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/firstLeadingBit/c1f940.wgsl.expected.glsl
@@ -16,12 +16,12 @@
 }
 
 void firstLeadingBit_c1f940() {
-  ivec4 res = tint_first_leading_bit(ivec4(0, 0, 0, 0));
+  ivec4 res = tint_first_leading_bit(ivec4(0));
 }
 
 vec4 vertex_main() {
   firstLeadingBit_c1f940();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -51,7 +51,7 @@
 }
 
 void firstLeadingBit_c1f940() {
-  ivec4 res = tint_first_leading_bit(ivec4(0, 0, 0, 0));
+  ivec4 res = tint_first_leading_bit(ivec4(0));
 }
 
 void fragment_main() {
@@ -80,7 +80,7 @@
 }
 
 void firstLeadingBit_c1f940() {
-  ivec4 res = tint_first_leading_bit(ivec4(0, 0, 0, 0));
+  ivec4 res = tint_first_leading_bit(ivec4(0));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/firstLeadingBit/f0779d.wgsl.expected.glsl b/test/tint/builtins/gen/firstLeadingBit/f0779d.wgsl.expected.glsl
index 85f0190..76aee67 100644
--- a/test/tint/builtins/gen/firstLeadingBit/f0779d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/firstLeadingBit/f0779d.wgsl.expected.glsl
@@ -21,7 +21,7 @@
 
 vec4 vertex_main() {
   firstLeadingBit_f0779d();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/firstTrailingBit/110f2c.wgsl.expected.glsl b/test/tint/builtins/gen/firstTrailingBit/110f2c.wgsl.expected.glsl
index 02b11c1..f99c361 100644
--- a/test/tint/builtins/gen/firstTrailingBit/110f2c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/firstTrailingBit/110f2c.wgsl.expected.glsl
@@ -16,12 +16,12 @@
 }
 
 void firstTrailingBit_110f2c() {
-  uvec4 res = tint_first_trailing_bit(uvec4(0u, 0u, 0u, 0u));
+  uvec4 res = tint_first_trailing_bit(uvec4(0u));
 }
 
 vec4 vertex_main() {
   firstTrailingBit_110f2c();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -51,7 +51,7 @@
 }
 
 void firstTrailingBit_110f2c() {
-  uvec4 res = tint_first_trailing_bit(uvec4(0u, 0u, 0u, 0u));
+  uvec4 res = tint_first_trailing_bit(uvec4(0u));
 }
 
 void fragment_main() {
@@ -80,7 +80,7 @@
 }
 
 void firstTrailingBit_110f2c() {
-  uvec4 res = tint_first_trailing_bit(uvec4(0u, 0u, 0u, 0u));
+  uvec4 res = tint_first_trailing_bit(uvec4(0u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/firstTrailingBit/3a2acc.wgsl.expected.glsl b/test/tint/builtins/gen/firstTrailingBit/3a2acc.wgsl.expected.glsl
index e24cdf8..61aa479 100644
--- a/test/tint/builtins/gen/firstTrailingBit/3a2acc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/firstTrailingBit/3a2acc.wgsl.expected.glsl
@@ -21,7 +21,7 @@
 
 vec4 vertex_main() {
   firstTrailingBit_3a2acc();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/firstTrailingBit/45eb10.wgsl.expected.glsl b/test/tint/builtins/gen/firstTrailingBit/45eb10.wgsl.expected.glsl
index 90986cc..b8d2cb8 100644
--- a/test/tint/builtins/gen/firstTrailingBit/45eb10.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/firstTrailingBit/45eb10.wgsl.expected.glsl
@@ -16,12 +16,12 @@
 }
 
 void firstTrailingBit_45eb10() {
-  uvec2 res = tint_first_trailing_bit(uvec2(0u, 0u));
+  uvec2 res = tint_first_trailing_bit(uvec2(0u));
 }
 
 vec4 vertex_main() {
   firstTrailingBit_45eb10();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -51,7 +51,7 @@
 }
 
 void firstTrailingBit_45eb10() {
-  uvec2 res = tint_first_trailing_bit(uvec2(0u, 0u));
+  uvec2 res = tint_first_trailing_bit(uvec2(0u));
 }
 
 void fragment_main() {
@@ -80,7 +80,7 @@
 }
 
 void firstTrailingBit_45eb10() {
-  uvec2 res = tint_first_trailing_bit(uvec2(0u, 0u));
+  uvec2 res = tint_first_trailing_bit(uvec2(0u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/firstTrailingBit/47d475.wgsl.expected.glsl b/test/tint/builtins/gen/firstTrailingBit/47d475.wgsl.expected.glsl
index 8f0225a..5fdedcd 100644
--- a/test/tint/builtins/gen/firstTrailingBit/47d475.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/firstTrailingBit/47d475.wgsl.expected.glsl
@@ -21,7 +21,7 @@
 
 vec4 vertex_main() {
   firstTrailingBit_47d475();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/firstTrailingBit/50c072.wgsl.expected.glsl b/test/tint/builtins/gen/firstTrailingBit/50c072.wgsl.expected.glsl
index 1c7cb15..bfe3eed 100644
--- a/test/tint/builtins/gen/firstTrailingBit/50c072.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/firstTrailingBit/50c072.wgsl.expected.glsl
@@ -16,12 +16,12 @@
 }
 
 void firstTrailingBit_50c072() {
-  ivec2 res = tint_first_trailing_bit(ivec2(0, 0));
+  ivec2 res = tint_first_trailing_bit(ivec2(0));
 }
 
 vec4 vertex_main() {
   firstTrailingBit_50c072();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -51,7 +51,7 @@
 }
 
 void firstTrailingBit_50c072() {
-  ivec2 res = tint_first_trailing_bit(ivec2(0, 0));
+  ivec2 res = tint_first_trailing_bit(ivec2(0));
 }
 
 void fragment_main() {
@@ -80,7 +80,7 @@
 }
 
 void firstTrailingBit_50c072() {
-  ivec2 res = tint_first_trailing_bit(ivec2(0, 0));
+  ivec2 res = tint_first_trailing_bit(ivec2(0));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/firstTrailingBit/7496d6.wgsl.expected.glsl b/test/tint/builtins/gen/firstTrailingBit/7496d6.wgsl.expected.glsl
index ce695bb..b7eae3b 100644
--- a/test/tint/builtins/gen/firstTrailingBit/7496d6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/firstTrailingBit/7496d6.wgsl.expected.glsl
@@ -16,12 +16,12 @@
 }
 
 void firstTrailingBit_7496d6() {
-  ivec3 res = tint_first_trailing_bit(ivec3(0, 0, 0));
+  ivec3 res = tint_first_trailing_bit(ivec3(0));
 }
 
 vec4 vertex_main() {
   firstTrailingBit_7496d6();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -51,7 +51,7 @@
 }
 
 void firstTrailingBit_7496d6() {
-  ivec3 res = tint_first_trailing_bit(ivec3(0, 0, 0));
+  ivec3 res = tint_first_trailing_bit(ivec3(0));
 }
 
 void fragment_main() {
@@ -80,7 +80,7 @@
 }
 
 void firstTrailingBit_7496d6() {
-  ivec3 res = tint_first_trailing_bit(ivec3(0, 0, 0));
+  ivec3 res = tint_first_trailing_bit(ivec3(0));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/firstTrailingBit/86551b.wgsl.expected.glsl b/test/tint/builtins/gen/firstTrailingBit/86551b.wgsl.expected.glsl
index f996126..61ca80d 100644
--- a/test/tint/builtins/gen/firstTrailingBit/86551b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/firstTrailingBit/86551b.wgsl.expected.glsl
@@ -16,12 +16,12 @@
 }
 
 void firstTrailingBit_86551b() {
-  ivec4 res = tint_first_trailing_bit(ivec4(0, 0, 0, 0));
+  ivec4 res = tint_first_trailing_bit(ivec4(0));
 }
 
 vec4 vertex_main() {
   firstTrailingBit_86551b();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -51,7 +51,7 @@
 }
 
 void firstTrailingBit_86551b() {
-  ivec4 res = tint_first_trailing_bit(ivec4(0, 0, 0, 0));
+  ivec4 res = tint_first_trailing_bit(ivec4(0));
 }
 
 void fragment_main() {
@@ -80,7 +80,7 @@
 }
 
 void firstTrailingBit_86551b() {
-  ivec4 res = tint_first_trailing_bit(ivec4(0, 0, 0, 0));
+  ivec4 res = tint_first_trailing_bit(ivec4(0));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/firstTrailingBit/cb51ce.wgsl.expected.glsl b/test/tint/builtins/gen/firstTrailingBit/cb51ce.wgsl.expected.glsl
index f4a773d..579c13b 100644
--- a/test/tint/builtins/gen/firstTrailingBit/cb51ce.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/firstTrailingBit/cb51ce.wgsl.expected.glsl
@@ -16,12 +16,12 @@
 }
 
 void firstTrailingBit_cb51ce() {
-  uvec3 res = tint_first_trailing_bit(uvec3(0u, 0u, 0u));
+  uvec3 res = tint_first_trailing_bit(uvec3(0u));
 }
 
 vec4 vertex_main() {
   firstTrailingBit_cb51ce();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -51,7 +51,7 @@
 }
 
 void firstTrailingBit_cb51ce() {
-  uvec3 res = tint_first_trailing_bit(uvec3(0u, 0u, 0u));
+  uvec3 res = tint_first_trailing_bit(uvec3(0u));
 }
 
 void fragment_main() {
@@ -80,7 +80,7 @@
 }
 
 void firstTrailingBit_cb51ce() {
-  uvec3 res = tint_first_trailing_bit(uvec3(0u, 0u, 0u));
+  uvec3 res = tint_first_trailing_bit(uvec3(0u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/floor/3bccc4.wgsl.expected.glsl b/test/tint/builtins/gen/floor/3bccc4.wgsl.expected.glsl
index f62960f..6932c86 100644
--- a/test/tint/builtins/gen/floor/3bccc4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/floor/3bccc4.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void floor_3bccc4() {
-  vec4 res = floor(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = floor(vec4(0.0f));
 }
 
 vec4 vertex_main() {
   floor_3bccc4();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void floor_3bccc4() {
-  vec4 res = floor(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = floor(vec4(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void floor_3bccc4() {
-  vec4 res = floor(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = floor(vec4(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/floor/5fc9ac.wgsl.expected.glsl b/test/tint/builtins/gen/floor/5fc9ac.wgsl.expected.glsl
index 422a1a7..580cb90 100644
--- a/test/tint/builtins/gen/floor/5fc9ac.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/floor/5fc9ac.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void floor_5fc9ac() {
-  vec2 res = floor(vec2(0.0f, 0.0f));
+  vec2 res = floor(vec2(0.0f));
 }
 
 vec4 vertex_main() {
   floor_5fc9ac();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void floor_5fc9ac() {
-  vec2 res = floor(vec2(0.0f, 0.0f));
+  vec2 res = floor(vec2(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void floor_5fc9ac() {
-  vec2 res = floor(vec2(0.0f, 0.0f));
+  vec2 res = floor(vec2(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/floor/60d7ea.wgsl.expected.glsl b/test/tint/builtins/gen/floor/60d7ea.wgsl.expected.glsl
index 941e510..df0b284 100644
--- a/test/tint/builtins/gen/floor/60d7ea.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/floor/60d7ea.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void floor_60d7ea() {
-  vec3 res = floor(vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = floor(vec3(0.0f));
 }
 
 vec4 vertex_main() {
   floor_60d7ea();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void floor_60d7ea() {
-  vec3 res = floor(vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = floor(vec3(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void floor_60d7ea() {
-  vec3 res = floor(vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = floor(vec3(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/floor/66f154.wgsl.expected.glsl b/test/tint/builtins/gen/floor/66f154.wgsl.expected.glsl
index 29898d8..26dcf94 100644
--- a/test/tint/builtins/gen/floor/66f154.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/floor/66f154.wgsl.expected.glsl
@@ -6,7 +6,7 @@
 
 vec4 vertex_main() {
   floor_66f154();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/fma/26a7a9.wgsl.expected.glsl b/test/tint/builtins/gen/fma/26a7a9.wgsl.expected.glsl
index 037641e..4d2f38f 100644
--- a/test/tint/builtins/gen/fma/26a7a9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/fma/26a7a9.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void fma_26a7a9() {
-  vec2 res = ((vec2(0.0f, 0.0f)) * (vec2(0.0f, 0.0f)) + (vec2(0.0f, 0.0f)));
+  vec2 res = ((vec2(0.0f)) * (vec2(0.0f)) + (vec2(0.0f)));
 }
 
 vec4 vertex_main() {
   fma_26a7a9();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void fma_26a7a9() {
-  vec2 res = ((vec2(0.0f, 0.0f)) * (vec2(0.0f, 0.0f)) + (vec2(0.0f, 0.0f)));
+  vec2 res = ((vec2(0.0f)) * (vec2(0.0f)) + (vec2(0.0f)));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void fma_26a7a9() {
-  vec2 res = ((vec2(0.0f, 0.0f)) * (vec2(0.0f, 0.0f)) + (vec2(0.0f, 0.0f)));
+  vec2 res = ((vec2(0.0f)) * (vec2(0.0f)) + (vec2(0.0f)));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/fma/6a3283.wgsl.expected.glsl b/test/tint/builtins/gen/fma/6a3283.wgsl.expected.glsl
index 80fbeca..16116fb 100644
--- a/test/tint/builtins/gen/fma/6a3283.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/fma/6a3283.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void fma_6a3283() {
-  vec4 res = ((vec4(0.0f, 0.0f, 0.0f, 0.0f)) * (vec4(0.0f, 0.0f, 0.0f, 0.0f)) + (vec4(0.0f, 0.0f, 0.0f, 0.0f)));
+  vec4 res = ((vec4(0.0f)) * (vec4(0.0f)) + (vec4(0.0f)));
 }
 
 vec4 vertex_main() {
   fma_6a3283();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void fma_6a3283() {
-  vec4 res = ((vec4(0.0f, 0.0f, 0.0f, 0.0f)) * (vec4(0.0f, 0.0f, 0.0f, 0.0f)) + (vec4(0.0f, 0.0f, 0.0f, 0.0f)));
+  vec4 res = ((vec4(0.0f)) * (vec4(0.0f)) + (vec4(0.0f)));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void fma_6a3283() {
-  vec4 res = ((vec4(0.0f, 0.0f, 0.0f, 0.0f)) * (vec4(0.0f, 0.0f, 0.0f, 0.0f)) + (vec4(0.0f, 0.0f, 0.0f, 0.0f)));
+  vec4 res = ((vec4(0.0f)) * (vec4(0.0f)) + (vec4(0.0f)));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/fma/c10ba3.wgsl.expected.glsl b/test/tint/builtins/gen/fma/c10ba3.wgsl.expected.glsl
index 1b5dc88..611c0b6 100644
--- a/test/tint/builtins/gen/fma/c10ba3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/fma/c10ba3.wgsl.expected.glsl
@@ -6,7 +6,7 @@
 
 vec4 vertex_main() {
   fma_c10ba3();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/fma/e17c5c.wgsl.expected.glsl b/test/tint/builtins/gen/fma/e17c5c.wgsl.expected.glsl
index efd6b76..1083afa 100644
--- a/test/tint/builtins/gen/fma/e17c5c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/fma/e17c5c.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void fma_e17c5c() {
-  vec3 res = ((vec3(0.0f, 0.0f, 0.0f)) * (vec3(0.0f, 0.0f, 0.0f)) + (vec3(0.0f, 0.0f, 0.0f)));
+  vec3 res = ((vec3(0.0f)) * (vec3(0.0f)) + (vec3(0.0f)));
 }
 
 vec4 vertex_main() {
   fma_e17c5c();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void fma_e17c5c() {
-  vec3 res = ((vec3(0.0f, 0.0f, 0.0f)) * (vec3(0.0f, 0.0f, 0.0f)) + (vec3(0.0f, 0.0f, 0.0f)));
+  vec3 res = ((vec3(0.0f)) * (vec3(0.0f)) + (vec3(0.0f)));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void fma_e17c5c() {
-  vec3 res = ((vec3(0.0f, 0.0f, 0.0f)) * (vec3(0.0f, 0.0f, 0.0f)) + (vec3(0.0f, 0.0f, 0.0f)));
+  vec3 res = ((vec3(0.0f)) * (vec3(0.0f)) + (vec3(0.0f)));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/fract/8bc1e9.wgsl.expected.glsl b/test/tint/builtins/gen/fract/8bc1e9.wgsl.expected.glsl
index e906dba..ee3f7d5 100644
--- a/test/tint/builtins/gen/fract/8bc1e9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/fract/8bc1e9.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void fract_8bc1e9() {
-  vec4 res = fract(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = fract(vec4(0.0f));
 }
 
 vec4 vertex_main() {
   fract_8bc1e9();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void fract_8bc1e9() {
-  vec4 res = fract(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = fract(vec4(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void fract_8bc1e9() {
-  vec4 res = fract(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = fract(vec4(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/fract/943cb1.wgsl.expected.glsl b/test/tint/builtins/gen/fract/943cb1.wgsl.expected.glsl
index 72b0a1b..628bdef 100644
--- a/test/tint/builtins/gen/fract/943cb1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/fract/943cb1.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void fract_943cb1() {
-  vec2 res = fract(vec2(0.0f, 0.0f));
+  vec2 res = fract(vec2(0.0f));
 }
 
 vec4 vertex_main() {
   fract_943cb1();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void fract_943cb1() {
-  vec2 res = fract(vec2(0.0f, 0.0f));
+  vec2 res = fract(vec2(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void fract_943cb1() {
-  vec2 res = fract(vec2(0.0f, 0.0f));
+  vec2 res = fract(vec2(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/fract/a49758.wgsl.expected.glsl b/test/tint/builtins/gen/fract/a49758.wgsl.expected.glsl
index bcb4432..9a81b93 100644
--- a/test/tint/builtins/gen/fract/a49758.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/fract/a49758.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void fract_a49758() {
-  vec3 res = fract(vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = fract(vec3(0.0f));
 }
 
 vec4 vertex_main() {
   fract_a49758();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void fract_a49758() {
-  vec3 res = fract(vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = fract(vec3(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void fract_a49758() {
-  vec3 res = fract(vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = fract(vec3(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/fract/fa5c71.wgsl.expected.glsl b/test/tint/builtins/gen/fract/fa5c71.wgsl.expected.glsl
index 7fd676a..6bc91bf 100644
--- a/test/tint/builtins/gen/fract/fa5c71.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/fract/fa5c71.wgsl.expected.glsl
@@ -6,7 +6,7 @@
 
 vec4 vertex_main() {
   fract_fa5c71();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/frexp/368997.wgsl.expected.glsl b/test/tint/builtins/gen/frexp/368997.wgsl.expected.glsl
index 3e4bc1f..b95a82a 100644
--- a/test/tint/builtins/gen/frexp/368997.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/frexp/368997.wgsl.expected.glsl
@@ -13,12 +13,12 @@
 
 
 void frexp_368997() {
-  frexp_result_vec3 res = tint_frexp(vec3(0.0f, 0.0f, 0.0f));
+  frexp_result_vec3 res = tint_frexp(vec3(0.0f));
 }
 
 vec4 vertex_main() {
   frexp_368997();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -45,7 +45,7 @@
 
 
 void frexp_368997() {
-  frexp_result_vec3 res = tint_frexp(vec3(0.0f, 0.0f, 0.0f));
+  frexp_result_vec3 res = tint_frexp(vec3(0.0f));
 }
 
 void fragment_main() {
@@ -71,7 +71,7 @@
 
 
 void frexp_368997() {
-  frexp_result_vec3 res = tint_frexp(vec3(0.0f, 0.0f, 0.0f));
+  frexp_result_vec3 res = tint_frexp(vec3(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/frexp/3c4f48.wgsl.expected.glsl b/test/tint/builtins/gen/frexp/3c4f48.wgsl.expected.glsl
index 1149013..94d803f 100644
--- a/test/tint/builtins/gen/frexp/3c4f48.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/frexp/3c4f48.wgsl.expected.glsl
@@ -13,12 +13,12 @@
 
 
 void frexp_3c4f48() {
-  frexp_result_vec4 res = tint_frexp(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  frexp_result_vec4 res = tint_frexp(vec4(0.0f));
 }
 
 vec4 vertex_main() {
   frexp_3c4f48();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -45,7 +45,7 @@
 
 
 void frexp_3c4f48() {
-  frexp_result_vec4 res = tint_frexp(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  frexp_result_vec4 res = tint_frexp(vec4(0.0f));
 }
 
 void fragment_main() {
@@ -71,7 +71,7 @@
 
 
 void frexp_3c4f48() {
-  frexp_result_vec4 res = tint_frexp(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  frexp_result_vec4 res = tint_frexp(vec4(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/frexp/4bdfc7.wgsl.expected.glsl b/test/tint/builtins/gen/frexp/4bdfc7.wgsl.expected.glsl
index 76052ca..2af8af8 100644
--- a/test/tint/builtins/gen/frexp/4bdfc7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/frexp/4bdfc7.wgsl.expected.glsl
@@ -13,12 +13,12 @@
 
 
 void frexp_4bdfc7() {
-  frexp_result_vec2 res = tint_frexp(vec2(0.0f, 0.0f));
+  frexp_result_vec2 res = tint_frexp(vec2(0.0f));
 }
 
 vec4 vertex_main() {
   frexp_4bdfc7();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -45,7 +45,7 @@
 
 
 void frexp_4bdfc7() {
-  frexp_result_vec2 res = tint_frexp(vec2(0.0f, 0.0f));
+  frexp_result_vec2 res = tint_frexp(vec2(0.0f));
 }
 
 void fragment_main() {
@@ -71,7 +71,7 @@
 
 
 void frexp_4bdfc7() {
-  frexp_result_vec2 res = tint_frexp(vec2(0.0f, 0.0f));
+  frexp_result_vec2 res = tint_frexp(vec2(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/frexp/eabd40.wgsl.expected.glsl b/test/tint/builtins/gen/frexp/eabd40.wgsl.expected.glsl
index 4d5a4e8..8fb90cd 100644
--- a/test/tint/builtins/gen/frexp/eabd40.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/frexp/eabd40.wgsl.expected.glsl
@@ -18,7 +18,7 @@
 
 vec4 vertex_main() {
   frexp_eabd40();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/fwidth/5d1b39.wgsl.expected.glsl b/test/tint/builtins/gen/fwidth/5d1b39.wgsl.expected.glsl
index c804d0b..fd55d4c 100644
--- a/test/tint/builtins/gen/fwidth/5d1b39.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/fwidth/5d1b39.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 precision mediump float;
 
 void fwidth_5d1b39() {
-  vec3 res = fwidth(vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = fwidth(vec3(0.0f));
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/fwidth/b83ebb.wgsl.expected.glsl b/test/tint/builtins/gen/fwidth/b83ebb.wgsl.expected.glsl
index 29d50bc..ede2c03 100644
--- a/test/tint/builtins/gen/fwidth/b83ebb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/fwidth/b83ebb.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 precision mediump float;
 
 void fwidth_b83ebb() {
-  vec2 res = fwidth(vec2(0.0f, 0.0f));
+  vec2 res = fwidth(vec2(0.0f));
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/fwidth/d2ab9a.wgsl.expected.glsl b/test/tint/builtins/gen/fwidth/d2ab9a.wgsl.expected.glsl
index db40ca0..82273ae 100644
--- a/test/tint/builtins/gen/fwidth/d2ab9a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/fwidth/d2ab9a.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 precision mediump float;
 
 void fwidth_d2ab9a() {
-  vec4 res = fwidth(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = fwidth(vec4(0.0f));
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/fwidthCoarse/1e59d9.wgsl.expected.glsl b/test/tint/builtins/gen/fwidthCoarse/1e59d9.wgsl.expected.glsl
index 6ec03b5..efce1a5 100644
--- a/test/tint/builtins/gen/fwidthCoarse/1e59d9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/fwidthCoarse/1e59d9.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 precision mediump float;
 
 void fwidthCoarse_1e59d9() {
-  vec3 res = fwidth(vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = fwidth(vec3(0.0f));
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/fwidthCoarse/4e4fc4.wgsl.expected.glsl b/test/tint/builtins/gen/fwidthCoarse/4e4fc4.wgsl.expected.glsl
index 1c54caa..6d355fd 100644
--- a/test/tint/builtins/gen/fwidthCoarse/4e4fc4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/fwidthCoarse/4e4fc4.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 precision mediump float;
 
 void fwidthCoarse_4e4fc4() {
-  vec4 res = fwidth(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = fwidth(vec4(0.0f));
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/fwidthCoarse/e653f7.wgsl.expected.glsl b/test/tint/builtins/gen/fwidthCoarse/e653f7.wgsl.expected.glsl
index 8676a07..5073cfe 100644
--- a/test/tint/builtins/gen/fwidthCoarse/e653f7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/fwidthCoarse/e653f7.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 precision mediump float;
 
 void fwidthCoarse_e653f7() {
-  vec2 res = fwidth(vec2(0.0f, 0.0f));
+  vec2 res = fwidth(vec2(0.0f));
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/fwidthFine/523fdc.wgsl.expected.glsl b/test/tint/builtins/gen/fwidthFine/523fdc.wgsl.expected.glsl
index bd41be7..f0b9ba0 100644
--- a/test/tint/builtins/gen/fwidthFine/523fdc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/fwidthFine/523fdc.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 precision mediump float;
 
 void fwidthFine_523fdc() {
-  vec3 res = fwidth(vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = fwidth(vec3(0.0f));
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/fwidthFine/68f4ef.wgsl.expected.glsl b/test/tint/builtins/gen/fwidthFine/68f4ef.wgsl.expected.glsl
index c300adb..f75e43b 100644
--- a/test/tint/builtins/gen/fwidthFine/68f4ef.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/fwidthFine/68f4ef.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 precision mediump float;
 
 void fwidthFine_68f4ef() {
-  vec4 res = fwidth(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = fwidth(vec4(0.0f));
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/fwidthFine/ff6aa0.wgsl.expected.glsl b/test/tint/builtins/gen/fwidthFine/ff6aa0.wgsl.expected.glsl
index 024943b..b44025c 100644
--- a/test/tint/builtins/gen/fwidthFine/ff6aa0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/fwidthFine/ff6aa0.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 precision mediump float;
 
 void fwidthFine_ff6aa0() {
-  vec2 res = fwidth(vec2(0.0f, 0.0f));
+  vec2 res = fwidth(vec2(0.0f));
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/insertBits/3c7ba5.wgsl.expected.glsl b/test/tint/builtins/gen/insertBits/3c7ba5.wgsl.expected.glsl
index 4047940..4f41583 100644
--- a/test/tint/builtins/gen/insertBits/3c7ba5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/insertBits/3c7ba5.wgsl.expected.glsl
@@ -7,12 +7,12 @@
 }
 
 void insertBits_3c7ba5() {
-  uvec2 res = tint_insert_bits(uvec2(0u, 0u), uvec2(0u, 0u), 1u, 1u);
+  uvec2 res = tint_insert_bits(uvec2(0u), uvec2(0u), 1u, 1u);
 }
 
 vec4 vertex_main() {
   insertBits_3c7ba5();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -33,7 +33,7 @@
 }
 
 void insertBits_3c7ba5() {
-  uvec2 res = tint_insert_bits(uvec2(0u, 0u), uvec2(0u, 0u), 1u, 1u);
+  uvec2 res = tint_insert_bits(uvec2(0u), uvec2(0u), 1u, 1u);
 }
 
 void fragment_main() {
@@ -53,7 +53,7 @@
 }
 
 void insertBits_3c7ba5() {
-  uvec2 res = tint_insert_bits(uvec2(0u, 0u), uvec2(0u, 0u), 1u, 1u);
+  uvec2 res = tint_insert_bits(uvec2(0u), uvec2(0u), 1u, 1u);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/insertBits/428b0b.wgsl.expected.glsl b/test/tint/builtins/gen/insertBits/428b0b.wgsl.expected.glsl
index 8f55793..07da791 100644
--- a/test/tint/builtins/gen/insertBits/428b0b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/insertBits/428b0b.wgsl.expected.glsl
@@ -7,12 +7,12 @@
 }
 
 void insertBits_428b0b() {
-  ivec3 res = tint_insert_bits(ivec3(0, 0, 0), ivec3(0, 0, 0), 1u, 1u);
+  ivec3 res = tint_insert_bits(ivec3(0), ivec3(0), 1u, 1u);
 }
 
 vec4 vertex_main() {
   insertBits_428b0b();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -33,7 +33,7 @@
 }
 
 void insertBits_428b0b() {
-  ivec3 res = tint_insert_bits(ivec3(0, 0, 0), ivec3(0, 0, 0), 1u, 1u);
+  ivec3 res = tint_insert_bits(ivec3(0), ivec3(0), 1u, 1u);
 }
 
 void fragment_main() {
@@ -53,7 +53,7 @@
 }
 
 void insertBits_428b0b() {
-  ivec3 res = tint_insert_bits(ivec3(0, 0, 0), ivec3(0, 0, 0), 1u, 1u);
+  ivec3 res = tint_insert_bits(ivec3(0), ivec3(0), 1u, 1u);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/insertBits/51ede1.wgsl.expected.glsl b/test/tint/builtins/gen/insertBits/51ede1.wgsl.expected.glsl
index c74d63d..e8e4c3a 100644
--- a/test/tint/builtins/gen/insertBits/51ede1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/insertBits/51ede1.wgsl.expected.glsl
@@ -7,12 +7,12 @@
 }
 
 void insertBits_51ede1() {
-  uvec4 res = tint_insert_bits(uvec4(0u, 0u, 0u, 0u), uvec4(0u, 0u, 0u, 0u), 1u, 1u);
+  uvec4 res = tint_insert_bits(uvec4(0u), uvec4(0u), 1u, 1u);
 }
 
 vec4 vertex_main() {
   insertBits_51ede1();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -33,7 +33,7 @@
 }
 
 void insertBits_51ede1() {
-  uvec4 res = tint_insert_bits(uvec4(0u, 0u, 0u, 0u), uvec4(0u, 0u, 0u, 0u), 1u, 1u);
+  uvec4 res = tint_insert_bits(uvec4(0u), uvec4(0u), 1u, 1u);
 }
 
 void fragment_main() {
@@ -53,7 +53,7 @@
 }
 
 void insertBits_51ede1() {
-  uvec4 res = tint_insert_bits(uvec4(0u, 0u, 0u, 0u), uvec4(0u, 0u, 0u, 0u), 1u, 1u);
+  uvec4 res = tint_insert_bits(uvec4(0u), uvec4(0u), 1u, 1u);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/insertBits/65468b.wgsl.expected.glsl b/test/tint/builtins/gen/insertBits/65468b.wgsl.expected.glsl
index 833aab6..88dfff2 100644
--- a/test/tint/builtins/gen/insertBits/65468b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/insertBits/65468b.wgsl.expected.glsl
@@ -12,7 +12,7 @@
 
 vec4 vertex_main() {
   insertBits_65468b();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/insertBits/87826b.wgsl.expected.glsl b/test/tint/builtins/gen/insertBits/87826b.wgsl.expected.glsl
index b5e125a..cf6a0c7 100644
--- a/test/tint/builtins/gen/insertBits/87826b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/insertBits/87826b.wgsl.expected.glsl
@@ -7,12 +7,12 @@
 }
 
 void insertBits_87826b() {
-  uvec3 res = tint_insert_bits(uvec3(0u, 0u, 0u), uvec3(0u, 0u, 0u), 1u, 1u);
+  uvec3 res = tint_insert_bits(uvec3(0u), uvec3(0u), 1u, 1u);
 }
 
 vec4 vertex_main() {
   insertBits_87826b();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -33,7 +33,7 @@
 }
 
 void insertBits_87826b() {
-  uvec3 res = tint_insert_bits(uvec3(0u, 0u, 0u), uvec3(0u, 0u, 0u), 1u, 1u);
+  uvec3 res = tint_insert_bits(uvec3(0u), uvec3(0u), 1u, 1u);
 }
 
 void fragment_main() {
@@ -53,7 +53,7 @@
 }
 
 void insertBits_87826b() {
-  uvec3 res = tint_insert_bits(uvec3(0u, 0u, 0u), uvec3(0u, 0u, 0u), 1u, 1u);
+  uvec3 res = tint_insert_bits(uvec3(0u), uvec3(0u), 1u, 1u);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/insertBits/d86978.wgsl.expected.glsl b/test/tint/builtins/gen/insertBits/d86978.wgsl.expected.glsl
index bb43505..369d296 100644
--- a/test/tint/builtins/gen/insertBits/d86978.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/insertBits/d86978.wgsl.expected.glsl
@@ -7,12 +7,12 @@
 }
 
 void insertBits_d86978() {
-  ivec4 res = tint_insert_bits(ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), 1u, 1u);
+  ivec4 res = tint_insert_bits(ivec4(0), ivec4(0), 1u, 1u);
 }
 
 vec4 vertex_main() {
   insertBits_d86978();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -33,7 +33,7 @@
 }
 
 void insertBits_d86978() {
-  ivec4 res = tint_insert_bits(ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), 1u, 1u);
+  ivec4 res = tint_insert_bits(ivec4(0), ivec4(0), 1u, 1u);
 }
 
 void fragment_main() {
@@ -53,7 +53,7 @@
 }
 
 void insertBits_d86978() {
-  ivec4 res = tint_insert_bits(ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), 1u, 1u);
+  ivec4 res = tint_insert_bits(ivec4(0), ivec4(0), 1u, 1u);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/insertBits/e3e3a2.wgsl.expected.glsl b/test/tint/builtins/gen/insertBits/e3e3a2.wgsl.expected.glsl
index b1b88ed..2da5c2a 100644
--- a/test/tint/builtins/gen/insertBits/e3e3a2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/insertBits/e3e3a2.wgsl.expected.glsl
@@ -12,7 +12,7 @@
 
 vec4 vertex_main() {
   insertBits_e3e3a2();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/insertBits/fe6ba6.wgsl.expected.glsl b/test/tint/builtins/gen/insertBits/fe6ba6.wgsl.expected.glsl
index 16e01a5..e6eca92 100644
--- a/test/tint/builtins/gen/insertBits/fe6ba6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/insertBits/fe6ba6.wgsl.expected.glsl
@@ -7,12 +7,12 @@
 }
 
 void insertBits_fe6ba6() {
-  ivec2 res = tint_insert_bits(ivec2(0, 0), ivec2(0, 0), 1u, 1u);
+  ivec2 res = tint_insert_bits(ivec2(0), ivec2(0), 1u, 1u);
 }
 
 vec4 vertex_main() {
   insertBits_fe6ba6();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -33,7 +33,7 @@
 }
 
 void insertBits_fe6ba6() {
-  ivec2 res = tint_insert_bits(ivec2(0, 0), ivec2(0, 0), 1u, 1u);
+  ivec2 res = tint_insert_bits(ivec2(0), ivec2(0), 1u, 1u);
 }
 
 void fragment_main() {
@@ -53,7 +53,7 @@
 }
 
 void insertBits_fe6ba6() {
-  ivec2 res = tint_insert_bits(ivec2(0, 0), ivec2(0, 0), 1u, 1u);
+  ivec2 res = tint_insert_bits(ivec2(0), ivec2(0), 1u, 1u);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/inverseSqrt/84407e.wgsl.expected.glsl b/test/tint/builtins/gen/inverseSqrt/84407e.wgsl.expected.glsl
index a6e5da6..eef230f 100644
--- a/test/tint/builtins/gen/inverseSqrt/84407e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/inverseSqrt/84407e.wgsl.expected.glsl
@@ -6,7 +6,7 @@
 
 vec4 vertex_main() {
   inverseSqrt_84407e();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/inverseSqrt/8f2bd2.wgsl.expected.glsl b/test/tint/builtins/gen/inverseSqrt/8f2bd2.wgsl.expected.glsl
index 52951ab..bb040db 100644
--- a/test/tint/builtins/gen/inverseSqrt/8f2bd2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/inverseSqrt/8f2bd2.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void inverseSqrt_8f2bd2() {
-  vec2 res = inversesqrt(vec2(0.0f, 0.0f));
+  vec2 res = inversesqrt(vec2(0.0f));
 }
 
 vec4 vertex_main() {
   inverseSqrt_8f2bd2();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void inverseSqrt_8f2bd2() {
-  vec2 res = inversesqrt(vec2(0.0f, 0.0f));
+  vec2 res = inversesqrt(vec2(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void inverseSqrt_8f2bd2() {
-  vec2 res = inversesqrt(vec2(0.0f, 0.0f));
+  vec2 res = inversesqrt(vec2(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/inverseSqrt/b197b1.wgsl.expected.glsl b/test/tint/builtins/gen/inverseSqrt/b197b1.wgsl.expected.glsl
index c54c5a7..a588d10 100644
--- a/test/tint/builtins/gen/inverseSqrt/b197b1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/inverseSqrt/b197b1.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void inverseSqrt_b197b1() {
-  vec3 res = inversesqrt(vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = inversesqrt(vec3(0.0f));
 }
 
 vec4 vertex_main() {
   inverseSqrt_b197b1();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void inverseSqrt_b197b1() {
-  vec3 res = inversesqrt(vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = inversesqrt(vec3(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void inverseSqrt_b197b1() {
-  vec3 res = inversesqrt(vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = inversesqrt(vec3(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/inverseSqrt/c22347.wgsl.expected.glsl b/test/tint/builtins/gen/inverseSqrt/c22347.wgsl.expected.glsl
index 20add60..f999e26 100644
--- a/test/tint/builtins/gen/inverseSqrt/c22347.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/inverseSqrt/c22347.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void inverseSqrt_c22347() {
-  vec4 res = inversesqrt(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = inversesqrt(vec4(0.0f));
 }
 
 vec4 vertex_main() {
   inverseSqrt_c22347();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void inverseSqrt_c22347() {
-  vec4 res = inversesqrt(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = inversesqrt(vec4(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void inverseSqrt_c22347() {
-  vec4 res = inversesqrt(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = inversesqrt(vec4(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/ldexp/a31cdc.wgsl.expected.glsl b/test/tint/builtins/gen/ldexp/a31cdc.wgsl.expected.glsl
index 46a3848..97c7619 100644
--- a/test/tint/builtins/gen/ldexp/a31cdc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/ldexp/a31cdc.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void ldexp_a31cdc() {
-  vec3 res = ldexp(vec3(0.0f, 0.0f, 0.0f), ivec3(0, 0, 0));
+  vec3 res = ldexp(vec3(0.0f), ivec3(0));
 }
 
 vec4 vertex_main() {
   ldexp_a31cdc();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void ldexp_a31cdc() {
-  vec3 res = ldexp(vec3(0.0f, 0.0f, 0.0f), ivec3(0, 0, 0));
+  vec3 res = ldexp(vec3(0.0f), ivec3(0));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void ldexp_a31cdc() {
-  vec3 res = ldexp(vec3(0.0f, 0.0f, 0.0f), ivec3(0, 0, 0));
+  vec3 res = ldexp(vec3(0.0f), ivec3(0));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/ldexp/abd718.wgsl.expected.glsl b/test/tint/builtins/gen/ldexp/abd718.wgsl.expected.glsl
index 47e382b..9b3ab87 100644
--- a/test/tint/builtins/gen/ldexp/abd718.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/ldexp/abd718.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void ldexp_abd718() {
-  vec2 res = ldexp(vec2(0.0f, 0.0f), ivec2(0, 0));
+  vec2 res = ldexp(vec2(0.0f), ivec2(0));
 }
 
 vec4 vertex_main() {
   ldexp_abd718();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void ldexp_abd718() {
-  vec2 res = ldexp(vec2(0.0f, 0.0f), ivec2(0, 0));
+  vec2 res = ldexp(vec2(0.0f), ivec2(0));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void ldexp_abd718() {
-  vec2 res = ldexp(vec2(0.0f, 0.0f), ivec2(0, 0));
+  vec2 res = ldexp(vec2(0.0f), ivec2(0));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/ldexp/cc9cde.wgsl.expected.glsl b/test/tint/builtins/gen/ldexp/cc9cde.wgsl.expected.glsl
index f7b40ae..391928c 100644
--- a/test/tint/builtins/gen/ldexp/cc9cde.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/ldexp/cc9cde.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void ldexp_cc9cde() {
-  vec4 res = ldexp(vec4(0.0f, 0.0f, 0.0f, 0.0f), ivec4(0, 0, 0, 0));
+  vec4 res = ldexp(vec4(0.0f), ivec4(0));
 }
 
 vec4 vertex_main() {
   ldexp_cc9cde();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void ldexp_cc9cde() {
-  vec4 res = ldexp(vec4(0.0f, 0.0f, 0.0f, 0.0f), ivec4(0, 0, 0, 0));
+  vec4 res = ldexp(vec4(0.0f), ivec4(0));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void ldexp_cc9cde() {
-  vec4 res = ldexp(vec4(0.0f, 0.0f, 0.0f, 0.0f), ivec4(0, 0, 0, 0));
+  vec4 res = ldexp(vec4(0.0f), ivec4(0));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/ldexp/db8b49.wgsl.expected.glsl b/test/tint/builtins/gen/ldexp/db8b49.wgsl.expected.glsl
index 07b656a..00cc0c8 100644
--- a/test/tint/builtins/gen/ldexp/db8b49.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/ldexp/db8b49.wgsl.expected.glsl
@@ -6,7 +6,7 @@
 
 vec4 vertex_main() {
   ldexp_db8b49();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/length/056071.wgsl.expected.glsl b/test/tint/builtins/gen/length/056071.wgsl.expected.glsl
index 485c9b1..bcec21b 100644
--- a/test/tint/builtins/gen/length/056071.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/length/056071.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void length_056071() {
-  float res = length(vec3(0.0f, 0.0f, 0.0f));
+  float res = length(vec3(0.0f));
 }
 
 vec4 vertex_main() {
   length_056071();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void length_056071() {
-  float res = length(vec3(0.0f, 0.0f, 0.0f));
+  float res = length(vec3(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void length_056071() {
-  float res = length(vec3(0.0f, 0.0f, 0.0f));
+  float res = length(vec3(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/length/602a17.wgsl.expected.glsl b/test/tint/builtins/gen/length/602a17.wgsl.expected.glsl
index 1f603ba..d6cce45 100644
--- a/test/tint/builtins/gen/length/602a17.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/length/602a17.wgsl.expected.glsl
@@ -6,7 +6,7 @@
 
 vec4 vertex_main() {
   length_602a17();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/length/afde8b.wgsl.expected.glsl b/test/tint/builtins/gen/length/afde8b.wgsl.expected.glsl
index 45a5ce2..b8c13f0 100644
--- a/test/tint/builtins/gen/length/afde8b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/length/afde8b.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void length_afde8b() {
-  float res = length(vec2(0.0f, 0.0f));
+  float res = length(vec2(0.0f));
 }
 
 vec4 vertex_main() {
   length_afde8b();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void length_afde8b() {
-  float res = length(vec2(0.0f, 0.0f));
+  float res = length(vec2(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void length_afde8b() {
-  float res = length(vec2(0.0f, 0.0f));
+  float res = length(vec2(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/length/becebf.wgsl.expected.glsl b/test/tint/builtins/gen/length/becebf.wgsl.expected.glsl
index f980d7a..91e0308 100644
--- a/test/tint/builtins/gen/length/becebf.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/length/becebf.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void length_becebf() {
-  float res = length(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  float res = length(vec4(0.0f));
 }
 
 vec4 vertex_main() {
   length_becebf();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void length_becebf() {
-  float res = length(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  float res = length(vec4(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void length_becebf() {
-  float res = length(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  float res = length(vec4(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/log/3da25a.wgsl.expected.glsl b/test/tint/builtins/gen/log/3da25a.wgsl.expected.glsl
index 5d2879e..ca52b64 100644
--- a/test/tint/builtins/gen/log/3da25a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/log/3da25a.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void log_3da25a() {
-  vec4 res = log(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = log(vec4(0.0f));
 }
 
 vec4 vertex_main() {
   log_3da25a();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void log_3da25a() {
-  vec4 res = log(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = log(vec4(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void log_3da25a() {
-  vec4 res = log(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = log(vec4(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/log/7114a6.wgsl.expected.glsl b/test/tint/builtins/gen/log/7114a6.wgsl.expected.glsl
index 8998eaf..0c5e7ea 100644
--- a/test/tint/builtins/gen/log/7114a6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/log/7114a6.wgsl.expected.glsl
@@ -6,7 +6,7 @@
 
 vec4 vertex_main() {
   log_7114a6();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/log/b2ce28.wgsl.expected.glsl b/test/tint/builtins/gen/log/b2ce28.wgsl.expected.glsl
index 18981b0..dfe94a9 100644
--- a/test/tint/builtins/gen/log/b2ce28.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/log/b2ce28.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void log_b2ce28() {
-  vec2 res = log(vec2(0.0f, 0.0f));
+  vec2 res = log(vec2(0.0f));
 }
 
 vec4 vertex_main() {
   log_b2ce28();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void log_b2ce28() {
-  vec2 res = log(vec2(0.0f, 0.0f));
+  vec2 res = log(vec2(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void log_b2ce28() {
-  vec2 res = log(vec2(0.0f, 0.0f));
+  vec2 res = log(vec2(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/log/f4c570.wgsl.expected.glsl b/test/tint/builtins/gen/log/f4c570.wgsl.expected.glsl
index 8ddbdbb..91a2314 100644
--- a/test/tint/builtins/gen/log/f4c570.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/log/f4c570.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void log_f4c570() {
-  vec3 res = log(vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = log(vec3(0.0f));
 }
 
 vec4 vertex_main() {
   log_f4c570();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void log_f4c570() {
-  vec3 res = log(vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = log(vec3(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void log_f4c570() {
-  vec3 res = log(vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = log(vec3(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/log2/4036ed.wgsl.expected.glsl b/test/tint/builtins/gen/log2/4036ed.wgsl.expected.glsl
index f62213d..842c021 100644
--- a/test/tint/builtins/gen/log2/4036ed.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/log2/4036ed.wgsl.expected.glsl
@@ -6,7 +6,7 @@
 
 vec4 vertex_main() {
   log2_4036ed();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/log2/902988.wgsl.expected.glsl b/test/tint/builtins/gen/log2/902988.wgsl.expected.glsl
index bc0717b..5ae645b 100644
--- a/test/tint/builtins/gen/log2/902988.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/log2/902988.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void log2_902988() {
-  vec4 res = log2(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = log2(vec4(0.0f));
 }
 
 vec4 vertex_main() {
   log2_902988();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void log2_902988() {
-  vec4 res = log2(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = log2(vec4(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void log2_902988() {
-  vec4 res = log2(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = log2(vec4(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/log2/adb233.wgsl.expected.glsl b/test/tint/builtins/gen/log2/adb233.wgsl.expected.glsl
index f05f951..51fd0cb 100644
--- a/test/tint/builtins/gen/log2/adb233.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/log2/adb233.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void log2_adb233() {
-  vec3 res = log2(vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = log2(vec3(0.0f));
 }
 
 vec4 vertex_main() {
   log2_adb233();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void log2_adb233() {
-  vec3 res = log2(vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = log2(vec3(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void log2_adb233() {
-  vec3 res = log2(vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = log2(vec3(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/log2/aea659.wgsl.expected.glsl b/test/tint/builtins/gen/log2/aea659.wgsl.expected.glsl
index a0c80be..fcbf2a6 100644
--- a/test/tint/builtins/gen/log2/aea659.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/log2/aea659.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void log2_aea659() {
-  vec2 res = log2(vec2(0.0f, 0.0f));
+  vec2 res = log2(vec2(0.0f));
 }
 
 vec4 vertex_main() {
   log2_aea659();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void log2_aea659() {
-  vec2 res = log2(vec2(0.0f, 0.0f));
+  vec2 res = log2(vec2(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void log2_aea659() {
-  vec2 res = log2(vec2(0.0f, 0.0f));
+  vec2 res = log2(vec2(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/max/0c0aae.wgsl.expected.glsl b/test/tint/builtins/gen/max/0c0aae.wgsl.expected.glsl
index 399664f..af1220e 100644
--- a/test/tint/builtins/gen/max/0c0aae.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/max/0c0aae.wgsl.expected.glsl
@@ -6,7 +6,7 @@
 
 vec4 vertex_main() {
   max_0c0aae();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/max/25eafe.wgsl.expected.glsl b/test/tint/builtins/gen/max/25eafe.wgsl.expected.glsl
index fa2b845..00e2cfe 100644
--- a/test/tint/builtins/gen/max/25eafe.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/max/25eafe.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void max_25eafe() {
-  ivec3 res = max(ivec3(0, 0, 0), ivec3(0, 0, 0));
+  ivec3 res = max(ivec3(0), ivec3(0));
 }
 
 vec4 vertex_main() {
   max_25eafe();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void max_25eafe() {
-  ivec3 res = max(ivec3(0, 0, 0), ivec3(0, 0, 0));
+  ivec3 res = max(ivec3(0), ivec3(0));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void max_25eafe() {
-  ivec3 res = max(ivec3(0, 0, 0), ivec3(0, 0, 0));
+  ivec3 res = max(ivec3(0), ivec3(0));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/max/320815.wgsl.expected.glsl b/test/tint/builtins/gen/max/320815.wgsl.expected.glsl
index b82aacd..03f3598 100644
--- a/test/tint/builtins/gen/max/320815.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/max/320815.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void max_320815() {
-  uvec2 res = max(uvec2(0u, 0u), uvec2(0u, 0u));
+  uvec2 res = max(uvec2(0u), uvec2(0u));
 }
 
 vec4 vertex_main() {
   max_320815();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void max_320815() {
-  uvec2 res = max(uvec2(0u, 0u), uvec2(0u, 0u));
+  uvec2 res = max(uvec2(0u), uvec2(0u));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void max_320815() {
-  uvec2 res = max(uvec2(0u, 0u), uvec2(0u, 0u));
+  uvec2 res = max(uvec2(0u), uvec2(0u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/max/44a39d.wgsl.expected.glsl b/test/tint/builtins/gen/max/44a39d.wgsl.expected.glsl
index 5df5fdd..cde0334 100644
--- a/test/tint/builtins/gen/max/44a39d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/max/44a39d.wgsl.expected.glsl
@@ -6,7 +6,7 @@
 
 vec4 vertex_main() {
   max_44a39d();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/max/453e04.wgsl.expected.glsl b/test/tint/builtins/gen/max/453e04.wgsl.expected.glsl
index 2f227bd..0fd7c6f 100644
--- a/test/tint/builtins/gen/max/453e04.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/max/453e04.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void max_453e04() {
-  uvec4 res = max(uvec4(0u, 0u, 0u, 0u), uvec4(0u, 0u, 0u, 0u));
+  uvec4 res = max(uvec4(0u), uvec4(0u));
 }
 
 vec4 vertex_main() {
   max_453e04();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void max_453e04() {
-  uvec4 res = max(uvec4(0u, 0u, 0u, 0u), uvec4(0u, 0u, 0u, 0u));
+  uvec4 res = max(uvec4(0u), uvec4(0u));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void max_453e04() {
-  uvec4 res = max(uvec4(0u, 0u, 0u, 0u), uvec4(0u, 0u, 0u, 0u));
+  uvec4 res = max(uvec4(0u), uvec4(0u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/max/462050.wgsl.expected.glsl b/test/tint/builtins/gen/max/462050.wgsl.expected.glsl
index 3c5eb4b..5a809e4 100644
--- a/test/tint/builtins/gen/max/462050.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/max/462050.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void max_462050() {
-  vec2 res = max(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+  vec2 res = max(vec2(0.0f), vec2(0.0f));
 }
 
 vec4 vertex_main() {
   max_462050();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void max_462050() {
-  vec2 res = max(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+  vec2 res = max(vec2(0.0f), vec2(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void max_462050() {
-  vec2 res = max(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+  vec2 res = max(vec2(0.0f), vec2(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/max/4883ac.wgsl.expected.glsl b/test/tint/builtins/gen/max/4883ac.wgsl.expected.glsl
index 74ba78f..964a17e 100644
--- a/test/tint/builtins/gen/max/4883ac.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/max/4883ac.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void max_4883ac() {
-  vec3 res = max(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = max(vec3(0.0f), vec3(0.0f));
 }
 
 vec4 vertex_main() {
   max_4883ac();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void max_4883ac() {
-  vec3 res = max(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = max(vec3(0.0f), vec3(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void max_4883ac() {
-  vec3 res = max(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = max(vec3(0.0f), vec3(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/max/85e6bc.wgsl.expected.glsl b/test/tint/builtins/gen/max/85e6bc.wgsl.expected.glsl
index 5bd101f..9a82227 100644
--- a/test/tint/builtins/gen/max/85e6bc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/max/85e6bc.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void max_85e6bc() {
-  ivec4 res = max(ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0));
+  ivec4 res = max(ivec4(0), ivec4(0));
 }
 
 vec4 vertex_main() {
   max_85e6bc();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void max_85e6bc() {
-  ivec4 res = max(ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0));
+  ivec4 res = max(ivec4(0), ivec4(0));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void max_85e6bc() {
-  ivec4 res = max(ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0));
+  ivec4 res = max(ivec4(0), ivec4(0));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/max/a93419.wgsl.expected.glsl b/test/tint/builtins/gen/max/a93419.wgsl.expected.glsl
index 4e22280..ea9cc2b 100644
--- a/test/tint/builtins/gen/max/a93419.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/max/a93419.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void max_a93419() {
-  vec4 res = max(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = max(vec4(0.0f), vec4(0.0f));
 }
 
 vec4 vertex_main() {
   max_a93419();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void max_a93419() {
-  vec4 res = max(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = max(vec4(0.0f), vec4(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void max_a93419() {
-  vec4 res = max(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = max(vec4(0.0f), vec4(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/max/b1b73a.wgsl.expected.glsl b/test/tint/builtins/gen/max/b1b73a.wgsl.expected.glsl
index c9011af..bfd415b 100644
--- a/test/tint/builtins/gen/max/b1b73a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/max/b1b73a.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void max_b1b73a() {
-  uvec3 res = max(uvec3(0u, 0u, 0u), uvec3(0u, 0u, 0u));
+  uvec3 res = max(uvec3(0u), uvec3(0u));
 }
 
 vec4 vertex_main() {
   max_b1b73a();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void max_b1b73a() {
-  uvec3 res = max(uvec3(0u, 0u, 0u), uvec3(0u, 0u, 0u));
+  uvec3 res = max(uvec3(0u), uvec3(0u));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void max_b1b73a() {
-  uvec3 res = max(uvec3(0u, 0u, 0u), uvec3(0u, 0u, 0u));
+  uvec3 res = max(uvec3(0u), uvec3(0u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/max/ce7c30.wgsl.expected.glsl b/test/tint/builtins/gen/max/ce7c30.wgsl.expected.glsl
index 965fe69..133dc81 100644
--- a/test/tint/builtins/gen/max/ce7c30.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/max/ce7c30.wgsl.expected.glsl
@@ -6,7 +6,7 @@
 
 vec4 vertex_main() {
   max_ce7c30();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/max/e8192f.wgsl.expected.glsl b/test/tint/builtins/gen/max/e8192f.wgsl.expected.glsl
index ff1a1d6..5be4ffb 100644
--- a/test/tint/builtins/gen/max/e8192f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/max/e8192f.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void max_e8192f() {
-  ivec2 res = max(ivec2(0, 0), ivec2(0, 0));
+  ivec2 res = max(ivec2(0), ivec2(0));
 }
 
 vec4 vertex_main() {
   max_e8192f();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void max_e8192f() {
-  ivec2 res = max(ivec2(0, 0), ivec2(0, 0));
+  ivec2 res = max(ivec2(0), ivec2(0));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void max_e8192f() {
-  ivec2 res = max(ivec2(0, 0), ivec2(0, 0));
+  ivec2 res = max(ivec2(0), ivec2(0));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/min/03c7e3.wgsl.expected.glsl b/test/tint/builtins/gen/min/03c7e3.wgsl.expected.glsl
index 254b1e1..9dfe748 100644
--- a/test/tint/builtins/gen/min/03c7e3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/min/03c7e3.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void min_03c7e3() {
-  ivec2 res = min(ivec2(0, 0), ivec2(0, 0));
+  ivec2 res = min(ivec2(0), ivec2(0));
 }
 
 vec4 vertex_main() {
   min_03c7e3();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void min_03c7e3() {
-  ivec2 res = min(ivec2(0, 0), ivec2(0, 0));
+  ivec2 res = min(ivec2(0), ivec2(0));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void min_03c7e3() {
-  ivec2 res = min(ivec2(0, 0), ivec2(0, 0));
+  ivec2 res = min(ivec2(0), ivec2(0));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/min/0dc614.wgsl.expected.glsl b/test/tint/builtins/gen/min/0dc614.wgsl.expected.glsl
index 879c063..72f9e0c 100644
--- a/test/tint/builtins/gen/min/0dc614.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/min/0dc614.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void min_0dc614() {
-  uvec4 res = min(uvec4(0u, 0u, 0u, 0u), uvec4(0u, 0u, 0u, 0u));
+  uvec4 res = min(uvec4(0u), uvec4(0u));
 }
 
 vec4 vertex_main() {
   min_0dc614();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void min_0dc614() {
-  uvec4 res = min(uvec4(0u, 0u, 0u, 0u), uvec4(0u, 0u, 0u, 0u));
+  uvec4 res = min(uvec4(0u), uvec4(0u));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void min_0dc614() {
-  uvec4 res = min(uvec4(0u, 0u, 0u, 0u), uvec4(0u, 0u, 0u, 0u));
+  uvec4 res = min(uvec4(0u), uvec4(0u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/min/3941e1.wgsl.expected.glsl b/test/tint/builtins/gen/min/3941e1.wgsl.expected.glsl
index 1ef7294..2ed7c6c 100644
--- a/test/tint/builtins/gen/min/3941e1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/min/3941e1.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void min_3941e1() {
-  ivec4 res = min(ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0));
+  ivec4 res = min(ivec4(0), ivec4(0));
 }
 
 vec4 vertex_main() {
   min_3941e1();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void min_3941e1() {
-  ivec4 res = min(ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0));
+  ivec4 res = min(ivec4(0), ivec4(0));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void min_3941e1() {
-  ivec4 res = min(ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0));
+  ivec4 res = min(ivec4(0), ivec4(0));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/min/46c5d3.wgsl.expected.glsl b/test/tint/builtins/gen/min/46c5d3.wgsl.expected.glsl
index 9b54f7f..ffb0f0d 100644
--- a/test/tint/builtins/gen/min/46c5d3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/min/46c5d3.wgsl.expected.glsl
@@ -6,7 +6,7 @@
 
 vec4 vertex_main() {
   min_46c5d3();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/min/82b28f.wgsl.expected.glsl b/test/tint/builtins/gen/min/82b28f.wgsl.expected.glsl
index 50d2caf..747faad 100644
--- a/test/tint/builtins/gen/min/82b28f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/min/82b28f.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void min_82b28f() {
-  uvec2 res = min(uvec2(0u, 0u), uvec2(0u, 0u));
+  uvec2 res = min(uvec2(0u), uvec2(0u));
 }
 
 vec4 vertex_main() {
   min_82b28f();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void min_82b28f() {
-  uvec2 res = min(uvec2(0u, 0u), uvec2(0u, 0u));
+  uvec2 res = min(uvec2(0u), uvec2(0u));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void min_82b28f() {
-  uvec2 res = min(uvec2(0u, 0u), uvec2(0u, 0u));
+  uvec2 res = min(uvec2(0u), uvec2(0u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/min/93cfc4.wgsl.expected.glsl b/test/tint/builtins/gen/min/93cfc4.wgsl.expected.glsl
index 53154f9..815875d 100644
--- a/test/tint/builtins/gen/min/93cfc4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/min/93cfc4.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void min_93cfc4() {
-  vec3 res = min(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = min(vec3(0.0f), vec3(0.0f));
 }
 
 vec4 vertex_main() {
   min_93cfc4();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void min_93cfc4() {
-  vec3 res = min(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = min(vec3(0.0f), vec3(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void min_93cfc4() {
-  vec3 res = min(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = min(vec3(0.0f), vec3(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/min/a45171.wgsl.expected.glsl b/test/tint/builtins/gen/min/a45171.wgsl.expected.glsl
index e5141b5..bdd786a 100644
--- a/test/tint/builtins/gen/min/a45171.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/min/a45171.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void min_a45171() {
-  ivec3 res = min(ivec3(0, 0, 0), ivec3(0, 0, 0));
+  ivec3 res = min(ivec3(0), ivec3(0));
 }
 
 vec4 vertex_main() {
   min_a45171();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void min_a45171() {
-  ivec3 res = min(ivec3(0, 0, 0), ivec3(0, 0, 0));
+  ivec3 res = min(ivec3(0), ivec3(0));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void min_a45171() {
-  ivec3 res = min(ivec3(0, 0, 0), ivec3(0, 0, 0));
+  ivec3 res = min(ivec3(0), ivec3(0));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/min/aa28ad.wgsl.expected.glsl b/test/tint/builtins/gen/min/aa28ad.wgsl.expected.glsl
index d767779..9151c2e 100644
--- a/test/tint/builtins/gen/min/aa28ad.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/min/aa28ad.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void min_aa28ad() {
-  vec2 res = min(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+  vec2 res = min(vec2(0.0f), vec2(0.0f));
 }
 
 vec4 vertex_main() {
   min_aa28ad();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void min_aa28ad() {
-  vec2 res = min(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+  vec2 res = min(vec2(0.0f), vec2(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void min_aa28ad() {
-  vec2 res = min(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+  vec2 res = min(vec2(0.0f), vec2(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/min/af326d.wgsl.expected.glsl b/test/tint/builtins/gen/min/af326d.wgsl.expected.glsl
index 9b7752a..c6e6a09 100644
--- a/test/tint/builtins/gen/min/af326d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/min/af326d.wgsl.expected.glsl
@@ -6,7 +6,7 @@
 
 vec4 vertex_main() {
   min_af326d();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/min/c70bb7.wgsl.expected.glsl b/test/tint/builtins/gen/min/c70bb7.wgsl.expected.glsl
index abd1842..8e9531f 100644
--- a/test/tint/builtins/gen/min/c70bb7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/min/c70bb7.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void min_c70bb7() {
-  uvec3 res = min(uvec3(0u, 0u, 0u), uvec3(0u, 0u, 0u));
+  uvec3 res = min(uvec3(0u), uvec3(0u));
 }
 
 vec4 vertex_main() {
   min_c70bb7();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void min_c70bb7() {
-  uvec3 res = min(uvec3(0u, 0u, 0u), uvec3(0u, 0u, 0u));
+  uvec3 res = min(uvec3(0u), uvec3(0u));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void min_c70bb7() {
-  uvec3 res = min(uvec3(0u, 0u, 0u), uvec3(0u, 0u, 0u));
+  uvec3 res = min(uvec3(0u), uvec3(0u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/min/c73147.wgsl.expected.glsl b/test/tint/builtins/gen/min/c73147.wgsl.expected.glsl
index 4cc4826..2af01da 100644
--- a/test/tint/builtins/gen/min/c73147.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/min/c73147.wgsl.expected.glsl
@@ -6,7 +6,7 @@
 
 vec4 vertex_main() {
   min_c73147();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/min/c76fa6.wgsl.expected.glsl b/test/tint/builtins/gen/min/c76fa6.wgsl.expected.glsl
index 5448710..b560e6c 100644
--- a/test/tint/builtins/gen/min/c76fa6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/min/c76fa6.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void min_c76fa6() {
-  vec4 res = min(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = min(vec4(0.0f), vec4(0.0f));
 }
 
 vec4 vertex_main() {
   min_c76fa6();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void min_c76fa6() {
-  vec4 res = min(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = min(vec4(0.0f), vec4(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void min_c76fa6() {
-  vec4 res = min(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = min(vec4(0.0f), vec4(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/mix/0c8c33.wgsl.expected.glsl b/test/tint/builtins/gen/mix/0c8c33.wgsl.expected.glsl
index 4b64e92..fc5c2c0 100644
--- a/test/tint/builtins/gen/mix/0c8c33.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/mix/0c8c33.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void mix_0c8c33() {
-  vec3 res = mix(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = mix(vec3(0.0f), vec3(0.0f), vec3(0.0f));
 }
 
 vec4 vertex_main() {
   mix_0c8c33();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void mix_0c8c33() {
-  vec3 res = mix(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = mix(vec3(0.0f), vec3(0.0f), vec3(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void mix_0c8c33() {
-  vec3 res = mix(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = mix(vec3(0.0f), vec3(0.0f), vec3(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/mix/1faeb1.wgsl.expected.glsl b/test/tint/builtins/gen/mix/1faeb1.wgsl.expected.glsl
index 2a9d61e..46c3bdb 100644
--- a/test/tint/builtins/gen/mix/1faeb1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/mix/1faeb1.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void mix_1faeb1() {
-  vec4 res = mix(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), 1.0f);
+  vec4 res = mix(vec4(0.0f), vec4(0.0f), 1.0f);
 }
 
 vec4 vertex_main() {
   mix_1faeb1();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void mix_1faeb1() {
-  vec4 res = mix(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), 1.0f);
+  vec4 res = mix(vec4(0.0f), vec4(0.0f), 1.0f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void mix_1faeb1() {
-  vec4 res = mix(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), 1.0f);
+  vec4 res = mix(vec4(0.0f), vec4(0.0f), 1.0f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/mix/2fadab.wgsl.expected.glsl b/test/tint/builtins/gen/mix/2fadab.wgsl.expected.glsl
index b52112e..10678be 100644
--- a/test/tint/builtins/gen/mix/2fadab.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/mix/2fadab.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void mix_2fadab() {
-  vec2 res = mix(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), 1.0f);
+  vec2 res = mix(vec2(0.0f), vec2(0.0f), 1.0f);
 }
 
 vec4 vertex_main() {
   mix_2fadab();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void mix_2fadab() {
-  vec2 res = mix(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), 1.0f);
+  vec2 res = mix(vec2(0.0f), vec2(0.0f), 1.0f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void mix_2fadab() {
-  vec2 res = mix(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), 1.0f);
+  vec2 res = mix(vec2(0.0f), vec2(0.0f), 1.0f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/mix/315264.wgsl.expected.glsl b/test/tint/builtins/gen/mix/315264.wgsl.expected.glsl
index d450ea1..f8a10ec 100644
--- a/test/tint/builtins/gen/mix/315264.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/mix/315264.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void mix_315264() {
-  vec3 res = mix(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), 1.0f);
+  vec3 res = mix(vec3(0.0f), vec3(0.0f), 1.0f);
 }
 
 vec4 vertex_main() {
   mix_315264();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void mix_315264() {
-  vec3 res = mix(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), 1.0f);
+  vec3 res = mix(vec3(0.0f), vec3(0.0f), 1.0f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void mix_315264() {
-  vec3 res = mix(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), 1.0f);
+  vec3 res = mix(vec3(0.0f), vec3(0.0f), 1.0f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/mix/4f0b5e.wgsl.expected.glsl b/test/tint/builtins/gen/mix/4f0b5e.wgsl.expected.glsl
index 549cc7d..58fac89 100644
--- a/test/tint/builtins/gen/mix/4f0b5e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/mix/4f0b5e.wgsl.expected.glsl
@@ -6,7 +6,7 @@
 
 vec4 vertex_main() {
   mix_4f0b5e();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/mix/6f8adc.wgsl.expected.glsl b/test/tint/builtins/gen/mix/6f8adc.wgsl.expected.glsl
index afcfb45..1d7bfac 100644
--- a/test/tint/builtins/gen/mix/6f8adc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/mix/6f8adc.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void mix_6f8adc() {
-  vec2 res = mix(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+  vec2 res = mix(vec2(0.0f), vec2(0.0f), vec2(0.0f));
 }
 
 vec4 vertex_main() {
   mix_6f8adc();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void mix_6f8adc() {
-  vec2 res = mix(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+  vec2 res = mix(vec2(0.0f), vec2(0.0f), vec2(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void mix_6f8adc() {
-  vec2 res = mix(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+  vec2 res = mix(vec2(0.0f), vec2(0.0f), vec2(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/mix/c37ede.wgsl.expected.glsl b/test/tint/builtins/gen/mix/c37ede.wgsl.expected.glsl
index 5e3c24f..6ec06e2 100644
--- a/test/tint/builtins/gen/mix/c37ede.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/mix/c37ede.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void mix_c37ede() {
-  vec4 res = mix(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = mix(vec4(0.0f), vec4(0.0f), vec4(0.0f));
 }
 
 vec4 vertex_main() {
   mix_c37ede();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void mix_c37ede() {
-  vec4 res = mix(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = mix(vec4(0.0f), vec4(0.0f), vec4(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void mix_c37ede() {
-  vec4 res = mix(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = mix(vec4(0.0f), vec4(0.0f), vec4(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/modf/180fed.wgsl.expected.glsl b/test/tint/builtins/gen/modf/180fed.wgsl.expected.glsl
index 6e3bf1f..2e96b3c 100644
--- a/test/tint/builtins/gen/modf/180fed.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/modf/180fed.wgsl.expected.glsl
@@ -18,7 +18,7 @@
 
 vec4 vertex_main() {
   modf_180fed();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/modf/9b75f7.wgsl.expected.glsl b/test/tint/builtins/gen/modf/9b75f7.wgsl.expected.glsl
index 1b3dc2a..1e8e59c 100644
--- a/test/tint/builtins/gen/modf/9b75f7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/modf/9b75f7.wgsl.expected.glsl
@@ -13,12 +13,12 @@
 
 
 void modf_9b75f7() {
-  modf_result_vec3 res = tint_modf(vec3(0.0f, 0.0f, 0.0f));
+  modf_result_vec3 res = tint_modf(vec3(0.0f));
 }
 
 vec4 vertex_main() {
   modf_9b75f7();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -45,7 +45,7 @@
 
 
 void modf_9b75f7() {
-  modf_result_vec3 res = tint_modf(vec3(0.0f, 0.0f, 0.0f));
+  modf_result_vec3 res = tint_modf(vec3(0.0f));
 }
 
 void fragment_main() {
@@ -71,7 +71,7 @@
 
 
 void modf_9b75f7() {
-  modf_result_vec3 res = tint_modf(vec3(0.0f, 0.0f, 0.0f));
+  modf_result_vec3 res = tint_modf(vec3(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/modf/ec2dbc.wgsl.expected.glsl b/test/tint/builtins/gen/modf/ec2dbc.wgsl.expected.glsl
index efdda2e..46fc278 100644
--- a/test/tint/builtins/gen/modf/ec2dbc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/modf/ec2dbc.wgsl.expected.glsl
@@ -13,12 +13,12 @@
 
 
 void modf_ec2dbc() {
-  modf_result_vec4 res = tint_modf(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  modf_result_vec4 res = tint_modf(vec4(0.0f));
 }
 
 vec4 vertex_main() {
   modf_ec2dbc();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -45,7 +45,7 @@
 
 
 void modf_ec2dbc() {
-  modf_result_vec4 res = tint_modf(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  modf_result_vec4 res = tint_modf(vec4(0.0f));
 }
 
 void fragment_main() {
@@ -71,7 +71,7 @@
 
 
 void modf_ec2dbc() {
-  modf_result_vec4 res = tint_modf(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  modf_result_vec4 res = tint_modf(vec4(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/modf/f5f20d.wgsl.expected.glsl b/test/tint/builtins/gen/modf/f5f20d.wgsl.expected.glsl
index ca6dddd..5938805 100644
--- a/test/tint/builtins/gen/modf/f5f20d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/modf/f5f20d.wgsl.expected.glsl
@@ -13,12 +13,12 @@
 
 
 void modf_f5f20d() {
-  modf_result_vec2 res = tint_modf(vec2(0.0f, 0.0f));
+  modf_result_vec2 res = tint_modf(vec2(0.0f));
 }
 
 vec4 vertex_main() {
   modf_f5f20d();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -45,7 +45,7 @@
 
 
 void modf_f5f20d() {
-  modf_result_vec2 res = tint_modf(vec2(0.0f, 0.0f));
+  modf_result_vec2 res = tint_modf(vec2(0.0f));
 }
 
 void fragment_main() {
@@ -71,7 +71,7 @@
 
 
 void modf_f5f20d() {
-  modf_result_vec2 res = tint_modf(vec2(0.0f, 0.0f));
+  modf_result_vec2 res = tint_modf(vec2(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/normalize/64d8c0.wgsl.expected.glsl b/test/tint/builtins/gen/normalize/64d8c0.wgsl.expected.glsl
index 3b23688..6080da9 100644
--- a/test/tint/builtins/gen/normalize/64d8c0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/normalize/64d8c0.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void normalize_64d8c0() {
-  vec3 res = normalize(vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = normalize(vec3(0.0f));
 }
 
 vec4 vertex_main() {
   normalize_64d8c0();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void normalize_64d8c0() {
-  vec3 res = normalize(vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = normalize(vec3(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void normalize_64d8c0() {
-  vec3 res = normalize(vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = normalize(vec3(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/normalize/9a0aab.wgsl.expected.glsl b/test/tint/builtins/gen/normalize/9a0aab.wgsl.expected.glsl
index ef0164e..079a006 100644
--- a/test/tint/builtins/gen/normalize/9a0aab.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/normalize/9a0aab.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void normalize_9a0aab() {
-  vec4 res = normalize(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = normalize(vec4(0.0f));
 }
 
 vec4 vertex_main() {
   normalize_9a0aab();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void normalize_9a0aab() {
-  vec4 res = normalize(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = normalize(vec4(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void normalize_9a0aab() {
-  vec4 res = normalize(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = normalize(vec4(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/normalize/fc2ef1.wgsl.expected.glsl b/test/tint/builtins/gen/normalize/fc2ef1.wgsl.expected.glsl
index 1b2a7fd..a723fd6 100644
--- a/test/tint/builtins/gen/normalize/fc2ef1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/normalize/fc2ef1.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void normalize_fc2ef1() {
-  vec2 res = normalize(vec2(0.0f, 0.0f));
+  vec2 res = normalize(vec2(0.0f));
 }
 
 vec4 vertex_main() {
   normalize_fc2ef1();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void normalize_fc2ef1() {
-  vec2 res = normalize(vec2(0.0f, 0.0f));
+  vec2 res = normalize(vec2(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void normalize_fc2ef1() {
-  vec2 res = normalize(vec2(0.0f, 0.0f));
+  vec2 res = normalize(vec2(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/pack2x16float/0e97b3.wgsl.expected.glsl b/test/tint/builtins/gen/pack2x16float/0e97b3.wgsl.expected.glsl
index 176fa68..bedec15 100644
--- a/test/tint/builtins/gen/pack2x16float/0e97b3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/pack2x16float/0e97b3.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void pack2x16float_0e97b3() {
-  uint res = packHalf2x16(vec2(0.0f, 0.0f));
+  uint res = packHalf2x16(vec2(0.0f));
 }
 
 vec4 vertex_main() {
   pack2x16float_0e97b3();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void pack2x16float_0e97b3() {
-  uint res = packHalf2x16(vec2(0.0f, 0.0f));
+  uint res = packHalf2x16(vec2(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void pack2x16float_0e97b3() {
-  uint res = packHalf2x16(vec2(0.0f, 0.0f));
+  uint res = packHalf2x16(vec2(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/pack2x16snorm/6c169b.wgsl.expected.glsl b/test/tint/builtins/gen/pack2x16snorm/6c169b.wgsl.expected.glsl
index 5d698a8..489de97 100644
--- a/test/tint/builtins/gen/pack2x16snorm/6c169b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/pack2x16snorm/6c169b.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void pack2x16snorm_6c169b() {
-  uint res = packSnorm2x16(vec2(0.0f, 0.0f));
+  uint res = packSnorm2x16(vec2(0.0f));
 }
 
 vec4 vertex_main() {
   pack2x16snorm_6c169b();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void pack2x16snorm_6c169b() {
-  uint res = packSnorm2x16(vec2(0.0f, 0.0f));
+  uint res = packSnorm2x16(vec2(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void pack2x16snorm_6c169b() {
-  uint res = packSnorm2x16(vec2(0.0f, 0.0f));
+  uint res = packSnorm2x16(vec2(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/pack2x16unorm/0f08e4.wgsl.expected.glsl b/test/tint/builtins/gen/pack2x16unorm/0f08e4.wgsl.expected.glsl
index 3abc72e9..ee5df00 100644
--- a/test/tint/builtins/gen/pack2x16unorm/0f08e4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/pack2x16unorm/0f08e4.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void pack2x16unorm_0f08e4() {
-  uint res = packUnorm2x16(vec2(0.0f, 0.0f));
+  uint res = packUnorm2x16(vec2(0.0f));
 }
 
 vec4 vertex_main() {
   pack2x16unorm_0f08e4();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void pack2x16unorm_0f08e4() {
-  uint res = packUnorm2x16(vec2(0.0f, 0.0f));
+  uint res = packUnorm2x16(vec2(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void pack2x16unorm_0f08e4() {
-  uint res = packUnorm2x16(vec2(0.0f, 0.0f));
+  uint res = packUnorm2x16(vec2(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/pack4x8snorm/4d22e7.wgsl.expected.glsl b/test/tint/builtins/gen/pack4x8snorm/4d22e7.wgsl.expected.glsl
index 8b73e70..a61b9cb 100644
--- a/test/tint/builtins/gen/pack4x8snorm/4d22e7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/pack4x8snorm/4d22e7.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void pack4x8snorm_4d22e7() {
-  uint res = packSnorm4x8(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  uint res = packSnorm4x8(vec4(0.0f));
 }
 
 vec4 vertex_main() {
   pack4x8snorm_4d22e7();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void pack4x8snorm_4d22e7() {
-  uint res = packSnorm4x8(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  uint res = packSnorm4x8(vec4(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void pack4x8snorm_4d22e7() {
-  uint res = packSnorm4x8(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  uint res = packSnorm4x8(vec4(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/pack4x8unorm/95c456.wgsl.expected.glsl b/test/tint/builtins/gen/pack4x8unorm/95c456.wgsl.expected.glsl
index 59490d9..29d5585 100644
--- a/test/tint/builtins/gen/pack4x8unorm/95c456.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/pack4x8unorm/95c456.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void pack4x8unorm_95c456() {
-  uint res = packUnorm4x8(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  uint res = packUnorm4x8(vec4(0.0f));
 }
 
 vec4 vertex_main() {
   pack4x8unorm_95c456();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void pack4x8unorm_95c456() {
-  uint res = packUnorm4x8(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  uint res = packUnorm4x8(vec4(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void pack4x8unorm_95c456() {
-  uint res = packUnorm4x8(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  uint res = packUnorm4x8(vec4(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/pow/04a908.wgsl.expected.glsl b/test/tint/builtins/gen/pow/04a908.wgsl.expected.glsl
index 9132761..6dde986 100644
--- a/test/tint/builtins/gen/pow/04a908.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/pow/04a908.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void pow_04a908() {
-  vec4 res = pow(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = pow(vec4(0.0f), vec4(0.0f));
 }
 
 vec4 vertex_main() {
   pow_04a908();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void pow_04a908() {
-  vec4 res = pow(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = pow(vec4(0.0f), vec4(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void pow_04a908() {
-  vec4 res = pow(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = pow(vec4(0.0f), vec4(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/pow/46e029.wgsl.expected.glsl b/test/tint/builtins/gen/pow/46e029.wgsl.expected.glsl
index 5912116..4e3a1e9 100644
--- a/test/tint/builtins/gen/pow/46e029.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/pow/46e029.wgsl.expected.glsl
@@ -6,7 +6,7 @@
 
 vec4 vertex_main() {
   pow_46e029();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/pow/4a46c9.wgsl.expected.glsl b/test/tint/builtins/gen/pow/4a46c9.wgsl.expected.glsl
index a283236..921ace0 100644
--- a/test/tint/builtins/gen/pow/4a46c9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/pow/4a46c9.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void pow_4a46c9() {
-  vec3 res = pow(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = pow(vec3(0.0f), vec3(0.0f));
 }
 
 vec4 vertex_main() {
   pow_4a46c9();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void pow_4a46c9() {
-  vec3 res = pow(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = pow(vec3(0.0f), vec3(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void pow_4a46c9() {
-  vec3 res = pow(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = pow(vec3(0.0f), vec3(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/pow/e60ea5.wgsl.expected.glsl b/test/tint/builtins/gen/pow/e60ea5.wgsl.expected.glsl
index 449f99b..1d1dfc9 100644
--- a/test/tint/builtins/gen/pow/e60ea5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/pow/e60ea5.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void pow_e60ea5() {
-  vec2 res = pow(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+  vec2 res = pow(vec2(0.0f), vec2(0.0f));
 }
 
 vec4 vertex_main() {
   pow_e60ea5();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void pow_e60ea5() {
-  vec2 res = pow(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+  vec2 res = pow(vec2(0.0f), vec2(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void pow_e60ea5() {
-  vec2 res = pow(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+  vec2 res = pow(vec2(0.0f), vec2(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/radians/09b7fc.wgsl.expected.glsl b/test/tint/builtins/gen/radians/09b7fc.wgsl.expected.glsl
index 5f7274d..6d3a58e 100644
--- a/test/tint/builtins/gen/radians/09b7fc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/radians/09b7fc.wgsl.expected.glsl
@@ -6,12 +6,12 @@
 
 
 void radians_09b7fc() {
-  vec4 res = tint_radians(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = tint_radians(vec4(0.0f));
 }
 
 vec4 vertex_main() {
   radians_09b7fc();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -31,7 +31,7 @@
 
 
 void radians_09b7fc() {
-  vec4 res = tint_radians(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = tint_radians(vec4(0.0f));
 }
 
 void fragment_main() {
@@ -50,7 +50,7 @@
 
 
 void radians_09b7fc() {
-  vec4 res = tint_radians(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = tint_radians(vec4(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/radians/61687a.wgsl.expected.glsl b/test/tint/builtins/gen/radians/61687a.wgsl.expected.glsl
index 48455ad..bfc6c1e 100644
--- a/test/tint/builtins/gen/radians/61687a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/radians/61687a.wgsl.expected.glsl
@@ -6,12 +6,12 @@
 
 
 void radians_61687a() {
-  vec2 res = tint_radians(vec2(0.0f, 0.0f));
+  vec2 res = tint_radians(vec2(0.0f));
 }
 
 vec4 vertex_main() {
   radians_61687a();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -31,7 +31,7 @@
 
 
 void radians_61687a() {
-  vec2 res = tint_radians(vec2(0.0f, 0.0f));
+  vec2 res = tint_radians(vec2(0.0f));
 }
 
 void fragment_main() {
@@ -50,7 +50,7 @@
 
 
 void radians_61687a() {
-  vec2 res = tint_radians(vec2(0.0f, 0.0f));
+  vec2 res = tint_radians(vec2(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/radians/6b0ff2.wgsl.expected.glsl b/test/tint/builtins/gen/radians/6b0ff2.wgsl.expected.glsl
index 5cef3b7..1dd1ffc 100644
--- a/test/tint/builtins/gen/radians/6b0ff2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/radians/6b0ff2.wgsl.expected.glsl
@@ -11,7 +11,7 @@
 
 vec4 vertex_main() {
   radians_6b0ff2();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/radians/f96258.wgsl.expected.glsl b/test/tint/builtins/gen/radians/f96258.wgsl.expected.glsl
index 244f6e0..f1c319b 100644
--- a/test/tint/builtins/gen/radians/f96258.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/radians/f96258.wgsl.expected.glsl
@@ -6,12 +6,12 @@
 
 
 void radians_f96258() {
-  vec3 res = tint_radians(vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = tint_radians(vec3(0.0f));
 }
 
 vec4 vertex_main() {
   radians_f96258();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -31,7 +31,7 @@
 
 
 void radians_f96258() {
-  vec3 res = tint_radians(vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = tint_radians(vec3(0.0f));
 }
 
 void fragment_main() {
@@ -50,7 +50,7 @@
 
 
 void radians_f96258() {
-  vec3 res = tint_radians(vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = tint_radians(vec3(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/reflect/05357e.wgsl.expected.glsl b/test/tint/builtins/gen/reflect/05357e.wgsl.expected.glsl
index ca0f0f5..2039925 100644
--- a/test/tint/builtins/gen/reflect/05357e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/reflect/05357e.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void reflect_05357e() {
-  vec4 res = reflect(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = reflect(vec4(0.0f), vec4(0.0f));
 }
 
 vec4 vertex_main() {
   reflect_05357e();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void reflect_05357e() {
-  vec4 res = reflect(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = reflect(vec4(0.0f), vec4(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void reflect_05357e() {
-  vec4 res = reflect(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = reflect(vec4(0.0f), vec4(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/reflect/b61e10.wgsl.expected.glsl b/test/tint/builtins/gen/reflect/b61e10.wgsl.expected.glsl
index 1dd1985..889faca 100644
--- a/test/tint/builtins/gen/reflect/b61e10.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/reflect/b61e10.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void reflect_b61e10() {
-  vec2 res = reflect(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+  vec2 res = reflect(vec2(0.0f), vec2(0.0f));
 }
 
 vec4 vertex_main() {
   reflect_b61e10();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void reflect_b61e10() {
-  vec2 res = reflect(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+  vec2 res = reflect(vec2(0.0f), vec2(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void reflect_b61e10() {
-  vec2 res = reflect(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+  vec2 res = reflect(vec2(0.0f), vec2(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/reflect/f47fdb.wgsl.expected.glsl b/test/tint/builtins/gen/reflect/f47fdb.wgsl.expected.glsl
index e507fe8..da62aa4 100644
--- a/test/tint/builtins/gen/reflect/f47fdb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/reflect/f47fdb.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void reflect_f47fdb() {
-  vec3 res = reflect(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = reflect(vec3(0.0f), vec3(0.0f));
 }
 
 vec4 vertex_main() {
   reflect_f47fdb();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void reflect_f47fdb() {
-  vec3 res = reflect(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = reflect(vec3(0.0f), vec3(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void reflect_f47fdb() {
-  vec3 res = reflect(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = reflect(vec3(0.0f), vec3(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/refract/7e02e6.wgsl.expected.glsl b/test/tint/builtins/gen/refract/7e02e6.wgsl.expected.glsl
index 725490e..fda8088 100644
--- a/test/tint/builtins/gen/refract/7e02e6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/refract/7e02e6.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void refract_7e02e6() {
-  vec4 res = refract(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), 1.0f);
+  vec4 res = refract(vec4(0.0f), vec4(0.0f), 1.0f);
 }
 
 vec4 vertex_main() {
   refract_7e02e6();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void refract_7e02e6() {
-  vec4 res = refract(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), 1.0f);
+  vec4 res = refract(vec4(0.0f), vec4(0.0f), 1.0f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void refract_7e02e6() {
-  vec4 res = refract(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), 1.0f);
+  vec4 res = refract(vec4(0.0f), vec4(0.0f), 1.0f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/refract/cbc1d2.wgsl.expected.glsl b/test/tint/builtins/gen/refract/cbc1d2.wgsl.expected.glsl
index 41b9ad9..00f6a4a 100644
--- a/test/tint/builtins/gen/refract/cbc1d2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/refract/cbc1d2.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void refract_cbc1d2() {
-  vec3 res = refract(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), 1.0f);
+  vec3 res = refract(vec3(0.0f), vec3(0.0f), 1.0f);
 }
 
 vec4 vertex_main() {
   refract_cbc1d2();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void refract_cbc1d2() {
-  vec3 res = refract(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), 1.0f);
+  vec3 res = refract(vec3(0.0f), vec3(0.0f), 1.0f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void refract_cbc1d2() {
-  vec3 res = refract(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), 1.0f);
+  vec3 res = refract(vec3(0.0f), vec3(0.0f), 1.0f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/refract/cd905f.wgsl.expected.glsl b/test/tint/builtins/gen/refract/cd905f.wgsl.expected.glsl
index b614853..71df03b 100644
--- a/test/tint/builtins/gen/refract/cd905f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/refract/cd905f.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void refract_cd905f() {
-  vec2 res = refract(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), 1.0f);
+  vec2 res = refract(vec2(0.0f), vec2(0.0f), 1.0f);
 }
 
 vec4 vertex_main() {
   refract_cd905f();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void refract_cd905f() {
-  vec2 res = refract(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), 1.0f);
+  vec2 res = refract(vec2(0.0f), vec2(0.0f), 1.0f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void refract_cd905f() {
-  vec2 res = refract(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), 1.0f);
+  vec2 res = refract(vec2(0.0f), vec2(0.0f), 1.0f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/reverseBits/222177.wgsl.expected.glsl b/test/tint/builtins/gen/reverseBits/222177.wgsl.expected.glsl
index f4e41b6..9532d7f 100644
--- a/test/tint/builtins/gen/reverseBits/222177.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/reverseBits/222177.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void reverseBits_222177() {
-  ivec2 res = bitfieldReverse(ivec2(0, 0));
+  ivec2 res = bitfieldReverse(ivec2(0));
 }
 
 vec4 vertex_main() {
   reverseBits_222177();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void reverseBits_222177() {
-  ivec2 res = bitfieldReverse(ivec2(0, 0));
+  ivec2 res = bitfieldReverse(ivec2(0));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void reverseBits_222177() {
-  ivec2 res = bitfieldReverse(ivec2(0, 0));
+  ivec2 res = bitfieldReverse(ivec2(0));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/reverseBits/35fea9.wgsl.expected.glsl b/test/tint/builtins/gen/reverseBits/35fea9.wgsl.expected.glsl
index 5d9272e..68e4ef4 100644
--- a/test/tint/builtins/gen/reverseBits/35fea9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/reverseBits/35fea9.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void reverseBits_35fea9() {
-  uvec4 res = bitfieldReverse(uvec4(0u, 0u, 0u, 0u));
+  uvec4 res = bitfieldReverse(uvec4(0u));
 }
 
 vec4 vertex_main() {
   reverseBits_35fea9();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void reverseBits_35fea9() {
-  uvec4 res = bitfieldReverse(uvec4(0u, 0u, 0u, 0u));
+  uvec4 res = bitfieldReverse(uvec4(0u));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void reverseBits_35fea9() {
-  uvec4 res = bitfieldReverse(uvec4(0u, 0u, 0u, 0u));
+  uvec4 res = bitfieldReverse(uvec4(0u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/reverseBits/4dbd6f.wgsl.expected.glsl b/test/tint/builtins/gen/reverseBits/4dbd6f.wgsl.expected.glsl
index 8bc94f8..e26d636 100644
--- a/test/tint/builtins/gen/reverseBits/4dbd6f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/reverseBits/4dbd6f.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void reverseBits_4dbd6f() {
-  ivec4 res = bitfieldReverse(ivec4(0, 0, 0, 0));
+  ivec4 res = bitfieldReverse(ivec4(0));
 }
 
 vec4 vertex_main() {
   reverseBits_4dbd6f();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void reverseBits_4dbd6f() {
-  ivec4 res = bitfieldReverse(ivec4(0, 0, 0, 0));
+  ivec4 res = bitfieldReverse(ivec4(0));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void reverseBits_4dbd6f() {
-  ivec4 res = bitfieldReverse(ivec4(0, 0, 0, 0));
+  ivec4 res = bitfieldReverse(ivec4(0));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/reverseBits/7c4269.wgsl.expected.glsl b/test/tint/builtins/gen/reverseBits/7c4269.wgsl.expected.glsl
index f903f1b..390dad5 100644
--- a/test/tint/builtins/gen/reverseBits/7c4269.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/reverseBits/7c4269.wgsl.expected.glsl
@@ -6,7 +6,7 @@
 
 vec4 vertex_main() {
   reverseBits_7c4269();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/reverseBits/a6ccd4.wgsl.expected.glsl b/test/tint/builtins/gen/reverseBits/a6ccd4.wgsl.expected.glsl
index 80effe9..4b4be8a 100644
--- a/test/tint/builtins/gen/reverseBits/a6ccd4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/reverseBits/a6ccd4.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void reverseBits_a6ccd4() {
-  uvec3 res = bitfieldReverse(uvec3(0u, 0u, 0u));
+  uvec3 res = bitfieldReverse(uvec3(0u));
 }
 
 vec4 vertex_main() {
   reverseBits_a6ccd4();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void reverseBits_a6ccd4() {
-  uvec3 res = bitfieldReverse(uvec3(0u, 0u, 0u));
+  uvec3 res = bitfieldReverse(uvec3(0u));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void reverseBits_a6ccd4() {
-  uvec3 res = bitfieldReverse(uvec3(0u, 0u, 0u));
+  uvec3 res = bitfieldReverse(uvec3(0u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/reverseBits/c21bc1.wgsl.expected.glsl b/test/tint/builtins/gen/reverseBits/c21bc1.wgsl.expected.glsl
index ad28b9c..149bbe1 100644
--- a/test/tint/builtins/gen/reverseBits/c21bc1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/reverseBits/c21bc1.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void reverseBits_c21bc1() {
-  ivec3 res = bitfieldReverse(ivec3(0, 0, 0));
+  ivec3 res = bitfieldReverse(ivec3(0));
 }
 
 vec4 vertex_main() {
   reverseBits_c21bc1();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void reverseBits_c21bc1() {
-  ivec3 res = bitfieldReverse(ivec3(0, 0, 0));
+  ivec3 res = bitfieldReverse(ivec3(0));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void reverseBits_c21bc1() {
-  ivec3 res = bitfieldReverse(ivec3(0, 0, 0));
+  ivec3 res = bitfieldReverse(ivec3(0));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/reverseBits/e1f4c1.wgsl.expected.glsl b/test/tint/builtins/gen/reverseBits/e1f4c1.wgsl.expected.glsl
index f94fd53..3889e10 100644
--- a/test/tint/builtins/gen/reverseBits/e1f4c1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/reverseBits/e1f4c1.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void reverseBits_e1f4c1() {
-  uvec2 res = bitfieldReverse(uvec2(0u, 0u));
+  uvec2 res = bitfieldReverse(uvec2(0u));
 }
 
 vec4 vertex_main() {
   reverseBits_e1f4c1();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void reverseBits_e1f4c1() {
-  uvec2 res = bitfieldReverse(uvec2(0u, 0u));
+  uvec2 res = bitfieldReverse(uvec2(0u));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void reverseBits_e1f4c1() {
-  uvec2 res = bitfieldReverse(uvec2(0u, 0u));
+  uvec2 res = bitfieldReverse(uvec2(0u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/reverseBits/e31adf.wgsl.expected.glsl b/test/tint/builtins/gen/reverseBits/e31adf.wgsl.expected.glsl
index 4048e3b..3ea3066 100644
--- a/test/tint/builtins/gen/reverseBits/e31adf.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/reverseBits/e31adf.wgsl.expected.glsl
@@ -6,7 +6,7 @@
 
 vec4 vertex_main() {
   reverseBits_e31adf();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/round/106c0b.wgsl.expected.glsl b/test/tint/builtins/gen/round/106c0b.wgsl.expected.glsl
index e85606c..0698c3e 100644
--- a/test/tint/builtins/gen/round/106c0b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/round/106c0b.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void round_106c0b() {
-  vec4 res = round(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = round(vec4(0.0f));
 }
 
 vec4 vertex_main() {
   round_106c0b();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void round_106c0b() {
-  vec4 res = round(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = round(vec4(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void round_106c0b() {
-  vec4 res = round(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = round(vec4(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/round/1c7897.wgsl.expected.glsl b/test/tint/builtins/gen/round/1c7897.wgsl.expected.glsl
index ae7708e..24140c5 100644
--- a/test/tint/builtins/gen/round/1c7897.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/round/1c7897.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void round_1c7897() {
-  vec3 res = round(vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = round(vec3(0.0f));
 }
 
 vec4 vertex_main() {
   round_1c7897();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void round_1c7897() {
-  vec3 res = round(vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = round(vec3(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void round_1c7897() {
-  vec3 res = round(vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = round(vec3(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/round/52c84d.wgsl.expected.glsl b/test/tint/builtins/gen/round/52c84d.wgsl.expected.glsl
index 870e590..aff8f6f 100644
--- a/test/tint/builtins/gen/round/52c84d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/round/52c84d.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void round_52c84d() {
-  vec2 res = round(vec2(0.0f, 0.0f));
+  vec2 res = round(vec2(0.0f));
 }
 
 vec4 vertex_main() {
   round_52c84d();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void round_52c84d() {
-  vec2 res = round(vec2(0.0f, 0.0f));
+  vec2 res = round(vec2(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void round_52c84d() {
-  vec2 res = round(vec2(0.0f, 0.0f));
+  vec2 res = round(vec2(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/round/9edc38.wgsl.expected.glsl b/test/tint/builtins/gen/round/9edc38.wgsl.expected.glsl
index d4e3f0d..b7f45f1 100644
--- a/test/tint/builtins/gen/round/9edc38.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/round/9edc38.wgsl.expected.glsl
@@ -6,7 +6,7 @@
 
 vec4 vertex_main() {
   round_9edc38();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/select/00b848.wgsl.expected.glsl b/test/tint/builtins/gen/select/00b848.wgsl.expected.glsl
index 2805a6b..2e46647 100644
--- a/test/tint/builtins/gen/select/00b848.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/select/00b848.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void select_00b848() {
-  ivec2 res = mix(ivec2(0, 0), ivec2(0, 0), bvec2(false, false));
+  ivec2 res = mix(ivec2(0), ivec2(0), bvec2(false));
 }
 
 vec4 vertex_main() {
   select_00b848();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void select_00b848() {
-  ivec2 res = mix(ivec2(0, 0), ivec2(0, 0), bvec2(false, false));
+  ivec2 res = mix(ivec2(0), ivec2(0), bvec2(false));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void select_00b848() {
-  ivec2 res = mix(ivec2(0, 0), ivec2(0, 0), bvec2(false, false));
+  ivec2 res = mix(ivec2(0), ivec2(0), bvec2(false));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/select/01e2cd.wgsl.expected.glsl b/test/tint/builtins/gen/select/01e2cd.wgsl.expected.glsl
index 2a9909c..7e3c653 100644
--- a/test/tint/builtins/gen/select/01e2cd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/select/01e2cd.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void select_01e2cd() {
-  ivec3 res = mix(ivec3(0, 0, 0), ivec3(0, 0, 0), bvec3(false, false, false));
+  ivec3 res = mix(ivec3(0), ivec3(0), bvec3(false));
 }
 
 vec4 vertex_main() {
   select_01e2cd();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void select_01e2cd() {
-  ivec3 res = mix(ivec3(0, 0, 0), ivec3(0, 0, 0), bvec3(false, false, false));
+  ivec3 res = mix(ivec3(0), ivec3(0), bvec3(false));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void select_01e2cd() {
-  ivec3 res = mix(ivec3(0, 0, 0), ivec3(0, 0, 0), bvec3(false, false, false));
+  ivec3 res = mix(ivec3(0), ivec3(0), bvec3(false));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/select/087ea4.wgsl.expected.glsl b/test/tint/builtins/gen/select/087ea4.wgsl.expected.glsl
index 75d5c9a..231e3c2 100644
--- a/test/tint/builtins/gen/select/087ea4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/select/087ea4.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void select_087ea4() {
-  uvec4 res = (false ? uvec4(0u, 0u, 0u, 0u) : uvec4(0u, 0u, 0u, 0u));
+  uvec4 res = (false ? uvec4(0u) : uvec4(0u));
 }
 
 vec4 vertex_main() {
   select_087ea4();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void select_087ea4() {
-  uvec4 res = (false ? uvec4(0u, 0u, 0u, 0u) : uvec4(0u, 0u, 0u, 0u));
+  uvec4 res = (false ? uvec4(0u) : uvec4(0u));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void select_087ea4() {
-  uvec4 res = (false ? uvec4(0u, 0u, 0u, 0u) : uvec4(0u, 0u, 0u, 0u));
+  uvec4 res = (false ? uvec4(0u) : uvec4(0u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/select/1e960b.wgsl.expected.glsl b/test/tint/builtins/gen/select/1e960b.wgsl.expected.glsl
index e1778f0..417ae05 100644
--- a/test/tint/builtins/gen/select/1e960b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/select/1e960b.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void select_1e960b() {
-  uvec2 res = mix(uvec2(0u, 0u), uvec2(0u, 0u), bvec2(false, false));
+  uvec2 res = mix(uvec2(0u), uvec2(0u), bvec2(false));
 }
 
 vec4 vertex_main() {
   select_1e960b();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void select_1e960b() {
-  uvec2 res = mix(uvec2(0u, 0u), uvec2(0u, 0u), bvec2(false, false));
+  uvec2 res = mix(uvec2(0u), uvec2(0u), bvec2(false));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void select_1e960b() {
-  uvec2 res = mix(uvec2(0u, 0u), uvec2(0u, 0u), bvec2(false, false));
+  uvec2 res = mix(uvec2(0u), uvec2(0u), bvec2(false));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/select/266aff.wgsl.expected.glsl b/test/tint/builtins/gen/select/266aff.wgsl.expected.glsl
index 9d98174..6cfbb75 100644
--- a/test/tint/builtins/gen/select/266aff.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/select/266aff.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void select_266aff() {
-  vec2 res = mix(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), bvec2(false, false));
+  vec2 res = mix(vec2(0.0f), vec2(0.0f), bvec2(false));
 }
 
 vec4 vertex_main() {
   select_266aff();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void select_266aff() {
-  vec2 res = mix(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), bvec2(false, false));
+  vec2 res = mix(vec2(0.0f), vec2(0.0f), bvec2(false));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void select_266aff() {
-  vec2 res = mix(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), bvec2(false, false));
+  vec2 res = mix(vec2(0.0f), vec2(0.0f), bvec2(false));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/select/28a27e.wgsl.expected.glsl b/test/tint/builtins/gen/select/28a27e.wgsl.expected.glsl
index 66a3b69..7cffa7e 100644
--- a/test/tint/builtins/gen/select/28a27e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/select/28a27e.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void select_28a27e() {
-  uvec3 res = mix(uvec3(0u, 0u, 0u), uvec3(0u, 0u, 0u), bvec3(false, false, false));
+  uvec3 res = mix(uvec3(0u), uvec3(0u), bvec3(false));
 }
 
 vec4 vertex_main() {
   select_28a27e();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void select_28a27e() {
-  uvec3 res = mix(uvec3(0u, 0u, 0u), uvec3(0u, 0u, 0u), bvec3(false, false, false));
+  uvec3 res = mix(uvec3(0u), uvec3(0u), bvec3(false));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void select_28a27e() {
-  uvec3 res = mix(uvec3(0u, 0u, 0u), uvec3(0u, 0u, 0u), bvec3(false, false, false));
+  uvec3 res = mix(uvec3(0u), uvec3(0u), bvec3(false));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/select/3c25ce.wgsl.expected.glsl b/test/tint/builtins/gen/select/3c25ce.wgsl.expected.glsl
index 1989167..45766d7 100644
--- a/test/tint/builtins/gen/select/3c25ce.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/select/3c25ce.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void select_3c25ce() {
-  bvec3 res = (false ? bvec3(false, false, false) : bvec3(false, false, false));
+  bvec3 res = (false ? bvec3(false) : bvec3(false));
 }
 
 vec4 vertex_main() {
   select_3c25ce();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void select_3c25ce() {
-  bvec3 res = (false ? bvec3(false, false, false) : bvec3(false, false, false));
+  bvec3 res = (false ? bvec3(false) : bvec3(false));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void select_3c25ce() {
-  bvec3 res = (false ? bvec3(false, false, false) : bvec3(false, false, false));
+  bvec3 res = (false ? bvec3(false) : bvec3(false));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/select/416e14.wgsl.expected.glsl b/test/tint/builtins/gen/select/416e14.wgsl.expected.glsl
index 56cd4d9..9184184 100644
--- a/test/tint/builtins/gen/select/416e14.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/select/416e14.wgsl.expected.glsl
@@ -6,7 +6,7 @@
 
 vec4 vertex_main() {
   select_416e14();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/select/51b047.wgsl.expected.glsl b/test/tint/builtins/gen/select/51b047.wgsl.expected.glsl
index a3c3ff9..5f317a9 100644
--- a/test/tint/builtins/gen/select/51b047.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/select/51b047.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void select_51b047() {
-  uvec2 res = (false ? uvec2(0u, 0u) : uvec2(0u, 0u));
+  uvec2 res = (false ? uvec2(0u) : uvec2(0u));
 }
 
 vec4 vertex_main() {
   select_51b047();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void select_51b047() {
-  uvec2 res = (false ? uvec2(0u, 0u) : uvec2(0u, 0u));
+  uvec2 res = (false ? uvec2(0u) : uvec2(0u));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void select_51b047() {
-  uvec2 res = (false ? uvec2(0u, 0u) : uvec2(0u, 0u));
+  uvec2 res = (false ? uvec2(0u) : uvec2(0u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/select/713567.wgsl.expected.glsl b/test/tint/builtins/gen/select/713567.wgsl.expected.glsl
index dacba9f..0142ca5 100644
--- a/test/tint/builtins/gen/select/713567.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/select/713567.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void select_713567() {
-  vec4 res = (false ? vec4(0.0f, 0.0f, 0.0f, 0.0f) : vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = (false ? vec4(0.0f) : vec4(0.0f));
 }
 
 vec4 vertex_main() {
   select_713567();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void select_713567() {
-  vec4 res = (false ? vec4(0.0f, 0.0f, 0.0f, 0.0f) : vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = (false ? vec4(0.0f) : vec4(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void select_713567() {
-  vec4 res = (false ? vec4(0.0f, 0.0f, 0.0f, 0.0f) : vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = (false ? vec4(0.0f) : vec4(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/select/78be5f.wgsl.expected.glsl b/test/tint/builtins/gen/select/78be5f.wgsl.expected.glsl
index cd0929d..bc290e2 100644
--- a/test/tint/builtins/gen/select/78be5f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/select/78be5f.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void select_78be5f() {
-  vec3 res = (false ? vec3(0.0f, 0.0f, 0.0f) : vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = (false ? vec3(0.0f) : vec3(0.0f));
 }
 
 vec4 vertex_main() {
   select_78be5f();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void select_78be5f() {
-  vec3 res = (false ? vec3(0.0f, 0.0f, 0.0f) : vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = (false ? vec3(0.0f) : vec3(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void select_78be5f() {
-  vec3 res = (false ? vec3(0.0f, 0.0f, 0.0f) : vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = (false ? vec3(0.0f) : vec3(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/select/80a9a9.wgsl.expected.glsl b/test/tint/builtins/gen/select/80a9a9.wgsl.expected.glsl
index 24c5d96..397e9f7 100644
--- a/test/tint/builtins/gen/select/80a9a9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/select/80a9a9.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void select_80a9a9() {
-  bvec3 res = mix(bvec3(false, false, false), bvec3(false, false, false), bvec3(false, false, false));
+  bvec3 res = mix(bvec3(false), bvec3(false), bvec3(false));
 }
 
 vec4 vertex_main() {
   select_80a9a9();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void select_80a9a9() {
-  bvec3 res = mix(bvec3(false, false, false), bvec3(false, false, false), bvec3(false, false, false));
+  bvec3 res = mix(bvec3(false), bvec3(false), bvec3(false));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void select_80a9a9() {
-  bvec3 res = mix(bvec3(false, false, false), bvec3(false, false, false), bvec3(false, false, false));
+  bvec3 res = mix(bvec3(false), bvec3(false), bvec3(false));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/select/8fa62c.wgsl.expected.glsl b/test/tint/builtins/gen/select/8fa62c.wgsl.expected.glsl
index 90c713b..4cd7593 100644
--- a/test/tint/builtins/gen/select/8fa62c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/select/8fa62c.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void select_8fa62c() {
-  ivec3 res = (false ? ivec3(0, 0, 0) : ivec3(0, 0, 0));
+  ivec3 res = (false ? ivec3(0) : ivec3(0));
 }
 
 vec4 vertex_main() {
   select_8fa62c();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void select_8fa62c() {
-  ivec3 res = (false ? ivec3(0, 0, 0) : ivec3(0, 0, 0));
+  ivec3 res = (false ? ivec3(0) : ivec3(0));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void select_8fa62c() {
-  ivec3 res = (false ? ivec3(0, 0, 0) : ivec3(0, 0, 0));
+  ivec3 res = (false ? ivec3(0) : ivec3(0));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/select/99f883.wgsl.expected.glsl b/test/tint/builtins/gen/select/99f883.wgsl.expected.glsl
index d350453..50eff8f 100644
--- a/test/tint/builtins/gen/select/99f883.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/select/99f883.wgsl.expected.glsl
@@ -6,7 +6,7 @@
 
 vec4 vertex_main() {
   select_99f883();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/select/a2860e.wgsl.expected.glsl b/test/tint/builtins/gen/select/a2860e.wgsl.expected.glsl
index ff37930..249dc83 100644
--- a/test/tint/builtins/gen/select/a2860e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/select/a2860e.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void select_a2860e() {
-  ivec4 res = mix(ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), bvec4(false, false, false, false));
+  ivec4 res = mix(ivec4(0), ivec4(0), bvec4(false));
 }
 
 vec4 vertex_main() {
   select_a2860e();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void select_a2860e() {
-  ivec4 res = mix(ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), bvec4(false, false, false, false));
+  ivec4 res = mix(ivec4(0), ivec4(0), bvec4(false));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void select_a2860e() {
-  ivec4 res = mix(ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), bvec4(false, false, false, false));
+  ivec4 res = mix(ivec4(0), ivec4(0), bvec4(false));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/select/ab069f.wgsl.expected.glsl b/test/tint/builtins/gen/select/ab069f.wgsl.expected.glsl
index cc74ce9..81f83c0 100644
--- a/test/tint/builtins/gen/select/ab069f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/select/ab069f.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void select_ab069f() {
-  ivec4 res = (false ? ivec4(0, 0, 0, 0) : ivec4(0, 0, 0, 0));
+  ivec4 res = (false ? ivec4(0) : ivec4(0));
 }
 
 vec4 vertex_main() {
   select_ab069f();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void select_ab069f() {
-  ivec4 res = (false ? ivec4(0, 0, 0, 0) : ivec4(0, 0, 0, 0));
+  ivec4 res = (false ? ivec4(0) : ivec4(0));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void select_ab069f() {
-  ivec4 res = (false ? ivec4(0, 0, 0, 0) : ivec4(0, 0, 0, 0));
+  ivec4 res = (false ? ivec4(0) : ivec4(0));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/select/b04721.wgsl.expected.glsl b/test/tint/builtins/gen/select/b04721.wgsl.expected.glsl
index e298fb7..a3f20cf 100644
--- a/test/tint/builtins/gen/select/b04721.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/select/b04721.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void select_b04721() {
-  uvec3 res = (false ? uvec3(0u, 0u, 0u) : uvec3(0u, 0u, 0u));
+  uvec3 res = (false ? uvec3(0u) : uvec3(0u));
 }
 
 vec4 vertex_main() {
   select_b04721();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void select_b04721() {
-  uvec3 res = (false ? uvec3(0u, 0u, 0u) : uvec3(0u, 0u, 0u));
+  uvec3 res = (false ? uvec3(0u) : uvec3(0u));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void select_b04721() {
-  uvec3 res = (false ? uvec3(0u, 0u, 0u) : uvec3(0u, 0u, 0u));
+  uvec3 res = (false ? uvec3(0u) : uvec3(0u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/select/bb447f.wgsl.expected.glsl b/test/tint/builtins/gen/select/bb447f.wgsl.expected.glsl
index 2f55379..73fd93d 100644
--- a/test/tint/builtins/gen/select/bb447f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/select/bb447f.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void select_bb447f() {
-  ivec2 res = (false ? ivec2(0, 0) : ivec2(0, 0));
+  ivec2 res = (false ? ivec2(0) : ivec2(0));
 }
 
 vec4 vertex_main() {
   select_bb447f();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void select_bb447f() {
-  ivec2 res = (false ? ivec2(0, 0) : ivec2(0, 0));
+  ivec2 res = (false ? ivec2(0) : ivec2(0));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void select_bb447f() {
-  ivec2 res = (false ? ivec2(0, 0) : ivec2(0, 0));
+  ivec2 res = (false ? ivec2(0) : ivec2(0));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/select/bb8aae.wgsl.expected.glsl b/test/tint/builtins/gen/select/bb8aae.wgsl.expected.glsl
index 37dcbd4..ab211b1 100644
--- a/test/tint/builtins/gen/select/bb8aae.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/select/bb8aae.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void select_bb8aae() {
-  vec4 res = mix(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), bvec4(false, false, false, false));
+  vec4 res = mix(vec4(0.0f), vec4(0.0f), bvec4(false));
 }
 
 vec4 vertex_main() {
   select_bb8aae();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void select_bb8aae() {
-  vec4 res = mix(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), bvec4(false, false, false, false));
+  vec4 res = mix(vec4(0.0f), vec4(0.0f), bvec4(false));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void select_bb8aae() {
-  vec4 res = mix(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), bvec4(false, false, false, false));
+  vec4 res = mix(vec4(0.0f), vec4(0.0f), bvec4(false));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/select/bf3d29.wgsl.expected.glsl b/test/tint/builtins/gen/select/bf3d29.wgsl.expected.glsl
index 044786b..6a71346 100644
--- a/test/tint/builtins/gen/select/bf3d29.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/select/bf3d29.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void select_bf3d29() {
-  vec2 res = (false ? vec2(0.0f, 0.0f) : vec2(0.0f, 0.0f));
+  vec2 res = (false ? vec2(0.0f) : vec2(0.0f));
 }
 
 vec4 vertex_main() {
   select_bf3d29();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void select_bf3d29() {
-  vec2 res = (false ? vec2(0.0f, 0.0f) : vec2(0.0f, 0.0f));
+  vec2 res = (false ? vec2(0.0f) : vec2(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void select_bf3d29() {
-  vec2 res = (false ? vec2(0.0f, 0.0f) : vec2(0.0f, 0.0f));
+  vec2 res = (false ? vec2(0.0f) : vec2(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/select/c31f9e.wgsl.expected.glsl b/test/tint/builtins/gen/select/c31f9e.wgsl.expected.glsl
index fdea060..07f1f9e 100644
--- a/test/tint/builtins/gen/select/c31f9e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/select/c31f9e.wgsl.expected.glsl
@@ -6,7 +6,7 @@
 
 vec4 vertex_main() {
   select_c31f9e();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/select/c41bd1.wgsl.expected.glsl b/test/tint/builtins/gen/select/c41bd1.wgsl.expected.glsl
index a774905..45ff884 100644
--- a/test/tint/builtins/gen/select/c41bd1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/select/c41bd1.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void select_c41bd1() {
-  bvec4 res = (false ? bvec4(false, false, false, false) : bvec4(false, false, false, false));
+  bvec4 res = (false ? bvec4(false) : bvec4(false));
 }
 
 vec4 vertex_main() {
   select_c41bd1();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void select_c41bd1() {
-  bvec4 res = (false ? bvec4(false, false, false, false) : bvec4(false, false, false, false));
+  bvec4 res = (false ? bvec4(false) : bvec4(false));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void select_c41bd1() {
-  bvec4 res = (false ? bvec4(false, false, false, false) : bvec4(false, false, false, false));
+  bvec4 res = (false ? bvec4(false) : bvec4(false));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/select/c4a4ef.wgsl.expected.glsl b/test/tint/builtins/gen/select/c4a4ef.wgsl.expected.glsl
index 5fe820e..6f6f07c 100644
--- a/test/tint/builtins/gen/select/c4a4ef.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/select/c4a4ef.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void select_c4a4ef() {
-  uvec4 res = mix(uvec4(0u, 0u, 0u, 0u), uvec4(0u, 0u, 0u, 0u), bvec4(false, false, false, false));
+  uvec4 res = mix(uvec4(0u), uvec4(0u), bvec4(false));
 }
 
 vec4 vertex_main() {
   select_c4a4ef();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void select_c4a4ef() {
-  uvec4 res = mix(uvec4(0u, 0u, 0u, 0u), uvec4(0u, 0u, 0u, 0u), bvec4(false, false, false, false));
+  uvec4 res = mix(uvec4(0u), uvec4(0u), bvec4(false));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void select_c4a4ef() {
-  uvec4 res = mix(uvec4(0u, 0u, 0u, 0u), uvec4(0u, 0u, 0u, 0u), bvec4(false, false, false, false));
+  uvec4 res = mix(uvec4(0u), uvec4(0u), bvec4(false));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/select/cb9301.wgsl.expected.glsl b/test/tint/builtins/gen/select/cb9301.wgsl.expected.glsl
index 8c3c713..661c17e 100644
--- a/test/tint/builtins/gen/select/cb9301.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/select/cb9301.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void select_cb9301() {
-  bvec2 res = mix(bvec2(false, false), bvec2(false, false), bvec2(false, false));
+  bvec2 res = mix(bvec2(false), bvec2(false), bvec2(false));
 }
 
 vec4 vertex_main() {
   select_cb9301();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void select_cb9301() {
-  bvec2 res = mix(bvec2(false, false), bvec2(false, false), bvec2(false, false));
+  bvec2 res = mix(bvec2(false), bvec2(false), bvec2(false));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void select_cb9301() {
-  bvec2 res = mix(bvec2(false, false), bvec2(false, false), bvec2(false, false));
+  bvec2 res = mix(bvec2(false), bvec2(false), bvec2(false));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/select/e3e028.wgsl.expected.glsl b/test/tint/builtins/gen/select/e3e028.wgsl.expected.glsl
index 05672df..f3f48bf 100644
--- a/test/tint/builtins/gen/select/e3e028.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/select/e3e028.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void select_e3e028() {
-  bvec4 res = mix(bvec4(false, false, false, false), bvec4(false, false, false, false), bvec4(false, false, false, false));
+  bvec4 res = mix(bvec4(false), bvec4(false), bvec4(false));
 }
 
 vec4 vertex_main() {
   select_e3e028();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void select_e3e028() {
-  bvec4 res = mix(bvec4(false, false, false, false), bvec4(false, false, false, false), bvec4(false, false, false, false));
+  bvec4 res = mix(bvec4(false), bvec4(false), bvec4(false));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void select_e3e028() {
-  bvec4 res = mix(bvec4(false, false, false, false), bvec4(false, false, false, false), bvec4(false, false, false, false));
+  bvec4 res = mix(bvec4(false), bvec4(false), bvec4(false));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/select/ebfea2.wgsl.expected.glsl b/test/tint/builtins/gen/select/ebfea2.wgsl.expected.glsl
index d0ed643..a1caf6f 100644
--- a/test/tint/builtins/gen/select/ebfea2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/select/ebfea2.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void select_ebfea2() {
-  vec3 res = mix(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), bvec3(false, false, false));
+  vec3 res = mix(vec3(0.0f), vec3(0.0f), bvec3(false));
 }
 
 vec4 vertex_main() {
   select_ebfea2();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void select_ebfea2() {
-  vec3 res = mix(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), bvec3(false, false, false));
+  vec3 res = mix(vec3(0.0f), vec3(0.0f), bvec3(false));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void select_ebfea2() {
-  vec3 res = mix(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), bvec3(false, false, false));
+  vec3 res = mix(vec3(0.0f), vec3(0.0f), bvec3(false));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/select/ed8a15.wgsl.expected.glsl b/test/tint/builtins/gen/select/ed8a15.wgsl.expected.glsl
index 1bb1485..44771e5 100644
--- a/test/tint/builtins/gen/select/ed8a15.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/select/ed8a15.wgsl.expected.glsl
@@ -6,7 +6,7 @@
 
 vec4 vertex_main() {
   select_ed8a15();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/select/fb7e53.wgsl.expected.glsl b/test/tint/builtins/gen/select/fb7e53.wgsl.expected.glsl
index 8bcca30..6926829 100644
--- a/test/tint/builtins/gen/select/fb7e53.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/select/fb7e53.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void select_fb7e53() {
-  bvec2 res = (false ? bvec2(false, false) : bvec2(false, false));
+  bvec2 res = (false ? bvec2(false) : bvec2(false));
 }
 
 vec4 vertex_main() {
   select_fb7e53();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void select_fb7e53() {
-  bvec2 res = (false ? bvec2(false, false) : bvec2(false, false));
+  bvec2 res = (false ? bvec2(false) : bvec2(false));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void select_fb7e53() {
-  bvec2 res = (false ? bvec2(false, false) : bvec2(false, false));
+  bvec2 res = (false ? bvec2(false) : bvec2(false));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/sign/159665.wgsl.expected.glsl b/test/tint/builtins/gen/sign/159665.wgsl.expected.glsl
index adacd86..5fa1f59 100644
--- a/test/tint/builtins/gen/sign/159665.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/sign/159665.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void sign_159665() {
-  vec3 res = sign(vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = sign(vec3(0.0f));
 }
 
 vec4 vertex_main() {
   sign_159665();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void sign_159665() {
-  vec3 res = sign(vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = sign(vec3(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void sign_159665() {
-  vec3 res = sign(vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = sign(vec3(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/sign/b8f634.wgsl.expected.glsl b/test/tint/builtins/gen/sign/b8f634.wgsl.expected.glsl
index 18f418a..9f21795 100644
--- a/test/tint/builtins/gen/sign/b8f634.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/sign/b8f634.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void sign_b8f634() {
-  vec4 res = sign(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = sign(vec4(0.0f));
 }
 
 vec4 vertex_main() {
   sign_b8f634();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void sign_b8f634() {
-  vec4 res = sign(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = sign(vec4(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void sign_b8f634() {
-  vec4 res = sign(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = sign(vec4(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/sign/d065d8.wgsl.expected.glsl b/test/tint/builtins/gen/sign/d065d8.wgsl.expected.glsl
index 484ae07..60de591 100644
--- a/test/tint/builtins/gen/sign/d065d8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/sign/d065d8.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void sign_d065d8() {
-  vec2 res = sign(vec2(0.0f, 0.0f));
+  vec2 res = sign(vec2(0.0f));
 }
 
 vec4 vertex_main() {
   sign_d065d8();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void sign_d065d8() {
-  vec2 res = sign(vec2(0.0f, 0.0f));
+  vec2 res = sign(vec2(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void sign_d065d8() {
-  vec2 res = sign(vec2(0.0f, 0.0f));
+  vec2 res = sign(vec2(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/sign/dd790e.wgsl.expected.glsl b/test/tint/builtins/gen/sign/dd790e.wgsl.expected.glsl
index 5d1fa4e..129fd0e 100644
--- a/test/tint/builtins/gen/sign/dd790e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/sign/dd790e.wgsl.expected.glsl
@@ -6,7 +6,7 @@
 
 vec4 vertex_main() {
   sign_dd790e();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/sin/01f241.wgsl.expected.glsl b/test/tint/builtins/gen/sin/01f241.wgsl.expected.glsl
index febf732..49e9ab5 100644
--- a/test/tint/builtins/gen/sin/01f241.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/sin/01f241.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void sin_01f241() {
-  vec3 res = sin(vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = sin(vec3(0.0f));
 }
 
 vec4 vertex_main() {
   sin_01f241();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void sin_01f241() {
-  vec3 res = sin(vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = sin(vec3(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void sin_01f241() {
-  vec3 res = sin(vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = sin(vec3(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/sin/4e3979.wgsl.expected.glsl b/test/tint/builtins/gen/sin/4e3979.wgsl.expected.glsl
index 4bbed8d..20afb5d 100644
--- a/test/tint/builtins/gen/sin/4e3979.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/sin/4e3979.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void sin_4e3979() {
-  vec4 res = sin(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = sin(vec4(0.0f));
 }
 
 vec4 vertex_main() {
   sin_4e3979();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void sin_4e3979() {
-  vec4 res = sin(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = sin(vec4(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void sin_4e3979() {
-  vec4 res = sin(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = sin(vec4(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/sin/b78c91.wgsl.expected.glsl b/test/tint/builtins/gen/sin/b78c91.wgsl.expected.glsl
index d5f43be..e28e887 100644
--- a/test/tint/builtins/gen/sin/b78c91.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/sin/b78c91.wgsl.expected.glsl
@@ -6,7 +6,7 @@
 
 vec4 vertex_main() {
   sin_b78c91();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/sin/fc8bc4.wgsl.expected.glsl b/test/tint/builtins/gen/sin/fc8bc4.wgsl.expected.glsl
index ea878eb..3856182 100644
--- a/test/tint/builtins/gen/sin/fc8bc4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/sin/fc8bc4.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void sin_fc8bc4() {
-  vec2 res = sin(vec2(0.0f, 0.0f));
+  vec2 res = sin(vec2(0.0f));
 }
 
 vec4 vertex_main() {
   sin_fc8bc4();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void sin_fc8bc4() {
-  vec2 res = sin(vec2(0.0f, 0.0f));
+  vec2 res = sin(vec2(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void sin_fc8bc4() {
-  vec2 res = sin(vec2(0.0f, 0.0f));
+  vec2 res = sin(vec2(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/sinh/445e33.wgsl.expected.glsl b/test/tint/builtins/gen/sinh/445e33.wgsl.expected.glsl
index d528a8b..eb2df9e 100644
--- a/test/tint/builtins/gen/sinh/445e33.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/sinh/445e33.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void sinh_445e33() {
-  vec4 res = sinh(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = sinh(vec4(0.0f));
 }
 
 vec4 vertex_main() {
   sinh_445e33();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void sinh_445e33() {
-  vec4 res = sinh(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = sinh(vec4(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void sinh_445e33() {
-  vec4 res = sinh(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = sinh(vec4(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/sinh/7bb598.wgsl.expected.glsl b/test/tint/builtins/gen/sinh/7bb598.wgsl.expected.glsl
index e8ee6fd..a30194b 100644
--- a/test/tint/builtins/gen/sinh/7bb598.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/sinh/7bb598.wgsl.expected.glsl
@@ -6,7 +6,7 @@
 
 vec4 vertex_main() {
   sinh_7bb598();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/sinh/b9860e.wgsl.expected.glsl b/test/tint/builtins/gen/sinh/b9860e.wgsl.expected.glsl
index 5c2ab68..db61df2 100644
--- a/test/tint/builtins/gen/sinh/b9860e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/sinh/b9860e.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void sinh_b9860e() {
-  vec2 res = sinh(vec2(0.0f, 0.0f));
+  vec2 res = sinh(vec2(0.0f));
 }
 
 vec4 vertex_main() {
   sinh_b9860e();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void sinh_b9860e() {
-  vec2 res = sinh(vec2(0.0f, 0.0f));
+  vec2 res = sinh(vec2(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void sinh_b9860e() {
-  vec2 res = sinh(vec2(0.0f, 0.0f));
+  vec2 res = sinh(vec2(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/sinh/c9a5eb.wgsl.expected.glsl b/test/tint/builtins/gen/sinh/c9a5eb.wgsl.expected.glsl
index 3d96ecc..6aa5169 100644
--- a/test/tint/builtins/gen/sinh/c9a5eb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/sinh/c9a5eb.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void sinh_c9a5eb() {
-  vec3 res = sinh(vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = sinh(vec3(0.0f));
 }
 
 vec4 vertex_main() {
   sinh_c9a5eb();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void sinh_c9a5eb() {
-  vec3 res = sinh(vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = sinh(vec3(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void sinh_c9a5eb() {
-  vec3 res = sinh(vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = sinh(vec3(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/smoothstep/392c19.wgsl.expected.glsl b/test/tint/builtins/gen/smoothstep/392c19.wgsl.expected.glsl
index ea982b9..a677eea 100644
--- a/test/tint/builtins/gen/smoothstep/392c19.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/smoothstep/392c19.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void smoothstep_392c19() {
-  vec2 res = smoothstep(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+  vec2 res = smoothstep(vec2(0.0f), vec2(0.0f), vec2(0.0f));
 }
 
 vec4 vertex_main() {
   smoothstep_392c19();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void smoothstep_392c19() {
-  vec2 res = smoothstep(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+  vec2 res = smoothstep(vec2(0.0f), vec2(0.0f), vec2(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void smoothstep_392c19() {
-  vec2 res = smoothstep(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+  vec2 res = smoothstep(vec2(0.0f), vec2(0.0f), vec2(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/smoothstep/40864c.wgsl.expected.glsl b/test/tint/builtins/gen/smoothstep/40864c.wgsl.expected.glsl
index 53d6a2e..9bb5dbc 100644
--- a/test/tint/builtins/gen/smoothstep/40864c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/smoothstep/40864c.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void smoothstep_40864c() {
-  vec4 res = smoothstep(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = smoothstep(vec4(0.0f), vec4(0.0f), vec4(0.0f));
 }
 
 vec4 vertex_main() {
   smoothstep_40864c();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void smoothstep_40864c() {
-  vec4 res = smoothstep(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = smoothstep(vec4(0.0f), vec4(0.0f), vec4(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void smoothstep_40864c() {
-  vec4 res = smoothstep(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = smoothstep(vec4(0.0f), vec4(0.0f), vec4(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/smoothstep/5f615b.wgsl.expected.glsl b/test/tint/builtins/gen/smoothstep/5f615b.wgsl.expected.glsl
index 5c6176b..45ae81f 100644
--- a/test/tint/builtins/gen/smoothstep/5f615b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/smoothstep/5f615b.wgsl.expected.glsl
@@ -5,12 +5,12 @@
 #version 310 es
 
 void smoothStep_5f615b() {
-  vec4 res = smoothstep(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = smoothstep(vec4(0.0f), vec4(0.0f), vec4(0.0f));
 }
 
 vec4 vertex_main() {
   smoothStep_5f615b();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -25,7 +25,7 @@
 precision mediump float;
 
 void smoothStep_5f615b() {
-  vec4 res = smoothstep(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = smoothstep(vec4(0.0f), vec4(0.0f), vec4(0.0f));
 }
 
 void fragment_main() {
@@ -39,7 +39,7 @@
 #version 310 es
 
 void smoothStep_5f615b() {
-  vec4 res = smoothstep(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = smoothstep(vec4(0.0f), vec4(0.0f), vec4(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/smoothstep/658be3.wgsl.expected.glsl b/test/tint/builtins/gen/smoothstep/658be3.wgsl.expected.glsl
index 35723fc..662c574 100644
--- a/test/tint/builtins/gen/smoothstep/658be3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/smoothstep/658be3.wgsl.expected.glsl
@@ -5,12 +5,12 @@
 #version 310 es
 
 void smoothStep_658be3() {
-  vec3 res = smoothstep(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = smoothstep(vec3(0.0f), vec3(0.0f), vec3(0.0f));
 }
 
 vec4 vertex_main() {
   smoothStep_658be3();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -25,7 +25,7 @@
 precision mediump float;
 
 void smoothStep_658be3() {
-  vec3 res = smoothstep(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = smoothstep(vec3(0.0f), vec3(0.0f), vec3(0.0f));
 }
 
 void fragment_main() {
@@ -39,7 +39,7 @@
 #version 310 es
 
 void smoothStep_658be3() {
-  vec3 res = smoothstep(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = smoothstep(vec3(0.0f), vec3(0.0f), vec3(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/smoothstep/6c4975.wgsl.expected.glsl b/test/tint/builtins/gen/smoothstep/6c4975.wgsl.expected.glsl
index 6c3afe9..74f7dd4 100644
--- a/test/tint/builtins/gen/smoothstep/6c4975.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/smoothstep/6c4975.wgsl.expected.glsl
@@ -6,7 +6,7 @@
 
 vec4 vertex_main() {
   smoothstep_6c4975();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/smoothstep/aad1db.wgsl.expected.glsl b/test/tint/builtins/gen/smoothstep/aad1db.wgsl.expected.glsl
index 32c8e8a..5ec2073 100644
--- a/test/tint/builtins/gen/smoothstep/aad1db.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/smoothstep/aad1db.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void smoothstep_aad1db() {
-  vec3 res = smoothstep(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = smoothstep(vec3(0.0f), vec3(0.0f), vec3(0.0f));
 }
 
 vec4 vertex_main() {
   smoothstep_aad1db();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void smoothstep_aad1db() {
-  vec3 res = smoothstep(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = smoothstep(vec3(0.0f), vec3(0.0f), vec3(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void smoothstep_aad1db() {
-  vec3 res = smoothstep(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = smoothstep(vec3(0.0f), vec3(0.0f), vec3(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/smoothstep/c11eef.wgsl.expected.glsl b/test/tint/builtins/gen/smoothstep/c11eef.wgsl.expected.glsl
index 59c7014..f81ae7f 100644
--- a/test/tint/builtins/gen/smoothstep/c11eef.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/smoothstep/c11eef.wgsl.expected.glsl
@@ -5,12 +5,12 @@
 #version 310 es
 
 void smoothStep_c11eef() {
-  vec2 res = smoothstep(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+  vec2 res = smoothstep(vec2(0.0f), vec2(0.0f), vec2(0.0f));
 }
 
 vec4 vertex_main() {
   smoothStep_c11eef();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -25,7 +25,7 @@
 precision mediump float;
 
 void smoothStep_c11eef() {
-  vec2 res = smoothstep(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+  vec2 res = smoothstep(vec2(0.0f), vec2(0.0f), vec2(0.0f));
 }
 
 void fragment_main() {
@@ -39,7 +39,7 @@
 #version 310 es
 
 void smoothStep_c11eef() {
-  vec2 res = smoothstep(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+  vec2 res = smoothstep(vec2(0.0f), vec2(0.0f), vec2(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/smoothstep/cb0bfb.wgsl.expected.glsl b/test/tint/builtins/gen/smoothstep/cb0bfb.wgsl.expected.glsl
index 82d1901..05627a1 100644
--- a/test/tint/builtins/gen/smoothstep/cb0bfb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/smoothstep/cb0bfb.wgsl.expected.glsl
@@ -10,7 +10,7 @@
 
 vec4 vertex_main() {
   smoothStep_cb0bfb();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/sqrt/20c74e.wgsl.expected.glsl b/test/tint/builtins/gen/sqrt/20c74e.wgsl.expected.glsl
index 8101f4c..08f5000 100644
--- a/test/tint/builtins/gen/sqrt/20c74e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/sqrt/20c74e.wgsl.expected.glsl
@@ -6,7 +6,7 @@
 
 vec4 vertex_main() {
   sqrt_20c74e();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/sqrt/8c7024.wgsl.expected.glsl b/test/tint/builtins/gen/sqrt/8c7024.wgsl.expected.glsl
index 0a6b551..d942752 100644
--- a/test/tint/builtins/gen/sqrt/8c7024.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/sqrt/8c7024.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void sqrt_8c7024() {
-  vec2 res = sqrt(vec2(0.0f, 0.0f));
+  vec2 res = sqrt(vec2(0.0f));
 }
 
 vec4 vertex_main() {
   sqrt_8c7024();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void sqrt_8c7024() {
-  vec2 res = sqrt(vec2(0.0f, 0.0f));
+  vec2 res = sqrt(vec2(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void sqrt_8c7024() {
-  vec2 res = sqrt(vec2(0.0f, 0.0f));
+  vec2 res = sqrt(vec2(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/sqrt/aa0d7a.wgsl.expected.glsl b/test/tint/builtins/gen/sqrt/aa0d7a.wgsl.expected.glsl
index 80f236c..7b64f32 100644
--- a/test/tint/builtins/gen/sqrt/aa0d7a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/sqrt/aa0d7a.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void sqrt_aa0d7a() {
-  vec4 res = sqrt(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = sqrt(vec4(0.0f));
 }
 
 vec4 vertex_main() {
   sqrt_aa0d7a();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void sqrt_aa0d7a() {
-  vec4 res = sqrt(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = sqrt(vec4(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void sqrt_aa0d7a() {
-  vec4 res = sqrt(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = sqrt(vec4(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/sqrt/f8c59a.wgsl.expected.glsl b/test/tint/builtins/gen/sqrt/f8c59a.wgsl.expected.glsl
index 364e0af..921c34f 100644
--- a/test/tint/builtins/gen/sqrt/f8c59a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/sqrt/f8c59a.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void sqrt_f8c59a() {
-  vec3 res = sqrt(vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = sqrt(vec3(0.0f));
 }
 
 vec4 vertex_main() {
   sqrt_f8c59a();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void sqrt_f8c59a() {
-  vec3 res = sqrt(vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = sqrt(vec3(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void sqrt_f8c59a() {
-  vec3 res = sqrt(vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = sqrt(vec3(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/step/0b073b.wgsl.expected.glsl b/test/tint/builtins/gen/step/0b073b.wgsl.expected.glsl
index fc47ab0..9e4ee8e0 100644
--- a/test/tint/builtins/gen/step/0b073b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/step/0b073b.wgsl.expected.glsl
@@ -6,7 +6,7 @@
 
 vec4 vertex_main() {
   step_0b073b();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/step/19accd.wgsl.expected.glsl b/test/tint/builtins/gen/step/19accd.wgsl.expected.glsl
index 88dee68..78ac5a2 100644
--- a/test/tint/builtins/gen/step/19accd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/step/19accd.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void step_19accd() {
-  vec2 res = step(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+  vec2 res = step(vec2(0.0f), vec2(0.0f));
 }
 
 vec4 vertex_main() {
   step_19accd();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void step_19accd() {
-  vec2 res = step(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+  vec2 res = step(vec2(0.0f), vec2(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void step_19accd() {
-  vec2 res = step(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+  vec2 res = step(vec2(0.0f), vec2(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/step/334303.wgsl.expected.glsl b/test/tint/builtins/gen/step/334303.wgsl.expected.glsl
index 78b9c988..be30be9 100644
--- a/test/tint/builtins/gen/step/334303.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/step/334303.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void step_334303() {
-  vec3 res = step(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = step(vec3(0.0f), vec3(0.0f));
 }
 
 vec4 vertex_main() {
   step_334303();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void step_334303() {
-  vec3 res = step(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = step(vec3(0.0f), vec3(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void step_334303() {
-  vec3 res = step(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = step(vec3(0.0f), vec3(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/step/e2b337.wgsl.expected.glsl b/test/tint/builtins/gen/step/e2b337.wgsl.expected.glsl
index cb4e684..a152847 100644
--- a/test/tint/builtins/gen/step/e2b337.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/step/e2b337.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void step_e2b337() {
-  vec4 res = step(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = step(vec4(0.0f), vec4(0.0f));
 }
 
 vec4 vertex_main() {
   step_e2b337();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void step_e2b337() {
-  vec4 res = step(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = step(vec4(0.0f), vec4(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void step_e2b337() {
-  vec4 res = step(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = step(vec4(0.0f), vec4(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/tan/244e2a.wgsl.expected.glsl b/test/tint/builtins/gen/tan/244e2a.wgsl.expected.glsl
index 70f5792..f9e8554 100644
--- a/test/tint/builtins/gen/tan/244e2a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/tan/244e2a.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void tan_244e2a() {
-  vec4 res = tan(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = tan(vec4(0.0f));
 }
 
 vec4 vertex_main() {
   tan_244e2a();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void tan_244e2a() {
-  vec4 res = tan(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = tan(vec4(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void tan_244e2a() {
-  vec4 res = tan(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = tan(vec4(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/tan/2f030e.wgsl.expected.glsl b/test/tint/builtins/gen/tan/2f030e.wgsl.expected.glsl
index 0c40e1a..3ce88ec 100644
--- a/test/tint/builtins/gen/tan/2f030e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/tan/2f030e.wgsl.expected.glsl
@@ -6,7 +6,7 @@
 
 vec4 vertex_main() {
   tan_2f030e();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/tan/7ea104.wgsl.expected.glsl b/test/tint/builtins/gen/tan/7ea104.wgsl.expected.glsl
index f69ac67..4d74dbe 100644
--- a/test/tint/builtins/gen/tan/7ea104.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/tan/7ea104.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void tan_7ea104() {
-  vec3 res = tan(vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = tan(vec3(0.0f));
 }
 
 vec4 vertex_main() {
   tan_7ea104();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void tan_7ea104() {
-  vec3 res = tan(vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = tan(vec3(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void tan_7ea104() {
-  vec3 res = tan(vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = tan(vec3(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/tan/8ce3e9.wgsl.expected.glsl b/test/tint/builtins/gen/tan/8ce3e9.wgsl.expected.glsl
index 98bd7ff..538d7e9 100644
--- a/test/tint/builtins/gen/tan/8ce3e9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/tan/8ce3e9.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void tan_8ce3e9() {
-  vec2 res = tan(vec2(0.0f, 0.0f));
+  vec2 res = tan(vec2(0.0f));
 }
 
 vec4 vertex_main() {
   tan_8ce3e9();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void tan_8ce3e9() {
-  vec2 res = tan(vec2(0.0f, 0.0f));
+  vec2 res = tan(vec2(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void tan_8ce3e9() {
-  vec2 res = tan(vec2(0.0f, 0.0f));
+  vec2 res = tan(vec2(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/tanh/5663c5.wgsl.expected.glsl b/test/tint/builtins/gen/tanh/5663c5.wgsl.expected.glsl
index bf62f64..c2e0df0 100644
--- a/test/tint/builtins/gen/tanh/5663c5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/tanh/5663c5.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void tanh_5663c5() {
-  vec4 res = tanh(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = tanh(vec4(0.0f));
 }
 
 vec4 vertex_main() {
   tanh_5663c5();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void tanh_5663c5() {
-  vec4 res = tanh(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = tanh(vec4(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void tanh_5663c5() {
-  vec4 res = tanh(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = tanh(vec4(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/tanh/5724b3.wgsl.expected.glsl b/test/tint/builtins/gen/tanh/5724b3.wgsl.expected.glsl
index 3c4f928..6ff2733 100644
--- a/test/tint/builtins/gen/tanh/5724b3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/tanh/5724b3.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void tanh_5724b3() {
-  vec2 res = tanh(vec2(0.0f, 0.0f));
+  vec2 res = tanh(vec2(0.0f));
 }
 
 vec4 vertex_main() {
   tanh_5724b3();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void tanh_5724b3() {
-  vec2 res = tanh(vec2(0.0f, 0.0f));
+  vec2 res = tanh(vec2(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void tanh_5724b3() {
-  vec2 res = tanh(vec2(0.0f, 0.0f));
+  vec2 res = tanh(vec2(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/tanh/9f9fb9.wgsl.expected.glsl b/test/tint/builtins/gen/tanh/9f9fb9.wgsl.expected.glsl
index f47a5f0..cbe8f65 100644
--- a/test/tint/builtins/gen/tanh/9f9fb9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/tanh/9f9fb9.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void tanh_9f9fb9() {
-  vec3 res = tanh(vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = tanh(vec3(0.0f));
 }
 
 vec4 vertex_main() {
   tanh_9f9fb9();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void tanh_9f9fb9() {
-  vec3 res = tanh(vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = tanh(vec3(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void tanh_9f9fb9() {
-  vec3 res = tanh(vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = tanh(vec3(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/tanh/c15fdb.wgsl.expected.glsl b/test/tint/builtins/gen/tanh/c15fdb.wgsl.expected.glsl
index b40fb21..a76821c 100644
--- a/test/tint/builtins/gen/tanh/c15fdb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/tanh/c15fdb.wgsl.expected.glsl
@@ -6,7 +6,7 @@
 
 vec4 vertex_main() {
   tanh_c15fdb();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureDimensions/012b82.wgsl.expected.glsl b/test/tint/builtins/gen/textureDimensions/012b82.wgsl.expected.glsl
index 7746614..9ae3c1b 100644
--- a/test/tint/builtins/gen/textureDimensions/012b82.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureDimensions/012b82.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureDimensions_012b82();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureDimensions/0c4772.wgsl.expected.glsl b/test/tint/builtins/gen/textureDimensions/0c4772.wgsl.expected.glsl
index b0d5c96..f58182c 100644
--- a/test/tint/builtins/gen/textureDimensions/0c4772.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureDimensions/0c4772.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureDimensions_0c4772();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureDimensions/0cf2ff.wgsl.expected.glsl b/test/tint/builtins/gen/textureDimensions/0cf2ff.wgsl.expected.glsl
index dba3da3..d91c9db 100644
--- a/test/tint/builtins/gen/textureDimensions/0cf2ff.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureDimensions/0cf2ff.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureDimensions_0cf2ff();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureDimensions/0d8b7e.wgsl.expected.glsl b/test/tint/builtins/gen/textureDimensions/0d8b7e.wgsl.expected.glsl
index bdfde77..19bb91a 100644
--- a/test/tint/builtins/gen/textureDimensions/0d8b7e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureDimensions/0d8b7e.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureDimensions_0d8b7e();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureDimensions/0e32ee.wgsl.expected.glsl b/test/tint/builtins/gen/textureDimensions/0e32ee.wgsl.expected.glsl
index 3ffd97c..3b00486 100644
--- a/test/tint/builtins/gen/textureDimensions/0e32ee.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureDimensions/0e32ee.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureDimensions_0e32ee();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureDimensions/0f3c50.wgsl.expected.glsl b/test/tint/builtins/gen/textureDimensions/0f3c50.wgsl.expected.glsl
index 9435cc4..da53ee8 100644
--- a/test/tint/builtins/gen/textureDimensions/0f3c50.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureDimensions/0f3c50.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureDimensions_0f3c50();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureDimensions/1191a5.wgsl.expected.glsl b/test/tint/builtins/gen/textureDimensions/1191a5.wgsl.expected.glsl
index cde99f1..0514b2e 100644
--- a/test/tint/builtins/gen/textureDimensions/1191a5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureDimensions/1191a5.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureDimensions_1191a5();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureDimensions/12c9bb.wgsl.expected.glsl b/test/tint/builtins/gen/textureDimensions/12c9bb.wgsl.expected.glsl
index 635de52..6c58bd4 100644
--- a/test/tint/builtins/gen/textureDimensions/12c9bb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureDimensions/12c9bb.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureDimensions_12c9bb();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureDimensions/16036c.wgsl.expected.glsl b/test/tint/builtins/gen/textureDimensions/16036c.wgsl.expected.glsl
index 3960245..5e4d692 100644
--- a/test/tint/builtins/gen/textureDimensions/16036c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureDimensions/16036c.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureDimensions_16036c();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureDimensions/1b71f0.wgsl.expected.glsl b/test/tint/builtins/gen/textureDimensions/1b71f0.wgsl.expected.glsl
index 1b67e32..16bd5b6 100644
--- a/test/tint/builtins/gen/textureDimensions/1b71f0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureDimensions/1b71f0.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureDimensions_1b71f0();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureDimensions/1d6c26.wgsl.expected.glsl b/test/tint/builtins/gen/textureDimensions/1d6c26.wgsl.expected.glsl
index 46c5bc9..bea79ae 100644
--- a/test/tint/builtins/gen/textureDimensions/1d6c26.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureDimensions/1d6c26.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureDimensions_1d6c26();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureDimensions/1f20c5.wgsl.expected.glsl b/test/tint/builtins/gen/textureDimensions/1f20c5.wgsl.expected.glsl
index 1e49316..ac742c2 100644
--- a/test/tint/builtins/gen/textureDimensions/1f20c5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureDimensions/1f20c5.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureDimensions_1f20c5();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureDimensions/214dd4.wgsl.expected.glsl b/test/tint/builtins/gen/textureDimensions/214dd4.wgsl.expected.glsl
index 302ea4b..d7f534f 100644
--- a/test/tint/builtins/gen/textureDimensions/214dd4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureDimensions/214dd4.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureDimensions_214dd4();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureDimensions/267788.wgsl.expected.glsl b/test/tint/builtins/gen/textureDimensions/267788.wgsl.expected.glsl
index aad7d0d..d3423ea 100644
--- a/test/tint/builtins/gen/textureDimensions/267788.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureDimensions/267788.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureDimensions_267788();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureDimensions/26bdfa.wgsl.expected.glsl b/test/tint/builtins/gen/textureDimensions/26bdfa.wgsl.expected.glsl
index 8d9a5d1..2d44944 100644
--- a/test/tint/builtins/gen/textureDimensions/26bdfa.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureDimensions/26bdfa.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureDimensions_26bdfa();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureDimensions/26ef6c.wgsl.expected.glsl b/test/tint/builtins/gen/textureDimensions/26ef6c.wgsl.expected.glsl
index 97a168b..dbdb178 100644
--- a/test/tint/builtins/gen/textureDimensions/26ef6c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureDimensions/26ef6c.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureDimensions_26ef6c();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureDimensions/2ad087.wgsl.expected.glsl b/test/tint/builtins/gen/textureDimensions/2ad087.wgsl.expected.glsl
index d5eec92..90289b3 100644
--- a/test/tint/builtins/gen/textureDimensions/2ad087.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureDimensions/2ad087.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureDimensions_2ad087();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureDimensions/2efa05.wgsl.expected.glsl b/test/tint/builtins/gen/textureDimensions/2efa05.wgsl.expected.glsl
index 952b37d..13c367a 100644
--- a/test/tint/builtins/gen/textureDimensions/2efa05.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureDimensions/2efa05.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureDimensions_2efa05();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureDimensions/2f289f.wgsl.expected.glsl b/test/tint/builtins/gen/textureDimensions/2f289f.wgsl.expected.glsl
index 54c28ed..ecf5ce0 100644
--- a/test/tint/builtins/gen/textureDimensions/2f289f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureDimensions/2f289f.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureDimensions_2f289f();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureDimensions/2fe1cc.wgsl.expected.glsl b/test/tint/builtins/gen/textureDimensions/2fe1cc.wgsl.expected.glsl
index a2e9484..95caf65 100644
--- a/test/tint/builtins/gen/textureDimensions/2fe1cc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureDimensions/2fe1cc.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureDimensions_2fe1cc();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureDimensions/340d06.wgsl.expected.glsl b/test/tint/builtins/gen/textureDimensions/340d06.wgsl.expected.glsl
index fbb5783..78d4994 100644
--- a/test/tint/builtins/gen/textureDimensions/340d06.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureDimensions/340d06.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureDimensions_340d06();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureDimensions/398e30.wgsl.expected.glsl b/test/tint/builtins/gen/textureDimensions/398e30.wgsl.expected.glsl
index 05514e2..6db6351 100644
--- a/test/tint/builtins/gen/textureDimensions/398e30.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureDimensions/398e30.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureDimensions_398e30();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureDimensions/3c5ad8.wgsl.expected.glsl b/test/tint/builtins/gen/textureDimensions/3c5ad8.wgsl.expected.glsl
index d29a977..b27ab3b 100644
--- a/test/tint/builtins/gen/textureDimensions/3c5ad8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureDimensions/3c5ad8.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureDimensions_3c5ad8();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureDimensions/4267ee.wgsl.expected.glsl b/test/tint/builtins/gen/textureDimensions/4267ee.wgsl.expected.glsl
index 1708919..c1f09fa 100644
--- a/test/tint/builtins/gen/textureDimensions/4267ee.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureDimensions/4267ee.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureDimensions_4267ee();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureDimensions/48cb89.wgsl.expected.glsl b/test/tint/builtins/gen/textureDimensions/48cb89.wgsl.expected.glsl
index 1872cda..026fcaef 100644
--- a/test/tint/builtins/gen/textureDimensions/48cb89.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureDimensions/48cb89.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureDimensions_48cb89();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureDimensions/579629.wgsl.expected.glsl b/test/tint/builtins/gen/textureDimensions/579629.wgsl.expected.glsl
index 74a3b7a..d1ca2e7 100644
--- a/test/tint/builtins/gen/textureDimensions/579629.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureDimensions/579629.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureDimensions_579629();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureDimensions/57e28f.wgsl.expected.glsl b/test/tint/builtins/gen/textureDimensions/57e28f.wgsl.expected.glsl
index e3b5d7d..c8713a2 100644
--- a/test/tint/builtins/gen/textureDimensions/57e28f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureDimensions/57e28f.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureDimensions_57e28f();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureDimensions/58a515.wgsl.expected.glsl b/test/tint/builtins/gen/textureDimensions/58a515.wgsl.expected.glsl
index dc9f2f7..b67bb0f 100644
--- a/test/tint/builtins/gen/textureDimensions/58a515.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureDimensions/58a515.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureDimensions_58a515();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureDimensions/5985f3.wgsl.expected.glsl b/test/tint/builtins/gen/textureDimensions/5985f3.wgsl.expected.glsl
index 71cb399..4c33a17 100644
--- a/test/tint/builtins/gen/textureDimensions/5985f3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureDimensions/5985f3.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureDimensions_5985f3();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureDimensions/5e295d.wgsl.expected.glsl b/test/tint/builtins/gen/textureDimensions/5e295d.wgsl.expected.glsl
index 362fb6c..f079eb8 100644
--- a/test/tint/builtins/gen/textureDimensions/5e295d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureDimensions/5e295d.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureDimensions_5e295d();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureDimensions/68105c.wgsl.expected.glsl b/test/tint/builtins/gen/textureDimensions/68105c.wgsl.expected.glsl
index d50c6d7..d366071 100644
--- a/test/tint/builtins/gen/textureDimensions/68105c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureDimensions/68105c.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureDimensions_68105c();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureDimensions/686ef2.wgsl.expected.glsl b/test/tint/builtins/gen/textureDimensions/686ef2.wgsl.expected.glsl
index 1229bec..a30259f 100644
--- a/test/tint/builtins/gen/textureDimensions/686ef2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureDimensions/686ef2.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureDimensions_686ef2();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureDimensions/6ec1b4.wgsl.expected.glsl b/test/tint/builtins/gen/textureDimensions/6ec1b4.wgsl.expected.glsl
index d07fb65..482455d 100644
--- a/test/tint/builtins/gen/textureDimensions/6ec1b4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureDimensions/6ec1b4.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureDimensions_6ec1b4();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureDimensions/6f0d79.wgsl.expected.glsl b/test/tint/builtins/gen/textureDimensions/6f0d79.wgsl.expected.glsl
index c7a57bc..71893cb 100644
--- a/test/tint/builtins/gen/textureDimensions/6f0d79.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureDimensions/6f0d79.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureDimensions_6f0d79();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureDimensions/702c53.wgsl.expected.glsl b/test/tint/builtins/gen/textureDimensions/702c53.wgsl.expected.glsl
index 33223e5..e4f0c34 100644
--- a/test/tint/builtins/gen/textureDimensions/702c53.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureDimensions/702c53.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureDimensions_702c53();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureDimensions/72e5d6.wgsl.expected.glsl b/test/tint/builtins/gen/textureDimensions/72e5d6.wgsl.expected.glsl
index fe92f44..12fad02 100644
--- a/test/tint/builtins/gen/textureDimensions/72e5d6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureDimensions/72e5d6.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureDimensions_72e5d6();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureDimensions/7bf826.wgsl.expected.glsl b/test/tint/builtins/gen/textureDimensions/7bf826.wgsl.expected.glsl
index b3d3327..9859cdd9 100644
--- a/test/tint/builtins/gen/textureDimensions/7bf826.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureDimensions/7bf826.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureDimensions_7bf826();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureDimensions/8028f3.wgsl.expected.glsl b/test/tint/builtins/gen/textureDimensions/8028f3.wgsl.expected.glsl
index 079cc6c..4ac9ac9 100644
--- a/test/tint/builtins/gen/textureDimensions/8028f3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureDimensions/8028f3.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureDimensions_8028f3();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureDimensions/811679.wgsl.expected.glsl b/test/tint/builtins/gen/textureDimensions/811679.wgsl.expected.glsl
index b9859b6..152d367 100644
--- a/test/tint/builtins/gen/textureDimensions/811679.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureDimensions/811679.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureDimensions_811679();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureDimensions/83ee5a.wgsl.expected.glsl b/test/tint/builtins/gen/textureDimensions/83ee5a.wgsl.expected.glsl
index d418c58..1f6ce58 100644
--- a/test/tint/builtins/gen/textureDimensions/83ee5a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureDimensions/83ee5a.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureDimensions_83ee5a();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureDimensions/85d556.wgsl.expected.glsl b/test/tint/builtins/gen/textureDimensions/85d556.wgsl.expected.glsl
index 1d0848b..c51bf8a 100644
--- a/test/tint/builtins/gen/textureDimensions/85d556.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureDimensions/85d556.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureDimensions_85d556();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureDimensions/88ad17.wgsl.expected.glsl b/test/tint/builtins/gen/textureDimensions/88ad17.wgsl.expected.glsl
index 0dc03d0..e5a8afc 100644
--- a/test/tint/builtins/gen/textureDimensions/88ad17.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureDimensions/88ad17.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureDimensions_88ad17();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureDimensions/8aa4c4.wgsl.expected.glsl b/test/tint/builtins/gen/textureDimensions/8aa4c4.wgsl.expected.glsl
index a578eea..45495e9 100644
--- a/test/tint/builtins/gen/textureDimensions/8aa4c4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureDimensions/8aa4c4.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureDimensions_8aa4c4();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureDimensions/8deb5e.wgsl.expected.glsl b/test/tint/builtins/gen/textureDimensions/8deb5e.wgsl.expected.glsl
index 30c0a69..8869c19 100644
--- a/test/tint/builtins/gen/textureDimensions/8deb5e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureDimensions/8deb5e.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureDimensions_8deb5e();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureDimensions/8fca0f.wgsl.expected.glsl b/test/tint/builtins/gen/textureDimensions/8fca0f.wgsl.expected.glsl
index 60bc61d..255924a 100644
--- a/test/tint/builtins/gen/textureDimensions/8fca0f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureDimensions/8fca0f.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureDimensions_8fca0f();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureDimensions/9393b0.wgsl.expected.glsl b/test/tint/builtins/gen/textureDimensions/9393b0.wgsl.expected.glsl
index 71a8b7c..951da7c 100644
--- a/test/tint/builtins/gen/textureDimensions/9393b0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureDimensions/9393b0.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureDimensions_9393b0();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureDimensions/939fdb.wgsl.expected.glsl b/test/tint/builtins/gen/textureDimensions/939fdb.wgsl.expected.glsl
index 06b6e5f..380941e 100644
--- a/test/tint/builtins/gen/textureDimensions/939fdb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureDimensions/939fdb.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureDimensions_939fdb();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureDimensions/962dcd.wgsl.expected.glsl b/test/tint/builtins/gen/textureDimensions/962dcd.wgsl.expected.glsl
index b35445b..ded4e42 100644
--- a/test/tint/builtins/gen/textureDimensions/962dcd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureDimensions/962dcd.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureDimensions_962dcd();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureDimensions/9abfe5.wgsl.expected.glsl b/test/tint/builtins/gen/textureDimensions/9abfe5.wgsl.expected.glsl
index 053ca2d..0de8c91 100644
--- a/test/tint/builtins/gen/textureDimensions/9abfe5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureDimensions/9abfe5.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureDimensions_9abfe5();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureDimensions/9c9c57.wgsl.expected.glsl b/test/tint/builtins/gen/textureDimensions/9c9c57.wgsl.expected.glsl
index de334e3..0bdaf7e 100644
--- a/test/tint/builtins/gen/textureDimensions/9c9c57.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureDimensions/9c9c57.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureDimensions_9c9c57();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureDimensions/9eb8d8.wgsl.expected.glsl b/test/tint/builtins/gen/textureDimensions/9eb8d8.wgsl.expected.glsl
index 4c9151b..6185ef1 100644
--- a/test/tint/builtins/gen/textureDimensions/9eb8d8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureDimensions/9eb8d8.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureDimensions_9eb8d8();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureDimensions/9f8e46.wgsl.expected.glsl b/test/tint/builtins/gen/textureDimensions/9f8e46.wgsl.expected.glsl
index 1110a50..a292ec4 100644
--- a/test/tint/builtins/gen/textureDimensions/9f8e46.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureDimensions/9f8e46.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureDimensions_9f8e46();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureDimensions/a9c9c1.wgsl.expected.glsl b/test/tint/builtins/gen/textureDimensions/a9c9c1.wgsl.expected.glsl
index acf9ace..0d4fd67 100644
--- a/test/tint/builtins/gen/textureDimensions/a9c9c1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureDimensions/a9c9c1.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureDimensions_a9c9c1();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureDimensions/b0e16d.wgsl.expected.glsl b/test/tint/builtins/gen/textureDimensions/b0e16d.wgsl.expected.glsl
index 2047fb1..cc67693 100644
--- a/test/tint/builtins/gen/textureDimensions/b0e16d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureDimensions/b0e16d.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureDimensions_b0e16d();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureDimensions/b3c954.wgsl.expected.glsl b/test/tint/builtins/gen/textureDimensions/b3c954.wgsl.expected.glsl
index 42e669a..855349f 100644
--- a/test/tint/builtins/gen/textureDimensions/b3c954.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureDimensions/b3c954.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureDimensions_b3c954();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureDimensions/b91240.wgsl.expected.glsl b/test/tint/builtins/gen/textureDimensions/b91240.wgsl.expected.glsl
index f223563..3976de3 100644
--- a/test/tint/builtins/gen/textureDimensions/b91240.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureDimensions/b91240.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureDimensions_b91240();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureDimensions/ba1481.wgsl.expected.glsl b/test/tint/builtins/gen/textureDimensions/ba1481.wgsl.expected.glsl
index a1cf7d7..25eab78 100644
--- a/test/tint/builtins/gen/textureDimensions/ba1481.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureDimensions/ba1481.wgsl.expected.glsl
@@ -34,7 +34,7 @@
 
 vec4 vertex_main() {
   textureDimensions_ba1481();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureDimensions/bb3dde.wgsl.expected.glsl b/test/tint/builtins/gen/textureDimensions/bb3dde.wgsl.expected.glsl
index 92444e8..8c5f740 100644
--- a/test/tint/builtins/gen/textureDimensions/bb3dde.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureDimensions/bb3dde.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureDimensions_bb3dde();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureDimensions/c30e75.wgsl.expected.glsl b/test/tint/builtins/gen/textureDimensions/c30e75.wgsl.expected.glsl
index 9ecbb57..06b6108 100644
--- a/test/tint/builtins/gen/textureDimensions/c30e75.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureDimensions/c30e75.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureDimensions_c30e75();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureDimensions/c7943d.wgsl.expected.glsl b/test/tint/builtins/gen/textureDimensions/c7943d.wgsl.expected.glsl
index 7644b5b..ec88d6e 100644
--- a/test/tint/builtins/gen/textureDimensions/c7943d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureDimensions/c7943d.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureDimensions_c7943d();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureDimensions/cd76a7.wgsl.expected.glsl b/test/tint/builtins/gen/textureDimensions/cd76a7.wgsl.expected.glsl
index 9952684..92b0dae 100644
--- a/test/tint/builtins/gen/textureDimensions/cd76a7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureDimensions/cd76a7.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureDimensions_cd76a7();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureDimensions/cdf473.wgsl.expected.glsl b/test/tint/builtins/gen/textureDimensions/cdf473.wgsl.expected.glsl
index 0ff0acb..ea5fe7d 100644
--- a/test/tint/builtins/gen/textureDimensions/cdf473.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureDimensions/cdf473.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureDimensions_cdf473();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureDimensions/cec841.wgsl.expected.glsl b/test/tint/builtins/gen/textureDimensions/cec841.wgsl.expected.glsl
index e638a7e..6c4ff13 100644
--- a/test/tint/builtins/gen/textureDimensions/cec841.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureDimensions/cec841.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureDimensions_cec841();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureDimensions/cf7e43.wgsl.expected.glsl b/test/tint/builtins/gen/textureDimensions/cf7e43.wgsl.expected.glsl
index 6cab8c5..8b491fb 100644
--- a/test/tint/builtins/gen/textureDimensions/cf7e43.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureDimensions/cf7e43.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureDimensions_cf7e43();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureDimensions/d125bc.wgsl.expected.glsl b/test/tint/builtins/gen/textureDimensions/d125bc.wgsl.expected.glsl
index 5edecc7..0debada 100644
--- a/test/tint/builtins/gen/textureDimensions/d125bc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureDimensions/d125bc.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureDimensions_d125bc();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureDimensions/daf7c0.wgsl.expected.glsl b/test/tint/builtins/gen/textureDimensions/daf7c0.wgsl.expected.glsl
index 75abb34..5cfbb47 100644
--- a/test/tint/builtins/gen/textureDimensions/daf7c0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureDimensions/daf7c0.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureDimensions_daf7c0();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureDimensions/e9e96c.wgsl.expected.glsl b/test/tint/builtins/gen/textureDimensions/e9e96c.wgsl.expected.glsl
index d31fbf8..c167c24 100644
--- a/test/tint/builtins/gen/textureDimensions/e9e96c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureDimensions/e9e96c.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureDimensions_e9e96c();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureDimensions/ef5b89.wgsl.expected.glsl b/test/tint/builtins/gen/textureDimensions/ef5b89.wgsl.expected.glsl
index b51f1e6..c0c1d74 100644
--- a/test/tint/builtins/gen/textureDimensions/ef5b89.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureDimensions/ef5b89.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureDimensions_ef5b89();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureDimensions/efc8a4.wgsl.expected.glsl b/test/tint/builtins/gen/textureDimensions/efc8a4.wgsl.expected.glsl
index 6c4c83f..7e46277 100644
--- a/test/tint/builtins/gen/textureDimensions/efc8a4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureDimensions/efc8a4.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureDimensions_efc8a4();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureDimensions/f60bdb.wgsl.expected.glsl b/test/tint/builtins/gen/textureDimensions/f60bdb.wgsl.expected.glsl
index d5bb6fe..9431956 100644
--- a/test/tint/builtins/gen/textureDimensions/f60bdb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureDimensions/f60bdb.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureDimensions_f60bdb();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureDimensions/f7145b.wgsl.expected.glsl b/test/tint/builtins/gen/textureDimensions/f7145b.wgsl.expected.glsl
index b7951df..2a5861c 100644
--- a/test/tint/builtins/gen/textureDimensions/f7145b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureDimensions/f7145b.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureDimensions_f7145b();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureDimensions/f931c7.wgsl.expected.glsl b/test/tint/builtins/gen/textureDimensions/f931c7.wgsl.expected.glsl
index 61ceed0..016f679 100644
--- a/test/tint/builtins/gen/textureDimensions/f931c7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureDimensions/f931c7.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureDimensions_f931c7();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureDimensions/fa9859.wgsl.expected.glsl b/test/tint/builtins/gen/textureDimensions/fa9859.wgsl.expected.glsl
index 98e8e47..d8e8370 100644
--- a/test/tint/builtins/gen/textureDimensions/fa9859.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureDimensions/fa9859.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureDimensions_fa9859();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureDimensions/fcac78.wgsl.expected.glsl b/test/tint/builtins/gen/textureDimensions/fcac78.wgsl.expected.glsl
index ea6779c..9226dcd 100644
--- a/test/tint/builtins/gen/textureDimensions/fcac78.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureDimensions/fcac78.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureDimensions_fcac78();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureGather/01305f.wgsl.expected.glsl b/test/tint/builtins/gen/textureGather/01305f.wgsl.expected.glsl
index f867933..3d87bbc 100644
--- a/test/tint/builtins/gen/textureGather/01305f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureGather/01305f.wgsl.expected.glsl
@@ -8,7 +8,7 @@
 
 vec4 vertex_main() {
   textureGather_01305f();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureGather/06030a.wgsl.expected.glsl b/test/tint/builtins/gen/textureGather/06030a.wgsl.expected.glsl
index 0985e08..8bfee8f 100644
--- a/test/tint/builtins/gen/textureGather/06030a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureGather/06030a.wgsl.expected.glsl
@@ -3,12 +3,12 @@
 uniform highp sampler2DArray arg_1_arg_2;
 
 void textureGather_06030a() {
-  vec4 res = textureGatherOffset(arg_1_arg_2, vec3(0.0f, 0.0f, float(1)), ivec2(0, 0), 1);
+  vec4 res = textureGatherOffset(arg_1_arg_2, vec3(0.0f, 0.0f, float(1)), ivec2(0), 1);
 }
 
 vec4 vertex_main() {
   textureGather_06030a();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -25,7 +25,7 @@
 uniform highp sampler2DArray arg_1_arg_2;
 
 void textureGather_06030a() {
-  vec4 res = textureGatherOffset(arg_1_arg_2, vec3(0.0f, 0.0f, float(1)), ivec2(0, 0), 1);
+  vec4 res = textureGatherOffset(arg_1_arg_2, vec3(0.0f, 0.0f, float(1)), ivec2(0), 1);
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp sampler2DArray arg_1_arg_2;
 
 void textureGather_06030a() {
-  vec4 res = textureGatherOffset(arg_1_arg_2, vec3(0.0f, 0.0f, float(1)), ivec2(0, 0), 1);
+  vec4 res = textureGatherOffset(arg_1_arg_2, vec3(0.0f, 0.0f, float(1)), ivec2(0), 1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureGather/10c554.wgsl.expected.glsl b/test/tint/builtins/gen/textureGather/10c554.wgsl.expected.glsl
index a038836..47d056b 100644
--- a/test/tint/builtins/gen/textureGather/10c554.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureGather/10c554.wgsl.expected.glsl
@@ -3,12 +3,12 @@
 uniform highp samplerCubeShadow arg_0_arg_1;
 
 void textureGather_10c554() {
-  vec4 res = textureGather(arg_0_arg_1, vec3(0.0f, 0.0f, 0.0f), 0.0);
+  vec4 res = textureGather(arg_0_arg_1, vec3(0.0f), 0.0);
 }
 
 vec4 vertex_main() {
   textureGather_10c554();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -25,7 +25,7 @@
 uniform highp samplerCubeShadow arg_0_arg_1;
 
 void textureGather_10c554() {
-  vec4 res = textureGather(arg_0_arg_1, vec3(0.0f, 0.0f, 0.0f), 0.0);
+  vec4 res = textureGather(arg_0_arg_1, vec3(0.0f), 0.0);
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp samplerCubeShadow arg_0_arg_1;
 
 void textureGather_10c554() {
-  vec4 res = textureGather(arg_0_arg_1, vec3(0.0f, 0.0f, 0.0f), 0.0);
+  vec4 res = textureGather(arg_0_arg_1, vec3(0.0f), 0.0);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureGather/15d79c.wgsl.expected.glsl b/test/tint/builtins/gen/textureGather/15d79c.wgsl.expected.glsl
index 483b2d4..046ad40 100644
--- a/test/tint/builtins/gen/textureGather/15d79c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureGather/15d79c.wgsl.expected.glsl
@@ -3,12 +3,12 @@
 uniform highp sampler2D arg_1_arg_2;
 
 void textureGather_15d79c() {
-  vec4 res = textureGatherOffset(arg_1_arg_2, vec2(0.0f, 0.0f), ivec2(0, 0), 1);
+  vec4 res = textureGatherOffset(arg_1_arg_2, vec2(0.0f), ivec2(0), 1);
 }
 
 vec4 vertex_main() {
   textureGather_15d79c();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -25,7 +25,7 @@
 uniform highp sampler2D arg_1_arg_2;
 
 void textureGather_15d79c() {
-  vec4 res = textureGatherOffset(arg_1_arg_2, vec2(0.0f, 0.0f), ivec2(0, 0), 1);
+  vec4 res = textureGatherOffset(arg_1_arg_2, vec2(0.0f), ivec2(0), 1);
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp sampler2D arg_1_arg_2;
 
 void textureGather_15d79c() {
-  vec4 res = textureGatherOffset(arg_1_arg_2, vec2(0.0f, 0.0f), ivec2(0, 0), 1);
+  vec4 res = textureGatherOffset(arg_1_arg_2, vec2(0.0f), ivec2(0), 1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureGather/2e0ed5.wgsl.expected.glsl b/test/tint/builtins/gen/textureGather/2e0ed5.wgsl.expected.glsl
index 8ba1ac1..8eca46c 100644
--- a/test/tint/builtins/gen/textureGather/2e0ed5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureGather/2e0ed5.wgsl.expected.glsl
@@ -3,12 +3,12 @@
 uniform highp sampler2DShadow arg_0_arg_1;
 
 void textureGather_2e0ed5() {
-  vec4 res = textureGather(arg_0_arg_1, vec2(0.0f, 0.0f), 0.0);
+  vec4 res = textureGather(arg_0_arg_1, vec2(0.0f), 0.0);
 }
 
 vec4 vertex_main() {
   textureGather_2e0ed5();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -25,7 +25,7 @@
 uniform highp sampler2DShadow arg_0_arg_1;
 
 void textureGather_2e0ed5() {
-  vec4 res = textureGather(arg_0_arg_1, vec2(0.0f, 0.0f), 0.0);
+  vec4 res = textureGather(arg_0_arg_1, vec2(0.0f), 0.0);
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp sampler2DShadow arg_0_arg_1;
 
 void textureGather_2e0ed5() {
-  vec4 res = textureGather(arg_0_arg_1, vec2(0.0f, 0.0f), 0.0);
+  vec4 res = textureGather(arg_0_arg_1, vec2(0.0f), 0.0);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureGather/4f2350.wgsl.expected.glsl b/test/tint/builtins/gen/textureGather/4f2350.wgsl.expected.glsl
index 8289057..82d6a06 100644
--- a/test/tint/builtins/gen/textureGather/4f2350.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureGather/4f2350.wgsl.expected.glsl
@@ -3,12 +3,12 @@
 uniform highp isampler2DArray arg_1_arg_2;
 
 void textureGather_4f2350() {
-  ivec4 res = textureGatherOffset(arg_1_arg_2, vec3(0.0f, 0.0f, float(1)), ivec2(0, 0), 1);
+  ivec4 res = textureGatherOffset(arg_1_arg_2, vec3(0.0f, 0.0f, float(1)), ivec2(0), 1);
 }
 
 vec4 vertex_main() {
   textureGather_4f2350();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -25,7 +25,7 @@
 uniform highp isampler2DArray arg_1_arg_2;
 
 void textureGather_4f2350() {
-  ivec4 res = textureGatherOffset(arg_1_arg_2, vec3(0.0f, 0.0f, float(1)), ivec2(0, 0), 1);
+  ivec4 res = textureGatherOffset(arg_1_arg_2, vec3(0.0f, 0.0f, float(1)), ivec2(0), 1);
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp isampler2DArray arg_1_arg_2;
 
 void textureGather_4f2350() {
-  ivec4 res = textureGatherOffset(arg_1_arg_2, vec3(0.0f, 0.0f, float(1)), ivec2(0, 0), 1);
+  ivec4 res = textureGatherOffset(arg_1_arg_2, vec3(0.0f, 0.0f, float(1)), ivec2(0), 1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureGather/51cf0b.wgsl.expected.glsl b/test/tint/builtins/gen/textureGather/51cf0b.wgsl.expected.glsl
index 6cf1525..4a4c778 100644
--- a/test/tint/builtins/gen/textureGather/51cf0b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureGather/51cf0b.wgsl.expected.glsl
@@ -8,7 +8,7 @@
 
 vec4 vertex_main() {
   textureGather_51cf0b();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureGather/53ece6.wgsl.expected.glsl b/test/tint/builtins/gen/textureGather/53ece6.wgsl.expected.glsl
index d8b6a73..113e02d 100644
--- a/test/tint/builtins/gen/textureGather/53ece6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureGather/53ece6.wgsl.expected.glsl
@@ -3,12 +3,12 @@
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 void textureGather_53ece6() {
-  vec4 res = textureGatherOffset(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), 0.0, ivec2(0, 0));
+  vec4 res = textureGatherOffset(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), 0.0, ivec2(0));
 }
 
 vec4 vertex_main() {
   textureGather_53ece6();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -25,7 +25,7 @@
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 void textureGather_53ece6() {
-  vec4 res = textureGatherOffset(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), 0.0, ivec2(0, 0));
+  vec4 res = textureGatherOffset(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), 0.0, ivec2(0));
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 void textureGather_53ece6() {
-  vec4 res = textureGatherOffset(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), 0.0, ivec2(0, 0));
+  vec4 res = textureGatherOffset(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), 0.0, ivec2(0));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureGather/57bfc6.wgsl.expected.glsl b/test/tint/builtins/gen/textureGather/57bfc6.wgsl.expected.glsl
index 0b091b6..d6f10cc 100644
--- a/test/tint/builtins/gen/textureGather/57bfc6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureGather/57bfc6.wgsl.expected.glsl
@@ -3,12 +3,12 @@
 uniform highp samplerCube arg_1_arg_2;
 
 void textureGather_57bfc6() {
-  vec4 res = textureGather(arg_1_arg_2, vec3(0.0f, 0.0f, 0.0f), 1);
+  vec4 res = textureGather(arg_1_arg_2, vec3(0.0f), 1);
 }
 
 vec4 vertex_main() {
   textureGather_57bfc6();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -25,7 +25,7 @@
 uniform highp samplerCube arg_1_arg_2;
 
 void textureGather_57bfc6() {
-  vec4 res = textureGather(arg_1_arg_2, vec3(0.0f, 0.0f, 0.0f), 1);
+  vec4 res = textureGather(arg_1_arg_2, vec3(0.0f), 1);
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp samplerCube arg_1_arg_2;
 
 void textureGather_57bfc6() {
-  vec4 res = textureGather(arg_1_arg_2, vec3(0.0f, 0.0f, 0.0f), 1);
+  vec4 res = textureGather(arg_1_arg_2, vec3(0.0f), 1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureGather/587ba3.wgsl.expected.glsl b/test/tint/builtins/gen/textureGather/587ba3.wgsl.expected.glsl
index f7a2dd2..cd495cb 100644
--- a/test/tint/builtins/gen/textureGather/587ba3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureGather/587ba3.wgsl.expected.glsl
@@ -3,12 +3,12 @@
 uniform highp isampler2D arg_1_arg_2;
 
 void textureGather_587ba3() {
-  ivec4 res = textureGather(arg_1_arg_2, vec2(0.0f, 0.0f), 1);
+  ivec4 res = textureGather(arg_1_arg_2, vec2(0.0f), 1);
 }
 
 vec4 vertex_main() {
   textureGather_587ba3();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -25,7 +25,7 @@
 uniform highp isampler2D arg_1_arg_2;
 
 void textureGather_587ba3() {
-  ivec4 res = textureGather(arg_1_arg_2, vec2(0.0f, 0.0f), 1);
+  ivec4 res = textureGather(arg_1_arg_2, vec2(0.0f), 1);
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp isampler2D arg_1_arg_2;
 
 void textureGather_587ba3() {
-  ivec4 res = textureGather(arg_1_arg_2, vec2(0.0f, 0.0f), 1);
+  ivec4 res = textureGather(arg_1_arg_2, vec2(0.0f), 1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureGather/69e0fb.wgsl.expected.glsl b/test/tint/builtins/gen/textureGather/69e0fb.wgsl.expected.glsl
index 89af7c0..8a02384 100644
--- a/test/tint/builtins/gen/textureGather/69e0fb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureGather/69e0fb.wgsl.expected.glsl
@@ -3,12 +3,12 @@
 uniform highp isampler2D arg_1_arg_2;
 
 void textureGather_69e0fb() {
-  ivec4 res = textureGatherOffset(arg_1_arg_2, vec2(0.0f, 0.0f), ivec2(0, 0), 1);
+  ivec4 res = textureGatherOffset(arg_1_arg_2, vec2(0.0f), ivec2(0), 1);
 }
 
 vec4 vertex_main() {
   textureGather_69e0fb();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -25,7 +25,7 @@
 uniform highp isampler2D arg_1_arg_2;
 
 void textureGather_69e0fb() {
-  ivec4 res = textureGatherOffset(arg_1_arg_2, vec2(0.0f, 0.0f), ivec2(0, 0), 1);
+  ivec4 res = textureGatherOffset(arg_1_arg_2, vec2(0.0f), ivec2(0), 1);
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp isampler2D arg_1_arg_2;
 
 void textureGather_69e0fb() {
-  ivec4 res = textureGatherOffset(arg_1_arg_2, vec2(0.0f, 0.0f), ivec2(0, 0), 1);
+  ivec4 res = textureGatherOffset(arg_1_arg_2, vec2(0.0f), ivec2(0), 1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureGather/93003d.wgsl.expected.glsl b/test/tint/builtins/gen/textureGather/93003d.wgsl.expected.glsl
index bb80ea7..755df46 100644
--- a/test/tint/builtins/gen/textureGather/93003d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureGather/93003d.wgsl.expected.glsl
@@ -3,12 +3,12 @@
 uniform highp usampler2D arg_1_arg_2;
 
 void textureGather_93003d() {
-  uvec4 res = textureGatherOffset(arg_1_arg_2, vec2(0.0f, 0.0f), ivec2(0, 0), 1);
+  uvec4 res = textureGatherOffset(arg_1_arg_2, vec2(0.0f), ivec2(0), 1);
 }
 
 vec4 vertex_main() {
   textureGather_93003d();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -25,7 +25,7 @@
 uniform highp usampler2D arg_1_arg_2;
 
 void textureGather_93003d() {
-  uvec4 res = textureGatherOffset(arg_1_arg_2, vec2(0.0f, 0.0f), ivec2(0, 0), 1);
+  uvec4 res = textureGatherOffset(arg_1_arg_2, vec2(0.0f), ivec2(0), 1);
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp usampler2D arg_1_arg_2;
 
 void textureGather_93003d() {
-  uvec4 res = textureGatherOffset(arg_1_arg_2, vec2(0.0f, 0.0f), ivec2(0, 0), 1);
+  uvec4 res = textureGatherOffset(arg_1_arg_2, vec2(0.0f), ivec2(0), 1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureGather/9a6358.wgsl.expected.glsl b/test/tint/builtins/gen/textureGather/9a6358.wgsl.expected.glsl
index 9c3dba0..ba47d8f 100644
--- a/test/tint/builtins/gen/textureGather/9a6358.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureGather/9a6358.wgsl.expected.glsl
@@ -8,7 +8,7 @@
 
 vec4 vertex_main() {
   textureGather_9a6358();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureGather/9efca2.wgsl.expected.glsl b/test/tint/builtins/gen/textureGather/9efca2.wgsl.expected.glsl
index 09dc672..4adc884 100644
--- a/test/tint/builtins/gen/textureGather/9efca2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureGather/9efca2.wgsl.expected.glsl
@@ -8,7 +8,7 @@
 
 vec4 vertex_main() {
   textureGather_9efca2();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureGather/bd0b1e.wgsl.expected.glsl b/test/tint/builtins/gen/textureGather/bd0b1e.wgsl.expected.glsl
index cbd285e..a98b620 100644
--- a/test/tint/builtins/gen/textureGather/bd0b1e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureGather/bd0b1e.wgsl.expected.glsl
@@ -3,12 +3,12 @@
 uniform highp sampler2D arg_1_arg_2;
 
 void textureGather_bd0b1e() {
-  vec4 res = textureGather(arg_1_arg_2, vec2(0.0f, 0.0f), 1);
+  vec4 res = textureGather(arg_1_arg_2, vec2(0.0f), 1);
 }
 
 vec4 vertex_main() {
   textureGather_bd0b1e();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -25,7 +25,7 @@
 uniform highp sampler2D arg_1_arg_2;
 
 void textureGather_bd0b1e() {
-  vec4 res = textureGather(arg_1_arg_2, vec2(0.0f, 0.0f), 1);
+  vec4 res = textureGather(arg_1_arg_2, vec2(0.0f), 1);
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp sampler2D arg_1_arg_2;
 
 void textureGather_bd0b1e() {
-  vec4 res = textureGather(arg_1_arg_2, vec2(0.0f, 0.0f), 1);
+  vec4 res = textureGather(arg_1_arg_2, vec2(0.0f), 1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureGather/c409ae.wgsl.expected.glsl b/test/tint/builtins/gen/textureGather/c409ae.wgsl.expected.glsl
index fff470e..90da7ab 100644
--- a/test/tint/builtins/gen/textureGather/c409ae.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureGather/c409ae.wgsl.expected.glsl
@@ -3,12 +3,12 @@
 uniform highp sampler2DShadow arg_0_arg_1;
 
 void textureGather_c409ae() {
-  vec4 res = textureGatherOffset(arg_0_arg_1, vec2(0.0f, 0.0f), 0.0, ivec2(0, 0));
+  vec4 res = textureGatherOffset(arg_0_arg_1, vec2(0.0f), 0.0, ivec2(0));
 }
 
 vec4 vertex_main() {
   textureGather_c409ae();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -25,7 +25,7 @@
 uniform highp sampler2DShadow arg_0_arg_1;
 
 void textureGather_c409ae() {
-  vec4 res = textureGatherOffset(arg_0_arg_1, vec2(0.0f, 0.0f), 0.0, ivec2(0, 0));
+  vec4 res = textureGatherOffset(arg_0_arg_1, vec2(0.0f), 0.0, ivec2(0));
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp sampler2DShadow arg_0_arg_1;
 
 void textureGather_c409ae() {
-  vec4 res = textureGatherOffset(arg_0_arg_1, vec2(0.0f, 0.0f), 0.0, ivec2(0, 0));
+  vec4 res = textureGatherOffset(arg_0_arg_1, vec2(0.0f), 0.0, ivec2(0));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureGather/e1b67d.wgsl.expected.glsl b/test/tint/builtins/gen/textureGather/e1b67d.wgsl.expected.glsl
index d7d445c..bb68eb7 100644
--- a/test/tint/builtins/gen/textureGather/e1b67d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureGather/e1b67d.wgsl.expected.glsl
@@ -3,12 +3,12 @@
 uniform highp usamplerCube arg_1_arg_2;
 
 void textureGather_e1b67d() {
-  uvec4 res = textureGather(arg_1_arg_2, vec3(0.0f, 0.0f, 0.0f), 1);
+  uvec4 res = textureGather(arg_1_arg_2, vec3(0.0f), 1);
 }
 
 vec4 vertex_main() {
   textureGather_e1b67d();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -25,7 +25,7 @@
 uniform highp usamplerCube arg_1_arg_2;
 
 void textureGather_e1b67d() {
-  uvec4 res = textureGather(arg_1_arg_2, vec3(0.0f, 0.0f, 0.0f), 1);
+  uvec4 res = textureGather(arg_1_arg_2, vec3(0.0f), 1);
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp usamplerCube arg_1_arg_2;
 
 void textureGather_e1b67d() {
-  uvec4 res = textureGather(arg_1_arg_2, vec3(0.0f, 0.0f, 0.0f), 1);
+  uvec4 res = textureGather(arg_1_arg_2, vec3(0.0f), 1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureGather/e9eff6.wgsl.expected.glsl b/test/tint/builtins/gen/textureGather/e9eff6.wgsl.expected.glsl
index 622ba9a..369c32f 100644
--- a/test/tint/builtins/gen/textureGather/e9eff6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureGather/e9eff6.wgsl.expected.glsl
@@ -3,12 +3,12 @@
 uniform highp usampler2D arg_1_arg_2;
 
 void textureGather_e9eff6() {
-  uvec4 res = textureGather(arg_1_arg_2, vec2(0.0f, 0.0f), 1);
+  uvec4 res = textureGather(arg_1_arg_2, vec2(0.0f), 1);
 }
 
 vec4 vertex_main() {
   textureGather_e9eff6();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -25,7 +25,7 @@
 uniform highp usampler2D arg_1_arg_2;
 
 void textureGather_e9eff6() {
-  uvec4 res = textureGather(arg_1_arg_2, vec2(0.0f, 0.0f), 1);
+  uvec4 res = textureGather(arg_1_arg_2, vec2(0.0f), 1);
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp usampler2D arg_1_arg_2;
 
 void textureGather_e9eff6() {
-  uvec4 res = textureGather(arg_1_arg_2, vec2(0.0f, 0.0f), 1);
+  uvec4 res = textureGather(arg_1_arg_2, vec2(0.0f), 1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureGather/f5f3ba.wgsl.expected.glsl b/test/tint/builtins/gen/textureGather/f5f3ba.wgsl.expected.glsl
index c99eb23..0d1fb5a 100644
--- a/test/tint/builtins/gen/textureGather/f5f3ba.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureGather/f5f3ba.wgsl.expected.glsl
@@ -3,12 +3,12 @@
 uniform highp usampler2DArray arg_1_arg_2;
 
 void textureGather_f5f3ba() {
-  uvec4 res = textureGatherOffset(arg_1_arg_2, vec3(0.0f, 0.0f, float(1)), ivec2(0, 0), 1);
+  uvec4 res = textureGatherOffset(arg_1_arg_2, vec3(0.0f, 0.0f, float(1)), ivec2(0), 1);
 }
 
 vec4 vertex_main() {
   textureGather_f5f3ba();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -25,7 +25,7 @@
 uniform highp usampler2DArray arg_1_arg_2;
 
 void textureGather_f5f3ba() {
-  uvec4 res = textureGatherOffset(arg_1_arg_2, vec3(0.0f, 0.0f, float(1)), ivec2(0, 0), 1);
+  uvec4 res = textureGatherOffset(arg_1_arg_2, vec3(0.0f, 0.0f, float(1)), ivec2(0), 1);
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp usampler2DArray arg_1_arg_2;
 
 void textureGather_f5f3ba() {
-  uvec4 res = textureGatherOffset(arg_1_arg_2, vec3(0.0f, 0.0f, float(1)), ivec2(0, 0), 1);
+  uvec4 res = textureGatherOffset(arg_1_arg_2, vec3(0.0f, 0.0f, float(1)), ivec2(0), 1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureGather/f7995a.wgsl.expected.glsl b/test/tint/builtins/gen/textureGather/f7995a.wgsl.expected.glsl
index 2df8a3b..57a2fdb 100644
--- a/test/tint/builtins/gen/textureGather/f7995a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureGather/f7995a.wgsl.expected.glsl
@@ -3,12 +3,12 @@
 uniform highp isamplerCube arg_1_arg_2;
 
 void textureGather_f7995a() {
-  ivec4 res = textureGather(arg_1_arg_2, vec3(0.0f, 0.0f, 0.0f), 1);
+  ivec4 res = textureGather(arg_1_arg_2, vec3(0.0f), 1);
 }
 
 vec4 vertex_main() {
   textureGather_f7995a();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -25,7 +25,7 @@
 uniform highp isamplerCube arg_1_arg_2;
 
 void textureGather_f7995a() {
-  ivec4 res = textureGather(arg_1_arg_2, vec3(0.0f, 0.0f, 0.0f), 1);
+  ivec4 res = textureGather(arg_1_arg_2, vec3(0.0f), 1);
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp isamplerCube arg_1_arg_2;
 
 void textureGather_f7995a() {
-  ivec4 res = textureGather(arg_1_arg_2, vec3(0.0f, 0.0f, 0.0f), 1);
+  ivec4 res = textureGather(arg_1_arg_2, vec3(0.0f), 1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureGatherCompare/182fd4.wgsl.expected.glsl b/test/tint/builtins/gen/textureGatherCompare/182fd4.wgsl.expected.glsl
index d79d45a..2911767 100644
--- a/test/tint/builtins/gen/textureGatherCompare/182fd4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureGatherCompare/182fd4.wgsl.expected.glsl
@@ -3,12 +3,12 @@
 uniform highp samplerCubeShadow arg_0_arg_1;
 
 void textureGatherCompare_182fd4() {
-  vec4 res = textureGather(arg_0_arg_1, vec3(0.0f, 0.0f, 0.0f), 1.0f);
+  vec4 res = textureGather(arg_0_arg_1, vec3(0.0f), 1.0f);
 }
 
 vec4 vertex_main() {
   textureGatherCompare_182fd4();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -25,7 +25,7 @@
 uniform highp samplerCubeShadow arg_0_arg_1;
 
 void textureGatherCompare_182fd4() {
-  vec4 res = textureGather(arg_0_arg_1, vec3(0.0f, 0.0f, 0.0f), 1.0f);
+  vec4 res = textureGather(arg_0_arg_1, vec3(0.0f), 1.0f);
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp samplerCubeShadow arg_0_arg_1;
 
 void textureGatherCompare_182fd4() {
-  vec4 res = textureGather(arg_0_arg_1, vec3(0.0f, 0.0f, 0.0f), 1.0f);
+  vec4 res = textureGather(arg_0_arg_1, vec3(0.0f), 1.0f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureGatherCompare/6d9352.wgsl.expected.glsl b/test/tint/builtins/gen/textureGatherCompare/6d9352.wgsl.expected.glsl
index 66f02bb..e1ec032 100644
--- a/test/tint/builtins/gen/textureGatherCompare/6d9352.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureGatherCompare/6d9352.wgsl.expected.glsl
@@ -3,12 +3,12 @@
 uniform highp sampler2DShadow arg_0_arg_1;
 
 void textureGatherCompare_6d9352() {
-  vec4 res = textureGather(arg_0_arg_1, vec2(0.0f, 0.0f), 1.0f);
+  vec4 res = textureGather(arg_0_arg_1, vec2(0.0f), 1.0f);
 }
 
 vec4 vertex_main() {
   textureGatherCompare_6d9352();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -25,7 +25,7 @@
 uniform highp sampler2DShadow arg_0_arg_1;
 
 void textureGatherCompare_6d9352() {
-  vec4 res = textureGather(arg_0_arg_1, vec2(0.0f, 0.0f), 1.0f);
+  vec4 res = textureGather(arg_0_arg_1, vec2(0.0f), 1.0f);
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp sampler2DShadow arg_0_arg_1;
 
 void textureGatherCompare_6d9352() {
-  vec4 res = textureGather(arg_0_arg_1, vec2(0.0f, 0.0f), 1.0f);
+  vec4 res = textureGather(arg_0_arg_1, vec2(0.0f), 1.0f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureGatherCompare/6f1267.wgsl.expected.glsl b/test/tint/builtins/gen/textureGatherCompare/6f1267.wgsl.expected.glsl
index 5afdbe3..0611405 100644
--- a/test/tint/builtins/gen/textureGatherCompare/6f1267.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureGatherCompare/6f1267.wgsl.expected.glsl
@@ -3,12 +3,12 @@
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 void textureGatherCompare_6f1267() {
-  vec4 res = textureGatherOffset(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), 1.0f, ivec2(0, 0));
+  vec4 res = textureGatherOffset(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), 1.0f, ivec2(0));
 }
 
 vec4 vertex_main() {
   textureGatherCompare_6f1267();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -25,7 +25,7 @@
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 void textureGatherCompare_6f1267() {
-  vec4 res = textureGatherOffset(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), 1.0f, ivec2(0, 0));
+  vec4 res = textureGatherOffset(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), 1.0f, ivec2(0));
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 void textureGatherCompare_6f1267() {
-  vec4 res = textureGatherOffset(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), 1.0f, ivec2(0, 0));
+  vec4 res = textureGatherOffset(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), 1.0f, ivec2(0));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureGatherCompare/783e65.wgsl.expected.glsl b/test/tint/builtins/gen/textureGatherCompare/783e65.wgsl.expected.glsl
index 14d0b73..bfc941f 100644
--- a/test/tint/builtins/gen/textureGatherCompare/783e65.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureGatherCompare/783e65.wgsl.expected.glsl
@@ -8,7 +8,7 @@
 
 vec4 vertex_main() {
   textureGatherCompare_783e65();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureGatherCompare/a5f587.wgsl.expected.glsl b/test/tint/builtins/gen/textureGatherCompare/a5f587.wgsl.expected.glsl
index 393b68e..347e0da 100644
--- a/test/tint/builtins/gen/textureGatherCompare/a5f587.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureGatherCompare/a5f587.wgsl.expected.glsl
@@ -3,12 +3,12 @@
 uniform highp sampler2DShadow arg_0_arg_1;
 
 void textureGatherCompare_a5f587() {
-  vec4 res = textureGatherOffset(arg_0_arg_1, vec2(0.0f, 0.0f), 1.0f, ivec2(0, 0));
+  vec4 res = textureGatherOffset(arg_0_arg_1, vec2(0.0f), 1.0f, ivec2(0));
 }
 
 vec4 vertex_main() {
   textureGatherCompare_a5f587();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -25,7 +25,7 @@
 uniform highp sampler2DShadow arg_0_arg_1;
 
 void textureGatherCompare_a5f587() {
-  vec4 res = textureGatherOffset(arg_0_arg_1, vec2(0.0f, 0.0f), 1.0f, ivec2(0, 0));
+  vec4 res = textureGatherOffset(arg_0_arg_1, vec2(0.0f), 1.0f, ivec2(0));
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp sampler2DShadow arg_0_arg_1;
 
 void textureGatherCompare_a5f587() {
-  vec4 res = textureGatherOffset(arg_0_arg_1, vec2(0.0f, 0.0f), 1.0f, ivec2(0, 0));
+  vec4 res = textureGatherOffset(arg_0_arg_1, vec2(0.0f), 1.0f, ivec2(0));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureLoad/19cf87.wgsl.expected.glsl b/test/tint/builtins/gen/textureLoad/19cf87.wgsl.expected.glsl
index 45c5fed..49878f8 100644
--- a/test/tint/builtins/gen/textureLoad/19cf87.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureLoad/19cf87.wgsl.expected.glsl
@@ -2,12 +2,12 @@
 
 uniform highp sampler2D arg_0_1;
 void textureLoad_19cf87() {
-  float res = texelFetch(arg_0_1, ivec2(0, 0), 0).x;
+  float res = texelFetch(arg_0_1, ivec2(0), 0).x;
 }
 
 vec4 vertex_main() {
   textureLoad_19cf87();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -23,7 +23,7 @@
 
 uniform highp sampler2D arg_0_1;
 void textureLoad_19cf87() {
-  float res = texelFetch(arg_0_1, ivec2(0, 0), 0).x;
+  float res = texelFetch(arg_0_1, ivec2(0), 0).x;
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 uniform highp sampler2D arg_0_1;
 void textureLoad_19cf87() {
-  float res = texelFetch(arg_0_1, ivec2(0, 0), 0).x;
+  float res = texelFetch(arg_0_1, ivec2(0), 0).x;
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureLoad/1f2016.wgsl.expected.glsl b/test/tint/builtins/gen/textureLoad/1f2016.wgsl.expected.glsl
index 02d98fa..63e002a 100644
--- a/test/tint/builtins/gen/textureLoad/1f2016.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureLoad/1f2016.wgsl.expected.glsl
@@ -2,12 +2,12 @@
 
 uniform highp sampler3D arg_0_1;
 void textureLoad_1f2016() {
-  vec4 res = texelFetch(arg_0_1, ivec3(0, 0, 0), 0);
+  vec4 res = texelFetch(arg_0_1, ivec3(0), 0);
 }
 
 vec4 vertex_main() {
   textureLoad_1f2016();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -23,7 +23,7 @@
 
 uniform highp sampler3D arg_0_1;
 void textureLoad_1f2016() {
-  vec4 res = texelFetch(arg_0_1, ivec3(0, 0, 0), 0);
+  vec4 res = texelFetch(arg_0_1, ivec3(0), 0);
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 uniform highp sampler3D arg_0_1;
 void textureLoad_1f2016() {
-  vec4 res = texelFetch(arg_0_1, ivec3(0, 0, 0), 0);
+  vec4 res = texelFetch(arg_0_1, ivec3(0), 0);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureLoad/484344.wgsl.expected.glsl b/test/tint/builtins/gen/textureLoad/484344.wgsl.expected.glsl
index e1520a5..ad32896 100644
--- a/test/tint/builtins/gen/textureLoad/484344.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureLoad/484344.wgsl.expected.glsl
@@ -2,12 +2,12 @@
 
 uniform highp sampler2D arg_0_1;
 void textureLoad_484344() {
-  vec4 res = texelFetch(arg_0_1, ivec2(0, 0), 0);
+  vec4 res = texelFetch(arg_0_1, ivec2(0), 0);
 }
 
 vec4 vertex_main() {
   textureLoad_484344();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -23,7 +23,7 @@
 
 uniform highp sampler2D arg_0_1;
 void textureLoad_484344() {
-  vec4 res = texelFetch(arg_0_1, ivec2(0, 0), 0);
+  vec4 res = texelFetch(arg_0_1, ivec2(0), 0);
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 uniform highp sampler2D arg_0_1;
 void textureLoad_484344() {
-  vec4 res = texelFetch(arg_0_1, ivec2(0, 0), 0);
+  vec4 res = texelFetch(arg_0_1, ivec2(0), 0);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureLoad/4fd803.wgsl.expected.glsl b/test/tint/builtins/gen/textureLoad/4fd803.wgsl.expected.glsl
index eb3f98f..445e01f 100644
--- a/test/tint/builtins/gen/textureLoad/4fd803.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureLoad/4fd803.wgsl.expected.glsl
@@ -2,12 +2,12 @@
 
 uniform highp isampler3D arg_0_1;
 void textureLoad_4fd803() {
-  ivec4 res = texelFetch(arg_0_1, ivec3(0, 0, 0), 0);
+  ivec4 res = texelFetch(arg_0_1, ivec3(0), 0);
 }
 
 vec4 vertex_main() {
   textureLoad_4fd803();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -23,7 +23,7 @@
 
 uniform highp isampler3D arg_0_1;
 void textureLoad_4fd803() {
-  ivec4 res = texelFetch(arg_0_1, ivec3(0, 0, 0), 0);
+  ivec4 res = texelFetch(arg_0_1, ivec3(0), 0);
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 uniform highp isampler3D arg_0_1;
 void textureLoad_4fd803() {
-  ivec4 res = texelFetch(arg_0_1, ivec3(0, 0, 0), 0);
+  ivec4 res = texelFetch(arg_0_1, ivec3(0), 0);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureLoad/6154d4.wgsl.expected.glsl b/test/tint/builtins/gen/textureLoad/6154d4.wgsl.expected.glsl
index 82a8da9..14dcb22 100644
--- a/test/tint/builtins/gen/textureLoad/6154d4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureLoad/6154d4.wgsl.expected.glsl
@@ -2,12 +2,12 @@
 
 uniform highp usampler2D arg_0_1;
 void textureLoad_6154d4() {
-  uvec4 res = texelFetch(arg_0_1, ivec2(0, 0), 0);
+  uvec4 res = texelFetch(arg_0_1, ivec2(0), 0);
 }
 
 vec4 vertex_main() {
   textureLoad_6154d4();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -23,7 +23,7 @@
 
 uniform highp usampler2D arg_0_1;
 void textureLoad_6154d4() {
-  uvec4 res = texelFetch(arg_0_1, ivec2(0, 0), 0);
+  uvec4 res = texelFetch(arg_0_1, ivec2(0), 0);
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 uniform highp usampler2D arg_0_1;
 void textureLoad_6154d4() {
-  uvec4 res = texelFetch(arg_0_1, ivec2(0, 0), 0);
+  uvec4 res = texelFetch(arg_0_1, ivec2(0), 0);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureLoad/6273b1.wgsl.expected.glsl b/test/tint/builtins/gen/textureLoad/6273b1.wgsl.expected.glsl
index e987373..3cfe277 100644
--- a/test/tint/builtins/gen/textureLoad/6273b1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureLoad/6273b1.wgsl.expected.glsl
@@ -2,12 +2,12 @@
 
 uniform highp sampler2DMS arg_0_1;
 void textureLoad_6273b1() {
-  float res = texelFetch(arg_0_1, ivec2(0, 0), 1).x;
+  float res = texelFetch(arg_0_1, ivec2(0), 1).x;
 }
 
 vec4 vertex_main() {
   textureLoad_6273b1();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -23,7 +23,7 @@
 
 uniform highp sampler2DMS arg_0_1;
 void textureLoad_6273b1() {
-  float res = texelFetch(arg_0_1, ivec2(0, 0), 1).x;
+  float res = texelFetch(arg_0_1, ivec2(0), 1).x;
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 uniform highp sampler2DMS arg_0_1;
 void textureLoad_6273b1() {
-  float res = texelFetch(arg_0_1, ivec2(0, 0), 1).x;
+  float res = texelFetch(arg_0_1, ivec2(0), 1).x;
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureLoad/79e697.wgsl.expected.glsl b/test/tint/builtins/gen/textureLoad/79e697.wgsl.expected.glsl
index 328bef1..df42b60 100644
--- a/test/tint/builtins/gen/textureLoad/79e697.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureLoad/79e697.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureLoad_79e697();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureLoad/7c90e5.wgsl.expected.glsl b/test/tint/builtins/gen/textureLoad/7c90e5.wgsl.expected.glsl
index a2eda0c..8d765db 100644
--- a/test/tint/builtins/gen/textureLoad/7c90e5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureLoad/7c90e5.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureLoad_7c90e5();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureLoad/87be85.wgsl.expected.glsl b/test/tint/builtins/gen/textureLoad/87be85.wgsl.expected.glsl
index 1670fc9..336dc27 100644
--- a/test/tint/builtins/gen/textureLoad/87be85.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureLoad/87be85.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureLoad_87be85();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureLoad/9b2667.wgsl.expected.glsl b/test/tint/builtins/gen/textureLoad/9b2667.wgsl.expected.glsl
index 748aa2f..9b04e7b 100644
--- a/test/tint/builtins/gen/textureLoad/9b2667.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureLoad/9b2667.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureLoad_9b2667();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureLoad/a583c9.wgsl.expected.glsl b/test/tint/builtins/gen/textureLoad/a583c9.wgsl.expected.glsl
index d5d9ee0..af89b5f 100644
--- a/test/tint/builtins/gen/textureLoad/a583c9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureLoad/a583c9.wgsl.expected.glsl
@@ -2,12 +2,12 @@
 
 uniform highp sampler2DMS arg_0_1;
 void textureLoad_a583c9() {
-  vec4 res = texelFetch(arg_0_1, ivec2(0, 0), 1);
+  vec4 res = texelFetch(arg_0_1, ivec2(0), 1);
 }
 
 vec4 vertex_main() {
   textureLoad_a583c9();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -23,7 +23,7 @@
 
 uniform highp sampler2DMS arg_0_1;
 void textureLoad_a583c9() {
-  vec4 res = texelFetch(arg_0_1, ivec2(0, 0), 1);
+  vec4 res = texelFetch(arg_0_1, ivec2(0), 1);
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 uniform highp sampler2DMS arg_0_1;
 void textureLoad_a583c9() {
-  vec4 res = texelFetch(arg_0_1, ivec2(0, 0), 1);
+  vec4 res = texelFetch(arg_0_1, ivec2(0), 1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureLoad/a9a9f5.wgsl.expected.glsl b/test/tint/builtins/gen/textureLoad/a9a9f5.wgsl.expected.glsl
index 38e5cc8..e01c452 100644
--- a/test/tint/builtins/gen/textureLoad/a9a9f5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureLoad/a9a9f5.wgsl.expected.glsl
@@ -2,12 +2,12 @@
 
 uniform highp usampler3D arg_0_1;
 void textureLoad_a9a9f5() {
-  uvec4 res = texelFetch(arg_0_1, ivec3(0, 0, 0), 0);
+  uvec4 res = texelFetch(arg_0_1, ivec3(0), 0);
 }
 
 vec4 vertex_main() {
   textureLoad_a9a9f5();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -23,7 +23,7 @@
 
 uniform highp usampler3D arg_0_1;
 void textureLoad_a9a9f5() {
-  uvec4 res = texelFetch(arg_0_1, ivec3(0, 0, 0), 0);
+  uvec4 res = texelFetch(arg_0_1, ivec3(0), 0);
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 uniform highp usampler3D arg_0_1;
 void textureLoad_a9a9f5() {
-  uvec4 res = texelFetch(arg_0_1, ivec3(0, 0, 0), 0);
+  uvec4 res = texelFetch(arg_0_1, ivec3(0), 0);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureLoad/c2a480.wgsl.expected.glsl b/test/tint/builtins/gen/textureLoad/c2a480.wgsl.expected.glsl
index 25909ec..a7b5264 100644
--- a/test/tint/builtins/gen/textureLoad/c2a480.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureLoad/c2a480.wgsl.expected.glsl
@@ -2,12 +2,12 @@
 
 uniform highp isampler2D arg_0_1;
 void textureLoad_c2a480() {
-  ivec4 res = texelFetch(arg_0_1, ivec2(0, 0), 0);
+  ivec4 res = texelFetch(arg_0_1, ivec2(0), 0);
 }
 
 vec4 vertex_main() {
   textureLoad_c2a480();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -23,7 +23,7 @@
 
 uniform highp isampler2D arg_0_1;
 void textureLoad_c2a480() {
-  ivec4 res = texelFetch(arg_0_1, ivec2(0, 0), 0);
+  ivec4 res = texelFetch(arg_0_1, ivec2(0), 0);
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 uniform highp isampler2D arg_0_1;
 void textureLoad_c2a480() {
-  ivec4 res = texelFetch(arg_0_1, ivec2(0, 0), 0);
+  ivec4 res = texelFetch(arg_0_1, ivec2(0), 0);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureLoad/c378ee.wgsl.expected.glsl b/test/tint/builtins/gen/textureLoad/c378ee.wgsl.expected.glsl
index 8828114..cdb2ca0 100644
--- a/test/tint/builtins/gen/textureLoad/c378ee.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureLoad/c378ee.wgsl.expected.glsl
@@ -2,12 +2,12 @@
 
 uniform highp usampler2DMS arg_0_1;
 void textureLoad_c378ee() {
-  uvec4 res = texelFetch(arg_0_1, ivec2(0, 0), 1);
+  uvec4 res = texelFetch(arg_0_1, ivec2(0), 1);
 }
 
 vec4 vertex_main() {
   textureLoad_c378ee();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -23,7 +23,7 @@
 
 uniform highp usampler2DMS arg_0_1;
 void textureLoad_c378ee() {
-  uvec4 res = texelFetch(arg_0_1, ivec2(0, 0), 1);
+  uvec4 res = texelFetch(arg_0_1, ivec2(0), 1);
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 uniform highp usampler2DMS arg_0_1;
 void textureLoad_c378ee() {
-  uvec4 res = texelFetch(arg_0_1, ivec2(0, 0), 1);
+  uvec4 res = texelFetch(arg_0_1, ivec2(0), 1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureLoad/e3d2cc.wgsl.expected.glsl b/test/tint/builtins/gen/textureLoad/e3d2cc.wgsl.expected.glsl
index 35da65b..7dc1ade 100644
--- a/test/tint/builtins/gen/textureLoad/e3d2cc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureLoad/e3d2cc.wgsl.expected.glsl
@@ -2,12 +2,12 @@
 
 uniform highp isampler2DMS arg_0_1;
 void textureLoad_e3d2cc() {
-  ivec4 res = texelFetch(arg_0_1, ivec2(0, 0), 1);
+  ivec4 res = texelFetch(arg_0_1, ivec2(0), 1);
 }
 
 vec4 vertex_main() {
   textureLoad_e3d2cc();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -23,7 +23,7 @@
 
 uniform highp isampler2DMS arg_0_1;
 void textureLoad_e3d2cc() {
-  ivec4 res = texelFetch(arg_0_1, ivec2(0, 0), 1);
+  ivec4 res = texelFetch(arg_0_1, ivec2(0), 1);
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 uniform highp isampler2DMS arg_0_1;
 void textureLoad_e3d2cc() {
-  ivec4 res = texelFetch(arg_0_1, ivec2(0, 0), 1);
+  ivec4 res = texelFetch(arg_0_1, ivec2(0), 1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureNumLayers/024820.wgsl.expected.glsl b/test/tint/builtins/gen/textureNumLayers/024820.wgsl.expected.glsl
index 7d0d613..9e3639f 100644
--- a/test/tint/builtins/gen/textureNumLayers/024820.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureNumLayers/024820.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureNumLayers_024820();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureNumLayers/09d05d.wgsl.expected.glsl b/test/tint/builtins/gen/textureNumLayers/09d05d.wgsl.expected.glsl
index 49177ec..25b7ded 100644
--- a/test/tint/builtins/gen/textureNumLayers/09d05d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureNumLayers/09d05d.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureNumLayers_09d05d();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureNumLayers/13b4ce.wgsl.expected.glsl b/test/tint/builtins/gen/textureNumLayers/13b4ce.wgsl.expected.glsl
index 5204b71..f090067 100644
--- a/test/tint/builtins/gen/textureNumLayers/13b4ce.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureNumLayers/13b4ce.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureNumLayers_13b4ce();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureNumLayers/22e53b.wgsl.expected.glsl b/test/tint/builtins/gen/textureNumLayers/22e53b.wgsl.expected.glsl
index 8043313..3902bb3 100644
--- a/test/tint/builtins/gen/textureNumLayers/22e53b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureNumLayers/22e53b.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureNumLayers_22e53b();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureNumLayers/562013.wgsl.expected.glsl b/test/tint/builtins/gen/textureNumLayers/562013.wgsl.expected.glsl
index f71e528..713a325 100644
--- a/test/tint/builtins/gen/textureNumLayers/562013.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureNumLayers/562013.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureNumLayers_562013();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureNumLayers/68a65b.wgsl.expected.glsl b/test/tint/builtins/gen/textureNumLayers/68a65b.wgsl.expected.glsl
index 9cc265a..38cd9e7 100644
--- a/test/tint/builtins/gen/textureNumLayers/68a65b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureNumLayers/68a65b.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureNumLayers_68a65b();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureNumLayers/87953e.wgsl.expected.glsl b/test/tint/builtins/gen/textureNumLayers/87953e.wgsl.expected.glsl
index 9c47222..83bae63 100644
--- a/test/tint/builtins/gen/textureNumLayers/87953e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureNumLayers/87953e.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureNumLayers_87953e();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureNumLayers/893e7c.wgsl.expected.glsl b/test/tint/builtins/gen/textureNumLayers/893e7c.wgsl.expected.glsl
index 68e6538..e2d0eb6 100644
--- a/test/tint/builtins/gen/textureNumLayers/893e7c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureNumLayers/893e7c.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureNumLayers_893e7c();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureNumLayers/9700fb.wgsl.expected.glsl b/test/tint/builtins/gen/textureNumLayers/9700fb.wgsl.expected.glsl
index 6761d3a..24b2d5d 100644
--- a/test/tint/builtins/gen/textureNumLayers/9700fb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureNumLayers/9700fb.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureNumLayers_9700fb();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureNumLayers/a216d2.wgsl.expected.glsl b/test/tint/builtins/gen/textureNumLayers/a216d2.wgsl.expected.glsl
index fb764f0..a6deec3 100644
--- a/test/tint/builtins/gen/textureNumLayers/a216d2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureNumLayers/a216d2.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureNumLayers_a216d2();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureNumLayers/cd5dc8.wgsl.expected.glsl b/test/tint/builtins/gen/textureNumLayers/cd5dc8.wgsl.expected.glsl
index 9fb8891..95fdcf4 100644
--- a/test/tint/builtins/gen/textureNumLayers/cd5dc8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureNumLayers/cd5dc8.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureNumLayers_cd5dc8();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureNumLayers/d5b228.wgsl.expected.glsl b/test/tint/builtins/gen/textureNumLayers/d5b228.wgsl.expected.glsl
index c5b0351..0daa0a3 100644
--- a/test/tint/builtins/gen/textureNumLayers/d5b228.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureNumLayers/d5b228.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureNumLayers_d5b228();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureNumLayers/e31be1.wgsl.expected.glsl b/test/tint/builtins/gen/textureNumLayers/e31be1.wgsl.expected.glsl
index b5a41f8..e5e4797 100644
--- a/test/tint/builtins/gen/textureNumLayers/e31be1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureNumLayers/e31be1.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureNumLayers_e31be1();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureNumLayers/e653c0.wgsl.expected.glsl b/test/tint/builtins/gen/textureNumLayers/e653c0.wgsl.expected.glsl
index f078048..c622a34 100644
--- a/test/tint/builtins/gen/textureNumLayers/e653c0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureNumLayers/e653c0.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureNumLayers_e653c0();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureNumLayers/ee942f.wgsl.expected.glsl b/test/tint/builtins/gen/textureNumLayers/ee942f.wgsl.expected.glsl
index e2c2fb1..f5996d3 100644
--- a/test/tint/builtins/gen/textureNumLayers/ee942f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureNumLayers/ee942f.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureNumLayers_ee942f();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureNumLayers/f33005.wgsl.expected.glsl b/test/tint/builtins/gen/textureNumLayers/f33005.wgsl.expected.glsl
index 0318edd..541d029 100644
--- a/test/tint/builtins/gen/textureNumLayers/f33005.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureNumLayers/f33005.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureNumLayers_f33005();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureNumLayers/ff5e89.wgsl.expected.glsl b/test/tint/builtins/gen/textureNumLayers/ff5e89.wgsl.expected.glsl
index fee6d33..76ca5cc 100644
--- a/test/tint/builtins/gen/textureNumLayers/ff5e89.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureNumLayers/ff5e89.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 vertex_main() {
   textureNumLayers_ff5e89();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureSample/02aa9b.wgsl.expected.glsl b/test/tint/builtins/gen/textureSample/02aa9b.wgsl.expected.glsl
index 00c91e0..8ad0c43 100644
--- a/test/tint/builtins/gen/textureSample/02aa9b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureSample/02aa9b.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 uniform highp sampler2DArray arg_0_arg_1;
 
 void textureSample_02aa9b() {
-  vec4 res = textureOffset(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), ivec2(0, 0));
+  vec4 res = textureOffset(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), ivec2(0));
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/textureSample/100dc0.wgsl.expected.glsl b/test/tint/builtins/gen/textureSample/100dc0.wgsl.expected.glsl
index 97c7b80..1e3bd9f 100644
--- a/test/tint/builtins/gen/textureSample/100dc0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureSample/100dc0.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 uniform highp sampler3D arg_0_arg_1;
 
 void textureSample_100dc0() {
-  vec4 res = textureOffset(arg_0_arg_1, vec3(0.0f, 0.0f, 0.0f), ivec3(0, 0, 0));
+  vec4 res = textureOffset(arg_0_arg_1, vec3(0.0f), ivec3(0));
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/textureSample/3b50bd.wgsl.expected.glsl b/test/tint/builtins/gen/textureSample/3b50bd.wgsl.expected.glsl
index 10aa7b4..8d1d18d 100644
--- a/test/tint/builtins/gen/textureSample/3b50bd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureSample/3b50bd.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 uniform highp sampler3D arg_0_arg_1;
 
 void textureSample_3b50bd() {
-  vec4 res = texture(arg_0_arg_1, vec3(0.0f, 0.0f, 0.0f));
+  vec4 res = texture(arg_0_arg_1, vec3(0.0f));
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/textureSample/51b514.wgsl.expected.glsl b/test/tint/builtins/gen/textureSample/51b514.wgsl.expected.glsl
index ead0363..b04d681 100644
--- a/test/tint/builtins/gen/textureSample/51b514.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureSample/51b514.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 uniform highp sampler2D arg_0_arg_1;
 
 void textureSample_51b514() {
-  vec4 res = texture(arg_0_arg_1, vec2(0.0f, 0.0f));
+  vec4 res = texture(arg_0_arg_1, vec2(0.0f));
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/textureSample/667d76.wgsl.expected.glsl b/test/tint/builtins/gen/textureSample/667d76.wgsl.expected.glsl
index ca5c5c7..789acf2 100644
--- a/test/tint/builtins/gen/textureSample/667d76.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureSample/667d76.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 uniform highp sampler2DShadow arg_0_arg_1;
 
 void textureSample_667d76() {
-  float res = textureOffset(arg_0_arg_1, vec3(0.0f, 0.0f, 0.0f), ivec2(0, 0));
+  float res = textureOffset(arg_0_arg_1, vec3(0.0f, 0.0f, 0.0f), ivec2(0));
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/textureSample/7c3baa.wgsl.expected.glsl b/test/tint/builtins/gen/textureSample/7c3baa.wgsl.expected.glsl
index 9d7c749..0e307d3 100644
--- a/test/tint/builtins/gen/textureSample/7c3baa.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureSample/7c3baa.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 uniform highp sampler2D arg_0_arg_1;
 
 void textureSample_7c3baa() {
-  vec4 res = textureOffset(arg_0_arg_1, vec2(0.0f, 0.0f), ivec2(0, 0));
+  vec4 res = textureOffset(arg_0_arg_1, vec2(0.0f), ivec2(0));
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/textureSample/e53267.wgsl.expected.glsl b/test/tint/builtins/gen/textureSample/e53267.wgsl.expected.glsl
index 43ac089..8abd834 100644
--- a/test/tint/builtins/gen/textureSample/e53267.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureSample/e53267.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 uniform highp samplerCube arg_0_arg_1;
 
 void textureSample_e53267() {
-  vec4 res = texture(arg_0_arg_1, vec3(0.0f, 0.0f, 0.0f));
+  vec4 res = texture(arg_0_arg_1, vec3(0.0f));
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/textureSampleBias/53b9f7.wgsl.expected.glsl b/test/tint/builtins/gen/textureSampleBias/53b9f7.wgsl.expected.glsl
index b85dbcd..c40abb6 100644
--- a/test/tint/builtins/gen/textureSampleBias/53b9f7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureSampleBias/53b9f7.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 uniform highp samplerCube arg_0_arg_1;
 
 void textureSampleBias_53b9f7() {
-  vec4 res = texture(arg_0_arg_1, vec3(0.0f, 0.0f, 0.0f), 1.0f);
+  vec4 res = texture(arg_0_arg_1, vec3(0.0f), 1.0f);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/textureSampleBias/65ac50.wgsl.expected.glsl b/test/tint/builtins/gen/textureSampleBias/65ac50.wgsl.expected.glsl
index 9a0a158..eea7a09 100644
--- a/test/tint/builtins/gen/textureSampleBias/65ac50.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureSampleBias/65ac50.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 uniform highp sampler2DArray arg_0_arg_1;
 
 void textureSampleBias_65ac50() {
-  vec4 res = textureOffset(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), ivec2(0, 0), 1.0f);
+  vec4 res = textureOffset(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), ivec2(0), 1.0f);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/textureSampleBias/6a9113.wgsl.expected.glsl b/test/tint/builtins/gen/textureSampleBias/6a9113.wgsl.expected.glsl
index 2420cc9..ca84e9d 100644
--- a/test/tint/builtins/gen/textureSampleBias/6a9113.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureSampleBias/6a9113.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 uniform highp sampler2D arg_0_arg_1;
 
 void textureSampleBias_6a9113() {
-  vec4 res = texture(arg_0_arg_1, vec2(0.0f, 0.0f), 1.0f);
+  vec4 res = texture(arg_0_arg_1, vec2(0.0f), 1.0f);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/textureSampleBias/81c19a.wgsl.expected.glsl b/test/tint/builtins/gen/textureSampleBias/81c19a.wgsl.expected.glsl
index 6672660..00e0fe3 100644
--- a/test/tint/builtins/gen/textureSampleBias/81c19a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureSampleBias/81c19a.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 uniform highp sampler2D arg_0_arg_1;
 
 void textureSampleBias_81c19a() {
-  vec4 res = textureOffset(arg_0_arg_1, vec2(0.0f, 0.0f), ivec2(0, 0), 1.0f);
+  vec4 res = textureOffset(arg_0_arg_1, vec2(0.0f), ivec2(0), 1.0f);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/textureSampleBias/d3fa1b.wgsl.expected.glsl b/test/tint/builtins/gen/textureSampleBias/d3fa1b.wgsl.expected.glsl
index 0530165..ae1ce59 100644
--- a/test/tint/builtins/gen/textureSampleBias/d3fa1b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureSampleBias/d3fa1b.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 uniform highp sampler3D arg_0_arg_1;
 
 void textureSampleBias_d3fa1b() {
-  vec4 res = texture(arg_0_arg_1, vec3(0.0f, 0.0f, 0.0f), 1.0f);
+  vec4 res = texture(arg_0_arg_1, vec3(0.0f), 1.0f);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/textureSampleBias/df91bb.wgsl.expected.glsl b/test/tint/builtins/gen/textureSampleBias/df91bb.wgsl.expected.glsl
index e68a551..c77767c 100644
--- a/test/tint/builtins/gen/textureSampleBias/df91bb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureSampleBias/df91bb.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 uniform highp sampler3D arg_0_arg_1;
 
 void textureSampleBias_df91bb() {
-  vec4 res = textureOffset(arg_0_arg_1, vec3(0.0f, 0.0f, 0.0f), ivec3(0, 0, 0), 1.0f);
+  vec4 res = textureOffset(arg_0_arg_1, vec3(0.0f), ivec3(0), 1.0f);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/textureSampleCompare/25fcd1.wgsl.expected.glsl b/test/tint/builtins/gen/textureSampleCompare/25fcd1.wgsl.expected.glsl
index 9e4ad0c..92770de 100644
--- a/test/tint/builtins/gen/textureSampleCompare/25fcd1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureSampleCompare/25fcd1.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 uniform highp sampler2DShadow arg_0_arg_1;
 
 void textureSampleCompare_25fcd1() {
-  float res = textureOffset(arg_0_arg_1, vec3(0.0f, 0.0f, 1.0f), ivec2(0, 0));
+  float res = textureOffset(arg_0_arg_1, vec3(0.0f, 0.0f, 1.0f), ivec2(0));
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/textureSampleCompareLevel/1116ed.wgsl.expected.glsl b/test/tint/builtins/gen/textureSampleCompareLevel/1116ed.wgsl.expected.glsl
index cab593f..573c22c 100644
--- a/test/tint/builtins/gen/textureSampleCompareLevel/1116ed.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureSampleCompareLevel/1116ed.wgsl.expected.glsl
@@ -8,7 +8,7 @@
 
 vec4 vertex_main() {
   textureSampleCompareLevel_1116ed();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureSampleCompareLevel/1568e3.wgsl.expected.glsl b/test/tint/builtins/gen/textureSampleCompareLevel/1568e3.wgsl.expected.glsl
index a504902..f805d0d 100644
--- a/test/tint/builtins/gen/textureSampleCompareLevel/1568e3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureSampleCompareLevel/1568e3.wgsl.expected.glsl
@@ -8,7 +8,7 @@
 
 vec4 vertex_main() {
   textureSampleCompareLevel_1568e3();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureSampleCompareLevel/2ad2b1.wgsl.expected.glsl b/test/tint/builtins/gen/textureSampleCompareLevel/2ad2b1.wgsl.expected.glsl
index 929a63f..1bdaf88 100644
--- a/test/tint/builtins/gen/textureSampleCompareLevel/2ad2b1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureSampleCompareLevel/2ad2b1.wgsl.expected.glsl
@@ -8,7 +8,7 @@
 
 vec4 vertex_main() {
   textureSampleCompareLevel_2ad2b1();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureSampleCompareLevel/f8121c.wgsl.expected.glsl b/test/tint/builtins/gen/textureSampleCompareLevel/f8121c.wgsl.expected.glsl
index b026ab0..9c295eb 100644
--- a/test/tint/builtins/gen/textureSampleCompareLevel/f8121c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureSampleCompareLevel/f8121c.wgsl.expected.glsl
@@ -3,12 +3,12 @@
 uniform highp sampler2DShadow arg_0_arg_1;
 
 void textureSampleCompareLevel_f8121c() {
-  float res = textureOffset(arg_0_arg_1, vec3(0.0f, 0.0f, 1.0f), ivec2(0, 0));
+  float res = textureOffset(arg_0_arg_1, vec3(0.0f, 0.0f, 1.0f), ivec2(0));
 }
 
 vec4 vertex_main() {
   textureSampleCompareLevel_f8121c();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -25,7 +25,7 @@
 uniform highp sampler2DShadow arg_0_arg_1;
 
 void textureSampleCompareLevel_f8121c() {
-  float res = textureOffset(arg_0_arg_1, vec3(0.0f, 0.0f, 1.0f), ivec2(0, 0));
+  float res = textureOffset(arg_0_arg_1, vec3(0.0f, 0.0f, 1.0f), ivec2(0));
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp sampler2DShadow arg_0_arg_1;
 
 void textureSampleCompareLevel_f8121c() {
-  float res = textureOffset(arg_0_arg_1, vec3(0.0f, 0.0f, 1.0f), ivec2(0, 0));
+  float res = textureOffset(arg_0_arg_1, vec3(0.0f, 0.0f, 1.0f), ivec2(0));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureSampleGrad/21402b.wgsl.expected.glsl b/test/tint/builtins/gen/textureSampleGrad/21402b.wgsl.expected.glsl
index e40ae0f..4810d97 100644
--- a/test/tint/builtins/gen/textureSampleGrad/21402b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureSampleGrad/21402b.wgsl.expected.glsl
@@ -3,12 +3,12 @@
 uniform highp sampler3D arg_0_arg_1;
 
 void textureSampleGrad_21402b() {
-  vec4 res = textureGrad(arg_0_arg_1, vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+  vec4 res = textureGrad(arg_0_arg_1, vec3(0.0f), vec3(0.0f), vec3(0.0f));
 }
 
 vec4 vertex_main() {
   textureSampleGrad_21402b();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -25,7 +25,7 @@
 uniform highp sampler3D arg_0_arg_1;
 
 void textureSampleGrad_21402b() {
-  vec4 res = textureGrad(arg_0_arg_1, vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+  vec4 res = textureGrad(arg_0_arg_1, vec3(0.0f), vec3(0.0f), vec3(0.0f));
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp sampler3D arg_0_arg_1;
 
 void textureSampleGrad_21402b() {
-  vec4 res = textureGrad(arg_0_arg_1, vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+  vec4 res = textureGrad(arg_0_arg_1, vec3(0.0f), vec3(0.0f), vec3(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureSampleGrad/2ecd8f.wgsl.expected.glsl b/test/tint/builtins/gen/textureSampleGrad/2ecd8f.wgsl.expected.glsl
index c250eff..93bb758 100644
--- a/test/tint/builtins/gen/textureSampleGrad/2ecd8f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureSampleGrad/2ecd8f.wgsl.expected.glsl
@@ -3,12 +3,12 @@
 uniform highp sampler2DArray arg_0_arg_1;
 
 void textureSampleGrad_2ecd8f() {
-  vec4 res = textureGrad(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+  vec4 res = textureGrad(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), vec2(0.0f), vec2(0.0f));
 }
 
 vec4 vertex_main() {
   textureSampleGrad_2ecd8f();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -25,7 +25,7 @@
 uniform highp sampler2DArray arg_0_arg_1;
 
 void textureSampleGrad_2ecd8f() {
-  vec4 res = textureGrad(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+  vec4 res = textureGrad(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), vec2(0.0f), vec2(0.0f));
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp sampler2DArray arg_0_arg_1;
 
 void textureSampleGrad_2ecd8f() {
-  vec4 res = textureGrad(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+  vec4 res = textureGrad(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), vec2(0.0f), vec2(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureSampleGrad/468f88.wgsl.expected.glsl b/test/tint/builtins/gen/textureSampleGrad/468f88.wgsl.expected.glsl
index 84a9140..3182672 100644
--- a/test/tint/builtins/gen/textureSampleGrad/468f88.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureSampleGrad/468f88.wgsl.expected.glsl
@@ -3,12 +3,12 @@
 uniform highp sampler2D arg_0_arg_1;
 
 void textureSampleGrad_468f88() {
-  vec4 res = textureGradOffset(arg_0_arg_1, vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), ivec2(0, 0));
+  vec4 res = textureGradOffset(arg_0_arg_1, vec2(0.0f), vec2(0.0f), vec2(0.0f), ivec2(0));
 }
 
 vec4 vertex_main() {
   textureSampleGrad_468f88();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -25,7 +25,7 @@
 uniform highp sampler2D arg_0_arg_1;
 
 void textureSampleGrad_468f88() {
-  vec4 res = textureGradOffset(arg_0_arg_1, vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), ivec2(0, 0));
+  vec4 res = textureGradOffset(arg_0_arg_1, vec2(0.0f), vec2(0.0f), vec2(0.0f), ivec2(0));
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp sampler2D arg_0_arg_1;
 
 void textureSampleGrad_468f88() {
-  vec4 res = textureGradOffset(arg_0_arg_1, vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), ivec2(0, 0));
+  vec4 res = textureGradOffset(arg_0_arg_1, vec2(0.0f), vec2(0.0f), vec2(0.0f), ivec2(0));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureSampleGrad/521263.wgsl.expected.glsl b/test/tint/builtins/gen/textureSampleGrad/521263.wgsl.expected.glsl
index 874a6e5e..88da1c0 100644
--- a/test/tint/builtins/gen/textureSampleGrad/521263.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureSampleGrad/521263.wgsl.expected.glsl
@@ -3,12 +3,12 @@
 uniform highp sampler2D arg_0_arg_1;
 
 void textureSampleGrad_521263() {
-  vec4 res = textureGrad(arg_0_arg_1, vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+  vec4 res = textureGrad(arg_0_arg_1, vec2(0.0f), vec2(0.0f), vec2(0.0f));
 }
 
 vec4 vertex_main() {
   textureSampleGrad_521263();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -25,7 +25,7 @@
 uniform highp sampler2D arg_0_arg_1;
 
 void textureSampleGrad_521263() {
-  vec4 res = textureGrad(arg_0_arg_1, vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+  vec4 res = textureGrad(arg_0_arg_1, vec2(0.0f), vec2(0.0f), vec2(0.0f));
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp sampler2D arg_0_arg_1;
 
 void textureSampleGrad_521263() {
-  vec4 res = textureGrad(arg_0_arg_1, vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+  vec4 res = textureGrad(arg_0_arg_1, vec2(0.0f), vec2(0.0f), vec2(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureSampleGrad/5312f4.wgsl.expected.glsl b/test/tint/builtins/gen/textureSampleGrad/5312f4.wgsl.expected.glsl
index 3bf3809..5f7c389 100644
--- a/test/tint/builtins/gen/textureSampleGrad/5312f4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureSampleGrad/5312f4.wgsl.expected.glsl
@@ -3,12 +3,12 @@
 uniform highp samplerCube arg_0_arg_1;
 
 void textureSampleGrad_5312f4() {
-  vec4 res = textureGrad(arg_0_arg_1, vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+  vec4 res = textureGrad(arg_0_arg_1, vec3(0.0f), vec3(0.0f), vec3(0.0f));
 }
 
 vec4 vertex_main() {
   textureSampleGrad_5312f4();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -25,7 +25,7 @@
 uniform highp samplerCube arg_0_arg_1;
 
 void textureSampleGrad_5312f4() {
-  vec4 res = textureGrad(arg_0_arg_1, vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+  vec4 res = textureGrad(arg_0_arg_1, vec3(0.0f), vec3(0.0f), vec3(0.0f));
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp samplerCube arg_0_arg_1;
 
 void textureSampleGrad_5312f4() {
-  vec4 res = textureGrad(arg_0_arg_1, vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+  vec4 res = textureGrad(arg_0_arg_1, vec3(0.0f), vec3(0.0f), vec3(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureSampleGrad/872f00.wgsl.expected.glsl b/test/tint/builtins/gen/textureSampleGrad/872f00.wgsl.expected.glsl
index 9a58c71..383371a 100644
--- a/test/tint/builtins/gen/textureSampleGrad/872f00.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureSampleGrad/872f00.wgsl.expected.glsl
@@ -3,12 +3,12 @@
 uniform highp sampler2DArray arg_0_arg_1;
 
 void textureSampleGrad_872f00() {
-  vec4 res = textureGradOffset(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), ivec2(0, 0));
+  vec4 res = textureGradOffset(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), vec2(0.0f), vec2(0.0f), ivec2(0));
 }
 
 vec4 vertex_main() {
   textureSampleGrad_872f00();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -25,7 +25,7 @@
 uniform highp sampler2DArray arg_0_arg_1;
 
 void textureSampleGrad_872f00() {
-  vec4 res = textureGradOffset(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), ivec2(0, 0));
+  vec4 res = textureGradOffset(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), vec2(0.0f), vec2(0.0f), ivec2(0));
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp sampler2DArray arg_0_arg_1;
 
 void textureSampleGrad_872f00() {
-  vec4 res = textureGradOffset(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), ivec2(0, 0));
+  vec4 res = textureGradOffset(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), vec2(0.0f), vec2(0.0f), ivec2(0));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureSampleGrad/e9a2f7.wgsl.expected.glsl b/test/tint/builtins/gen/textureSampleGrad/e9a2f7.wgsl.expected.glsl
index 6320515..51c4551 100644
--- a/test/tint/builtins/gen/textureSampleGrad/e9a2f7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureSampleGrad/e9a2f7.wgsl.expected.glsl
@@ -3,12 +3,12 @@
 uniform highp sampler3D arg_0_arg_1;
 
 void textureSampleGrad_e9a2f7() {
-  vec4 res = textureGradOffset(arg_0_arg_1, vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), ivec3(0, 0, 0));
+  vec4 res = textureGradOffset(arg_0_arg_1, vec3(0.0f), vec3(0.0f), vec3(0.0f), ivec3(0));
 }
 
 vec4 vertex_main() {
   textureSampleGrad_e9a2f7();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -25,7 +25,7 @@
 uniform highp sampler3D arg_0_arg_1;
 
 void textureSampleGrad_e9a2f7() {
-  vec4 res = textureGradOffset(arg_0_arg_1, vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), ivec3(0, 0, 0));
+  vec4 res = textureGradOffset(arg_0_arg_1, vec3(0.0f), vec3(0.0f), vec3(0.0f), ivec3(0));
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp sampler3D arg_0_arg_1;
 
 void textureSampleGrad_e9a2f7() {
-  vec4 res = textureGradOffset(arg_0_arg_1, vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), ivec3(0, 0, 0));
+  vec4 res = textureGradOffset(arg_0_arg_1, vec3(0.0f), vec3(0.0f), vec3(0.0f), ivec3(0));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureSampleLevel/02be59.wgsl.expected.glsl b/test/tint/builtins/gen/textureSampleLevel/02be59.wgsl.expected.glsl
index 6556ad0..ce57e3a 100644
--- a/test/tint/builtins/gen/textureSampleLevel/02be59.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureSampleLevel/02be59.wgsl.expected.glsl
@@ -8,7 +8,7 @@
 
 vec4 vertex_main() {
   textureSampleLevel_02be59();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureSampleLevel/302be4.wgsl.expected.glsl b/test/tint/builtins/gen/textureSampleLevel/302be4.wgsl.expected.glsl
index 5e963ce..31ba66c0 100644
--- a/test/tint/builtins/gen/textureSampleLevel/302be4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureSampleLevel/302be4.wgsl.expected.glsl
@@ -8,7 +8,7 @@
 
 vec4 vertex_main() {
   textureSampleLevel_302be4();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/textureSampleLevel/47daa4.wgsl.expected.glsl b/test/tint/builtins/gen/textureSampleLevel/47daa4.wgsl.expected.glsl
index 9040c71..9ae6c00 100644
--- a/test/tint/builtins/gen/textureSampleLevel/47daa4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureSampleLevel/47daa4.wgsl.expected.glsl
@@ -3,12 +3,12 @@
 uniform highp sampler2DShadow arg_0_arg_1;
 
 void textureSampleLevel_47daa4() {
-  float res = textureLodOffset(arg_0_arg_1, vec3(0.0f, 0.0f, 0.0f), float(0), ivec2(0, 0));
+  float res = textureLodOffset(arg_0_arg_1, vec3(0.0f, 0.0f, 0.0f), float(0), ivec2(0));
 }
 
 vec4 vertex_main() {
   textureSampleLevel_47daa4();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -25,7 +25,7 @@
 uniform highp sampler2DShadow arg_0_arg_1;
 
 void textureSampleLevel_47daa4() {
-  float res = textureLodOffset(arg_0_arg_1, vec3(0.0f, 0.0f, 0.0f), float(0), ivec2(0, 0));
+  float res = textureLodOffset(arg_0_arg_1, vec3(0.0f, 0.0f, 0.0f), float(0), ivec2(0));
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp sampler2DShadow arg_0_arg_1;
 
 void textureSampleLevel_47daa4() {
-  float res = textureLodOffset(arg_0_arg_1, vec3(0.0f, 0.0f, 0.0f), float(0), ivec2(0, 0));
+  float res = textureLodOffset(arg_0_arg_1, vec3(0.0f, 0.0f, 0.0f), float(0), ivec2(0));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureSampleLevel/690d95.wgsl.expected.glsl b/test/tint/builtins/gen/textureSampleLevel/690d95.wgsl.expected.glsl
index 7bda115..03b78b6 100644
--- a/test/tint/builtins/gen/textureSampleLevel/690d95.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureSampleLevel/690d95.wgsl.expected.glsl
@@ -3,12 +3,12 @@
 uniform highp sampler2D arg_0_arg_1;
 
 void textureSampleLevel_690d95() {
-  vec4 res = textureLodOffset(arg_0_arg_1, vec2(0.0f, 0.0f), 1.0f, ivec2(0, 0));
+  vec4 res = textureLodOffset(arg_0_arg_1, vec2(0.0f), 1.0f, ivec2(0));
 }
 
 vec4 vertex_main() {
   textureSampleLevel_690d95();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -25,7 +25,7 @@
 uniform highp sampler2D arg_0_arg_1;
 
 void textureSampleLevel_690d95() {
-  vec4 res = textureLodOffset(arg_0_arg_1, vec2(0.0f, 0.0f), 1.0f, ivec2(0, 0));
+  vec4 res = textureLodOffset(arg_0_arg_1, vec2(0.0f), 1.0f, ivec2(0));
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp sampler2D arg_0_arg_1;
 
 void textureSampleLevel_690d95() {
-  vec4 res = textureLodOffset(arg_0_arg_1, vec2(0.0f, 0.0f), 1.0f, ivec2(0, 0));
+  vec4 res = textureLodOffset(arg_0_arg_1, vec2(0.0f), 1.0f, ivec2(0));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureSampleLevel/9bd37b.wgsl.expected.glsl b/test/tint/builtins/gen/textureSampleLevel/9bd37b.wgsl.expected.glsl
index c605057..c2f30d1 100644
--- a/test/tint/builtins/gen/textureSampleLevel/9bd37b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureSampleLevel/9bd37b.wgsl.expected.glsl
@@ -3,12 +3,12 @@
 uniform highp sampler3D arg_0_arg_1;
 
 void textureSampleLevel_9bd37b() {
-  vec4 res = textureLodOffset(arg_0_arg_1, vec3(0.0f, 0.0f, 0.0f), 1.0f, ivec3(0, 0, 0));
+  vec4 res = textureLodOffset(arg_0_arg_1, vec3(0.0f), 1.0f, ivec3(0));
 }
 
 vec4 vertex_main() {
   textureSampleLevel_9bd37b();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -25,7 +25,7 @@
 uniform highp sampler3D arg_0_arg_1;
 
 void textureSampleLevel_9bd37b() {
-  vec4 res = textureLodOffset(arg_0_arg_1, vec3(0.0f, 0.0f, 0.0f), 1.0f, ivec3(0, 0, 0));
+  vec4 res = textureLodOffset(arg_0_arg_1, vec3(0.0f), 1.0f, ivec3(0));
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp sampler3D arg_0_arg_1;
 
 void textureSampleLevel_9bd37b() {
-  vec4 res = textureLodOffset(arg_0_arg_1, vec3(0.0f, 0.0f, 0.0f), 1.0f, ivec3(0, 0, 0));
+  vec4 res = textureLodOffset(arg_0_arg_1, vec3(0.0f), 1.0f, ivec3(0));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureSampleLevel/a4af26.wgsl.expected.glsl b/test/tint/builtins/gen/textureSampleLevel/a4af26.wgsl.expected.glsl
index c16d3e2..3d7746c 100644
--- a/test/tint/builtins/gen/textureSampleLevel/a4af26.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureSampleLevel/a4af26.wgsl.expected.glsl
@@ -3,12 +3,12 @@
 uniform highp sampler2DArray arg_0_arg_1;
 
 void textureSampleLevel_a4af26() {
-  vec4 res = textureLodOffset(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), 1.0f, ivec2(0, 0));
+  vec4 res = textureLodOffset(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), 1.0f, ivec2(0));
 }
 
 vec4 vertex_main() {
   textureSampleLevel_a4af26();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -25,7 +25,7 @@
 uniform highp sampler2DArray arg_0_arg_1;
 
 void textureSampleLevel_a4af26() {
-  vec4 res = textureLodOffset(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), 1.0f, ivec2(0, 0));
+  vec4 res = textureLodOffset(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), 1.0f, ivec2(0));
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp sampler2DArray arg_0_arg_1;
 
 void textureSampleLevel_a4af26() {
-  vec4 res = textureLodOffset(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), 1.0f, ivec2(0, 0));
+  vec4 res = textureLodOffset(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), 1.0f, ivec2(0));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureSampleLevel/abfcc0.wgsl.expected.glsl b/test/tint/builtins/gen/textureSampleLevel/abfcc0.wgsl.expected.glsl
index 4965ee4..866afa3 100644
--- a/test/tint/builtins/gen/textureSampleLevel/abfcc0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureSampleLevel/abfcc0.wgsl.expected.glsl
@@ -3,12 +3,12 @@
 uniform highp sampler3D arg_0_arg_1;
 
 void textureSampleLevel_abfcc0() {
-  vec4 res = textureLod(arg_0_arg_1, vec3(0.0f, 0.0f, 0.0f), 1.0f);
+  vec4 res = textureLod(arg_0_arg_1, vec3(0.0f), 1.0f);
 }
 
 vec4 vertex_main() {
   textureSampleLevel_abfcc0();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -25,7 +25,7 @@
 uniform highp sampler3D arg_0_arg_1;
 
 void textureSampleLevel_abfcc0() {
-  vec4 res = textureLod(arg_0_arg_1, vec3(0.0f, 0.0f, 0.0f), 1.0f);
+  vec4 res = textureLod(arg_0_arg_1, vec3(0.0f), 1.0f);
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp sampler3D arg_0_arg_1;
 
 void textureSampleLevel_abfcc0() {
-  vec4 res = textureLod(arg_0_arg_1, vec3(0.0f, 0.0f, 0.0f), 1.0f);
+  vec4 res = textureLod(arg_0_arg_1, vec3(0.0f), 1.0f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureSampleLevel/c32df7.wgsl.expected.glsl b/test/tint/builtins/gen/textureSampleLevel/c32df7.wgsl.expected.glsl
index f65cea0..af5177b 100644
--- a/test/tint/builtins/gen/textureSampleLevel/c32df7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureSampleLevel/c32df7.wgsl.expected.glsl
@@ -3,12 +3,12 @@
 uniform highp samplerCube arg_0_arg_1;
 
 void textureSampleLevel_c32df7() {
-  vec4 res = textureLod(arg_0_arg_1, vec3(0.0f, 0.0f, 0.0f), 1.0f);
+  vec4 res = textureLod(arg_0_arg_1, vec3(0.0f), 1.0f);
 }
 
 vec4 vertex_main() {
   textureSampleLevel_c32df7();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -25,7 +25,7 @@
 uniform highp samplerCube arg_0_arg_1;
 
 void textureSampleLevel_c32df7() {
-  vec4 res = textureLod(arg_0_arg_1, vec3(0.0f, 0.0f, 0.0f), 1.0f);
+  vec4 res = textureLod(arg_0_arg_1, vec3(0.0f), 1.0f);
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp samplerCube arg_0_arg_1;
 
 void textureSampleLevel_c32df7() {
-  vec4 res = textureLod(arg_0_arg_1, vec3(0.0f, 0.0f, 0.0f), 1.0f);
+  vec4 res = textureLod(arg_0_arg_1, vec3(0.0f), 1.0f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureSampleLevel/c6aca6.wgsl.expected.glsl b/test/tint/builtins/gen/textureSampleLevel/c6aca6.wgsl.expected.glsl
index 6b5cc10..b2e3dd0 100644
--- a/test/tint/builtins/gen/textureSampleLevel/c6aca6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureSampleLevel/c6aca6.wgsl.expected.glsl
@@ -3,12 +3,12 @@
 uniform highp sampler2D arg_0_arg_1;
 
 void textureSampleLevel_c6aca6() {
-  vec4 res = textureLod(arg_0_arg_1, vec2(0.0f, 0.0f), 1.0f);
+  vec4 res = textureLod(arg_0_arg_1, vec2(0.0f), 1.0f);
 }
 
 vec4 vertex_main() {
   textureSampleLevel_c6aca6();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -25,7 +25,7 @@
 uniform highp sampler2D arg_0_arg_1;
 
 void textureSampleLevel_c6aca6() {
-  vec4 res = textureLod(arg_0_arg_1, vec2(0.0f, 0.0f), 1.0f);
+  vec4 res = textureLod(arg_0_arg_1, vec2(0.0f), 1.0f);
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp sampler2D arg_0_arg_1;
 
 void textureSampleLevel_c6aca6() {
-  vec4 res = textureLod(arg_0_arg_1, vec2(0.0f, 0.0f), 1.0f);
+  vec4 res = textureLod(arg_0_arg_1, vec2(0.0f), 1.0f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureStore/05ce15.wgsl.expected.glsl b/test/tint/builtins/gen/textureStore/05ce15.wgsl.expected.glsl
index 6598bca..38abe73 100644
--- a/test/tint/builtins/gen/textureStore/05ce15.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureStore/05ce15.wgsl.expected.glsl
@@ -2,12 +2,12 @@
 
 layout(rgba32f) uniform highp writeonly image2D arg_0;
 void textureStore_05ce15() {
-  imageStore(arg_0, ivec2(0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  imageStore(arg_0, ivec2(0), vec4(0.0f));
 }
 
 vec4 vertex_main() {
   textureStore_05ce15();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -23,7 +23,7 @@
 
 layout(rgba32f) uniform highp writeonly image2D arg_0;
 void textureStore_05ce15() {
-  imageStore(arg_0, ivec2(0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  imageStore(arg_0, ivec2(0), vec4(0.0f));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba32f) uniform highp writeonly image2D arg_0;
 void textureStore_05ce15() {
-  imageStore(arg_0, ivec2(0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  imageStore(arg_0, ivec2(0), vec4(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureStore/068641.wgsl.expected.glsl b/test/tint/builtins/gen/textureStore/068641.wgsl.expected.glsl
index 91e51c2..453b7be 100644
--- a/test/tint/builtins/gen/textureStore/068641.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureStore/068641.wgsl.expected.glsl
@@ -2,12 +2,12 @@
 
 layout(rgba16ui) uniform highp writeonly uimage3D arg_0;
 void textureStore_068641() {
-  imageStore(arg_0, ivec3(0, 0, 0), uvec4(0u, 0u, 0u, 0u));
+  imageStore(arg_0, ivec3(0), uvec4(0u));
 }
 
 vec4 vertex_main() {
   textureStore_068641();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -23,7 +23,7 @@
 
 layout(rgba16ui) uniform highp writeonly uimage3D arg_0;
 void textureStore_068641() {
-  imageStore(arg_0, ivec3(0, 0, 0), uvec4(0u, 0u, 0u, 0u));
+  imageStore(arg_0, ivec3(0), uvec4(0u));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba16ui) uniform highp writeonly uimage3D arg_0;
 void textureStore_068641() {
-  imageStore(arg_0, ivec3(0, 0, 0), uvec4(0u, 0u, 0u, 0u));
+  imageStore(arg_0, ivec3(0), uvec4(0u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureStore/0af6b5.wgsl.expected.glsl b/test/tint/builtins/gen/textureStore/0af6b5.wgsl.expected.glsl
index 75d8438..dc7474e 100644
--- a/test/tint/builtins/gen/textureStore/0af6b5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureStore/0af6b5.wgsl.expected.glsl
@@ -2,12 +2,12 @@
 
 layout(r32f) uniform highp writeonly image2D arg_0;
 void textureStore_0af6b5() {
-  imageStore(arg_0, ivec2(0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  imageStore(arg_0, ivec2(0), vec4(0.0f));
 }
 
 vec4 vertex_main() {
   textureStore_0af6b5();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -23,7 +23,7 @@
 
 layout(r32f) uniform highp writeonly image2D arg_0;
 void textureStore_0af6b5() {
-  imageStore(arg_0, ivec2(0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  imageStore(arg_0, ivec2(0), vec4(0.0f));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(r32f) uniform highp writeonly image2D arg_0;
 void textureStore_0af6b5() {
-  imageStore(arg_0, ivec2(0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  imageStore(arg_0, ivec2(0), vec4(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureStore/0c3dff.wgsl.expected.glsl b/test/tint/builtins/gen/textureStore/0c3dff.wgsl.expected.glsl
index f7d13a5..4366f60 100644
--- a/test/tint/builtins/gen/textureStore/0c3dff.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureStore/0c3dff.wgsl.expected.glsl
@@ -2,12 +2,12 @@
 
 layout(rgba16ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_0c3dff() {
-  imageStore(arg_0, ivec2(0, 0), uvec4(0u, 0u, 0u, 0u));
+  imageStore(arg_0, ivec2(0), uvec4(0u));
 }
 
 vec4 vertex_main() {
   textureStore_0c3dff();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -23,7 +23,7 @@
 
 layout(rgba16ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_0c3dff() {
-  imageStore(arg_0, ivec2(0, 0), uvec4(0u, 0u, 0u, 0u));
+  imageStore(arg_0, ivec2(0), uvec4(0u));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba16ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_0c3dff() {
-  imageStore(arg_0, ivec2(0, 0), uvec4(0u, 0u, 0u, 0u));
+  imageStore(arg_0, ivec2(0), uvec4(0u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureStore/1bbd08.wgsl.expected.glsl b/test/tint/builtins/gen/textureStore/1bbd08.wgsl.expected.glsl
index 54cb87d..a26b65d 100644
--- a/test/tint/builtins/gen/textureStore/1bbd08.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureStore/1bbd08.wgsl.expected.glsl
@@ -2,12 +2,12 @@
 
 layout(rgba8) uniform highp writeonly image3D arg_0;
 void textureStore_1bbd08() {
-  imageStore(arg_0, ivec3(0, 0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  imageStore(arg_0, ivec3(0), vec4(0.0f));
 }
 
 vec4 vertex_main() {
   textureStore_1bbd08();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -23,7 +23,7 @@
 
 layout(rgba8) uniform highp writeonly image3D arg_0;
 void textureStore_1bbd08() {
-  imageStore(arg_0, ivec3(0, 0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  imageStore(arg_0, ivec3(0), vec4(0.0f));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba8) uniform highp writeonly image3D arg_0;
 void textureStore_1bbd08() {
-  imageStore(arg_0, ivec3(0, 0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  imageStore(arg_0, ivec3(0), vec4(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureStore/1c02e7.wgsl.expected.glsl b/test/tint/builtins/gen/textureStore/1c02e7.wgsl.expected.glsl
index fee9640..8e9601c 100644
--- a/test/tint/builtins/gen/textureStore/1c02e7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureStore/1c02e7.wgsl.expected.glsl
@@ -2,12 +2,12 @@
 
 layout(r32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_1c02e7() {
-  imageStore(arg_0, ivec3(0, 0, 1), ivec4(0, 0, 0, 0));
+  imageStore(arg_0, ivec3(0, 0, 1), ivec4(0));
 }
 
 vec4 vertex_main() {
   textureStore_1c02e7();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -23,7 +23,7 @@
 
 layout(r32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_1c02e7() {
-  imageStore(arg_0, ivec3(0, 0, 1), ivec4(0, 0, 0, 0));
+  imageStore(arg_0, ivec3(0, 0, 1), ivec4(0));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(r32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_1c02e7() {
-  imageStore(arg_0, ivec3(0, 0, 1), ivec4(0, 0, 0, 0));
+  imageStore(arg_0, ivec3(0, 0, 1), ivec4(0));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureStore/22d955.wgsl.expected.glsl b/test/tint/builtins/gen/textureStore/22d955.wgsl.expected.glsl
index d54f0b2..b904bcd 100644
--- a/test/tint/builtins/gen/textureStore/22d955.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureStore/22d955.wgsl.expected.glsl
@@ -2,12 +2,12 @@
 
 layout(rgba8ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_22d955() {
-  imageStore(arg_0, ivec3(0, 0, 1), uvec4(0u, 0u, 0u, 0u));
+  imageStore(arg_0, ivec3(0, 0, 1), uvec4(0u));
 }
 
 vec4 vertex_main() {
   textureStore_22d955();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -23,7 +23,7 @@
 
 layout(rgba8ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_22d955() {
-  imageStore(arg_0, ivec3(0, 0, 1), uvec4(0u, 0u, 0u, 0u));
+  imageStore(arg_0, ivec3(0, 0, 1), uvec4(0u));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba8ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_22d955() {
-  imageStore(arg_0, ivec3(0, 0, 1), uvec4(0u, 0u, 0u, 0u));
+  imageStore(arg_0, ivec3(0, 0, 1), uvec4(0u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureStore/26bf70.wgsl.expected.glsl b/test/tint/builtins/gen/textureStore/26bf70.wgsl.expected.glsl
index 5287dad..b3fe0dd 100644
--- a/test/tint/builtins/gen/textureStore/26bf70.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureStore/26bf70.wgsl.expected.glsl
@@ -2,12 +2,12 @@
 
 layout(rgba32ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_26bf70() {
-  imageStore(arg_0, ivec2(0, 0), uvec4(0u, 0u, 0u, 0u));
+  imageStore(arg_0, ivec2(0), uvec4(0u));
 }
 
 vec4 vertex_main() {
   textureStore_26bf70();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -23,7 +23,7 @@
 
 layout(rgba32ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_26bf70() {
-  imageStore(arg_0, ivec2(0, 0), uvec4(0u, 0u, 0u, 0u));
+  imageStore(arg_0, ivec2(0), uvec4(0u));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba32ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_26bf70() {
-  imageStore(arg_0, ivec2(0, 0), uvec4(0u, 0u, 0u, 0u));
+  imageStore(arg_0, ivec2(0), uvec4(0u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureStore/32f368.wgsl.expected.glsl b/test/tint/builtins/gen/textureStore/32f368.wgsl.expected.glsl
index 4ce1115..c2bf038 100644
--- a/test/tint/builtins/gen/textureStore/32f368.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureStore/32f368.wgsl.expected.glsl
@@ -2,12 +2,12 @@
 
 layout(rgba16f) uniform highp writeonly image2DArray arg_0;
 void textureStore_32f368() {
-  imageStore(arg_0, ivec3(0, 0, 1), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  imageStore(arg_0, ivec3(0, 0, 1), vec4(0.0f));
 }
 
 vec4 vertex_main() {
   textureStore_32f368();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -23,7 +23,7 @@
 
 layout(rgba16f) uniform highp writeonly image2DArray arg_0;
 void textureStore_32f368() {
-  imageStore(arg_0, ivec3(0, 0, 1), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  imageStore(arg_0, ivec3(0, 0, 1), vec4(0.0f));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba16f) uniform highp writeonly image2DArray arg_0;
 void textureStore_32f368() {
-  imageStore(arg_0, ivec3(0, 0, 1), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  imageStore(arg_0, ivec3(0, 0, 1), vec4(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureStore/331aee.wgsl.expected.glsl b/test/tint/builtins/gen/textureStore/331aee.wgsl.expected.glsl
index d0a4acf..150214d 100644
--- a/test/tint/builtins/gen/textureStore/331aee.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureStore/331aee.wgsl.expected.glsl
@@ -2,12 +2,12 @@
 
 layout(rgba32f) uniform highp writeonly image3D arg_0;
 void textureStore_331aee() {
-  imageStore(arg_0, ivec3(0, 0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  imageStore(arg_0, ivec3(0), vec4(0.0f));
 }
 
 vec4 vertex_main() {
   textureStore_331aee();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -23,7 +23,7 @@
 
 layout(rgba32f) uniform highp writeonly image3D arg_0;
 void textureStore_331aee() {
-  imageStore(arg_0, ivec3(0, 0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  imageStore(arg_0, ivec3(0), vec4(0.0f));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba32f) uniform highp writeonly image3D arg_0;
 void textureStore_331aee() {
-  imageStore(arg_0, ivec3(0, 0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  imageStore(arg_0, ivec3(0), vec4(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureStore/38e8d7.wgsl.expected.glsl b/test/tint/builtins/gen/textureStore/38e8d7.wgsl.expected.glsl
index 77c1f2f..d898f5e 100644
--- a/test/tint/builtins/gen/textureStore/38e8d7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureStore/38e8d7.wgsl.expected.glsl
@@ -2,12 +2,12 @@
 
 layout(r32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_38e8d7() {
-  imageStore(arg_0, ivec3(0, 0, 1), uvec4(0u, 0u, 0u, 0u));
+  imageStore(arg_0, ivec3(0, 0, 1), uvec4(0u));
 }
 
 vec4 vertex_main() {
   textureStore_38e8d7();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -23,7 +23,7 @@
 
 layout(r32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_38e8d7() {
-  imageStore(arg_0, ivec3(0, 0, 1), uvec4(0u, 0u, 0u, 0u));
+  imageStore(arg_0, ivec3(0, 0, 1), uvec4(0u));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(r32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_38e8d7() {
-  imageStore(arg_0, ivec3(0, 0, 1), uvec4(0u, 0u, 0u, 0u));
+  imageStore(arg_0, ivec3(0, 0, 1), uvec4(0u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureStore/3a52ac.wgsl.expected.glsl b/test/tint/builtins/gen/textureStore/3a52ac.wgsl.expected.glsl
index 61763f7..604ece2 100644
--- a/test/tint/builtins/gen/textureStore/3a52ac.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureStore/3a52ac.wgsl.expected.glsl
@@ -2,12 +2,12 @@
 
 layout(rgba16i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_3a52ac() {
-  imageStore(arg_0, ivec3(0, 0, 1), ivec4(0, 0, 0, 0));
+  imageStore(arg_0, ivec3(0, 0, 1), ivec4(0));
 }
 
 vec4 vertex_main() {
   textureStore_3a52ac();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -23,7 +23,7 @@
 
 layout(rgba16i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_3a52ac() {
-  imageStore(arg_0, ivec3(0, 0, 1), ivec4(0, 0, 0, 0));
+  imageStore(arg_0, ivec3(0, 0, 1), ivec4(0));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba16i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_3a52ac() {
-  imageStore(arg_0, ivec3(0, 0, 1), ivec4(0, 0, 0, 0));
+  imageStore(arg_0, ivec3(0, 0, 1), ivec4(0));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureStore/3bb7a1.wgsl.expected.glsl b/test/tint/builtins/gen/textureStore/3bb7a1.wgsl.expected.glsl
index 2078d9f..52c2ee4 100644
--- a/test/tint/builtins/gen/textureStore/3bb7a1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureStore/3bb7a1.wgsl.expected.glsl
@@ -2,12 +2,12 @@
 
 layout(r32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_3bb7a1() {
-  imageStore(arg_0, ivec3(0, 0, 1), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  imageStore(arg_0, ivec3(0, 0, 1), vec4(0.0f));
 }
 
 vec4 vertex_main() {
   textureStore_3bb7a1();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -23,7 +23,7 @@
 
 layout(r32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_3bb7a1() {
-  imageStore(arg_0, ivec3(0, 0, 1), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  imageStore(arg_0, ivec3(0, 0, 1), vec4(0.0f));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(r32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_3bb7a1() {
-  imageStore(arg_0, ivec3(0, 0, 1), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  imageStore(arg_0, ivec3(0, 0, 1), vec4(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureStore/441ba8.wgsl.expected.glsl b/test/tint/builtins/gen/textureStore/441ba8.wgsl.expected.glsl
index bb59817..5dfe9b5 100644
--- a/test/tint/builtins/gen/textureStore/441ba8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureStore/441ba8.wgsl.expected.glsl
@@ -2,12 +2,12 @@
 
 layout(rgba32ui) uniform highp writeonly uimage3D arg_0;
 void textureStore_441ba8() {
-  imageStore(arg_0, ivec3(0, 0, 0), uvec4(0u, 0u, 0u, 0u));
+  imageStore(arg_0, ivec3(0), uvec4(0u));
 }
 
 vec4 vertex_main() {
   textureStore_441ba8();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -23,7 +23,7 @@
 
 layout(rgba32ui) uniform highp writeonly uimage3D arg_0;
 void textureStore_441ba8() {
-  imageStore(arg_0, ivec3(0, 0, 0), uvec4(0u, 0u, 0u, 0u));
+  imageStore(arg_0, ivec3(0), uvec4(0u));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba32ui) uniform highp writeonly uimage3D arg_0;
 void textureStore_441ba8() {
-  imageStore(arg_0, ivec3(0, 0, 0), uvec4(0u, 0u, 0u, 0u));
+  imageStore(arg_0, ivec3(0), uvec4(0u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureStore/4fc057.wgsl.expected.glsl b/test/tint/builtins/gen/textureStore/4fc057.wgsl.expected.glsl
index c92e32c..4853b57 100644
--- a/test/tint/builtins/gen/textureStore/4fc057.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureStore/4fc057.wgsl.expected.glsl
@@ -2,12 +2,12 @@
 
 layout(rgba8_snorm) uniform highp writeonly image2DArray arg_0;
 void textureStore_4fc057() {
-  imageStore(arg_0, ivec3(0, 0, 1), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  imageStore(arg_0, ivec3(0, 0, 1), vec4(0.0f));
 }
 
 vec4 vertex_main() {
   textureStore_4fc057();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -23,7 +23,7 @@
 
 layout(rgba8_snorm) uniform highp writeonly image2DArray arg_0;
 void textureStore_4fc057() {
-  imageStore(arg_0, ivec3(0, 0, 1), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  imageStore(arg_0, ivec3(0, 0, 1), vec4(0.0f));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba8_snorm) uniform highp writeonly image2DArray arg_0;
 void textureStore_4fc057() {
-  imageStore(arg_0, ivec3(0, 0, 1), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  imageStore(arg_0, ivec3(0, 0, 1), vec4(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureStore/60975f.wgsl.expected.glsl b/test/tint/builtins/gen/textureStore/60975f.wgsl.expected.glsl
index de7d5dc..acc1ece 100644
--- a/test/tint/builtins/gen/textureStore/60975f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureStore/60975f.wgsl.expected.glsl
@@ -2,12 +2,12 @@
 
 layout(rgba8) uniform highp writeonly image2DArray arg_0;
 void textureStore_60975f() {
-  imageStore(arg_0, ivec3(0, 0, 1), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  imageStore(arg_0, ivec3(0, 0, 1), vec4(0.0f));
 }
 
 vec4 vertex_main() {
   textureStore_60975f();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -23,7 +23,7 @@
 
 layout(rgba8) uniform highp writeonly image2DArray arg_0;
 void textureStore_60975f() {
-  imageStore(arg_0, ivec3(0, 0, 1), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  imageStore(arg_0, ivec3(0, 0, 1), vec4(0.0f));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba8) uniform highp writeonly image2DArray arg_0;
 void textureStore_60975f() {
-  imageStore(arg_0, ivec3(0, 0, 1), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  imageStore(arg_0, ivec3(0, 0, 1), vec4(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureStore/6cff2e.wgsl.expected.glsl b/test/tint/builtins/gen/textureStore/6cff2e.wgsl.expected.glsl
index 822db41..f4458c4 100644
--- a/test/tint/builtins/gen/textureStore/6cff2e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureStore/6cff2e.wgsl.expected.glsl
@@ -2,12 +2,12 @@
 
 layout(r32ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_6cff2e() {
-  imageStore(arg_0, ivec2(0, 0), uvec4(0u, 0u, 0u, 0u));
+  imageStore(arg_0, ivec2(0), uvec4(0u));
 }
 
 vec4 vertex_main() {
   textureStore_6cff2e();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -23,7 +23,7 @@
 
 layout(r32ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_6cff2e() {
-  imageStore(arg_0, ivec2(0, 0), uvec4(0u, 0u, 0u, 0u));
+  imageStore(arg_0, ivec2(0), uvec4(0u));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(r32ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_6cff2e() {
-  imageStore(arg_0, ivec2(0, 0), uvec4(0u, 0u, 0u, 0u));
+  imageStore(arg_0, ivec2(0), uvec4(0u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureStore/6da692.wgsl.expected.glsl b/test/tint/builtins/gen/textureStore/6da692.wgsl.expected.glsl
index d8080ac..81dc6f5 100644
--- a/test/tint/builtins/gen/textureStore/6da692.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureStore/6da692.wgsl.expected.glsl
@@ -2,12 +2,12 @@
 
 layout(rgba16ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_6da692() {
-  imageStore(arg_0, ivec3(0, 0, 1), uvec4(0u, 0u, 0u, 0u));
+  imageStore(arg_0, ivec3(0, 0, 1), uvec4(0u));
 }
 
 vec4 vertex_main() {
   textureStore_6da692();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -23,7 +23,7 @@
 
 layout(rgba16ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_6da692() {
-  imageStore(arg_0, ivec3(0, 0, 1), uvec4(0u, 0u, 0u, 0u));
+  imageStore(arg_0, ivec3(0, 0, 1), uvec4(0u));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba16ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_6da692() {
-  imageStore(arg_0, ivec3(0, 0, 1), uvec4(0u, 0u, 0u, 0u));
+  imageStore(arg_0, ivec3(0, 0, 1), uvec4(0u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureStore/731349.wgsl.expected.glsl b/test/tint/builtins/gen/textureStore/731349.wgsl.expected.glsl
index 170ed65..4d2e294 100644
--- a/test/tint/builtins/gen/textureStore/731349.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureStore/731349.wgsl.expected.glsl
@@ -2,12 +2,12 @@
 
 layout(rgba8) uniform highp writeonly image2D arg_0;
 void textureStore_731349() {
-  imageStore(arg_0, ivec2(0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  imageStore(arg_0, ivec2(0), vec4(0.0f));
 }
 
 vec4 vertex_main() {
   textureStore_731349();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -23,7 +23,7 @@
 
 layout(rgba8) uniform highp writeonly image2D arg_0;
 void textureStore_731349() {
-  imageStore(arg_0, ivec2(0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  imageStore(arg_0, ivec2(0), vec4(0.0f));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba8) uniform highp writeonly image2D arg_0;
 void textureStore_731349() {
-  imageStore(arg_0, ivec2(0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  imageStore(arg_0, ivec2(0), vec4(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureStore/752da6.wgsl.expected.glsl b/test/tint/builtins/gen/textureStore/752da6.wgsl.expected.glsl
index 0758a63..03ea3bb 100644
--- a/test/tint/builtins/gen/textureStore/752da6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureStore/752da6.wgsl.expected.glsl
@@ -2,12 +2,12 @@
 
 layout(rgba32i) uniform highp writeonly iimage2D arg_0;
 void textureStore_752da6() {
-  imageStore(arg_0, ivec2(0, 0), ivec4(0, 0, 0, 0));
+  imageStore(arg_0, ivec2(0), ivec4(0));
 }
 
 vec4 vertex_main() {
   textureStore_752da6();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -23,7 +23,7 @@
 
 layout(rgba32i) uniform highp writeonly iimage2D arg_0;
 void textureStore_752da6() {
-  imageStore(arg_0, ivec2(0, 0), ivec4(0, 0, 0, 0));
+  imageStore(arg_0, ivec2(0), ivec4(0));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba32i) uniform highp writeonly iimage2D arg_0;
 void textureStore_752da6() {
-  imageStore(arg_0, ivec2(0, 0), ivec4(0, 0, 0, 0));
+  imageStore(arg_0, ivec2(0), ivec4(0));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureStore/77c0ae.wgsl.expected.glsl b/test/tint/builtins/gen/textureStore/77c0ae.wgsl.expected.glsl
index 60833b2..34d7601 100644
--- a/test/tint/builtins/gen/textureStore/77c0ae.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureStore/77c0ae.wgsl.expected.glsl
@@ -2,12 +2,12 @@
 
 layout(rgba8ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_77c0ae() {
-  imageStore(arg_0, ivec2(0, 0), uvec4(0u, 0u, 0u, 0u));
+  imageStore(arg_0, ivec2(0), uvec4(0u));
 }
 
 vec4 vertex_main() {
   textureStore_77c0ae();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -23,7 +23,7 @@
 
 layout(rgba8ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_77c0ae() {
-  imageStore(arg_0, ivec2(0, 0), uvec4(0u, 0u, 0u, 0u));
+  imageStore(arg_0, ivec2(0), uvec4(0u));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba8ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_77c0ae() {
-  imageStore(arg_0, ivec2(0, 0), uvec4(0u, 0u, 0u, 0u));
+  imageStore(arg_0, ivec2(0), uvec4(0u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureStore/7cec8d.wgsl.expected.glsl b/test/tint/builtins/gen/textureStore/7cec8d.wgsl.expected.glsl
index ca986aa..0de3060 100644
--- a/test/tint/builtins/gen/textureStore/7cec8d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureStore/7cec8d.wgsl.expected.glsl
@@ -2,12 +2,12 @@
 
 layout(rgba32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_7cec8d() {
-  imageStore(arg_0, ivec3(0, 0, 1), ivec4(0, 0, 0, 0));
+  imageStore(arg_0, ivec3(0, 0, 1), ivec4(0));
 }
 
 vec4 vertex_main() {
   textureStore_7cec8d();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -23,7 +23,7 @@
 
 layout(rgba32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_7cec8d() {
-  imageStore(arg_0, ivec3(0, 0, 1), ivec4(0, 0, 0, 0));
+  imageStore(arg_0, ivec3(0, 0, 1), ivec4(0));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_7cec8d() {
-  imageStore(arg_0, ivec3(0, 0, 1), ivec4(0, 0, 0, 0));
+  imageStore(arg_0, ivec3(0, 0, 1), ivec4(0));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureStore/804942.wgsl.expected.glsl b/test/tint/builtins/gen/textureStore/804942.wgsl.expected.glsl
index fcee8b0..7dc0f6d 100644
--- a/test/tint/builtins/gen/textureStore/804942.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureStore/804942.wgsl.expected.glsl
@@ -2,12 +2,12 @@
 
 layout(r32i) uniform highp writeonly iimage2D arg_0;
 void textureStore_804942() {
-  imageStore(arg_0, ivec2(0, 0), ivec4(0, 0, 0, 0));
+  imageStore(arg_0, ivec2(0), ivec4(0));
 }
 
 vec4 vertex_main() {
   textureStore_804942();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -23,7 +23,7 @@
 
 layout(r32i) uniform highp writeonly iimage2D arg_0;
 void textureStore_804942() {
-  imageStore(arg_0, ivec2(0, 0), ivec4(0, 0, 0, 0));
+  imageStore(arg_0, ivec2(0), ivec4(0));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(r32i) uniform highp writeonly iimage2D arg_0;
 void textureStore_804942() {
-  imageStore(arg_0, ivec2(0, 0), ivec4(0, 0, 0, 0));
+  imageStore(arg_0, ivec2(0), ivec4(0));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureStore/805dae.wgsl.expected.glsl b/test/tint/builtins/gen/textureStore/805dae.wgsl.expected.glsl
index bfe1010..2265a73 100644
--- a/test/tint/builtins/gen/textureStore/805dae.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureStore/805dae.wgsl.expected.glsl
@@ -2,12 +2,12 @@
 
 layout(rgba8_snorm) uniform highp writeonly image2D arg_0;
 void textureStore_805dae() {
-  imageStore(arg_0, ivec2(0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  imageStore(arg_0, ivec2(0), vec4(0.0f));
 }
 
 vec4 vertex_main() {
   textureStore_805dae();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -23,7 +23,7 @@
 
 layout(rgba8_snorm) uniform highp writeonly image2D arg_0;
 void textureStore_805dae() {
-  imageStore(arg_0, ivec2(0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  imageStore(arg_0, ivec2(0), vec4(0.0f));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba8_snorm) uniform highp writeonly image2D arg_0;
 void textureStore_805dae() {
-  imageStore(arg_0, ivec2(0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  imageStore(arg_0, ivec2(0), vec4(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureStore/8e0479.wgsl.expected.glsl b/test/tint/builtins/gen/textureStore/8e0479.wgsl.expected.glsl
index 5a303b1..e0ceb95 100644
--- a/test/tint/builtins/gen/textureStore/8e0479.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureStore/8e0479.wgsl.expected.glsl
@@ -2,12 +2,12 @@
 
 layout(rgba32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_8e0479() {
-  imageStore(arg_0, ivec3(0, 0, 1), uvec4(0u, 0u, 0u, 0u));
+  imageStore(arg_0, ivec3(0, 0, 1), uvec4(0u));
 }
 
 vec4 vertex_main() {
   textureStore_8e0479();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -23,7 +23,7 @@
 
 layout(rgba32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_8e0479() {
-  imageStore(arg_0, ivec3(0, 0, 1), uvec4(0u, 0u, 0u, 0u));
+  imageStore(arg_0, ivec3(0, 0, 1), uvec4(0u));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_8e0479() {
-  imageStore(arg_0, ivec3(0, 0, 1), uvec4(0u, 0u, 0u, 0u));
+  imageStore(arg_0, ivec3(0, 0, 1), uvec4(0u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureStore/8f71a1.wgsl.expected.glsl b/test/tint/builtins/gen/textureStore/8f71a1.wgsl.expected.glsl
index ce8eb02..42ace3d 100644
--- a/test/tint/builtins/gen/textureStore/8f71a1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureStore/8f71a1.wgsl.expected.glsl
@@ -2,12 +2,12 @@
 
 layout(rgba16i) uniform highp writeonly iimage3D arg_0;
 void textureStore_8f71a1() {
-  imageStore(arg_0, ivec3(0, 0, 0), ivec4(0, 0, 0, 0));
+  imageStore(arg_0, ivec3(0), ivec4(0));
 }
 
 vec4 vertex_main() {
   textureStore_8f71a1();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -23,7 +23,7 @@
 
 layout(rgba16i) uniform highp writeonly iimage3D arg_0;
 void textureStore_8f71a1() {
-  imageStore(arg_0, ivec3(0, 0, 0), ivec4(0, 0, 0, 0));
+  imageStore(arg_0, ivec3(0), ivec4(0));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba16i) uniform highp writeonly iimage3D arg_0;
 void textureStore_8f71a1() {
-  imageStore(arg_0, ivec3(0, 0, 0), ivec4(0, 0, 0, 0));
+  imageStore(arg_0, ivec3(0), ivec4(0));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureStore/9a3ecc.wgsl.expected.glsl b/test/tint/builtins/gen/textureStore/9a3ecc.wgsl.expected.glsl
index 4f93898..3867d2a 100644
--- a/test/tint/builtins/gen/textureStore/9a3ecc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureStore/9a3ecc.wgsl.expected.glsl
@@ -2,12 +2,12 @@
 
 layout(rgba32i) uniform highp writeonly iimage3D arg_0;
 void textureStore_9a3ecc() {
-  imageStore(arg_0, ivec3(0, 0, 0), ivec4(0, 0, 0, 0));
+  imageStore(arg_0, ivec3(0), ivec4(0));
 }
 
 vec4 vertex_main() {
   textureStore_9a3ecc();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -23,7 +23,7 @@
 
 layout(rgba32i) uniform highp writeonly iimage3D arg_0;
 void textureStore_9a3ecc() {
-  imageStore(arg_0, ivec3(0, 0, 0), ivec4(0, 0, 0, 0));
+  imageStore(arg_0, ivec3(0), ivec4(0));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba32i) uniform highp writeonly iimage3D arg_0;
 void textureStore_9a3ecc() {
-  imageStore(arg_0, ivec3(0, 0, 0), ivec4(0, 0, 0, 0));
+  imageStore(arg_0, ivec3(0), ivec4(0));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureStore/9d9cd5.wgsl.expected.glsl b/test/tint/builtins/gen/textureStore/9d9cd5.wgsl.expected.glsl
index 11b5bee..9c483a0 100644
--- a/test/tint/builtins/gen/textureStore/9d9cd5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureStore/9d9cd5.wgsl.expected.glsl
@@ -2,12 +2,12 @@
 
 layout(rgba32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_9d9cd5() {
-  imageStore(arg_0, ivec3(0, 0, 1), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  imageStore(arg_0, ivec3(0, 0, 1), vec4(0.0f));
 }
 
 vec4 vertex_main() {
   textureStore_9d9cd5();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -23,7 +23,7 @@
 
 layout(rgba32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_9d9cd5() {
-  imageStore(arg_0, ivec3(0, 0, 1), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  imageStore(arg_0, ivec3(0, 0, 1), vec4(0.0f));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_9d9cd5() {
-  imageStore(arg_0, ivec3(0, 0, 1), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  imageStore(arg_0, ivec3(0, 0, 1), vec4(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureStore/9e3ec5.wgsl.expected.glsl b/test/tint/builtins/gen/textureStore/9e3ec5.wgsl.expected.glsl
index 0277d6c..292c9f6 100644
--- a/test/tint/builtins/gen/textureStore/9e3ec5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureStore/9e3ec5.wgsl.expected.glsl
@@ -2,12 +2,12 @@
 
 layout(rgba16i) uniform highp writeonly iimage2D arg_0;
 void textureStore_9e3ec5() {
-  imageStore(arg_0, ivec2(0, 0), ivec4(0, 0, 0, 0));
+  imageStore(arg_0, ivec2(0), ivec4(0));
 }
 
 vec4 vertex_main() {
   textureStore_9e3ec5();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -23,7 +23,7 @@
 
 layout(rgba16i) uniform highp writeonly iimage2D arg_0;
 void textureStore_9e3ec5() {
-  imageStore(arg_0, ivec2(0, 0), ivec4(0, 0, 0, 0));
+  imageStore(arg_0, ivec2(0), ivec4(0));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba16i) uniform highp writeonly iimage2D arg_0;
 void textureStore_9e3ec5() {
-  imageStore(arg_0, ivec2(0, 0), ivec4(0, 0, 0, 0));
+  imageStore(arg_0, ivec2(0), ivec4(0));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureStore/b706b1.wgsl.expected.glsl b/test/tint/builtins/gen/textureStore/b706b1.wgsl.expected.glsl
index 797a8cc..6e27e12 100644
--- a/test/tint/builtins/gen/textureStore/b706b1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureStore/b706b1.wgsl.expected.glsl
@@ -2,12 +2,12 @@
 
 layout(rgba8i) uniform highp writeonly iimage3D arg_0;
 void textureStore_b706b1() {
-  imageStore(arg_0, ivec3(0, 0, 0), ivec4(0, 0, 0, 0));
+  imageStore(arg_0, ivec3(0), ivec4(0));
 }
 
 vec4 vertex_main() {
   textureStore_b706b1();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -23,7 +23,7 @@
 
 layout(rgba8i) uniform highp writeonly iimage3D arg_0;
 void textureStore_b706b1() {
-  imageStore(arg_0, ivec3(0, 0, 0), ivec4(0, 0, 0, 0));
+  imageStore(arg_0, ivec3(0), ivec4(0));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba8i) uniform highp writeonly iimage3D arg_0;
 void textureStore_b706b1() {
-  imageStore(arg_0, ivec3(0, 0, 0), ivec4(0, 0, 0, 0));
+  imageStore(arg_0, ivec3(0), ivec4(0));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureStore/bbcb7f.wgsl.expected.glsl b/test/tint/builtins/gen/textureStore/bbcb7f.wgsl.expected.glsl
index 7e52091..fbe98a8 100644
--- a/test/tint/builtins/gen/textureStore/bbcb7f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureStore/bbcb7f.wgsl.expected.glsl
@@ -2,12 +2,12 @@
 
 layout(rgba8i) uniform highp writeonly iimage2D arg_0;
 void textureStore_bbcb7f() {
-  imageStore(arg_0, ivec2(0, 0), ivec4(0, 0, 0, 0));
+  imageStore(arg_0, ivec2(0), ivec4(0));
 }
 
 vec4 vertex_main() {
   textureStore_bbcb7f();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -23,7 +23,7 @@
 
 layout(rgba8i) uniform highp writeonly iimage2D arg_0;
 void textureStore_bbcb7f() {
-  imageStore(arg_0, ivec2(0, 0), ivec4(0, 0, 0, 0));
+  imageStore(arg_0, ivec2(0), ivec4(0));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba8i) uniform highp writeonly iimage2D arg_0;
 void textureStore_bbcb7f() {
-  imageStore(arg_0, ivec2(0, 0), ivec4(0, 0, 0, 0));
+  imageStore(arg_0, ivec2(0), ivec4(0));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureStore/be6e30.wgsl.expected.glsl b/test/tint/builtins/gen/textureStore/be6e30.wgsl.expected.glsl
index 31f01cb..9df8efd 100644
--- a/test/tint/builtins/gen/textureStore/be6e30.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureStore/be6e30.wgsl.expected.glsl
@@ -2,12 +2,12 @@
 
 layout(rgba16f) uniform highp writeonly image2D arg_0;
 void textureStore_be6e30() {
-  imageStore(arg_0, ivec2(0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  imageStore(arg_0, ivec2(0), vec4(0.0f));
 }
 
 vec4 vertex_main() {
   textureStore_be6e30();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -23,7 +23,7 @@
 
 layout(rgba16f) uniform highp writeonly image2D arg_0;
 void textureStore_be6e30() {
-  imageStore(arg_0, ivec2(0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  imageStore(arg_0, ivec2(0), vec4(0.0f));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba16f) uniform highp writeonly image2D arg_0;
 void textureStore_be6e30() {
-  imageStore(arg_0, ivec2(0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  imageStore(arg_0, ivec2(0), vec4(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureStore/c5af1e.wgsl.expected.glsl b/test/tint/builtins/gen/textureStore/c5af1e.wgsl.expected.glsl
index f0353e3..7e8006d 100644
--- a/test/tint/builtins/gen/textureStore/c5af1e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureStore/c5af1e.wgsl.expected.glsl
@@ -2,12 +2,12 @@
 
 layout(rgba16f) uniform highp writeonly image3D arg_0;
 void textureStore_c5af1e() {
-  imageStore(arg_0, ivec3(0, 0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  imageStore(arg_0, ivec3(0), vec4(0.0f));
 }
 
 vec4 vertex_main() {
   textureStore_c5af1e();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -23,7 +23,7 @@
 
 layout(rgba16f) uniform highp writeonly image3D arg_0;
 void textureStore_c5af1e() {
-  imageStore(arg_0, ivec3(0, 0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  imageStore(arg_0, ivec3(0), vec4(0.0f));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba16f) uniform highp writeonly image3D arg_0;
 void textureStore_c5af1e() {
-  imageStore(arg_0, ivec3(0, 0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  imageStore(arg_0, ivec3(0), vec4(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureStore/dd7d81.wgsl.expected.glsl b/test/tint/builtins/gen/textureStore/dd7d81.wgsl.expected.glsl
index 14ef8b7..8106b77 100644
--- a/test/tint/builtins/gen/textureStore/dd7d81.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureStore/dd7d81.wgsl.expected.glsl
@@ -2,12 +2,12 @@
 
 layout(rgba8_snorm) uniform highp writeonly image3D arg_0;
 void textureStore_dd7d81() {
-  imageStore(arg_0, ivec3(0, 0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  imageStore(arg_0, ivec3(0), vec4(0.0f));
 }
 
 vec4 vertex_main() {
   textureStore_dd7d81();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -23,7 +23,7 @@
 
 layout(rgba8_snorm) uniform highp writeonly image3D arg_0;
 void textureStore_dd7d81() {
-  imageStore(arg_0, ivec3(0, 0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  imageStore(arg_0, ivec3(0), vec4(0.0f));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba8_snorm) uniform highp writeonly image3D arg_0;
 void textureStore_dd7d81() {
-  imageStore(arg_0, ivec3(0, 0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  imageStore(arg_0, ivec3(0), vec4(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureStore/eb702f.wgsl.expected.glsl b/test/tint/builtins/gen/textureStore/eb702f.wgsl.expected.glsl
index 0e583a7..dbf8045 100644
--- a/test/tint/builtins/gen/textureStore/eb702f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureStore/eb702f.wgsl.expected.glsl
@@ -2,12 +2,12 @@
 
 layout(r32f) uniform highp writeonly image3D arg_0;
 void textureStore_eb702f() {
-  imageStore(arg_0, ivec3(0, 0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  imageStore(arg_0, ivec3(0), vec4(0.0f));
 }
 
 vec4 vertex_main() {
   textureStore_eb702f();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -23,7 +23,7 @@
 
 layout(r32f) uniform highp writeonly image3D arg_0;
 void textureStore_eb702f() {
-  imageStore(arg_0, ivec3(0, 0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  imageStore(arg_0, ivec3(0), vec4(0.0f));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(r32f) uniform highp writeonly image3D arg_0;
 void textureStore_eb702f() {
-  imageStore(arg_0, ivec3(0, 0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  imageStore(arg_0, ivec3(0), vec4(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureStore/eb78b9.wgsl.expected.glsl b/test/tint/builtins/gen/textureStore/eb78b9.wgsl.expected.glsl
index 2ff97d6..ff3eaea 100644
--- a/test/tint/builtins/gen/textureStore/eb78b9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureStore/eb78b9.wgsl.expected.glsl
@@ -2,12 +2,12 @@
 
 layout(r32i) uniform highp writeonly iimage3D arg_0;
 void textureStore_eb78b9() {
-  imageStore(arg_0, ivec3(0, 0, 0), ivec4(0, 0, 0, 0));
+  imageStore(arg_0, ivec3(0), ivec4(0));
 }
 
 vec4 vertex_main() {
   textureStore_eb78b9();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -23,7 +23,7 @@
 
 layout(r32i) uniform highp writeonly iimage3D arg_0;
 void textureStore_eb78b9() {
-  imageStore(arg_0, ivec3(0, 0, 0), ivec4(0, 0, 0, 0));
+  imageStore(arg_0, ivec3(0), ivec4(0));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(r32i) uniform highp writeonly iimage3D arg_0;
 void textureStore_eb78b9() {
-  imageStore(arg_0, ivec3(0, 0, 0), ivec4(0, 0, 0, 0));
+  imageStore(arg_0, ivec3(0), ivec4(0));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureStore/ef9f2f.wgsl.expected.glsl b/test/tint/builtins/gen/textureStore/ef9f2f.wgsl.expected.glsl
index 6f3b0a6..5a8142a 100644
--- a/test/tint/builtins/gen/textureStore/ef9f2f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureStore/ef9f2f.wgsl.expected.glsl
@@ -2,12 +2,12 @@
 
 layout(r32ui) uniform highp writeonly uimage3D arg_0;
 void textureStore_ef9f2f() {
-  imageStore(arg_0, ivec3(0, 0, 0), uvec4(0u, 0u, 0u, 0u));
+  imageStore(arg_0, ivec3(0), uvec4(0u));
 }
 
 vec4 vertex_main() {
   textureStore_ef9f2f();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -23,7 +23,7 @@
 
 layout(r32ui) uniform highp writeonly uimage3D arg_0;
 void textureStore_ef9f2f() {
-  imageStore(arg_0, ivec3(0, 0, 0), uvec4(0u, 0u, 0u, 0u));
+  imageStore(arg_0, ivec3(0), uvec4(0u));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(r32ui) uniform highp writeonly uimage3D arg_0;
 void textureStore_ef9f2f() {
-  imageStore(arg_0, ivec3(0, 0, 0), uvec4(0u, 0u, 0u, 0u));
+  imageStore(arg_0, ivec3(0), uvec4(0u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureStore/f8dead.wgsl.expected.glsl b/test/tint/builtins/gen/textureStore/f8dead.wgsl.expected.glsl
index a0fa754..a71f304 100644
--- a/test/tint/builtins/gen/textureStore/f8dead.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureStore/f8dead.wgsl.expected.glsl
@@ -2,12 +2,12 @@
 
 layout(rgba8ui) uniform highp writeonly uimage3D arg_0;
 void textureStore_f8dead() {
-  imageStore(arg_0, ivec3(0, 0, 0), uvec4(0u, 0u, 0u, 0u));
+  imageStore(arg_0, ivec3(0), uvec4(0u));
 }
 
 vec4 vertex_main() {
   textureStore_f8dead();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -23,7 +23,7 @@
 
 layout(rgba8ui) uniform highp writeonly uimage3D arg_0;
 void textureStore_f8dead() {
-  imageStore(arg_0, ivec3(0, 0, 0), uvec4(0u, 0u, 0u, 0u));
+  imageStore(arg_0, ivec3(0), uvec4(0u));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba8ui) uniform highp writeonly uimage3D arg_0;
 void textureStore_f8dead() {
-  imageStore(arg_0, ivec3(0, 0, 0), uvec4(0u, 0u, 0u, 0u));
+  imageStore(arg_0, ivec3(0), uvec4(0u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureStore/fbf53f.wgsl.expected.glsl b/test/tint/builtins/gen/textureStore/fbf53f.wgsl.expected.glsl
index a24713f..de6cafa 100644
--- a/test/tint/builtins/gen/textureStore/fbf53f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureStore/fbf53f.wgsl.expected.glsl
@@ -2,12 +2,12 @@
 
 layout(rgba8i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_fbf53f() {
-  imageStore(arg_0, ivec3(0, 0, 1), ivec4(0, 0, 0, 0));
+  imageStore(arg_0, ivec3(0, 0, 1), ivec4(0));
 }
 
 vec4 vertex_main() {
   textureStore_fbf53f();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -23,7 +23,7 @@
 
 layout(rgba8i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_fbf53f() {
-  imageStore(arg_0, ivec3(0, 0, 1), ivec4(0, 0, 0, 0));
+  imageStore(arg_0, ivec3(0, 0, 1), ivec4(0));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba8i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_fbf53f() {
-  imageStore(arg_0, ivec3(0, 0, 1), ivec4(0, 0, 0, 0));
+  imageStore(arg_0, ivec3(0, 0, 1), ivec4(0));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/transpose/2585cd.wgsl.expected.glsl b/test/tint/builtins/gen/transpose/2585cd.wgsl.expected.glsl
index e4f38e1..399e599 100644
--- a/test/tint/builtins/gen/transpose/2585cd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/transpose/2585cd.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void transpose_2585cd() {
-  mat3x4 res = transpose(mat4x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
+  mat3x4 res = transpose(mat4x3(vec3(0.0f), vec3(0.0f), vec3(0.0f), vec3(0.0f)));
 }
 
 vec4 vertex_main() {
   transpose_2585cd();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void transpose_2585cd() {
-  mat3x4 res = transpose(mat4x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
+  mat3x4 res = transpose(mat4x3(vec3(0.0f), vec3(0.0f), vec3(0.0f), vec3(0.0f)));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void transpose_2585cd() {
-  mat3x4 res = transpose(mat4x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
+  mat3x4 res = transpose(mat4x3(vec3(0.0f), vec3(0.0f), vec3(0.0f), vec3(0.0f)));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/transpose/31d679.wgsl.expected.glsl b/test/tint/builtins/gen/transpose/31d679.wgsl.expected.glsl
index 627a84e..72f7f83 100644
--- a/test/tint/builtins/gen/transpose/31d679.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/transpose/31d679.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void transpose_31d679() {
-  mat2 res = transpose(mat2(0.0f, 0.0f, 0.0f, 0.0f));
+  mat2 res = transpose(mat2(vec2(0.0f), vec2(0.0f)));
 }
 
 vec4 vertex_main() {
   transpose_31d679();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void transpose_31d679() {
-  mat2 res = transpose(mat2(0.0f, 0.0f, 0.0f, 0.0f));
+  mat2 res = transpose(mat2(vec2(0.0f), vec2(0.0f)));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void transpose_31d679() {
-  mat2 res = transpose(mat2(0.0f, 0.0f, 0.0f, 0.0f));
+  mat2 res = transpose(mat2(vec2(0.0f), vec2(0.0f)));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/transpose/31e37e.wgsl.expected.glsl b/test/tint/builtins/gen/transpose/31e37e.wgsl.expected.glsl
index add3f23..475b3e2 100644
--- a/test/tint/builtins/gen/transpose/31e37e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/transpose/31e37e.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void transpose_31e37e() {
-  mat2x4 res = transpose(mat4x2(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
+  mat2x4 res = transpose(mat4x2(vec2(0.0f), vec2(0.0f), vec2(0.0f), vec2(0.0f)));
 }
 
 vec4 vertex_main() {
   transpose_31e37e();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void transpose_31e37e() {
-  mat2x4 res = transpose(mat4x2(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
+  mat2x4 res = transpose(mat4x2(vec2(0.0f), vec2(0.0f), vec2(0.0f), vec2(0.0f)));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void transpose_31e37e() {
-  mat2x4 res = transpose(mat4x2(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
+  mat2x4 res = transpose(mat4x2(vec2(0.0f), vec2(0.0f), vec2(0.0f), vec2(0.0f)));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/transpose/4ce359.wgsl.expected.glsl b/test/tint/builtins/gen/transpose/4ce359.wgsl.expected.glsl
index 8939e1c..573b373 100644
--- a/test/tint/builtins/gen/transpose/4ce359.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/transpose/4ce359.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void transpose_4ce359() {
-  mat4x2 res = transpose(mat2x4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
+  mat4x2 res = transpose(mat2x4(vec4(0.0f), vec4(0.0f)));
 }
 
 vec4 vertex_main() {
   transpose_4ce359();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void transpose_4ce359() {
-  mat4x2 res = transpose(mat2x4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
+  mat4x2 res = transpose(mat2x4(vec4(0.0f), vec4(0.0f)));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void transpose_4ce359() {
-  mat4x2 res = transpose(mat2x4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
+  mat4x2 res = transpose(mat2x4(vec4(0.0f), vec4(0.0f)));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/transpose/4dc9a1.wgsl.expected.glsl b/test/tint/builtins/gen/transpose/4dc9a1.wgsl.expected.glsl
index e9f161d..c8b7bed 100644
--- a/test/tint/builtins/gen/transpose/4dc9a1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/transpose/4dc9a1.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void transpose_4dc9a1() {
-  mat3x2 res = transpose(mat2x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
+  mat3x2 res = transpose(mat2x3(vec3(0.0f), vec3(0.0f)));
 }
 
 vec4 vertex_main() {
   transpose_4dc9a1();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void transpose_4dc9a1() {
-  mat3x2 res = transpose(mat2x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
+  mat3x2 res = transpose(mat2x3(vec3(0.0f), vec3(0.0f)));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void transpose_4dc9a1() {
-  mat3x2 res = transpose(mat2x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
+  mat3x2 res = transpose(mat2x3(vec3(0.0f), vec3(0.0f)));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/transpose/854336.wgsl.expected.glsl b/test/tint/builtins/gen/transpose/854336.wgsl.expected.glsl
index 2e75149..92a05eb 100644
--- a/test/tint/builtins/gen/transpose/854336.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/transpose/854336.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void transpose_854336() {
-  mat3 res = transpose(mat3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
+  mat3 res = transpose(mat3(vec3(0.0f), vec3(0.0f), vec3(0.0f)));
 }
 
 vec4 vertex_main() {
   transpose_854336();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void transpose_854336() {
-  mat3 res = transpose(mat3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
+  mat3 res = transpose(mat3(vec3(0.0f), vec3(0.0f), vec3(0.0f)));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void transpose_854336() {
-  mat3 res = transpose(mat3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
+  mat3 res = transpose(mat3(vec3(0.0f), vec3(0.0f), vec3(0.0f)));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/transpose/c1b600.wgsl.expected.glsl b/test/tint/builtins/gen/transpose/c1b600.wgsl.expected.glsl
index 82eb50d..28ee7da 100644
--- a/test/tint/builtins/gen/transpose/c1b600.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/transpose/c1b600.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void transpose_c1b600() {
-  mat4 res = transpose(mat4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
+  mat4 res = transpose(mat4(vec4(0.0f), vec4(0.0f), vec4(0.0f), vec4(0.0f)));
 }
 
 vec4 vertex_main() {
   transpose_c1b600();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void transpose_c1b600() {
-  mat4 res = transpose(mat4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
+  mat4 res = transpose(mat4(vec4(0.0f), vec4(0.0f), vec4(0.0f), vec4(0.0f)));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void transpose_c1b600() {
-  mat4 res = transpose(mat4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
+  mat4 res = transpose(mat4(vec4(0.0f), vec4(0.0f), vec4(0.0f), vec4(0.0f)));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/transpose/d8f8ba.wgsl.expected.glsl b/test/tint/builtins/gen/transpose/d8f8ba.wgsl.expected.glsl
index ac3ecdf..185aebd 100644
--- a/test/tint/builtins/gen/transpose/d8f8ba.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/transpose/d8f8ba.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void transpose_d8f8ba() {
-  mat4x3 res = transpose(mat3x4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
+  mat4x3 res = transpose(mat3x4(vec4(0.0f), vec4(0.0f), vec4(0.0f)));
 }
 
 vec4 vertex_main() {
   transpose_d8f8ba();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void transpose_d8f8ba() {
-  mat4x3 res = transpose(mat3x4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
+  mat4x3 res = transpose(mat3x4(vec4(0.0f), vec4(0.0f), vec4(0.0f)));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void transpose_d8f8ba() {
-  mat4x3 res = transpose(mat3x4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
+  mat4x3 res = transpose(mat3x4(vec4(0.0f), vec4(0.0f), vec4(0.0f)));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/transpose/ed4bdc.wgsl.expected.glsl b/test/tint/builtins/gen/transpose/ed4bdc.wgsl.expected.glsl
index d1474d5..b1c3ea3 100644
--- a/test/tint/builtins/gen/transpose/ed4bdc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/transpose/ed4bdc.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void transpose_ed4bdc() {
-  mat2x3 res = transpose(mat3x2(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
+  mat2x3 res = transpose(mat3x2(vec2(0.0f), vec2(0.0f), vec2(0.0f)));
 }
 
 vec4 vertex_main() {
   transpose_ed4bdc();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void transpose_ed4bdc() {
-  mat2x3 res = transpose(mat3x2(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
+  mat2x3 res = transpose(mat3x2(vec2(0.0f), vec2(0.0f), vec2(0.0f)));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void transpose_ed4bdc() {
-  mat2x3 res = transpose(mat3x2(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
+  mat2x3 res = transpose(mat3x2(vec2(0.0f), vec2(0.0f), vec2(0.0f)));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/trunc/562d05.wgsl.expected.glsl b/test/tint/builtins/gen/trunc/562d05.wgsl.expected.glsl
index 5bcdcc9..64f9e12 100644
--- a/test/tint/builtins/gen/trunc/562d05.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/trunc/562d05.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void trunc_562d05() {
-  vec3 res = trunc(vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = trunc(vec3(0.0f));
 }
 
 vec4 vertex_main() {
   trunc_562d05();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void trunc_562d05() {
-  vec3 res = trunc(vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = trunc(vec3(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void trunc_562d05() {
-  vec3 res = trunc(vec3(0.0f, 0.0f, 0.0f));
+  vec3 res = trunc(vec3(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/trunc/e183aa.wgsl.expected.glsl b/test/tint/builtins/gen/trunc/e183aa.wgsl.expected.glsl
index 75fb549..b35e055 100644
--- a/test/tint/builtins/gen/trunc/e183aa.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/trunc/e183aa.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void trunc_e183aa() {
-  vec4 res = trunc(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = trunc(vec4(0.0f));
 }
 
 vec4 vertex_main() {
   trunc_e183aa();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void trunc_e183aa() {
-  vec4 res = trunc(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = trunc(vec4(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void trunc_e183aa() {
-  vec4 res = trunc(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  vec4 res = trunc(vec4(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/trunc/eb83df.wgsl.expected.glsl b/test/tint/builtins/gen/trunc/eb83df.wgsl.expected.glsl
index 24a8209..d4b264e 100644
--- a/test/tint/builtins/gen/trunc/eb83df.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/trunc/eb83df.wgsl.expected.glsl
@@ -6,7 +6,7 @@
 
 vec4 vertex_main() {
   trunc_eb83df();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/trunc/f370d3.wgsl.expected.glsl b/test/tint/builtins/gen/trunc/f370d3.wgsl.expected.glsl
index 93d07fb..c037559 100644
--- a/test/tint/builtins/gen/trunc/f370d3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/trunc/f370d3.wgsl.expected.glsl
@@ -1,12 +1,12 @@
 #version 310 es
 
 void trunc_f370d3() {
-  vec2 res = trunc(vec2(0.0f, 0.0f));
+  vec2 res = trunc(vec2(0.0f));
 }
 
 vec4 vertex_main() {
   trunc_f370d3();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void trunc_f370d3() {
-  vec2 res = trunc(vec2(0.0f, 0.0f));
+  vec2 res = trunc(vec2(0.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void trunc_f370d3() {
-  vec2 res = trunc(vec2(0.0f, 0.0f));
+  vec2 res = trunc(vec2(0.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/unpack2x16float/32a5cf.wgsl.expected.glsl b/test/tint/builtins/gen/unpack2x16float/32a5cf.wgsl.expected.glsl
index b89b95c..8a9c342 100644
--- a/test/tint/builtins/gen/unpack2x16float/32a5cf.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/unpack2x16float/32a5cf.wgsl.expected.glsl
@@ -6,7 +6,7 @@
 
 vec4 vertex_main() {
   unpack2x16float_32a5cf();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/unpack2x16snorm/b4aea6.wgsl.expected.glsl b/test/tint/builtins/gen/unpack2x16snorm/b4aea6.wgsl.expected.glsl
index 0aa117c..7c89bcd 100644
--- a/test/tint/builtins/gen/unpack2x16snorm/b4aea6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/unpack2x16snorm/b4aea6.wgsl.expected.glsl
@@ -6,7 +6,7 @@
 
 vec4 vertex_main() {
   unpack2x16snorm_b4aea6();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/unpack2x16unorm/7699c0.wgsl.expected.glsl b/test/tint/builtins/gen/unpack2x16unorm/7699c0.wgsl.expected.glsl
index dcea7f7..08d6519 100644
--- a/test/tint/builtins/gen/unpack2x16unorm/7699c0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/unpack2x16unorm/7699c0.wgsl.expected.glsl
@@ -6,7 +6,7 @@
 
 vec4 vertex_main() {
   unpack2x16unorm_7699c0();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/unpack4x8snorm/523fb3.wgsl.expected.glsl b/test/tint/builtins/gen/unpack4x8snorm/523fb3.wgsl.expected.glsl
index 7f4bafc..21c913a 100644
--- a/test/tint/builtins/gen/unpack4x8snorm/523fb3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/unpack4x8snorm/523fb3.wgsl.expected.glsl
@@ -6,7 +6,7 @@
 
 vec4 vertex_main() {
   unpack4x8snorm_523fb3();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/gen/unpack4x8unorm/750c74.wgsl.expected.glsl b/test/tint/builtins/gen/unpack4x8unorm/750c74.wgsl.expected.glsl
index ad90ee8..6517ae7 100644
--- a/test/tint/builtins/gen/unpack4x8unorm/750c74.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/unpack4x8unorm/750c74.wgsl.expected.glsl
@@ -6,7 +6,7 @@
 
 vec4 vertex_main() {
   unpack4x8unorm_750c74();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/builtins/insertBits/vec3/i32.spvasm.expected.glsl b/test/tint/builtins/insertBits/vec3/i32.spvasm.expected.glsl
index 1befc7d..8fd8ecd 100644
--- a/test/tint/builtins/insertBits/vec3/i32.spvasm.expected.glsl
+++ b/test/tint/builtins/insertBits/vec3/i32.spvasm.expected.glsl
@@ -7,8 +7,8 @@
 }
 
 void f_1() {
-  ivec3 v = ivec3(0, 0, 0);
-  ivec3 n = ivec3(0, 0, 0);
+  ivec3 v = ivec3(0);
+  ivec3 n = ivec3(0);
   uint offset_1 = 0u;
   uint count = 0u;
   ivec3 x_16 = tint_insert_bits(v, n, offset_1, count);
diff --git a/test/tint/builtins/insertBits/vec3/u32.spvasm.expected.glsl b/test/tint/builtins/insertBits/vec3/u32.spvasm.expected.glsl
index f42aebd..186da21 100644
--- a/test/tint/builtins/insertBits/vec3/u32.spvasm.expected.glsl
+++ b/test/tint/builtins/insertBits/vec3/u32.spvasm.expected.glsl
@@ -7,8 +7,8 @@
 }
 
 void f_1() {
-  uvec3 v = uvec3(0u, 0u, 0u);
-  uvec3 n = uvec3(0u, 0u, 0u);
+  uvec3 v = uvec3(0u);
+  uvec3 n = uvec3(0u);
   uint offset_1 = 0u;
   uint count = 0u;
   uvec3 x_15 = tint_insert_bits(v, n, offset_1, count);
diff --git a/test/tint/builtins/repeated_use.wgsl.expected.glsl b/test/tint/builtins/repeated_use.wgsl.expected.glsl
index 6c50347..630852c 100644
--- a/test/tint/builtins/repeated_use.wgsl.expected.glsl
+++ b/test/tint/builtins/repeated_use.wgsl.expected.glsl
@@ -18,13 +18,13 @@
 
 
 void tint_symbol() {
-  tint_degrees(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  tint_degrees(vec4(0.0f));
   tint_degrees(vec4(1.0f));
   tint_degrees(vec4(1.0f, 2.0f, 3.0f, 4.0f));
-  tint_degrees_1(vec3(0.0f, 0.0f, 0.0f));
+  tint_degrees_1(vec3(0.0f));
   tint_degrees_1(vec3(1.0f));
   tint_degrees_1(vec3(1.0f, 2.0f, 3.0f));
-  tint_degrees_2(vec2(0.0f, 0.0f));
+  tint_degrees_2(vec2(0.0f));
   tint_degrees_2(vec2(1.0f));
   tint_degrees_2(vec2(1.0f, 2.0f));
   tint_degrees_3(1.0f);
diff --git a/test/tint/builtins/textureDimensions/depth_ms.spvasm.expected.glsl b/test/tint/builtins/textureDimensions/depth_ms.spvasm.expected.glsl
index 2d8912e..d4d4faf 100644
--- a/test/tint/builtins/textureDimensions/depth_ms.spvasm.expected.glsl
+++ b/test/tint/builtins/textureDimensions/depth_ms.spvasm.expected.glsl
@@ -1,9 +1,9 @@
 #version 310 es
 
-vec4 tint_symbol_1 = vec4(0.0f, 0.0f, 0.0f, 0.0f);
+vec4 tint_symbol_1 = vec4(0.0f);
 uniform highp sampler2DMS arg_0_1;
 void textureDimensions_f60bdb() {
-  ivec2 res = ivec2(0, 0);
+  ivec2 res = ivec2(0);
   ivec2 x_16 = ivec2(textureSize(arg_0_1));
   res = x_16;
   return;
@@ -16,7 +16,7 @@
 
 void vertex_main_1() {
   textureDimensions_f60bdb();
-  tint_symbol_2(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  tint_symbol_2(vec4(0.0f));
   return;
 }
 
@@ -43,7 +43,7 @@
 
 uniform highp sampler2DMS arg_0_1;
 void textureDimensions_f60bdb() {
-  ivec2 res = ivec2(0, 0);
+  ivec2 res = ivec2(0);
   ivec2 x_16 = ivec2(textureSize(arg_0_1));
   res = x_16;
   return;
@@ -70,7 +70,7 @@
 
 uniform highp sampler2DMS arg_0_1;
 void textureDimensions_f60bdb() {
-  ivec2 res = ivec2(0, 0);
+  ivec2 res = ivec2(0);
   ivec2 x_16 = ivec2(textureSize(arg_0_1));
   res = x_16;
   return;
diff --git a/test/tint/builtins/textureGather/f32/alpha.wgsl.expected.glsl b/test/tint/builtins/textureGather/f32/alpha.wgsl.expected.glsl
index c49cedf..fb86fb4 100644
--- a/test/tint/builtins/textureGather/f32/alpha.wgsl.expected.glsl
+++ b/test/tint/builtins/textureGather/f32/alpha.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 uniform highp sampler2D t_s;
 
 void tint_symbol() {
-  vec4 res = textureGather(t_s, vec2(0.0f, 0.0f), 3);
+  vec4 res = textureGather(t_s, vec2(0.0f), 3);
 }
 
 void main() {
diff --git a/test/tint/builtins/textureGather/f32/blue.wgsl.expected.glsl b/test/tint/builtins/textureGather/f32/blue.wgsl.expected.glsl
index af5fc44..7840c94 100644
--- a/test/tint/builtins/textureGather/f32/blue.wgsl.expected.glsl
+++ b/test/tint/builtins/textureGather/f32/blue.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 uniform highp sampler2D t_s;
 
 void tint_symbol() {
-  vec4 res = textureGather(t_s, vec2(0.0f, 0.0f), 2);
+  vec4 res = textureGather(t_s, vec2(0.0f), 2);
 }
 
 void main() {
diff --git a/test/tint/builtins/textureGather/f32/green.wgsl.expected.glsl b/test/tint/builtins/textureGather/f32/green.wgsl.expected.glsl
index d0d5dbe..fbccb56 100644
--- a/test/tint/builtins/textureGather/f32/green.wgsl.expected.glsl
+++ b/test/tint/builtins/textureGather/f32/green.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 uniform highp sampler2D t_s;
 
 void tint_symbol() {
-  vec4 res = textureGather(t_s, vec2(0.0f, 0.0f), 1);
+  vec4 res = textureGather(t_s, vec2(0.0f), 1);
 }
 
 void main() {
diff --git a/test/tint/builtins/textureGather/f32/red.wgsl.expected.glsl b/test/tint/builtins/textureGather/f32/red.wgsl.expected.glsl
index c1a2571..ad15faf 100644
--- a/test/tint/builtins/textureGather/f32/red.wgsl.expected.glsl
+++ b/test/tint/builtins/textureGather/f32/red.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 uniform highp sampler2D t_s;
 
 void tint_symbol() {
-  vec4 res = textureGather(t_s, vec2(0.0f, 0.0f), 0);
+  vec4 res = textureGather(t_s, vec2(0.0f), 0);
 }
 
 void main() {
diff --git a/test/tint/builtins/textureGather/i32/alpha.wgsl.expected.glsl b/test/tint/builtins/textureGather/i32/alpha.wgsl.expected.glsl
index 5215de2..771cf95 100644
--- a/test/tint/builtins/textureGather/i32/alpha.wgsl.expected.glsl
+++ b/test/tint/builtins/textureGather/i32/alpha.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 uniform highp isampler2D t_s;
 
 void tint_symbol() {
-  ivec4 res = textureGather(t_s, vec2(0.0f, 0.0f), 3);
+  ivec4 res = textureGather(t_s, vec2(0.0f), 3);
 }
 
 void main() {
diff --git a/test/tint/builtins/textureGather/i32/blue.wgsl.expected.glsl b/test/tint/builtins/textureGather/i32/blue.wgsl.expected.glsl
index 1efabfa..0c41727 100644
--- a/test/tint/builtins/textureGather/i32/blue.wgsl.expected.glsl
+++ b/test/tint/builtins/textureGather/i32/blue.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 uniform highp isampler2D t_s;
 
 void tint_symbol() {
-  ivec4 res = textureGather(t_s, vec2(0.0f, 0.0f), 2);
+  ivec4 res = textureGather(t_s, vec2(0.0f), 2);
 }
 
 void main() {
diff --git a/test/tint/builtins/textureGather/i32/green.wgsl.expected.glsl b/test/tint/builtins/textureGather/i32/green.wgsl.expected.glsl
index ea50a62..be8e62f 100644
--- a/test/tint/builtins/textureGather/i32/green.wgsl.expected.glsl
+++ b/test/tint/builtins/textureGather/i32/green.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 uniform highp isampler2D t_s;
 
 void tint_symbol() {
-  ivec4 res = textureGather(t_s, vec2(0.0f, 0.0f), 1);
+  ivec4 res = textureGather(t_s, vec2(0.0f), 1);
 }
 
 void main() {
diff --git a/test/tint/builtins/textureGather/i32/red.wgsl.expected.glsl b/test/tint/builtins/textureGather/i32/red.wgsl.expected.glsl
index 3013d47..e386231 100644
--- a/test/tint/builtins/textureGather/i32/red.wgsl.expected.glsl
+++ b/test/tint/builtins/textureGather/i32/red.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 uniform highp isampler2D t_s;
 
 void tint_symbol() {
-  ivec4 res = textureGather(t_s, vec2(0.0f, 0.0f), 0);
+  ivec4 res = textureGather(t_s, vec2(0.0f), 0);
 }
 
 void main() {
diff --git a/test/tint/builtins/textureGather/u32/alpha.wgsl.expected.glsl b/test/tint/builtins/textureGather/u32/alpha.wgsl.expected.glsl
index 087d1a2..8b8cc4e 100644
--- a/test/tint/builtins/textureGather/u32/alpha.wgsl.expected.glsl
+++ b/test/tint/builtins/textureGather/u32/alpha.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 uniform highp usampler2D t_s;
 
 void tint_symbol() {
-  uvec4 res = textureGather(t_s, vec2(0.0f, 0.0f), 3);
+  uvec4 res = textureGather(t_s, vec2(0.0f), 3);
 }
 
 void main() {
diff --git a/test/tint/builtins/textureGather/u32/blue.wgsl.expected.glsl b/test/tint/builtins/textureGather/u32/blue.wgsl.expected.glsl
index 3329a19..9faa6f1 100644
--- a/test/tint/builtins/textureGather/u32/blue.wgsl.expected.glsl
+++ b/test/tint/builtins/textureGather/u32/blue.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 uniform highp usampler2D t_s;
 
 void tint_symbol() {
-  uvec4 res = textureGather(t_s, vec2(0.0f, 0.0f), 2);
+  uvec4 res = textureGather(t_s, vec2(0.0f), 2);
 }
 
 void main() {
diff --git a/test/tint/builtins/textureGather/u32/green.wgsl.expected.glsl b/test/tint/builtins/textureGather/u32/green.wgsl.expected.glsl
index 832b1d2..ce868e2 100644
--- a/test/tint/builtins/textureGather/u32/green.wgsl.expected.glsl
+++ b/test/tint/builtins/textureGather/u32/green.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 uniform highp usampler2D t_s;
 
 void tint_symbol() {
-  uvec4 res = textureGather(t_s, vec2(0.0f, 0.0f), 1);
+  uvec4 res = textureGather(t_s, vec2(0.0f), 1);
 }
 
 void main() {
diff --git a/test/tint/builtins/textureGather/u32/red.wgsl.expected.glsl b/test/tint/builtins/textureGather/u32/red.wgsl.expected.glsl
index df0ef7b..85550c6 100644
--- a/test/tint/builtins/textureGather/u32/red.wgsl.expected.glsl
+++ b/test/tint/builtins/textureGather/u32/red.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 uniform highp usampler2D t_s;
 
 void tint_symbol() {
-  uvec4 res = textureGather(t_s, vec2(0.0f, 0.0f), 0);
+  uvec4 res = textureGather(t_s, vec2(0.0f), 0);
 }
 
 void main() {
diff --git a/test/tint/builtins/textureLoad/depth_ms.spvasm.expected.glsl b/test/tint/builtins/textureLoad/depth_ms.spvasm.expected.glsl
index 9d64f20..f02ac1f 100644
--- a/test/tint/builtins/textureLoad/depth_ms.spvasm.expected.glsl
+++ b/test/tint/builtins/textureLoad/depth_ms.spvasm.expected.glsl
@@ -1,10 +1,10 @@
 #version 310 es
 
-vec4 tint_symbol_1 = vec4(0.0f, 0.0f, 0.0f, 0.0f);
+vec4 tint_symbol_1 = vec4(0.0f);
 uniform highp sampler2DMS arg_0_1;
 void textureLoad_6273b1() {
   float res = 0.0f;
-  vec4 x_17 = vec4(texelFetch(arg_0_1, ivec2(0, 0), 1).x, 0.0f, 0.0f, 0.0f);
+  vec4 x_17 = vec4(texelFetch(arg_0_1, ivec2(0), 1).x, 0.0f, 0.0f, 0.0f);
   res = x_17.x;
   return;
 }
@@ -16,7 +16,7 @@
 
 void vertex_main_1() {
   textureLoad_6273b1();
-  tint_symbol_2(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  tint_symbol_2(vec4(0.0f));
   return;
 }
 
@@ -44,7 +44,7 @@
 uniform highp sampler2DMS arg_0_1;
 void textureLoad_6273b1() {
   float res = 0.0f;
-  vec4 x_17 = vec4(texelFetch(arg_0_1, ivec2(0, 0), 1).x, 0.0f, 0.0f, 0.0f);
+  vec4 x_17 = vec4(texelFetch(arg_0_1, ivec2(0), 1).x, 0.0f, 0.0f, 0.0f);
   res = x_17.x;
   return;
 }
@@ -71,7 +71,7 @@
 uniform highp sampler2DMS arg_0_1;
 void textureLoad_6273b1() {
   float res = 0.0f;
-  vec4 x_17 = vec4(texelFetch(arg_0_1, ivec2(0, 0), 1).x, 0.0f, 0.0f, 0.0f);
+  vec4 x_17 = vec4(texelFetch(arg_0_1, ivec2(0), 1).x, 0.0f, 0.0f, 0.0f);
   res = x_17.x;
   return;
 }
diff --git a/test/tint/builtins/textureLoad/texture_param.wgsl.expected.glsl b/test/tint/builtins/textureLoad/texture_param.wgsl.expected.glsl
index ca55f53..61bffaa 100644
--- a/test/tint/builtins/textureLoad/texture_param.wgsl.expected.glsl
+++ b/test/tint/builtins/textureLoad/texture_param.wgsl.expected.glsl
@@ -6,12 +6,12 @@
 
 uniform highp isampler2D arg_0_1;
 void doTextureLoad() {
-  ivec4 res = textureLoad2d(arg_0_1, ivec2(0, 0), 0);
+  ivec4 res = textureLoad2d(arg_0_1, ivec2(0), 0);
 }
 
 vec4 vertex_main() {
   doTextureLoad();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
@@ -31,7 +31,7 @@
 
 uniform highp isampler2D arg_0_1;
 void doTextureLoad() {
-  ivec4 res = textureLoad2d(arg_0_1, ivec2(0, 0), 0);
+  ivec4 res = textureLoad2d(arg_0_1, ivec2(0), 0);
 }
 
 void fragment_main() {
@@ -50,7 +50,7 @@
 
 uniform highp isampler2D arg_0_1;
 void doTextureLoad() {
-  ivec4 res = textureLoad2d(arg_0_1, ivec2(0, 0), 0);
+  ivec4 res = textureLoad2d(arg_0_1, ivec2(0), 0);
 }
 
 void compute_main() {
diff --git a/test/tint/expressions/binary/add/mat3x3-mat3x3/f32.wgsl.expected.glsl b/test/tint/expressions/binary/add/mat3x3-mat3x3/f32.wgsl.expected.glsl
index 4eea93e..511d640 100644
--- a/test/tint/expressions/binary/add/mat3x3-mat3x3/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/binary/add/mat3x3-mat3x3/f32.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 void f() {
   mat3 a = mat3(vec3(1.0f, 2.0f, 3.0f), vec3(4.0f, 5.0f, 6.0f), vec3(7.0f, 8.0f, 9.0f));
   mat3 b = mat3(vec3(-1.0f, -2.0f, -3.0f), vec3(-4.0f, -5.0f, -6.0f), vec3(-7.0f, -8.0f, -9.0f));
-  mat3 r = (a + b);
+  mat3 r = (mat3(vec3(1.0f, 2.0f, 3.0f), vec3(4.0f, 5.0f, 6.0f), vec3(7.0f, 8.0f, 9.0f)) + mat3(vec3(-1.0f, -2.0f, -3.0f), vec3(-4.0f, -5.0f, -6.0f), vec3(-7.0f, -8.0f, -9.0f)));
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/expressions/binary/add/scalar-vec3/f32.wgsl.expected.glsl b/test/tint/expressions/binary/add/scalar-vec3/f32.wgsl.expected.glsl
index 0193ade..605223e 100644
--- a/test/tint/expressions/binary/add/scalar-vec3/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/binary/add/scalar-vec3/f32.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 void f() {
   float a = 4.0f;
   vec3 b = vec3(1.0f, 2.0f, 3.0f);
-  vec3 r = (a + b);
+  vec3 r = (4.0f + vec3(1.0f, 2.0f, 3.0f));
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/expressions/binary/add/scalar-vec3/i32.wgsl.expected.glsl b/test/tint/expressions/binary/add/scalar-vec3/i32.wgsl.expected.glsl
index d2ff14e..34bc37d 100644
--- a/test/tint/expressions/binary/add/scalar-vec3/i32.wgsl.expected.glsl
+++ b/test/tint/expressions/binary/add/scalar-vec3/i32.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 void f() {
   int a = 4;
   ivec3 b = ivec3(1, 2, 3);
-  ivec3 r = (a + b);
+  ivec3 r = (4 + ivec3(1, 2, 3));
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/expressions/binary/add/scalar-vec3/u32.wgsl.expected.glsl b/test/tint/expressions/binary/add/scalar-vec3/u32.wgsl.expected.glsl
index 8e4d546..af483c4 100644
--- a/test/tint/expressions/binary/add/scalar-vec3/u32.wgsl.expected.glsl
+++ b/test/tint/expressions/binary/add/scalar-vec3/u32.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 void f() {
   uint a = 4u;
   uvec3 b = uvec3(1u, 2u, 3u);
-  uvec3 r = (a + b);
+  uvec3 r = (4u + uvec3(1u, 2u, 3u));
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/expressions/binary/add/vec3-scalar/f32.wgsl.expected.glsl b/test/tint/expressions/binary/add/vec3-scalar/f32.wgsl.expected.glsl
index 599cb04..9e64562 100644
--- a/test/tint/expressions/binary/add/vec3-scalar/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/binary/add/vec3-scalar/f32.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 void f() {
   vec3 a = vec3(1.0f, 2.0f, 3.0f);
-  vec3 r = (a + 4.0f);
+  vec3 r = (vec3(1.0f, 2.0f, 3.0f) + 4.0f);
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/expressions/binary/add/vec3-scalar/i32.wgsl.expected.glsl b/test/tint/expressions/binary/add/vec3-scalar/i32.wgsl.expected.glsl
index e9e5f02..945deb1 100644
--- a/test/tint/expressions/binary/add/vec3-scalar/i32.wgsl.expected.glsl
+++ b/test/tint/expressions/binary/add/vec3-scalar/i32.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 void f() {
   ivec3 a = ivec3(1, 2, 3);
-  ivec3 r = (a + 4);
+  ivec3 r = (ivec3(1, 2, 3) + 4);
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/expressions/binary/add/vec3-scalar/u32.wgsl.expected.glsl b/test/tint/expressions/binary/add/vec3-scalar/u32.wgsl.expected.glsl
index 2388aab..d45dfcb 100644
--- a/test/tint/expressions/binary/add/vec3-scalar/u32.wgsl.expected.glsl
+++ b/test/tint/expressions/binary/add/vec3-scalar/u32.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 void f() {
   uvec3 a = uvec3(1u, 2u, 3u);
-  uvec3 r = (a + 4u);
+  uvec3 r = (uvec3(1u, 2u, 3u) + 4u);
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/expressions/binary/add/vec3-vec3/f32.wgsl.expected.glsl b/test/tint/expressions/binary/add/vec3-vec3/f32.wgsl.expected.glsl
index 84aae31..eb10ce3 100644
--- a/test/tint/expressions/binary/add/vec3-vec3/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/binary/add/vec3-vec3/f32.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 void f() {
   vec3 a = vec3(1.0f, 2.0f, 3.0f);
   vec3 b = vec3(4.0f, 5.0f, 6.0f);
-  vec3 r = (a + b);
+  vec3 r = (vec3(1.0f, 2.0f, 3.0f) + vec3(4.0f, 5.0f, 6.0f));
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/expressions/binary/add/vec3-vec3/i32.wgsl.expected.glsl b/test/tint/expressions/binary/add/vec3-vec3/i32.wgsl.expected.glsl
index 7c6081d..cad5a2d 100644
--- a/test/tint/expressions/binary/add/vec3-vec3/i32.wgsl.expected.glsl
+++ b/test/tint/expressions/binary/add/vec3-vec3/i32.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 void f() {
   ivec3 a = ivec3(1, 2, 3);
   ivec3 b = ivec3(4, 5, 6);
-  ivec3 r = (a + b);
+  ivec3 r = (ivec3(1, 2, 3) + ivec3(4, 5, 6));
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/expressions/binary/add/vec3-vec3/u32.wgsl.expected.glsl b/test/tint/expressions/binary/add/vec3-vec3/u32.wgsl.expected.glsl
index ef61fd9..c7e9e4a 100644
--- a/test/tint/expressions/binary/add/vec3-vec3/u32.wgsl.expected.glsl
+++ b/test/tint/expressions/binary/add/vec3-vec3/u32.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 void f() {
   uvec3 a = uvec3(1u, 2u, 3u);
   uvec3 b = uvec3(4u, 5u, 6u);
-  uvec3 r = (a + b);
+  uvec3 r = (uvec3(1u, 2u, 3u) + uvec3(4u, 5u, 6u));
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/expressions/binary/bit-and/vec3-vec3/bool.wgsl.expected.glsl b/test/tint/expressions/binary/bit-and/vec3-vec3/bool.wgsl.expected.glsl
index 2c08551..0c1559b 100644
--- a/test/tint/expressions/binary/bit-and/vec3-vec3/bool.wgsl.expected.glsl
+++ b/test/tint/expressions/binary/bit-and/vec3-vec3/bool.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 void f() {
   bvec3 a = bvec3(true, true, false);
   bvec3 b = bvec3(true, false, true);
-  bvec3 r = bvec3(uvec3(a) & uvec3(b));
+  bvec3 r = bvec3(uvec3(bvec3(true, true, false)) & uvec3(bvec3(true, false, true)));
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/expressions/binary/bit-and/vec3-vec3/i32.wgsl.expected.glsl b/test/tint/expressions/binary/bit-and/vec3-vec3/i32.wgsl.expected.glsl
index 96b64b5..b79a8c3 100644
--- a/test/tint/expressions/binary/bit-and/vec3-vec3/i32.wgsl.expected.glsl
+++ b/test/tint/expressions/binary/bit-and/vec3-vec3/i32.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 void f() {
   ivec3 a = ivec3(1, 2, 3);
   ivec3 b = ivec3(4, 5, 6);
-  ivec3 r = (a & b);
+  ivec3 r = (ivec3(1, 2, 3) & ivec3(4, 5, 6));
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/expressions/binary/bit-and/vec3-vec3/u32.wgsl.expected.glsl b/test/tint/expressions/binary/bit-and/vec3-vec3/u32.wgsl.expected.glsl
index 5f0ea43..ff9381a 100644
--- a/test/tint/expressions/binary/bit-and/vec3-vec3/u32.wgsl.expected.glsl
+++ b/test/tint/expressions/binary/bit-and/vec3-vec3/u32.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 void f() {
   uvec3 a = uvec3(1u, 2u, 3u);
   uvec3 b = uvec3(4u, 5u, 6u);
-  uvec3 r = (a & b);
+  uvec3 r = (uvec3(1u, 2u, 3u) & uvec3(4u, 5u, 6u));
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/expressions/binary/bit-or/vec3-vec3/i32.wgsl.expected.glsl b/test/tint/expressions/binary/bit-or/vec3-vec3/i32.wgsl.expected.glsl
index 7da6419..b651abf 100644
--- a/test/tint/expressions/binary/bit-or/vec3-vec3/i32.wgsl.expected.glsl
+++ b/test/tint/expressions/binary/bit-or/vec3-vec3/i32.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 void f() {
   ivec3 a = ivec3(1, 2, 3);
   ivec3 b = ivec3(4, 5, 6);
-  ivec3 r = (a | b);
+  ivec3 r = (ivec3(1, 2, 3) | ivec3(4, 5, 6));
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/expressions/binary/bit-or/vec3-vec3/u32.wgsl.expected.glsl b/test/tint/expressions/binary/bit-or/vec3-vec3/u32.wgsl.expected.glsl
index 0300be8..0f96a6e 100644
--- a/test/tint/expressions/binary/bit-or/vec3-vec3/u32.wgsl.expected.glsl
+++ b/test/tint/expressions/binary/bit-or/vec3-vec3/u32.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 void f() {
   uvec3 a = uvec3(1u, 2u, 3u);
   uvec3 b = uvec3(4u, 5u, 6u);
-  uvec3 r = (a | b);
+  uvec3 r = (uvec3(1u, 2u, 3u) | uvec3(4u, 5u, 6u));
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/expressions/binary/bit-xor/vec3-vec3/i32.wgsl.expected.glsl b/test/tint/expressions/binary/bit-xor/vec3-vec3/i32.wgsl.expected.glsl
index 5ad1563..ff4d37a 100644
--- a/test/tint/expressions/binary/bit-xor/vec3-vec3/i32.wgsl.expected.glsl
+++ b/test/tint/expressions/binary/bit-xor/vec3-vec3/i32.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 void f() {
   ivec3 a = ivec3(1, 2, 3);
   ivec3 b = ivec3(4, 5, 6);
-  ivec3 r = (a ^ b);
+  ivec3 r = (ivec3(1, 2, 3) ^ ivec3(4, 5, 6));
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/expressions/binary/bit-xor/vec3-vec3/u32.wgsl.expected.glsl b/test/tint/expressions/binary/bit-xor/vec3-vec3/u32.wgsl.expected.glsl
index a2f9017..3f86ed9 100644
--- a/test/tint/expressions/binary/bit-xor/vec3-vec3/u32.wgsl.expected.glsl
+++ b/test/tint/expressions/binary/bit-xor/vec3-vec3/u32.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 void f() {
   uvec3 a = uvec3(1u, 2u, 3u);
   uvec3 b = uvec3(4u, 5u, 6u);
-  uvec3 r = (a ^ b);
+  uvec3 r = (uvec3(1u, 2u, 3u) ^ uvec3(4u, 5u, 6u));
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/expressions/binary/div/scalar-vec3/f32.wgsl.expected.glsl b/test/tint/expressions/binary/div/scalar-vec3/f32.wgsl.expected.glsl
index 9e3345b..2eeaa44 100644
--- a/test/tint/expressions/binary/div/scalar-vec3/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/binary/div/scalar-vec3/f32.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 void f() {
   float a = 4.0f;
   vec3 b = vec3(1.0f, 2.0f, 3.0f);
-  vec3 r = (a / b);
+  vec3 r = (4.0f / vec3(1.0f, 2.0f, 3.0f));
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/expressions/binary/div/scalar-vec3/i32.wgsl.expected.glsl b/test/tint/expressions/binary/div/scalar-vec3/i32.wgsl.expected.glsl
index 94f8b1f..441e7e5 100644
--- a/test/tint/expressions/binary/div/scalar-vec3/i32.wgsl.expected.glsl
+++ b/test/tint/expressions/binary/div/scalar-vec3/i32.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 void f() {
   int a = 4;
   ivec3 b = ivec3(1, 2, 3);
-  ivec3 r = (a / b);
+  ivec3 r = (4 / ivec3(1, 2, 3));
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/expressions/binary/div/scalar-vec3/u32.wgsl.expected.glsl b/test/tint/expressions/binary/div/scalar-vec3/u32.wgsl.expected.glsl
index ff9ebbe..8998c23 100644
--- a/test/tint/expressions/binary/div/scalar-vec3/u32.wgsl.expected.glsl
+++ b/test/tint/expressions/binary/div/scalar-vec3/u32.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 void f() {
   uint a = 4u;
   uvec3 b = uvec3(1u, 2u, 3u);
-  uvec3 r = (a / b);
+  uvec3 r = (4u / uvec3(1u, 2u, 3u));
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/expressions/binary/div/vec3-scalar/f32.wgsl.expected.glsl b/test/tint/expressions/binary/div/vec3-scalar/f32.wgsl.expected.glsl
index 822a74d..e48639a 100644
--- a/test/tint/expressions/binary/div/vec3-scalar/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/binary/div/vec3-scalar/f32.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 void f() {
   vec3 a = vec3(1.0f, 2.0f, 3.0f);
-  vec3 r = (a / 4.0f);
+  vec3 r = (vec3(1.0f, 2.0f, 3.0f) / 4.0f);
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/expressions/binary/div/vec3-scalar/i32.wgsl.expected.glsl b/test/tint/expressions/binary/div/vec3-scalar/i32.wgsl.expected.glsl
index 8656015..4b2debc 100644
--- a/test/tint/expressions/binary/div/vec3-scalar/i32.wgsl.expected.glsl
+++ b/test/tint/expressions/binary/div/vec3-scalar/i32.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 void f() {
   ivec3 a = ivec3(1, 2, 3);
-  ivec3 r = (a / 4);
+  ivec3 r = (ivec3(1, 2, 3) / 4);
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/expressions/binary/div/vec3-scalar/u32.wgsl.expected.glsl b/test/tint/expressions/binary/div/vec3-scalar/u32.wgsl.expected.glsl
index fbe58d4..3a0129d 100644
--- a/test/tint/expressions/binary/div/vec3-scalar/u32.wgsl.expected.glsl
+++ b/test/tint/expressions/binary/div/vec3-scalar/u32.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 void f() {
   uvec3 a = uvec3(1u, 2u, 3u);
-  uvec3 r = (a / 4u);
+  uvec3 r = (uvec3(1u, 2u, 3u) / 4u);
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/expressions/binary/div/vec3-vec3/f32.wgsl.expected.glsl b/test/tint/expressions/binary/div/vec3-vec3/f32.wgsl.expected.glsl
index d598d9e..27d6b90 100644
--- a/test/tint/expressions/binary/div/vec3-vec3/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/binary/div/vec3-vec3/f32.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 void f() {
   vec3 a = vec3(1.0f, 2.0f, 3.0f);
   vec3 b = vec3(4.0f, 5.0f, 6.0f);
-  vec3 r = (a / b);
+  vec3 r = (vec3(1.0f, 2.0f, 3.0f) / vec3(4.0f, 5.0f, 6.0f));
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/expressions/binary/div/vec3-vec3/i32.wgsl.expected.glsl b/test/tint/expressions/binary/div/vec3-vec3/i32.wgsl.expected.glsl
index 6d61168..1a916cd 100644
--- a/test/tint/expressions/binary/div/vec3-vec3/i32.wgsl.expected.glsl
+++ b/test/tint/expressions/binary/div/vec3-vec3/i32.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 void f() {
   ivec3 a = ivec3(1, 2, 3);
   ivec3 b = ivec3(4, 5, 6);
-  ivec3 r = (a / b);
+  ivec3 r = (ivec3(1, 2, 3) / ivec3(4, 5, 6));
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/expressions/binary/div/vec3-vec3/u32.wgsl.expected.glsl b/test/tint/expressions/binary/div/vec3-vec3/u32.wgsl.expected.glsl
index 75013bc..fa2d83f 100644
--- a/test/tint/expressions/binary/div/vec3-vec3/u32.wgsl.expected.glsl
+++ b/test/tint/expressions/binary/div/vec3-vec3/u32.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 void f() {
   uvec3 a = uvec3(1u, 2u, 3u);
   uvec3 b = uvec3(4u, 5u, 6u);
-  uvec3 r = (a / b);
+  uvec3 r = (uvec3(1u, 2u, 3u) / uvec3(4u, 5u, 6u));
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/expressions/binary/div_by_zero/by_constant/scalar-vec3/f32.wgsl.expected.glsl b/test/tint/expressions/binary/div_by_zero/by_constant/scalar-vec3/f32.wgsl.expected.glsl
index 7589294..652cd69 100644
--- a/test/tint/expressions/binary/div_by_zero/by_constant/scalar-vec3/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/binary/div_by_zero/by_constant/scalar-vec3/f32.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 void f() {
   float a = 4.0f;
   vec3 b = vec3(0.0f, 2.0f, 0.0f);
-  vec3 r = (a / b);
+  vec3 r = (4.0f / vec3(0.0f, 2.0f, 0.0f));
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/expressions/binary/div_by_zero/by_constant/scalar-vec3/i32.wgsl.expected.glsl b/test/tint/expressions/binary/div_by_zero/by_constant/scalar-vec3/i32.wgsl.expected.glsl
index 2fdf8fe..2bf56ca 100644
--- a/test/tint/expressions/binary/div_by_zero/by_constant/scalar-vec3/i32.wgsl.expected.glsl
+++ b/test/tint/expressions/binary/div_by_zero/by_constant/scalar-vec3/i32.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 void f() {
   int a = 4;
   ivec3 b = ivec3(0, 2, 0);
-  ivec3 r = (a / b);
+  ivec3 r = (4 / ivec3(0, 2, 0));
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/expressions/binary/div_by_zero/by_constant/scalar-vec3/u32.wgsl.expected.glsl b/test/tint/expressions/binary/div_by_zero/by_constant/scalar-vec3/u32.wgsl.expected.glsl
index 6d14d8f..5f10b26 100644
--- a/test/tint/expressions/binary/div_by_zero/by_constant/scalar-vec3/u32.wgsl.expected.glsl
+++ b/test/tint/expressions/binary/div_by_zero/by_constant/scalar-vec3/u32.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 void f() {
   uint a = 4u;
   uvec3 b = uvec3(0u, 2u, 0u);
-  uvec3 r = (a / b);
+  uvec3 r = (4u / uvec3(0u, 2u, 0u));
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/expressions/binary/div_by_zero/by_constant/vec3-scalar/f32.wgsl.expected.glsl b/test/tint/expressions/binary/div_by_zero/by_constant/vec3-scalar/f32.wgsl.expected.glsl
index 3596677..e2ab9bd 100644
--- a/test/tint/expressions/binary/div_by_zero/by_constant/vec3-scalar/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/binary/div_by_zero/by_constant/vec3-scalar/f32.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 void f() {
   vec3 a = vec3(1.0f, 2.0f, 3.0f);
-  vec3 r = (a / 0.0f);
+  vec3 r = (vec3(1.0f, 2.0f, 3.0f) / 0.0f);
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/expressions/binary/div_by_zero/by_constant/vec3-scalar/i32.wgsl.expected.glsl b/test/tint/expressions/binary/div_by_zero/by_constant/vec3-scalar/i32.wgsl.expected.glsl
index 6be0898..0521e66 100644
--- a/test/tint/expressions/binary/div_by_zero/by_constant/vec3-scalar/i32.wgsl.expected.glsl
+++ b/test/tint/expressions/binary/div_by_zero/by_constant/vec3-scalar/i32.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 void f() {
   ivec3 a = ivec3(1, 2, 3);
-  ivec3 r = (a / 0);
+  ivec3 r = (ivec3(1, 2, 3) / 0);
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/expressions/binary/div_by_zero/by_constant/vec3-scalar/u32.wgsl.expected.glsl b/test/tint/expressions/binary/div_by_zero/by_constant/vec3-scalar/u32.wgsl.expected.glsl
index ba0d9a3..47b7ccf 100644
--- a/test/tint/expressions/binary/div_by_zero/by_constant/vec3-scalar/u32.wgsl.expected.glsl
+++ b/test/tint/expressions/binary/div_by_zero/by_constant/vec3-scalar/u32.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 void f() {
   uvec3 a = uvec3(1u, 2u, 3u);
-  uvec3 r = (a / 0u);
+  uvec3 r = (uvec3(1u, 2u, 3u) / 0u);
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/expressions/binary/div_by_zero/by_constant/vec3-vec3/f32.wgsl.expected.glsl b/test/tint/expressions/binary/div_by_zero/by_constant/vec3-vec3/f32.wgsl.expected.glsl
index 561918d..aafb092 100644
--- a/test/tint/expressions/binary/div_by_zero/by_constant/vec3-vec3/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/binary/div_by_zero/by_constant/vec3-vec3/f32.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 void f() {
   vec3 a = vec3(1.0f, 2.0f, 3.0f);
   vec3 b = vec3(0.0f, 5.0f, 0.0f);
-  vec3 r = (a / b);
+  vec3 r = (vec3(1.0f, 2.0f, 3.0f) / vec3(0.0f, 5.0f, 0.0f));
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/expressions/binary/div_by_zero/by_constant/vec3-vec3/i32.wgsl.expected.glsl b/test/tint/expressions/binary/div_by_zero/by_constant/vec3-vec3/i32.wgsl.expected.glsl
index 6e11b34..559229c 100644
--- a/test/tint/expressions/binary/div_by_zero/by_constant/vec3-vec3/i32.wgsl.expected.glsl
+++ b/test/tint/expressions/binary/div_by_zero/by_constant/vec3-vec3/i32.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 void f() {
   ivec3 a = ivec3(1, 2, 3);
   ivec3 b = ivec3(0, 5, 0);
-  ivec3 r = (a / b);
+  ivec3 r = (ivec3(1, 2, 3) / ivec3(0, 5, 0));
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/expressions/binary/div_by_zero/by_constant/vec3-vec3/u32.wgsl.expected.glsl b/test/tint/expressions/binary/div_by_zero/by_constant/vec3-vec3/u32.wgsl.expected.glsl
index 657cdb4..e190fac 100644
--- a/test/tint/expressions/binary/div_by_zero/by_constant/vec3-vec3/u32.wgsl.expected.glsl
+++ b/test/tint/expressions/binary/div_by_zero/by_constant/vec3-vec3/u32.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 void f() {
   uvec3 a = uvec3(1u, 2u, 3u);
   uvec3 b = uvec3(0u, 5u, 0u);
-  uvec3 r = (a / b);
+  uvec3 r = (uvec3(1u, 2u, 3u) / uvec3(0u, 5u, 0u));
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/expressions/binary/left-shift/vector-vector/i32.wgsl.expected.glsl b/test/tint/expressions/binary/left-shift/vector-vector/i32.wgsl.expected.glsl
index 68dccd8..72febf9 100644
--- a/test/tint/expressions/binary/left-shift/vector-vector/i32.wgsl.expected.glsl
+++ b/test/tint/expressions/binary/left-shift/vector-vector/i32.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 void f() {
   ivec3 a = ivec3(1, 2, 3);
   uvec3 b = uvec3(4u, 5u, 6u);
-  ivec3 r = (a << b);
+  ivec3 r = (ivec3(1, 2, 3) << uvec3(4u, 5u, 6u));
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/expressions/binary/left-shift/vector-vector/u32.wgsl.expected.glsl b/test/tint/expressions/binary/left-shift/vector-vector/u32.wgsl.expected.glsl
index ba5db9c..d05ef8e 100644
--- a/test/tint/expressions/binary/left-shift/vector-vector/u32.wgsl.expected.glsl
+++ b/test/tint/expressions/binary/left-shift/vector-vector/u32.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 void f() {
   uvec3 a = uvec3(1u, 2u, 3u);
   uvec3 b = uvec3(4u, 5u, 6u);
-  uvec3 r = (a << b);
+  uvec3 r = (uvec3(1u, 2u, 3u) << uvec3(4u, 5u, 6u));
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/expressions/binary/mod/scalar-vec3/f32.wgsl.expected.glsl b/test/tint/expressions/binary/mod/scalar-vec3/f32.wgsl.expected.glsl
index bccb68c..c3c02b4 100644
--- a/test/tint/expressions/binary/mod/scalar-vec3/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/binary/mod/scalar-vec3/f32.wgsl.expected.glsl
@@ -8,7 +8,7 @@
 void f() {
   float a = 4.0f;
   vec3 b = vec3(1.0f, 2.0f, 3.0f);
-  vec3 r = tint_float_modulo(a, b);
+  vec3 r = tint_float_modulo(4.0f, vec3(1.0f, 2.0f, 3.0f));
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/expressions/binary/mod/scalar-vec3/i32.wgsl.expected.glsl b/test/tint/expressions/binary/mod/scalar-vec3/i32.wgsl.expected.glsl
index 0167016..71f10c6 100644
--- a/test/tint/expressions/binary/mod/scalar-vec3/i32.wgsl.expected.glsl
+++ b/test/tint/expressions/binary/mod/scalar-vec3/i32.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 void f() {
   int a = 4;
   ivec3 b = ivec3(1, 2, 3);
-  ivec3 r = (a % b);
+  ivec3 r = (4 % ivec3(1, 2, 3));
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/expressions/binary/mod/scalar-vec3/u32.wgsl.expected.glsl b/test/tint/expressions/binary/mod/scalar-vec3/u32.wgsl.expected.glsl
index f150a92..65d6c0d 100644
--- a/test/tint/expressions/binary/mod/scalar-vec3/u32.wgsl.expected.glsl
+++ b/test/tint/expressions/binary/mod/scalar-vec3/u32.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 void f() {
   uint a = 4u;
   uvec3 b = uvec3(1u, 2u, 3u);
-  uvec3 r = (a % b);
+  uvec3 r = (4u % uvec3(1u, 2u, 3u));
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/expressions/binary/mod/vec3-scalar/f32.wgsl.expected.glsl b/test/tint/expressions/binary/mod/vec3-scalar/f32.wgsl.expected.glsl
index 8aef558..311032d 100644
--- a/test/tint/expressions/binary/mod/vec3-scalar/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/binary/mod/vec3-scalar/f32.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 void f() {
   vec3 a = vec3(1.0f, 2.0f, 3.0f);
-  vec3 r = tint_float_modulo(a, 4.0f);
+  vec3 r = tint_float_modulo(vec3(1.0f, 2.0f, 3.0f), 4.0f);
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/expressions/binary/mod/vec3-scalar/i32.wgsl.expected.glsl b/test/tint/expressions/binary/mod/vec3-scalar/i32.wgsl.expected.glsl
index 4ffb72d..7b086cb 100644
--- a/test/tint/expressions/binary/mod/vec3-scalar/i32.wgsl.expected.glsl
+++ b/test/tint/expressions/binary/mod/vec3-scalar/i32.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 void f() {
   ivec3 a = ivec3(1, 2, 3);
-  ivec3 r = (a % 4);
+  ivec3 r = (ivec3(1, 2, 3) % 4);
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/expressions/binary/mod/vec3-scalar/u32.wgsl.expected.glsl b/test/tint/expressions/binary/mod/vec3-scalar/u32.wgsl.expected.glsl
index e4ac530..b8be2c3 100644
--- a/test/tint/expressions/binary/mod/vec3-scalar/u32.wgsl.expected.glsl
+++ b/test/tint/expressions/binary/mod/vec3-scalar/u32.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 void f() {
   uvec3 a = uvec3(1u, 2u, 3u);
-  uvec3 r = (a % 4u);
+  uvec3 r = (uvec3(1u, 2u, 3u) % 4u);
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/expressions/binary/mod/vec3-vec3/f32.wgsl.expected.glsl b/test/tint/expressions/binary/mod/vec3-vec3/f32.wgsl.expected.glsl
index 99b1ce5..6adf250 100644
--- a/test/tint/expressions/binary/mod/vec3-vec3/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/binary/mod/vec3-vec3/f32.wgsl.expected.glsl
@@ -8,7 +8,7 @@
 void f() {
   vec3 a = vec3(1.0f, 2.0f, 3.0f);
   vec3 b = vec3(4.0f, 5.0f, 6.0f);
-  vec3 r = tint_float_modulo(a, b);
+  vec3 r = tint_float_modulo(vec3(1.0f, 2.0f, 3.0f), vec3(4.0f, 5.0f, 6.0f));
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/expressions/binary/mod/vec3-vec3/i32.wgsl.expected.glsl b/test/tint/expressions/binary/mod/vec3-vec3/i32.wgsl.expected.glsl
index 56d7104..6377363 100644
--- a/test/tint/expressions/binary/mod/vec3-vec3/i32.wgsl.expected.glsl
+++ b/test/tint/expressions/binary/mod/vec3-vec3/i32.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 void f() {
   ivec3 a = ivec3(1, 2, 3);
   ivec3 b = ivec3(4, 5, 6);
-  ivec3 r = (a % b);
+  ivec3 r = (ivec3(1, 2, 3) % ivec3(4, 5, 6));
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/expressions/binary/mod/vec3-vec3/u32.wgsl.expected.glsl b/test/tint/expressions/binary/mod/vec3-vec3/u32.wgsl.expected.glsl
index bd85a3e..c3320af 100644
--- a/test/tint/expressions/binary/mod/vec3-vec3/u32.wgsl.expected.glsl
+++ b/test/tint/expressions/binary/mod/vec3-vec3/u32.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 void f() {
   uvec3 a = uvec3(1u, 2u, 3u);
   uvec3 b = uvec3(4u, 5u, 6u);
-  uvec3 r = (a % b);
+  uvec3 r = (uvec3(1u, 2u, 3u) % uvec3(4u, 5u, 6u));
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/expressions/binary/mod_by_zero/by_constant/scalar-vec3/i32.wgsl.expected.glsl b/test/tint/expressions/binary/mod_by_zero/by_constant/scalar-vec3/i32.wgsl.expected.glsl
index e19dc46..db2826c 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_constant/scalar-vec3/i32.wgsl.expected.glsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_constant/scalar-vec3/i32.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 void f() {
   int a = 4;
   ivec3 b = ivec3(0, 2, 0);
-  ivec3 r = (a % b);
+  ivec3 r = (4 % ivec3(0, 2, 0));
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/expressions/binary/mod_by_zero/by_constant/scalar-vec3/u32.wgsl.expected.glsl b/test/tint/expressions/binary/mod_by_zero/by_constant/scalar-vec3/u32.wgsl.expected.glsl
index 633b9ed..0110858 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_constant/scalar-vec3/u32.wgsl.expected.glsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_constant/scalar-vec3/u32.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 void f() {
   uint a = 4u;
   uvec3 b = uvec3(0u, 2u, 0u);
-  uvec3 r = (a % b);
+  uvec3 r = (4u % uvec3(0u, 2u, 0u));
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-scalar/i32.wgsl.expected.glsl b/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-scalar/i32.wgsl.expected.glsl
index c2e9b36..d2e5cb92 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-scalar/i32.wgsl.expected.glsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-scalar/i32.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 void f() {
   ivec3 a = ivec3(1, 2, 3);
-  ivec3 r = (a % 0);
+  ivec3 r = (ivec3(1, 2, 3) % 0);
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-scalar/u32.wgsl.expected.glsl b/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-scalar/u32.wgsl.expected.glsl
index 47e19a3..82d68ba 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-scalar/u32.wgsl.expected.glsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-scalar/u32.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 void f() {
   uvec3 a = uvec3(1u, 2u, 3u);
-  uvec3 r = (a % 0u);
+  uvec3 r = (uvec3(1u, 2u, 3u) % 0u);
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-vec3/f32.wgsl.expected.glsl b/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-vec3/f32.wgsl.expected.glsl
index 3b69dee..32febbd 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-vec3/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-vec3/f32.wgsl.expected.glsl
@@ -8,7 +8,7 @@
 void f() {
   vec3 a = vec3(1.0f, 2.0f, 3.0f);
   vec3 b = vec3(0.0f, 5.0f, 0.0f);
-  vec3 r = tint_float_modulo(a, b);
+  vec3 r = tint_float_modulo(vec3(1.0f, 2.0f, 3.0f), vec3(0.0f, 5.0f, 0.0f));
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-vec3/i32.wgsl.expected.glsl b/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-vec3/i32.wgsl.expected.glsl
index 809b454..e86e1c0 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-vec3/i32.wgsl.expected.glsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-vec3/i32.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 void f() {
   ivec3 a = ivec3(1, 2, 3);
   ivec3 b = ivec3(0, 5, 0);
-  ivec3 r = (a % b);
+  ivec3 r = (ivec3(1, 2, 3) % ivec3(0, 5, 0));
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-vec3/u32.wgsl.expected.glsl b/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-vec3/u32.wgsl.expected.glsl
index af4c44f..f621a75 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-vec3/u32.wgsl.expected.glsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-vec3/u32.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 void f() {
   uvec3 a = uvec3(1u, 2u, 3u);
   uvec3 b = uvec3(0u, 5u, 0u);
-  uvec3 r = (a % b);
+  uvec3 r = (uvec3(1u, 2u, 3u) % uvec3(0u, 5u, 0u));
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/expressions/binary/mul/mat2x4-mat4x2/f32.wgsl.expected.glsl b/test/tint/expressions/binary/mul/mat2x4-mat4x2/f32.wgsl.expected.glsl
index f5d9ebe..90c01d9 100644
--- a/test/tint/expressions/binary/mul/mat2x4-mat4x2/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/binary/mul/mat2x4-mat4x2/f32.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 void f() {
   mat2x4 a = mat2x4(vec4(1.0f, 2.0f, 3.0f, 4.0f), vec4(5.0f, 6.0f, 7.0f, 8.0f));
   mat4x2 b = mat4x2(vec2(-1.0f, -2.0f), vec2(-3.0f, -4.0f), vec2(-5.0f, -6.0f), vec2(-7.0f, -8.0f));
-  mat4 r = (a * b);
+  mat4 r = (mat2x4(vec4(1.0f, 2.0f, 3.0f, 4.0f), vec4(5.0f, 6.0f, 7.0f, 8.0f)) * mat4x2(vec2(-1.0f, -2.0f), vec2(-3.0f, -4.0f), vec2(-5.0f, -6.0f), vec2(-7.0f, -8.0f)));
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/expressions/binary/mul/mat3x3-mat3x3/f32.wgsl.expected.glsl b/test/tint/expressions/binary/mul/mat3x3-mat3x3/f32.wgsl.expected.glsl
index 4b6166c..70ae213 100644
--- a/test/tint/expressions/binary/mul/mat3x3-mat3x3/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/binary/mul/mat3x3-mat3x3/f32.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 void f() {
   mat3 a = mat3(vec3(1.0f, 2.0f, 3.0f), vec3(4.0f, 5.0f, 6.0f), vec3(7.0f, 8.0f, 9.0f));
   mat3 b = mat3(vec3(-1.0f, -2.0f, -3.0f), vec3(-4.0f, -5.0f, -6.0f), vec3(-7.0f, -8.0f, -9.0f));
-  mat3 r = (a * b);
+  mat3 r = (mat3(vec3(1.0f, 2.0f, 3.0f), vec3(4.0f, 5.0f, 6.0f), vec3(7.0f, 8.0f, 9.0f)) * mat3(vec3(-1.0f, -2.0f, -3.0f), vec3(-4.0f, -5.0f, -6.0f), vec3(-7.0f, -8.0f, -9.0f)));
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/expressions/binary/mul/mat4x2-mat2x4/f32.wgsl.expected.glsl b/test/tint/expressions/binary/mul/mat4x2-mat2x4/f32.wgsl.expected.glsl
index ff454c9..d14744c 100644
--- a/test/tint/expressions/binary/mul/mat4x2-mat2x4/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/binary/mul/mat4x2-mat2x4/f32.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 void f() {
   mat4x2 a = mat4x2(vec2(-1.0f, -2.0f), vec2(-3.0f, -4.0f), vec2(-5.0f, -6.0f), vec2(-7.0f, -8.0f));
   mat2x4 b = mat2x4(vec4(1.0f, 2.0f, 3.0f, 4.0f), vec4(5.0f, 6.0f, 7.0f, 8.0f));
-  mat2 r = (a * b);
+  mat2 r = (mat4x2(vec2(-1.0f, -2.0f), vec2(-3.0f, -4.0f), vec2(-5.0f, -6.0f), vec2(-7.0f, -8.0f)) * mat2x4(vec4(1.0f, 2.0f, 3.0f, 4.0f), vec4(5.0f, 6.0f, 7.0f, 8.0f)));
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/expressions/binary/mul/scalar-vec3/f32.wgsl.expected.glsl b/test/tint/expressions/binary/mul/scalar-vec3/f32.wgsl.expected.glsl
index e24420f..fdf60b7 100644
--- a/test/tint/expressions/binary/mul/scalar-vec3/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/binary/mul/scalar-vec3/f32.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 void f() {
   float a = 4.0f;
   vec3 b = vec3(1.0f, 2.0f, 3.0f);
-  vec3 r = (a * b);
+  vec3 r = (4.0f * vec3(1.0f, 2.0f, 3.0f));
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/expressions/binary/mul/scalar-vec3/i32.wgsl.expected.glsl b/test/tint/expressions/binary/mul/scalar-vec3/i32.wgsl.expected.glsl
index f431bdd..1af8a7f 100644
--- a/test/tint/expressions/binary/mul/scalar-vec3/i32.wgsl.expected.glsl
+++ b/test/tint/expressions/binary/mul/scalar-vec3/i32.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 void f() {
   int a = 4;
   ivec3 b = ivec3(1, 2, 3);
-  ivec3 r = (a * b);
+  ivec3 r = (4 * ivec3(1, 2, 3));
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/expressions/binary/mul/scalar-vec3/u32.wgsl.expected.glsl b/test/tint/expressions/binary/mul/scalar-vec3/u32.wgsl.expected.glsl
index 3fffc73..757c58b 100644
--- a/test/tint/expressions/binary/mul/scalar-vec3/u32.wgsl.expected.glsl
+++ b/test/tint/expressions/binary/mul/scalar-vec3/u32.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 void f() {
   uint a = 4u;
   uvec3 b = uvec3(1u, 2u, 3u);
-  uvec3 r = (a * b);
+  uvec3 r = (4u * uvec3(1u, 2u, 3u));
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/expressions/binary/mul/vec3-scalar/f32.wgsl.expected.glsl b/test/tint/expressions/binary/mul/vec3-scalar/f32.wgsl.expected.glsl
index 1e5e9c4..769f795 100644
--- a/test/tint/expressions/binary/mul/vec3-scalar/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/binary/mul/vec3-scalar/f32.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 void f() {
   vec3 a = vec3(1.0f, 2.0f, 3.0f);
-  vec3 r = (a * 4.0f);
+  vec3 r = (vec3(1.0f, 2.0f, 3.0f) * 4.0f);
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/expressions/binary/mul/vec3-scalar/i32.wgsl.expected.glsl b/test/tint/expressions/binary/mul/vec3-scalar/i32.wgsl.expected.glsl
index daadb77..883c384 100644
--- a/test/tint/expressions/binary/mul/vec3-scalar/i32.wgsl.expected.glsl
+++ b/test/tint/expressions/binary/mul/vec3-scalar/i32.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 void f() {
   ivec3 a = ivec3(1, 2, 3);
-  ivec3 r = (a * 4);
+  ivec3 r = (ivec3(1, 2, 3) * 4);
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/expressions/binary/mul/vec3-scalar/u32.wgsl.expected.glsl b/test/tint/expressions/binary/mul/vec3-scalar/u32.wgsl.expected.glsl
index 847015b..1d0f146 100644
--- a/test/tint/expressions/binary/mul/vec3-scalar/u32.wgsl.expected.glsl
+++ b/test/tint/expressions/binary/mul/vec3-scalar/u32.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 void f() {
   uvec3 a = uvec3(1u, 2u, 3u);
-  uvec3 r = (a * 4u);
+  uvec3 r = (uvec3(1u, 2u, 3u) * 4u);
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/expressions/binary/mul/vec3-vec3/f32.wgsl.expected.glsl b/test/tint/expressions/binary/mul/vec3-vec3/f32.wgsl.expected.glsl
index 1fe03cd..2c30e82 100644
--- a/test/tint/expressions/binary/mul/vec3-vec3/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/binary/mul/vec3-vec3/f32.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 void f() {
   vec3 a = vec3(1.0f, 2.0f, 3.0f);
   vec3 b = vec3(4.0f, 5.0f, 6.0f);
-  vec3 r = (a * b);
+  vec3 r = (vec3(1.0f, 2.0f, 3.0f) * vec3(4.0f, 5.0f, 6.0f));
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/expressions/binary/mul/vec3-vec3/i32.wgsl.expected.glsl b/test/tint/expressions/binary/mul/vec3-vec3/i32.wgsl.expected.glsl
index 6974064..d5f10dd 100644
--- a/test/tint/expressions/binary/mul/vec3-vec3/i32.wgsl.expected.glsl
+++ b/test/tint/expressions/binary/mul/vec3-vec3/i32.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 void f() {
   ivec3 a = ivec3(1, 2, 3);
   ivec3 b = ivec3(4, 5, 6);
-  ivec3 r = (a * b);
+  ivec3 r = (ivec3(1, 2, 3) * ivec3(4, 5, 6));
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/expressions/binary/mul/vec3-vec3/u32.wgsl.expected.glsl b/test/tint/expressions/binary/mul/vec3-vec3/u32.wgsl.expected.glsl
index 7cd4b4d..716e64e 100644
--- a/test/tint/expressions/binary/mul/vec3-vec3/u32.wgsl.expected.glsl
+++ b/test/tint/expressions/binary/mul/vec3-vec3/u32.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 void f() {
   uvec3 a = uvec3(1u, 2u, 3u);
   uvec3 b = uvec3(4u, 5u, 6u);
-  uvec3 r = (a * b);
+  uvec3 r = (uvec3(1u, 2u, 3u) * uvec3(4u, 5u, 6u));
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/expressions/binary/right-shift/vector-vector/i32.wgsl.expected.glsl b/test/tint/expressions/binary/right-shift/vector-vector/i32.wgsl.expected.glsl
index ca2842c..ec9e521 100644
--- a/test/tint/expressions/binary/right-shift/vector-vector/i32.wgsl.expected.glsl
+++ b/test/tint/expressions/binary/right-shift/vector-vector/i32.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 void f() {
   ivec3 a = ivec3(1, 2, 3);
   uvec3 b = uvec3(4u, 5u, 6u);
-  ivec3 r = (a >> b);
+  ivec3 r = (ivec3(1, 2, 3) >> uvec3(4u, 5u, 6u));
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/expressions/binary/right-shift/vector-vector/u32.wgsl.expected.glsl b/test/tint/expressions/binary/right-shift/vector-vector/u32.wgsl.expected.glsl
index a292377..c121079 100644
--- a/test/tint/expressions/binary/right-shift/vector-vector/u32.wgsl.expected.glsl
+++ b/test/tint/expressions/binary/right-shift/vector-vector/u32.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 void f() {
   uvec3 a = uvec3(1u, 2u, 3u);
   uvec3 b = uvec3(4u, 5u, 6u);
-  uvec3 r = (a >> b);
+  uvec3 r = (uvec3(1u, 2u, 3u) >> uvec3(4u, 5u, 6u));
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/expressions/binary/sub/mat3x3-mat3x3/f32.wgsl.expected.glsl b/test/tint/expressions/binary/sub/mat3x3-mat3x3/f32.wgsl.expected.glsl
index aadd9ec..b446473 100644
--- a/test/tint/expressions/binary/sub/mat3x3-mat3x3/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/binary/sub/mat3x3-mat3x3/f32.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 void f() {
   mat3 a = mat3(vec3(1.0f, 2.0f, 3.0f), vec3(4.0f, 5.0f, 6.0f), vec3(7.0f, 8.0f, 9.0f));
   mat3 b = mat3(vec3(-1.0f, -2.0f, -3.0f), vec3(-4.0f, -5.0f, -6.0f), vec3(-7.0f, -8.0f, -9.0f));
-  mat3 r = (a - b);
+  mat3 r = (mat3(vec3(1.0f, 2.0f, 3.0f), vec3(4.0f, 5.0f, 6.0f), vec3(7.0f, 8.0f, 9.0f)) - mat3(vec3(-1.0f, -2.0f, -3.0f), vec3(-4.0f, -5.0f, -6.0f), vec3(-7.0f, -8.0f, -9.0f)));
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/expressions/binary/sub/scalar-vec3/f32.wgsl.expected.glsl b/test/tint/expressions/binary/sub/scalar-vec3/f32.wgsl.expected.glsl
index f50f51a..aff4b7a 100644
--- a/test/tint/expressions/binary/sub/scalar-vec3/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/binary/sub/scalar-vec3/f32.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 void f() {
   float a = 4.0f;
   vec3 b = vec3(1.0f, 2.0f, 3.0f);
-  vec3 r = (a - b);
+  vec3 r = (4.0f - vec3(1.0f, 2.0f, 3.0f));
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/expressions/binary/sub/scalar-vec3/i32.wgsl.expected.glsl b/test/tint/expressions/binary/sub/scalar-vec3/i32.wgsl.expected.glsl
index 85753f2..326d6bf 100644
--- a/test/tint/expressions/binary/sub/scalar-vec3/i32.wgsl.expected.glsl
+++ b/test/tint/expressions/binary/sub/scalar-vec3/i32.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 void f() {
   int a = 4;
   ivec3 b = ivec3(1, 2, 3);
-  ivec3 r = (a - b);
+  ivec3 r = (4 - ivec3(1, 2, 3));
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/expressions/binary/sub/scalar-vec3/u32.wgsl.expected.glsl b/test/tint/expressions/binary/sub/scalar-vec3/u32.wgsl.expected.glsl
index 73cf7c3..b4b985d 100644
--- a/test/tint/expressions/binary/sub/scalar-vec3/u32.wgsl.expected.glsl
+++ b/test/tint/expressions/binary/sub/scalar-vec3/u32.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 void f() {
   uint a = 4u;
   uvec3 b = uvec3(1u, 2u, 3u);
-  uvec3 r = (a - b);
+  uvec3 r = (4u - uvec3(1u, 2u, 3u));
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/expressions/binary/sub/vec3-scalar/f32.wgsl.expected.glsl b/test/tint/expressions/binary/sub/vec3-scalar/f32.wgsl.expected.glsl
index 0eee275..f9a59ee 100644
--- a/test/tint/expressions/binary/sub/vec3-scalar/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/binary/sub/vec3-scalar/f32.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 void f() {
   vec3 a = vec3(1.0f, 2.0f, 3.0f);
-  vec3 r = (a - 4.0f);
+  vec3 r = (vec3(1.0f, 2.0f, 3.0f) - 4.0f);
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/expressions/binary/sub/vec3-scalar/i32.wgsl.expected.glsl b/test/tint/expressions/binary/sub/vec3-scalar/i32.wgsl.expected.glsl
index bdb3b3d..29b0229 100644
--- a/test/tint/expressions/binary/sub/vec3-scalar/i32.wgsl.expected.glsl
+++ b/test/tint/expressions/binary/sub/vec3-scalar/i32.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 void f() {
   ivec3 a = ivec3(1, 2, 3);
-  ivec3 r = (a - 4);
+  ivec3 r = (ivec3(1, 2, 3) - 4);
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/expressions/binary/sub/vec3-scalar/u32.wgsl.expected.glsl b/test/tint/expressions/binary/sub/vec3-scalar/u32.wgsl.expected.glsl
index 75a50ae..8a96f39 100644
--- a/test/tint/expressions/binary/sub/vec3-scalar/u32.wgsl.expected.glsl
+++ b/test/tint/expressions/binary/sub/vec3-scalar/u32.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 void f() {
   uvec3 a = uvec3(1u, 2u, 3u);
-  uvec3 r = (a - 4u);
+  uvec3 r = (uvec3(1u, 2u, 3u) - 4u);
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/expressions/binary/sub/vec3-vec3/f32.wgsl.expected.glsl b/test/tint/expressions/binary/sub/vec3-vec3/f32.wgsl.expected.glsl
index d180ab6..71950a6 100644
--- a/test/tint/expressions/binary/sub/vec3-vec3/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/binary/sub/vec3-vec3/f32.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 void f() {
   vec3 a = vec3(1.0f, 2.0f, 3.0f);
   vec3 b = vec3(4.0f, 5.0f, 6.0f);
-  vec3 r = (a - b);
+  vec3 r = (vec3(1.0f, 2.0f, 3.0f) - vec3(4.0f, 5.0f, 6.0f));
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/expressions/binary/sub/vec3-vec3/i32.wgsl.expected.glsl b/test/tint/expressions/binary/sub/vec3-vec3/i32.wgsl.expected.glsl
index dca3b15..d5b1117 100644
--- a/test/tint/expressions/binary/sub/vec3-vec3/i32.wgsl.expected.glsl
+++ b/test/tint/expressions/binary/sub/vec3-vec3/i32.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 void f() {
   ivec3 a = ivec3(1, 2, 3);
   ivec3 b = ivec3(4, 5, 6);
-  ivec3 r = (a - b);
+  ivec3 r = (ivec3(1, 2, 3) - ivec3(4, 5, 6));
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/expressions/binary/sub/vec3-vec3/u32.wgsl.expected.glsl b/test/tint/expressions/binary/sub/vec3-vec3/u32.wgsl.expected.glsl
index 367b257..ba6ac6a 100644
--- a/test/tint/expressions/binary/sub/vec3-vec3/u32.wgsl.expected.glsl
+++ b/test/tint/expressions/binary/sub/vec3-vec3/u32.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 void f() {
   uvec3 a = uvec3(1u, 2u, 3u);
   uvec3 b = uvec3(4u, 5u, 6u);
-  uvec3 r = (a - b);
+  uvec3 r = (uvec3(1u, 2u, 3u) - uvec3(4u, 5u, 6u));
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/expressions/bitcast/vector/f32-f32.wgsl.expected.glsl b/test/tint/expressions/bitcast/vector/f32-f32.wgsl.expected.glsl
index ed3989d..0fc03fe 100644
--- a/test/tint/expressions/bitcast/vector/f32-f32.wgsl.expected.glsl
+++ b/test/tint/expressions/bitcast/vector/f32-f32.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 void f() {
   vec3 a = vec3(1.0f, 2.0f, 3.0f);
-  vec3 b = a;
+  vec3 b = vec3(1.0f, 2.0f, 3.0f);
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/expressions/bitcast/vector/f32-i32.wgsl.expected.glsl b/test/tint/expressions/bitcast/vector/f32-i32.wgsl.expected.glsl
index 551b039..68fcc82 100644
--- a/test/tint/expressions/bitcast/vector/f32-i32.wgsl.expected.glsl
+++ b/test/tint/expressions/bitcast/vector/f32-i32.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 void f() {
   vec3 a = vec3(1.0f, 2.0f, 3.0f);
-  ivec3 b = floatBitsToInt(a);
+  ivec3 b = floatBitsToInt(vec3(1.0f, 2.0f, 3.0f));
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/expressions/bitcast/vector/f32-u32.wgsl.expected.glsl b/test/tint/expressions/bitcast/vector/f32-u32.wgsl.expected.glsl
index b1fe444..4de2290 100644
--- a/test/tint/expressions/bitcast/vector/f32-u32.wgsl.expected.glsl
+++ b/test/tint/expressions/bitcast/vector/f32-u32.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 void f() {
   vec3 a = vec3(1.0f, 2.0f, 3.0f);
-  uvec3 b = floatBitsToUint(a);
+  uvec3 b = floatBitsToUint(vec3(1.0f, 2.0f, 3.0f));
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/expressions/bitcast/vector/i32-f32.wgsl.expected.glsl b/test/tint/expressions/bitcast/vector/i32-f32.wgsl.expected.glsl
index a4f8c04..3f7d5ad 100644
--- a/test/tint/expressions/bitcast/vector/i32-f32.wgsl.expected.glsl
+++ b/test/tint/expressions/bitcast/vector/i32-f32.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 void f() {
   ivec3 a = ivec3(1, 2, 3);
-  vec3 b = intBitsToFloat(a);
+  vec3 b = intBitsToFloat(ivec3(1, 2, 3));
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/expressions/bitcast/vector/i32-i32.wgsl.expected.glsl b/test/tint/expressions/bitcast/vector/i32-i32.wgsl.expected.glsl
index 6214de8..dd933bd 100644
--- a/test/tint/expressions/bitcast/vector/i32-i32.wgsl.expected.glsl
+++ b/test/tint/expressions/bitcast/vector/i32-i32.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 void f() {
   ivec3 a = ivec3(1, 2, 3);
-  ivec3 b = a;
+  ivec3 b = ivec3(1, 2, 3);
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/expressions/bitcast/vector/i32-u32.wgsl.expected.glsl b/test/tint/expressions/bitcast/vector/i32-u32.wgsl.expected.glsl
index eac0936..2de00f1 100644
--- a/test/tint/expressions/bitcast/vector/i32-u32.wgsl.expected.glsl
+++ b/test/tint/expressions/bitcast/vector/i32-u32.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 void f() {
   ivec3 a = ivec3(1, 2, 3);
-  uvec3 b = uvec3(a);
+  uvec3 b = uvec3(ivec3(1, 2, 3));
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/expressions/bitcast/vector/u32-f32.wgsl.expected.glsl b/test/tint/expressions/bitcast/vector/u32-f32.wgsl.expected.glsl
index 63a77f9..16a4892 100644
--- a/test/tint/expressions/bitcast/vector/u32-f32.wgsl.expected.glsl
+++ b/test/tint/expressions/bitcast/vector/u32-f32.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 void f() {
   uvec3 a = uvec3(1u, 2u, 3u);
-  vec3 b = uintBitsToFloat(a);
+  vec3 b = uintBitsToFloat(uvec3(1u, 2u, 3u));
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/expressions/bitcast/vector/u32-i32.wgsl.expected.glsl b/test/tint/expressions/bitcast/vector/u32-i32.wgsl.expected.glsl
index bb0ab18..4160557 100644
--- a/test/tint/expressions/bitcast/vector/u32-i32.wgsl.expected.glsl
+++ b/test/tint/expressions/bitcast/vector/u32-i32.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 void f() {
   uvec3 a = uvec3(1u, 2u, 3u);
-  ivec3 b = ivec3(a);
+  ivec3 b = ivec3(uvec3(1u, 2u, 3u));
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/expressions/bitcast/vector/u32-u32.wgsl.expected.glsl b/test/tint/expressions/bitcast/vector/u32-u32.wgsl.expected.glsl
index ee92fe8..0f24f77 100644
--- a/test/tint/expressions/bitcast/vector/u32-u32.wgsl.expected.glsl
+++ b/test/tint/expressions/bitcast/vector/u32-u32.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 void f() {
   uvec3 a = uvec3(1u, 2u, 3u);
-  uvec3 b = a;
+  uvec3 b = uvec3(1u, 2u, 3u);
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/expressions/index/let/let/literal/matrix.wgsl.expected.glsl b/test/tint/expressions/index/let/let/literal/matrix.wgsl.expected.glsl
index 2c4e81a..b6b4777 100644
--- a/test/tint/expressions/index/let/let/literal/matrix.wgsl.expected.glsl
+++ b/test/tint/expressions/index/let/let/literal/matrix.wgsl.expected.glsl
@@ -5,7 +5,7 @@
   return;
 }
 vec3 f() {
-  mat3 m = mat3(1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f);
-  return m[1];
+  mat3 m = mat3(vec3(1.0f, 2.0f, 3.0f), vec3(4.0f, 5.0f, 6.0f), vec3(7.0f, 8.0f, 9.0f));
+  return mat3(vec3(1.0f, 2.0f, 3.0f), vec3(4.0f, 5.0f, 6.0f), vec3(7.0f, 8.0f, 9.0f))[1];
 }
 
diff --git a/test/tint/expressions/index/let/let/literal/vector.wgsl.expected.glsl b/test/tint/expressions/index/let/let/literal/vector.wgsl.expected.glsl
index 0f24df5..4a858df 100644
--- a/test/tint/expressions/index/let/let/literal/vector.wgsl.expected.glsl
+++ b/test/tint/expressions/index/let/let/literal/vector.wgsl.expected.glsl
@@ -6,6 +6,6 @@
 }
 float f() {
   vec3 v = vec3(1.0f, 2.0f, 3.0f);
-  return v[1];
+  return vec3(1.0f, 2.0f, 3.0f)[1];
 }
 
diff --git a/test/tint/expressions/index/let/let/param/matrix.wgsl.expected.glsl b/test/tint/expressions/index/let/let/param/matrix.wgsl.expected.glsl
index 13e265b..b934580 100644
--- a/test/tint/expressions/index/let/let/param/matrix.wgsl.expected.glsl
+++ b/test/tint/expressions/index/let/let/param/matrix.wgsl.expected.glsl
@@ -5,7 +5,7 @@
   return;
 }
 vec3 f(int x) {
-  mat3 m = mat3(1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f);
-  return m[x];
+  mat3 m = mat3(vec3(1.0f, 2.0f, 3.0f), vec3(4.0f, 5.0f, 6.0f), vec3(7.0f, 8.0f, 9.0f));
+  return mat3(vec3(1.0f, 2.0f, 3.0f), vec3(4.0f, 5.0f, 6.0f), vec3(7.0f, 8.0f, 9.0f))[x];
 }
 
diff --git a/test/tint/expressions/index/let/let/param/vector.wgsl.expected.glsl b/test/tint/expressions/index/let/let/param/vector.wgsl.expected.glsl
index 53eb8d8..fa812b3 100644
--- a/test/tint/expressions/index/let/let/param/vector.wgsl.expected.glsl
+++ b/test/tint/expressions/index/let/let/param/vector.wgsl.expected.glsl
@@ -6,6 +6,6 @@
 }
 float f(int x) {
   vec3 v = vec3(1.0f, 2.0f, 3.0f);
-  return v[x];
+  return vec3(1.0f, 2.0f, 3.0f)[x];
 }
 
diff --git a/test/tint/expressions/index/let/literal/matrix.wgsl.expected.glsl b/test/tint/expressions/index/let/literal/matrix.wgsl.expected.glsl
index 2c4e81a..b6b4777 100644
--- a/test/tint/expressions/index/let/literal/matrix.wgsl.expected.glsl
+++ b/test/tint/expressions/index/let/literal/matrix.wgsl.expected.glsl
@@ -5,7 +5,7 @@
   return;
 }
 vec3 f() {
-  mat3 m = mat3(1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f);
-  return m[1];
+  mat3 m = mat3(vec3(1.0f, 2.0f, 3.0f), vec3(4.0f, 5.0f, 6.0f), vec3(7.0f, 8.0f, 9.0f));
+  return mat3(vec3(1.0f, 2.0f, 3.0f), vec3(4.0f, 5.0f, 6.0f), vec3(7.0f, 8.0f, 9.0f))[1];
 }
 
diff --git a/test/tint/expressions/index/let/literal/vector.wgsl.expected.glsl b/test/tint/expressions/index/let/literal/vector.wgsl.expected.glsl
index 0f24df5..4a858df 100644
--- a/test/tint/expressions/index/let/literal/vector.wgsl.expected.glsl
+++ b/test/tint/expressions/index/let/literal/vector.wgsl.expected.glsl
@@ -6,6 +6,6 @@
 }
 float f() {
   vec3 v = vec3(1.0f, 2.0f, 3.0f);
-  return v[1];
+  return vec3(1.0f, 2.0f, 3.0f)[1];
 }
 
diff --git a/test/tint/expressions/index/let/param/matrix.wgsl.expected.glsl b/test/tint/expressions/index/let/param/matrix.wgsl.expected.glsl
index 762d026..dfcf3f1 100644
--- a/test/tint/expressions/index/let/param/matrix.wgsl.expected.glsl
+++ b/test/tint/expressions/index/let/param/matrix.wgsl.expected.glsl
@@ -5,7 +5,7 @@
   return;
 }
 vec3 f(int i) {
-  mat3 m = mat3(1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f);
-  return m[i];
+  mat3 m = mat3(vec3(1.0f, 2.0f, 3.0f), vec3(4.0f, 5.0f, 6.0f), vec3(7.0f, 8.0f, 9.0f));
+  return mat3(vec3(1.0f, 2.0f, 3.0f), vec3(4.0f, 5.0f, 6.0f), vec3(7.0f, 8.0f, 9.0f))[i];
 }
 
diff --git a/test/tint/expressions/index/let/param/vector.wgsl.expected.glsl b/test/tint/expressions/index/let/param/vector.wgsl.expected.glsl
index b28ea6d..fa701f5 100644
--- a/test/tint/expressions/index/let/param/vector.wgsl.expected.glsl
+++ b/test/tint/expressions/index/let/param/vector.wgsl.expected.glsl
@@ -6,6 +6,6 @@
 }
 float f(int i) {
   vec3 v = vec3(1.0f, 2.0f, 3.0f);
-  return v[i];
+  return vec3(1.0f, 2.0f, 3.0f)[i];
 }
 
diff --git a/test/tint/expressions/index/let/var/literal/matrix.wgsl.expected.glsl b/test/tint/expressions/index/let/var/literal/matrix.wgsl.expected.glsl
index 2c4e81a..1b66086 100644
--- a/test/tint/expressions/index/let/var/literal/matrix.wgsl.expected.glsl
+++ b/test/tint/expressions/index/let/var/literal/matrix.wgsl.expected.glsl
@@ -5,7 +5,7 @@
   return;
 }
 vec3 f() {
-  mat3 m = mat3(1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f);
+  mat3 m = mat3(vec3(1.0f, 2.0f, 3.0f), vec3(4.0f, 5.0f, 6.0f), vec3(7.0f, 8.0f, 9.0f));
   return m[1];
 }
 
diff --git a/test/tint/expressions/index/var/let/literal/matrix.wgsl.expected.glsl b/test/tint/expressions/index/var/let/literal/matrix.wgsl.expected.glsl
index 2c4e81a..1b66086 100644
--- a/test/tint/expressions/index/var/let/literal/matrix.wgsl.expected.glsl
+++ b/test/tint/expressions/index/var/let/literal/matrix.wgsl.expected.glsl
@@ -5,7 +5,7 @@
   return;
 }
 vec3 f() {
-  mat3 m = mat3(1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f);
+  mat3 m = mat3(vec3(1.0f, 2.0f, 3.0f), vec3(4.0f, 5.0f, 6.0f), vec3(7.0f, 8.0f, 9.0f));
   return m[1];
 }
 
diff --git a/test/tint/expressions/index/var/let/param/matrix.wgsl.expected.glsl b/test/tint/expressions/index/var/let/param/matrix.wgsl.expected.glsl
index 13e265b..358024a 100644
--- a/test/tint/expressions/index/var/let/param/matrix.wgsl.expected.glsl
+++ b/test/tint/expressions/index/var/let/param/matrix.wgsl.expected.glsl
@@ -5,7 +5,7 @@
   return;
 }
 vec3 f(int x) {
-  mat3 m = mat3(1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f);
+  mat3 m = mat3(vec3(1.0f, 2.0f, 3.0f), vec3(4.0f, 5.0f, 6.0f), vec3(7.0f, 8.0f, 9.0f));
   return m[x];
 }
 
diff --git a/test/tint/expressions/index/var/literal/matrix.wgsl.expected.glsl b/test/tint/expressions/index/var/literal/matrix.wgsl.expected.glsl
index 2c4e81a..1b66086 100644
--- a/test/tint/expressions/index/var/literal/matrix.wgsl.expected.glsl
+++ b/test/tint/expressions/index/var/literal/matrix.wgsl.expected.glsl
@@ -5,7 +5,7 @@
   return;
 }
 vec3 f() {
-  mat3 m = mat3(1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f);
+  mat3 m = mat3(vec3(1.0f, 2.0f, 3.0f), vec3(4.0f, 5.0f, 6.0f), vec3(7.0f, 8.0f, 9.0f));
   return m[1];
 }
 
diff --git a/test/tint/expressions/index/var/param/matrix.wgsl.expected.glsl b/test/tint/expressions/index/var/param/matrix.wgsl.expected.glsl
index 762d026..32c62fc 100644
--- a/test/tint/expressions/index/var/param/matrix.wgsl.expected.glsl
+++ b/test/tint/expressions/index/var/param/matrix.wgsl.expected.glsl
@@ -5,7 +5,7 @@
   return;
 }
 vec3 f(int i) {
-  mat3 m = mat3(1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f);
+  mat3 m = mat3(vec3(1.0f, 2.0f, 3.0f), vec3(4.0f, 5.0f, 6.0f), vec3(7.0f, 8.0f, 9.0f));
   return m[i];
 }
 
diff --git a/test/tint/expressions/literals/-inf.spvasm.expected.glsl b/test/tint/expressions/literals/-inf.spvasm.expected.glsl
index e1caa54..ea4fcf5 100644
--- a/test/tint/expressions/literals/-inf.spvasm.expected.glsl
+++ b/test/tint/expressions/literals/-inf.spvasm.expected.glsl
@@ -4,7 +4,7 @@
 layout(location = 0) out vec4 out_var_SV_TARGET_1_1;
 vec4 out_var_SV_TARGET = vec4(0.0f, 0.0f, 0.0f, 0.0f);
 void main_1() {
-  out_var_SV_TARGET = vec4(uintBitsToFloat(0xff800000u), uintBitsToFloat(0xff800000u), uintBitsToFloat(0xff800000u), uintBitsToFloat(0xff800000u));
+  out_var_SV_TARGET = vec4(uintBitsToFloat(0xff800000u));
   return;
 }
 
diff --git a/test/tint/expressions/literals/inf.spvasm.expected.glsl b/test/tint/expressions/literals/inf.spvasm.expected.glsl
index 637b87c..229678d 100644
--- a/test/tint/expressions/literals/inf.spvasm.expected.glsl
+++ b/test/tint/expressions/literals/inf.spvasm.expected.glsl
@@ -4,7 +4,7 @@
 layout(location = 0) out vec4 out_var_SV_TARGET_1_1;
 vec4 out_var_SV_TARGET = vec4(0.0f, 0.0f, 0.0f, 0.0f);
 void main_1() {
-  out_var_SV_TARGET = vec4(uintBitsToFloat(0x7f800000u), uintBitsToFloat(0x7f800000u), uintBitsToFloat(0x7f800000u), uintBitsToFloat(0x7f800000u));
+  out_var_SV_TARGET = vec4(uintBitsToFloat(0x7f800000u));
   return;
 }
 
diff --git a/test/tint/expressions/type_ctor/mat2x2/explicit/identity/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat2x2/explicit/identity/f32.wgsl.expected.glsl
index c7b7fc4..a496f95 100644
--- a/test/tint/expressions/type_ctor/mat2x2/explicit/identity/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat2x2/explicit/identity/f32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat2 m = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+const mat2 m = mat2(vec2(0.0f), vec2(0.0f));
diff --git a/test/tint/expressions/type_ctor/mat2x2/explicit/scalars/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat2x2/explicit/scalars/f32.wgsl.expected.glsl
index f79600e..f2eeed5 100644
--- a/test/tint/expressions/type_ctor/mat2x2/explicit/scalars/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat2x2/explicit/scalars/f32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat2 m = mat2(0.0f, 1.0f, 2.0f, 3.0f);
+const mat2 m = mat2(vec2(0.0f, 1.0f), vec2(2.0f, 3.0f));
diff --git a/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/abstract-float.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/abstract-float.wgsl.expected.glsl
index f79600e..f2eeed5 100644
--- a/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/abstract-float.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/abstract-float.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat2 m = mat2(0.0f, 1.0f, 2.0f, 3.0f);
+const mat2 m = mat2(vec2(0.0f, 1.0f), vec2(2.0f, 3.0f));
diff --git a/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/f32.wgsl.expected.glsl
index f79600e..f2eeed5 100644
--- a/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/f32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat2 m = mat2(0.0f, 1.0f, 2.0f, 3.0f);
+const mat2 m = mat2(vec2(0.0f, 1.0f), vec2(2.0f, 3.0f));
diff --git a/test/tint/expressions/type_ctor/mat2x3/explicit/scalars/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat2x3/explicit/scalars/f32.wgsl.expected.glsl
index ea329c5..919400a 100644
--- a/test/tint/expressions/type_ctor/mat2x3/explicit/scalars/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat2x3/explicit/scalars/f32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat2x3 m = mat2x3(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f);
+const mat2x3 m = mat2x3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f));
diff --git a/test/tint/expressions/type_ctor/mat2x3/identity/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat2x3/identity/f32.wgsl.expected.glsl
index 509d2ca..147f758 100644
--- a/test/tint/expressions/type_ctor/mat2x3/identity/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat2x3/identity/f32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat2x3 m = mat2x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
+const mat2x3 m = mat2x3(vec3(0.0f), vec3(0.0f));
diff --git a/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/abstract-float.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/abstract-float.wgsl.expected.glsl
index ea329c5..919400a 100644
--- a/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/abstract-float.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/abstract-float.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat2x3 m = mat2x3(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f);
+const mat2x3 m = mat2x3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f));
diff --git a/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/f32.wgsl.expected.glsl
index ea329c5..919400a 100644
--- a/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/f32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat2x3 m = mat2x3(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f);
+const mat2x3 m = mat2x3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f));
diff --git a/test/tint/expressions/type_ctor/mat2x4/explicit/scalars/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat2x4/explicit/scalars/f32.wgsl.expected.glsl
index 6ee3601..461bebd 100644
--- a/test/tint/expressions/type_ctor/mat2x4/explicit/scalars/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat2x4/explicit/scalars/f32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat2x4 m = mat2x4(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f);
+const mat2x4 m = mat2x4(vec4(0.0f, 1.0f, 2.0f, 3.0f), vec4(4.0f, 5.0f, 6.0f, 7.0f));
diff --git a/test/tint/expressions/type_ctor/mat2x4/identity/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat2x4/identity/f32.wgsl.expected.glsl
index 402be9d..09ae675 100644
--- a/test/tint/expressions/type_ctor/mat2x4/identity/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat2x4/identity/f32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat2x4 m = mat2x4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
+const mat2x4 m = mat2x4(vec4(0.0f), vec4(0.0f));
diff --git a/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/abstract-float.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/abstract-float.wgsl.expected.glsl
index 6ee3601..461bebd 100644
--- a/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/abstract-float.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/abstract-float.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat2x4 m = mat2x4(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f);
+const mat2x4 m = mat2x4(vec4(0.0f, 1.0f, 2.0f, 3.0f), vec4(4.0f, 5.0f, 6.0f, 7.0f));
diff --git a/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/f32.wgsl.expected.glsl
index 6ee3601..461bebd 100644
--- a/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/f32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat2x4 m = mat2x4(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f);
+const mat2x4 m = mat2x4(vec4(0.0f, 1.0f, 2.0f, 3.0f), vec4(4.0f, 5.0f, 6.0f, 7.0f));
diff --git a/test/tint/expressions/type_ctor/mat3x2/explicit/scalars/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat3x2/explicit/scalars/f32.wgsl.expected.glsl
index ee6b9c0..1447967 100644
--- a/test/tint/expressions/type_ctor/mat3x2/explicit/scalars/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat3x2/explicit/scalars/f32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat3x2 m = mat3x2(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f);
+const mat3x2 m = mat3x2(vec2(0.0f, 1.0f), vec2(2.0f, 3.0f), vec2(4.0f, 5.0f));
diff --git a/test/tint/expressions/type_ctor/mat3x2/identity/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat3x2/identity/f32.wgsl.expected.glsl
index d30ddfe..9ecf735 100644
--- a/test/tint/expressions/type_ctor/mat3x2/identity/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat3x2/identity/f32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat3x2 m = mat3x2(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
+const mat3x2 m = mat3x2(vec2(0.0f), vec2(0.0f), vec2(0.0f));
diff --git a/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/abstract-float.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/abstract-float.wgsl.expected.glsl
index ee6b9c0..1447967 100644
--- a/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/abstract-float.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/abstract-float.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat3x2 m = mat3x2(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f);
+const mat3x2 m = mat3x2(vec2(0.0f, 1.0f), vec2(2.0f, 3.0f), vec2(4.0f, 5.0f));
diff --git a/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/f32.wgsl.expected.glsl
index ee6b9c0..1447967 100644
--- a/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/f32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat3x2 m = mat3x2(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f);
+const mat3x2 m = mat3x2(vec2(0.0f, 1.0f), vec2(2.0f, 3.0f), vec2(4.0f, 5.0f));
diff --git a/test/tint/expressions/type_ctor/mat3x3/explicit/scalars/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat3x3/explicit/scalars/f32.wgsl.expected.glsl
index 0006430..f4631cb 100644
--- a/test/tint/expressions/type_ctor/mat3x3/explicit/scalars/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat3x3/explicit/scalars/f32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat3 m = mat3(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f);
+const mat3 m = mat3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f), vec3(6.0f, 7.0f, 8.0f));
diff --git a/test/tint/expressions/type_ctor/mat3x3/identity/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat3x3/identity/f32.wgsl.expected.glsl
index f3d1c73..e16f26c 100644
--- a/test/tint/expressions/type_ctor/mat3x3/identity/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat3x3/identity/f32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat3 m = mat3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
+const mat3 m = mat3(vec3(0.0f), vec3(0.0f), vec3(0.0f));
diff --git a/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/abstract-float.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/abstract-float.wgsl.expected.glsl
index 0006430..f4631cb 100644
--- a/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/abstract-float.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/abstract-float.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat3 m = mat3(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f);
+const mat3 m = mat3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f), vec3(6.0f, 7.0f, 8.0f));
diff --git a/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/f32.wgsl.expected.glsl
index 0006430..f4631cb 100644
--- a/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/f32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat3 m = mat3(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f);
+const mat3 m = mat3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f), vec3(6.0f, 7.0f, 8.0f));
diff --git a/test/tint/expressions/type_ctor/mat3x4/explicit/scalars/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat3x4/explicit/scalars/f32.wgsl.expected.glsl
index 824c533..2b8f578 100644
--- a/test/tint/expressions/type_ctor/mat3x4/explicit/scalars/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat3x4/explicit/scalars/f32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat3x4 m = mat3x4(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f);
+const mat3x4 m = mat3x4(vec4(0.0f, 1.0f, 2.0f, 3.0f), vec4(4.0f, 5.0f, 6.0f, 7.0f), vec4(8.0f, 9.0f, 10.0f, 11.0f));
diff --git a/test/tint/expressions/type_ctor/mat3x4/identity/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat3x4/identity/f32.wgsl.expected.glsl
index 31f5f5b..3448385 100644
--- a/test/tint/expressions/type_ctor/mat3x4/identity/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat3x4/identity/f32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat3x4 m = mat3x4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
+const mat3x4 m = mat3x4(vec4(0.0f), vec4(0.0f), vec4(0.0f));
diff --git a/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/abstract-float.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/abstract-float.wgsl.expected.glsl
index 824c533..2b8f578 100644
--- a/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/abstract-float.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/abstract-float.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat3x4 m = mat3x4(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f);
+const mat3x4 m = mat3x4(vec4(0.0f, 1.0f, 2.0f, 3.0f), vec4(4.0f, 5.0f, 6.0f, 7.0f), vec4(8.0f, 9.0f, 10.0f, 11.0f));
diff --git a/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/f32.wgsl.expected.glsl
index 824c533..2b8f578 100644
--- a/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/f32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat3x4 m = mat3x4(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f);
+const mat3x4 m = mat3x4(vec4(0.0f, 1.0f, 2.0f, 3.0f), vec4(4.0f, 5.0f, 6.0f, 7.0f), vec4(8.0f, 9.0f, 10.0f, 11.0f));
diff --git a/test/tint/expressions/type_ctor/mat4x2/explicit/scalars/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat4x2/explicit/scalars/f32.wgsl.expected.glsl
index 864c631..93ae98c 100644
--- a/test/tint/expressions/type_ctor/mat4x2/explicit/scalars/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat4x2/explicit/scalars/f32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat4x2 m = mat4x2(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f);
+const mat4x2 m = mat4x2(vec2(0.0f, 1.0f), vec2(2.0f, 3.0f), vec2(4.0f, 5.0f), vec2(6.0f, 7.0f));
diff --git a/test/tint/expressions/type_ctor/mat4x2/identity/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat4x2/identity/f32.wgsl.expected.glsl
index 0289112..f767bee 100644
--- a/test/tint/expressions/type_ctor/mat4x2/identity/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat4x2/identity/f32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat4x2 m = mat4x2(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
+const mat4x2 m = mat4x2(vec2(0.0f), vec2(0.0f), vec2(0.0f), vec2(0.0f));
diff --git a/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/abstract-float.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/abstract-float.wgsl.expected.glsl
index 864c631..93ae98c 100644
--- a/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/abstract-float.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/abstract-float.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat4x2 m = mat4x2(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f);
+const mat4x2 m = mat4x2(vec2(0.0f, 1.0f), vec2(2.0f, 3.0f), vec2(4.0f, 5.0f), vec2(6.0f, 7.0f));
diff --git a/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/f32.wgsl.expected.glsl
index 864c631..93ae98c 100644
--- a/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/f32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat4x2 m = mat4x2(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f);
+const mat4x2 m = mat4x2(vec2(0.0f, 1.0f), vec2(2.0f, 3.0f), vec2(4.0f, 5.0f), vec2(6.0f, 7.0f));
diff --git a/test/tint/expressions/type_ctor/mat4x3/explicit/scalars/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat4x3/explicit/scalars/f32.wgsl.expected.glsl
index d18bd37..532369f 100644
--- a/test/tint/expressions/type_ctor/mat4x3/explicit/scalars/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat4x3/explicit/scalars/f32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat4x3 m = mat4x3(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f);
+const mat4x3 m = mat4x3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f), vec3(6.0f, 7.0f, 8.0f), vec3(9.0f, 10.0f, 11.0f));
diff --git a/test/tint/expressions/type_ctor/mat4x3/identity/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat4x3/identity/f32.wgsl.expected.glsl
index ce00eb3..a60311a 100644
--- a/test/tint/expressions/type_ctor/mat4x3/identity/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat4x3/identity/f32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat4x3 m = mat4x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
+const mat4x3 m = mat4x3(vec3(0.0f), vec3(0.0f), vec3(0.0f), vec3(0.0f));
diff --git a/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/abstract-float.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/abstract-float.wgsl.expected.glsl
index d18bd37..532369f 100644
--- a/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/abstract-float.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/abstract-float.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat4x3 m = mat4x3(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f);
+const mat4x3 m = mat4x3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f), vec3(6.0f, 7.0f, 8.0f), vec3(9.0f, 10.0f, 11.0f));
diff --git a/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/f32.wgsl.expected.glsl
index d18bd37..532369f 100644
--- a/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/f32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat4x3 m = mat4x3(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f);
+const mat4x3 m = mat4x3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f), vec3(6.0f, 7.0f, 8.0f), vec3(9.0f, 10.0f, 11.0f));
diff --git a/test/tint/expressions/type_ctor/mat4x4/explicit/scalars/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat4x4/explicit/scalars/f32.wgsl.expected.glsl
index c1bb385..b86a544 100644
--- a/test/tint/expressions/type_ctor/mat4x4/explicit/scalars/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat4x4/explicit/scalars/f32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat4 m = mat4(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f, 12.0f, 13.0f, 14.0f, 15.0f);
+const mat4 m = mat4(vec4(0.0f, 1.0f, 2.0f, 3.0f), vec4(4.0f, 5.0f, 6.0f, 7.0f), vec4(8.0f, 9.0f, 10.0f, 11.0f), vec4(12.0f, 13.0f, 14.0f, 15.0f));
diff --git a/test/tint/expressions/type_ctor/mat4x4/identity/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat4x4/identity/f32.wgsl.expected.glsl
index f4c90f3..1acbb86 100644
--- a/test/tint/expressions/type_ctor/mat4x4/identity/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat4x4/identity/f32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat4 m = mat4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
+const mat4 m = mat4(vec4(0.0f), vec4(0.0f), vec4(0.0f), vec4(0.0f));
diff --git a/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/abstract-float.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/abstract-float.wgsl.expected.glsl
index c1bb385..b86a544 100644
--- a/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/abstract-float.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/abstract-float.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat4 m = mat4(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f, 12.0f, 13.0f, 14.0f, 15.0f);
+const mat4 m = mat4(vec4(0.0f, 1.0f, 2.0f, 3.0f), vec4(4.0f, 5.0f, 6.0f, 7.0f), vec4(8.0f, 9.0f, 10.0f, 11.0f), vec4(12.0f, 13.0f, 14.0f, 15.0f));
diff --git a/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/f32.wgsl.expected.glsl b/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/f32.wgsl.expected.glsl
index c1bb385..b86a544 100644
--- a/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/f32.wgsl.expected.glsl
@@ -4,4 +4,4 @@
 void unused_entry_point() {
   return;
 }
-const mat4 m = mat4(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f, 12.0f, 13.0f, 14.0f, 15.0f);
+const mat4 m = mat4(vec4(0.0f, 1.0f, 2.0f, 3.0f), vec4(4.0f, 5.0f, 6.0f, 7.0f), vec4(8.0f, 9.0f, 10.0f, 11.0f), vec4(12.0f, 13.0f, 14.0f, 15.0f));
diff --git a/test/tint/expressions/zero_init/mat2x2/f32.wgsl.expected.glsl b/test/tint/expressions/zero_init/mat2x2/f32.wgsl.expected.glsl
index e9d2689..3f147cc 100644
--- a/test/tint/expressions/zero_init/mat2x2/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/zero_init/mat2x2/f32.wgsl.expected.glsl
@@ -5,6 +5,6 @@
   return;
 }
 void f() {
-  mat2 v = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+  mat2 v = mat2(vec2(0.0f), vec2(0.0f));
 }
 
diff --git a/test/tint/expressions/zero_init/mat2x3/f32.wgsl.expected.glsl b/test/tint/expressions/zero_init/mat2x3/f32.wgsl.expected.glsl
index 3f6a357..3225bdd 100644
--- a/test/tint/expressions/zero_init/mat2x3/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/zero_init/mat2x3/f32.wgsl.expected.glsl
@@ -5,6 +5,6 @@
   return;
 }
 void f() {
-  mat2x3 v = mat2x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
+  mat2x3 v = mat2x3(vec3(0.0f), vec3(0.0f));
 }
 
diff --git a/test/tint/expressions/zero_init/mat2x4/f32.wgsl.expected.glsl b/test/tint/expressions/zero_init/mat2x4/f32.wgsl.expected.glsl
index 83704ab..0623f34 100644
--- a/test/tint/expressions/zero_init/mat2x4/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/zero_init/mat2x4/f32.wgsl.expected.glsl
@@ -5,6 +5,6 @@
   return;
 }
 void f() {
-  mat2x4 v = mat2x4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
+  mat2x4 v = mat2x4(vec4(0.0f), vec4(0.0f));
 }
 
diff --git a/test/tint/expressions/zero_init/mat3x2/f32.wgsl.expected.glsl b/test/tint/expressions/zero_init/mat3x2/f32.wgsl.expected.glsl
index 08b7b21..8c85eb3 100644
--- a/test/tint/expressions/zero_init/mat3x2/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/zero_init/mat3x2/f32.wgsl.expected.glsl
@@ -5,6 +5,6 @@
   return;
 }
 void f() {
-  mat3x2 v = mat3x2(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
+  mat3x2 v = mat3x2(vec2(0.0f), vec2(0.0f), vec2(0.0f));
 }
 
diff --git a/test/tint/expressions/zero_init/mat3x3/f32.wgsl.expected.glsl b/test/tint/expressions/zero_init/mat3x3/f32.wgsl.expected.glsl
index f0ba4a9..eee3dad 100644
--- a/test/tint/expressions/zero_init/mat3x3/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/zero_init/mat3x3/f32.wgsl.expected.glsl
@@ -5,6 +5,6 @@
   return;
 }
 void f() {
-  mat3 v = mat3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
+  mat3 v = mat3(vec3(0.0f), vec3(0.0f), vec3(0.0f));
 }
 
diff --git a/test/tint/expressions/zero_init/mat3x4/f32.wgsl.expected.glsl b/test/tint/expressions/zero_init/mat3x4/f32.wgsl.expected.glsl
index 45b100c..b11a3af 100644
--- a/test/tint/expressions/zero_init/mat3x4/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/zero_init/mat3x4/f32.wgsl.expected.glsl
@@ -5,6 +5,6 @@
   return;
 }
 void f() {
-  mat3x4 v = mat3x4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
+  mat3x4 v = mat3x4(vec4(0.0f), vec4(0.0f), vec4(0.0f));
 }
 
diff --git a/test/tint/expressions/zero_init/mat4x2/f32.wgsl.expected.glsl b/test/tint/expressions/zero_init/mat4x2/f32.wgsl.expected.glsl
index 5c7e392..a207606 100644
--- a/test/tint/expressions/zero_init/mat4x2/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/zero_init/mat4x2/f32.wgsl.expected.glsl
@@ -5,6 +5,6 @@
   return;
 }
 void f() {
-  mat4x2 v = mat4x2(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
+  mat4x2 v = mat4x2(vec2(0.0f), vec2(0.0f), vec2(0.0f), vec2(0.0f));
 }
 
diff --git a/test/tint/expressions/zero_init/mat4x3/f32.wgsl.expected.glsl b/test/tint/expressions/zero_init/mat4x3/f32.wgsl.expected.glsl
index 998cfc1..76492d6 100644
--- a/test/tint/expressions/zero_init/mat4x3/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/zero_init/mat4x3/f32.wgsl.expected.glsl
@@ -5,6 +5,6 @@
   return;
 }
 void f() {
-  mat4x3 v = mat4x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
+  mat4x3 v = mat4x3(vec3(0.0f), vec3(0.0f), vec3(0.0f), vec3(0.0f));
 }
 
diff --git a/test/tint/expressions/zero_init/mat4x4/f32.wgsl.expected.glsl b/test/tint/expressions/zero_init/mat4x4/f32.wgsl.expected.glsl
index aaa3044..83f05ce 100644
--- a/test/tint/expressions/zero_init/mat4x4/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/zero_init/mat4x4/f32.wgsl.expected.glsl
@@ -5,6 +5,6 @@
   return;
 }
 void f() {
-  mat4 v = mat4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
+  mat4 v = mat4(vec4(0.0f), vec4(0.0f), vec4(0.0f), vec4(0.0f));
 }
 
diff --git a/test/tint/expressions/zero_init/vec2/bool.wgsl.expected.glsl b/test/tint/expressions/zero_init/vec2/bool.wgsl.expected.glsl
index fb81022..06b825e 100644
--- a/test/tint/expressions/zero_init/vec2/bool.wgsl.expected.glsl
+++ b/test/tint/expressions/zero_init/vec2/bool.wgsl.expected.glsl
@@ -5,6 +5,6 @@
   return;
 }
 void f() {
-  bvec2 v = bvec2(false, false);
+  bvec2 v = bvec2(false);
 }
 
diff --git a/test/tint/expressions/zero_init/vec2/f32.wgsl.expected.glsl b/test/tint/expressions/zero_init/vec2/f32.wgsl.expected.glsl
index a619be5..45d7313 100644
--- a/test/tint/expressions/zero_init/vec2/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/zero_init/vec2/f32.wgsl.expected.glsl
@@ -5,6 +5,6 @@
   return;
 }
 void f() {
-  vec2 v = vec2(0.0f, 0.0f);
+  vec2 v = vec2(0.0f);
 }
 
diff --git a/test/tint/expressions/zero_init/vec2/i32.wgsl.expected.glsl b/test/tint/expressions/zero_init/vec2/i32.wgsl.expected.glsl
index fe7adc5..c4e2660 100644
--- a/test/tint/expressions/zero_init/vec2/i32.wgsl.expected.glsl
+++ b/test/tint/expressions/zero_init/vec2/i32.wgsl.expected.glsl
@@ -5,6 +5,6 @@
   return;
 }
 void f() {
-  ivec2 v = ivec2(0, 0);
+  ivec2 v = ivec2(0);
 }
 
diff --git a/test/tint/expressions/zero_init/vec2/u32.wgsl.expected.glsl b/test/tint/expressions/zero_init/vec2/u32.wgsl.expected.glsl
index c40ee0b..f283360 100644
--- a/test/tint/expressions/zero_init/vec2/u32.wgsl.expected.glsl
+++ b/test/tint/expressions/zero_init/vec2/u32.wgsl.expected.glsl
@@ -5,6 +5,6 @@
   return;
 }
 void f() {
-  uvec2 v = uvec2(0u, 0u);
+  uvec2 v = uvec2(0u);
 }
 
diff --git a/test/tint/expressions/zero_init/vec3/bool.wgsl.expected.glsl b/test/tint/expressions/zero_init/vec3/bool.wgsl.expected.glsl
index 3582149..b742fc0 100644
--- a/test/tint/expressions/zero_init/vec3/bool.wgsl.expected.glsl
+++ b/test/tint/expressions/zero_init/vec3/bool.wgsl.expected.glsl
@@ -5,6 +5,6 @@
   return;
 }
 void f() {
-  bvec3 v = bvec3(false, false, false);
+  bvec3 v = bvec3(false);
 }
 
diff --git a/test/tint/expressions/zero_init/vec3/f32.wgsl.expected.glsl b/test/tint/expressions/zero_init/vec3/f32.wgsl.expected.glsl
index 113de8b..6a1d2b9 100644
--- a/test/tint/expressions/zero_init/vec3/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/zero_init/vec3/f32.wgsl.expected.glsl
@@ -5,6 +5,6 @@
   return;
 }
 void f() {
-  vec3 v = vec3(0.0f, 0.0f, 0.0f);
+  vec3 v = vec3(0.0f);
 }
 
diff --git a/test/tint/expressions/zero_init/vec3/i32.wgsl.expected.glsl b/test/tint/expressions/zero_init/vec3/i32.wgsl.expected.glsl
index fe9a4cd..30c1594 100644
--- a/test/tint/expressions/zero_init/vec3/i32.wgsl.expected.glsl
+++ b/test/tint/expressions/zero_init/vec3/i32.wgsl.expected.glsl
@@ -5,6 +5,6 @@
   return;
 }
 void f() {
-  ivec3 v = ivec3(0, 0, 0);
+  ivec3 v = ivec3(0);
 }
 
diff --git a/test/tint/expressions/zero_init/vec3/u32.wgsl.expected.glsl b/test/tint/expressions/zero_init/vec3/u32.wgsl.expected.glsl
index 1512778..37a2115 100644
--- a/test/tint/expressions/zero_init/vec3/u32.wgsl.expected.glsl
+++ b/test/tint/expressions/zero_init/vec3/u32.wgsl.expected.glsl
@@ -5,6 +5,6 @@
   return;
 }
 void f() {
-  uvec3 v = uvec3(0u, 0u, 0u);
+  uvec3 v = uvec3(0u);
 }
 
diff --git a/test/tint/expressions/zero_init/vec4/bool.wgsl.expected.glsl b/test/tint/expressions/zero_init/vec4/bool.wgsl.expected.glsl
index 21a558f..44d05dd 100644
--- a/test/tint/expressions/zero_init/vec4/bool.wgsl.expected.glsl
+++ b/test/tint/expressions/zero_init/vec4/bool.wgsl.expected.glsl
@@ -5,6 +5,6 @@
   return;
 }
 void f() {
-  bvec4 v = bvec4(false, false, false, false);
+  bvec4 v = bvec4(false);
 }
 
diff --git a/test/tint/expressions/zero_init/vec4/f32.wgsl.expected.glsl b/test/tint/expressions/zero_init/vec4/f32.wgsl.expected.glsl
index 09d7ecb..36bf89a 100644
--- a/test/tint/expressions/zero_init/vec4/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/zero_init/vec4/f32.wgsl.expected.glsl
@@ -5,6 +5,6 @@
   return;
 }
 void f() {
-  vec4 v = vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  vec4 v = vec4(0.0f);
 }
 
diff --git a/test/tint/expressions/zero_init/vec4/i32.wgsl.expected.glsl b/test/tint/expressions/zero_init/vec4/i32.wgsl.expected.glsl
index 52b1af7..361d05a 100644
--- a/test/tint/expressions/zero_init/vec4/i32.wgsl.expected.glsl
+++ b/test/tint/expressions/zero_init/vec4/i32.wgsl.expected.glsl
@@ -5,6 +5,6 @@
   return;
 }
 void f() {
-  ivec4 v = ivec4(0, 0, 0, 0);
+  ivec4 v = ivec4(0);
 }
 
diff --git a/test/tint/expressions/zero_init/vec4/u32.wgsl.expected.glsl b/test/tint/expressions/zero_init/vec4/u32.wgsl.expected.glsl
index 61fe7e5..56cfba1 100644
--- a/test/tint/expressions/zero_init/vec4/u32.wgsl.expected.glsl
+++ b/test/tint/expressions/zero_init/vec4/u32.wgsl.expected.glsl
@@ -5,6 +5,6 @@
   return;
 }
 void f() {
-  uvec4 v = uvec4(0u, 0u, 0u, 0u);
+  uvec4 v = uvec4(0u);
 }
 
diff --git a/test/tint/identifiers/underscore/double/let.wgsl.expected.glsl b/test/tint/identifiers/underscore/double/let.wgsl.expected.glsl
index a0bbe15..d1a4c44 100644
--- a/test/tint/identifiers/underscore/double/let.wgsl.expected.glsl
+++ b/test/tint/identifiers/underscore/double/let.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 const int a = 1;
 const int a__ = 2;
 void f() {
-  int b = a;
-  int b__ = a__;
+  int b = 1;
+  int b__ = 2;
 }
 
diff --git a/test/tint/identifiers/underscore/prefix/lower/let.wgsl.expected.glsl b/test/tint/identifiers/underscore/prefix/lower/let.wgsl.expected.glsl
index c5a6a9f..fbdda73 100644
--- a/test/tint/identifiers/underscore/prefix/lower/let.wgsl.expected.glsl
+++ b/test/tint/identifiers/underscore/prefix/lower/let.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 const int a = 1;
 const int _a = 2;
 void f() {
-  int b = a;
-  int _b = _a;
+  int b = 1;
+  int _b = 2;
 }
 
diff --git a/test/tint/identifiers/underscore/prefix/upper/let.wgsl.expected.glsl b/test/tint/identifiers/underscore/prefix/upper/let.wgsl.expected.glsl
index ae9a9c8..32424a1 100644
--- a/test/tint/identifiers/underscore/prefix/upper/let.wgsl.expected.glsl
+++ b/test/tint/identifiers/underscore/prefix/upper/let.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 const int A = 1;
 const int _A = 2;
 void f() {
-  int B = A;
-  int _B = _A;
+  int B = 1;
+  int _B = 2;
 }
 
diff --git a/test/tint/let/global/global.wgsl.expected.glsl b/test/tint/let/global/global.wgsl.expected.glsl
index 797dbaf..b350456 100644
--- a/test/tint/let/global/global.wgsl.expected.glsl
+++ b/test/tint/let/global/global.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 };
 
 vec4 tint_symbol() {
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/let/inferred/function.wgsl.expected.glsl b/test/tint/let/inferred/function.wgsl.expected.glsl
index 797dbaf..b350456 100644
--- a/test/tint/let/inferred/function.wgsl.expected.glsl
+++ b/test/tint/let/inferred/function.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 };
 
 vec4 tint_symbol() {
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/out_of_order_decls/func/let.wgsl.expected.glsl b/test/tint/out_of_order_decls/func/let.wgsl.expected.glsl
index f308959..b8397a7 100644
--- a/test/tint/out_of_order_decls/func/let.wgsl.expected.glsl
+++ b/test/tint/out_of_order_decls/func/let.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 
 const int a = 1;
 void f() {
-  int b = a;
+  int b = 1;
 }
 
 void main() {
diff --git a/test/tint/ptr_ref/access/matrix.spvasm.expected.glsl b/test/tint/ptr_ref/access/matrix.spvasm.expected.glsl
index 847b175..a63164b 100644
--- a/test/tint/ptr_ref/access/matrix.spvasm.expected.glsl
+++ b/test/tint/ptr_ref/access/matrix.spvasm.expected.glsl
@@ -1,9 +1,9 @@
 #version 310 es
 
 void main_1() {
-  mat3 m = mat3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
+  mat3 m = mat3(vec3(0.0f), vec3(0.0f), vec3(0.0f));
   m = mat3(vec3(1.0f, 2.0f, 3.0f), vec3(4.0f, 5.0f, 6.0f), vec3(7.0f, 8.0f, 9.0f));
-  m[1] = vec3(5.0f, 5.0f, 5.0f);
+  m[1] = vec3(5.0f);
   return;
 }
 
diff --git a/test/tint/ptr_ref/access/matrix.wgsl.expected.glsl b/test/tint/ptr_ref/access/matrix.wgsl.expected.glsl
index c1b09b2..f8a7806 100644
--- a/test/tint/ptr_ref/access/matrix.wgsl.expected.glsl
+++ b/test/tint/ptr_ref/access/matrix.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 void tint_symbol() {
   mat3 m = mat3(vec3(1.0f, 2.0f, 3.0f), vec3(4.0f, 5.0f, 6.0f), vec3(7.0f, 8.0f, 9.0f));
-  m[1] = vec3(5.0f, 5.0f, 5.0f);
+  m[1] = vec3(5.0f);
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/samples/compute_boids.wgsl.expected.glsl b/test/tint/samples/compute_boids.wgsl.expected.glsl
index d1d7338..6a110ff 100644
--- a/test/tint/samples/compute_boids.wgsl.expected.glsl
+++ b/test/tint/samples/compute_boids.wgsl.expected.glsl
@@ -60,7 +60,7 @@
 };
 
 vec4 frag_main() {
-  return vec4(1.0f, 1.0f, 1.0f, 1.0f);
+  return vec4(1.0f);
 }
 
 void main() {
@@ -112,9 +112,9 @@
   }
   vec2 vPos = particlesA.particles[index].pos;
   vec2 vVel = particlesA.particles[index].vel;
-  vec2 cMass = vec2(0.0f, 0.0f);
-  vec2 cVel = vec2(0.0f, 0.0f);
-  vec2 colVel = vec2(0.0f, 0.0f);
+  vec2 cMass = vec2(0.0f);
+  vec2 cVel = vec2(0.0f);
+  vec2 colVel = vec2(0.0f);
   int cMassCount = 0;
   int cVelCount = 0;
   vec2 pos = vec2(0.0f, 0.0f);
diff --git a/test/tint/samples/simple.wgsl.expected.glsl b/test/tint/samples/simple.wgsl.expected.glsl
index 995583f..3e4dabe 100644
--- a/test/tint/samples/simple.wgsl.expected.glsl
+++ b/test/tint/samples/simple.wgsl.expected.glsl
@@ -6,7 +6,7 @@
 }
 
 vec4 tint_symbol() {
-  vec2 a = vec2(0.0f, 0.0f);
+  vec2 a = vec2(0.0f);
   bar();
   return vec4(0.400000006f, 0.400000006f, 0.800000012f, 1.0f);
 }
diff --git a/test/tint/samples/simple_vertex.spvasm.expected.glsl b/test/tint/samples/simple_vertex.spvasm.expected.glsl
index e18ab68c..31db9ff 100644
--- a/test/tint/samples/simple_vertex.spvasm.expected.glsl
+++ b/test/tint/samples/simple_vertex.spvasm.expected.glsl
@@ -2,7 +2,7 @@
 
 vec4 tint_symbol = vec4(0.0f, 0.0f, 0.0f, 0.0f);
 void main_1() {
-  tint_symbol = vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  tint_symbol = vec4(0.0f);
   return;
 }
 
diff --git a/test/tint/samples/triangle.wgsl.expected.glsl b/test/tint/samples/triangle.wgsl.expected.glsl
index 71d8fb4..915a97d 100644
--- a/test/tint/samples/triangle.wgsl.expected.glsl
+++ b/test/tint/samples/triangle.wgsl.expected.glsl
@@ -1,6 +1,6 @@
 #version 310 es
 
-const vec2 pos[3] = vec2[3](vec2(0.0f, 0.5f), vec2(-0.5f, -0.5f), vec2(0.5f, -0.5f));
+const vec2 pos[3] = vec2[3](vec2(0.0f, 0.5f), vec2(-0.5f), vec2(0.5f, -0.5f));
 vec4 vtx_main(uint VertexIndex) {
   return vec4(pos[VertexIndex], 0.0f, 1.0f);
 }
diff --git a/test/tint/shader_io/invariant.wgsl.expected.glsl b/test/tint/shader_io/invariant.wgsl.expected.glsl
index 4911a1b..3e02ad3 100644
--- a/test/tint/shader_io/invariant.wgsl.expected.glsl
+++ b/test/tint/shader_io/invariant.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 vec4 tint_symbol() {
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/shader_io/shared_struct_different_stages.wgsl.expected.glsl b/test/tint/shader_io/shared_struct_different_stages.wgsl.expected.glsl
index 6a6f8e1..5e359e2 100644
--- a/test/tint/shader_io/shared_struct_different_stages.wgsl.expected.glsl
+++ b/test/tint/shader_io/shared_struct_different_stages.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 };
 
 Interface vert_main() {
-  Interface tint_symbol = Interface(0.400000006f, 0.600000024f, vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  Interface tint_symbol = Interface(0.400000006f, 0.600000024f, vec4(0.0f));
   return tint_symbol;
 }
 
diff --git a/test/tint/shader_io/vertex_input_builtins.wgsl.expected.glsl b/test/tint/shader_io/vertex_input_builtins.wgsl.expected.glsl
index 43f246e..e5e32ae 100644
--- a/test/tint/shader_io/vertex_input_builtins.wgsl.expected.glsl
+++ b/test/tint/shader_io/vertex_input_builtins.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 vec4 tint_symbol(uint vertex_index, uint instance_index) {
   uint foo = (vertex_index + instance_index);
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/shader_io/vertex_input_builtins_struct.wgsl.expected.glsl b/test/tint/shader_io/vertex_input_builtins_struct.wgsl.expected.glsl
index 1064f02..7daad03 100644
--- a/test/tint/shader_io/vertex_input_builtins_struct.wgsl.expected.glsl
+++ b/test/tint/shader_io/vertex_input_builtins_struct.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 vec4 tint_symbol(VertexInputs inputs) {
   uint foo = (inputs.vertex_index + inputs.instance_index);
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/shader_io/vertex_input_locations.wgsl.expected.glsl b/test/tint/shader_io/vertex_input_locations.wgsl.expected.glsl
index 2ca8d8a..b24437f 100644
--- a/test/tint/shader_io/vertex_input_locations.wgsl.expected.glsl
+++ b/test/tint/shader_io/vertex_input_locations.wgsl.expected.glsl
@@ -9,7 +9,7 @@
   uint u = loc1;
   float f = loc2;
   vec4 v = loc3;
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/shader_io/vertex_input_locations_struct.wgsl.expected.glsl b/test/tint/shader_io/vertex_input_locations_struct.wgsl.expected.glsl
index 1af4979..43a2113 100644
--- a/test/tint/shader_io/vertex_input_locations_struct.wgsl.expected.glsl
+++ b/test/tint/shader_io/vertex_input_locations_struct.wgsl.expected.glsl
@@ -16,7 +16,7 @@
   uint u = inputs.loc1;
   float f = inputs.loc2;
   vec4 v = inputs.loc3;
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/shader_io/vertex_input_mixed.wgsl.expected.glsl b/test/tint/shader_io/vertex_input_mixed.wgsl.expected.glsl
index 769f624..2470a13 100644
--- a/test/tint/shader_io/vertex_input_mixed.wgsl.expected.glsl
+++ b/test/tint/shader_io/vertex_input_mixed.wgsl.expected.glsl
@@ -20,7 +20,7 @@
   uint u = loc1;
   float f = inputs1.loc2;
   vec4 v = inputs1.loc3;
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/shader_io/vertex_output_locations_struct.wgsl.expected.glsl b/test/tint/shader_io/vertex_output_locations_struct.wgsl.expected.glsl
index b09cc4b..2c772ac 100644
--- a/test/tint/shader_io/vertex_output_locations_struct.wgsl.expected.glsl
+++ b/test/tint/shader_io/vertex_output_locations_struct.wgsl.expected.glsl
@@ -13,7 +13,7 @@
 };
 
 VertexOutputs tint_symbol() {
-  VertexOutputs tint_symbol_1 = VertexOutputs(1, 1u, 1.0f, vec4(1.0f, 2.0f, 3.0f, 4.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  VertexOutputs tint_symbol_1 = VertexOutputs(1, 1u, 1.0f, vec4(1.0f, 2.0f, 3.0f, 4.0f), vec4(0.0f));
   return tint_symbol_1;
 }
 
diff --git a/test/tint/shadowing/alias/let.wgsl.expected.glsl b/test/tint/shadowing/alias/let.wgsl.expected.glsl
index d037e83..30dbb3b 100644
--- a/test/tint/shadowing/alias/let.wgsl.expected.glsl
+++ b/test/tint/shadowing/alias/let.wgsl.expected.glsl
@@ -7,9 +7,9 @@
 void f() {
   {
     int a_1 = 0;
-    int b = a_1;
+    int b = 0;
   }
   int a_2 = 0;
-  int b = a_2;
+  int b = 0;
 }
 
diff --git a/test/tint/statements/compound_assign/function.wgsl.expected.glsl b/test/tint/statements/compound_assign/function.wgsl.expected.glsl
index d2c4d9b..7b4c01c 100644
--- a/test/tint/statements/compound_assign/function.wgsl.expected.glsl
+++ b/test/tint/statements/compound_assign/function.wgsl.expected.glsl
@@ -9,7 +9,7 @@
   vec4 b = vec4(0.0f, 0.0f, 0.0f, 0.0f);
   mat2 c = mat2(0.0f, 0.0f, 0.0f, 0.0f);
   a = (a / 2);
-  b = (b * mat4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
+  b = (b * mat4(vec4(0.0f), vec4(0.0f), vec4(0.0f), vec4(0.0f)));
   c = (c * 2.0f);
 }
 
diff --git a/test/tint/statements/compound_assign/matrix/minus.wgsl.expected.glsl b/test/tint/statements/compound_assign/matrix/minus.wgsl.expected.glsl
index 89a157d..bee2488 100644
--- a/test/tint/statements/compound_assign/matrix/minus.wgsl.expected.glsl
+++ b/test/tint/statements/compound_assign/matrix/minus.wgsl.expected.glsl
@@ -12,6 +12,6 @@
   mat4 a;
 } v;
 void foo() {
-  v.a = (v.a - mat4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
+  v.a = (v.a - mat4(vec4(0.0f), vec4(0.0f), vec4(0.0f), vec4(0.0f)));
 }
 
diff --git a/test/tint/statements/compound_assign/matrix/plus.wgsl.expected.glsl b/test/tint/statements/compound_assign/matrix/plus.wgsl.expected.glsl
index e70299b..86dbf9b 100644
--- a/test/tint/statements/compound_assign/matrix/plus.wgsl.expected.glsl
+++ b/test/tint/statements/compound_assign/matrix/plus.wgsl.expected.glsl
@@ -12,6 +12,6 @@
   mat4 a;
 } v;
 void foo() {
-  v.a = (v.a + mat4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
+  v.a = (v.a + mat4(vec4(0.0f), vec4(0.0f), vec4(0.0f), vec4(0.0f)));
 }
 
diff --git a/test/tint/statements/compound_assign/matrix/times.wgsl.expected.glsl b/test/tint/statements/compound_assign/matrix/times.wgsl.expected.glsl
index 0e7f0c2..4d224ea 100644
--- a/test/tint/statements/compound_assign/matrix/times.wgsl.expected.glsl
+++ b/test/tint/statements/compound_assign/matrix/times.wgsl.expected.glsl
@@ -12,6 +12,6 @@
   mat4 a;
 } v;
 void foo() {
-  v.a = (v.a * mat4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
+  v.a = (v.a * mat4(vec4(0.0f), vec4(0.0f), vec4(0.0f), vec4(0.0f)));
 }
 
diff --git a/test/tint/statements/compound_assign/private.wgsl.expected.glsl b/test/tint/statements/compound_assign/private.wgsl.expected.glsl
index 2ea59e7..33efe42 100644
--- a/test/tint/statements/compound_assign/private.wgsl.expected.glsl
+++ b/test/tint/statements/compound_assign/private.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 mat2 c = mat2(0.0f, 0.0f, 0.0f, 0.0f);
 void foo() {
   a = (a / 2);
-  b = (b * mat4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
+  b = (b * mat4(vec4(0.0f), vec4(0.0f), vec4(0.0f), vec4(0.0f)));
   c = (c * 2.0f);
 }
 
diff --git a/test/tint/statements/compound_assign/vector/times-matrix.wgsl.expected.glsl b/test/tint/statements/compound_assign/vector/times-matrix.wgsl.expected.glsl
index c2ed67a..ee226d2 100644
--- a/test/tint/statements/compound_assign/vector/times-matrix.wgsl.expected.glsl
+++ b/test/tint/statements/compound_assign/vector/times-matrix.wgsl.expected.glsl
@@ -12,6 +12,6 @@
   vec4 a;
 } v;
 void foo() {
-  v.a = (v.a * mat4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
+  v.a = (v.a * mat4(vec4(0.0f), vec4(0.0f), vec4(0.0f), vec4(0.0f)));
 }
 
diff --git a/test/tint/statements/compound_assign/workgroup.wgsl.expected.glsl b/test/tint/statements/compound_assign/workgroup.wgsl.expected.glsl
index 4d492bd..d762d8f 100644
--- a/test/tint/statements/compound_assign/workgroup.wgsl.expected.glsl
+++ b/test/tint/statements/compound_assign/workgroup.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 shared mat2 c;
 void foo() {
   a = (a / 2);
-  b = (b * mat4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
+  b = (b * mat4(vec4(0.0f), vec4(0.0f), vec4(0.0f), vec4(0.0f)));
   c = (c * 2.0f);
 }
 
diff --git a/test/tint/statements/decrement/vector_component.wgsl.expected.glsl b/test/tint/statements/decrement/vector_component.wgsl.expected.glsl
index 908643e..a6ba2b0 100644
--- a/test/tint/statements/decrement/vector_component.wgsl.expected.glsl
+++ b/test/tint/statements/decrement/vector_component.wgsl.expected.glsl
@@ -13,7 +13,7 @@
 } a;
 void tint_symbol() {
   int tint_symbol_2 = 1;
-  a.inner[tint_symbol_2] = (a.inner[tint_symbol_2] - 1u);
+  a.inner[1] = (a.inner[1] - 1u);
   a.inner.z = (a.inner.z - 1u);
 }
 
diff --git a/test/tint/statements/increment/vector_component.wgsl.expected.glsl b/test/tint/statements/increment/vector_component.wgsl.expected.glsl
index a502a86..dc1c567 100644
--- a/test/tint/statements/increment/vector_component.wgsl.expected.glsl
+++ b/test/tint/statements/increment/vector_component.wgsl.expected.glsl
@@ -13,7 +13,7 @@
 } a;
 void tint_symbol() {
   int tint_symbol_2 = 1;
-  a.inner[tint_symbol_2] = (a.inner[tint_symbol_2] + 1u);
+  a.inner[1] = (a.inner[1] + 1u);
   a.inner.z = (a.inner.z + 1u);
 }
 
diff --git a/test/tint/struct/type_constructor.wgsl.expected.glsl b/test/tint/struct/type_constructor.wgsl.expected.glsl
index e300f8d..f6a3289 100644
--- a/test/tint/struct/type_constructor.wgsl.expected.glsl
+++ b/test/tint/struct/type_constructor.wgsl.expected.glsl
@@ -26,27 +26,27 @@
   int x = 42;
   S1 empty = S1(0, 0, 0, 0);
   S1 nonempty = S1(1, 2, 3, 4);
-  S1 nonempty_with_expr = S1(1, x, (x + 1), nonempty.d);
+  S1 nonempty_with_expr = S1(1, 42, (42 + 1), nonempty.d);
   S3 nested_empty = S3(0, S1(0, 0, 0, 0), S2(0, S1(0, 0, 0, 0)));
   S1 tint_symbol_1 = S1(2, 3, 4, 5);
   S1 tint_symbol_2 = S1(7, 8, 9, 10);
   S2 tint_symbol_3 = S2(6, tint_symbol_2);
   S3 nested_nonempty = S3(1, tint_symbol_1, tint_symbol_3);
-  S1 tint_symbol_4 = S1(2, x, (x + 1), nested_nonempty.i.f.d);
+  S1 tint_symbol_4 = S1(2, 42, (42 + 1), nested_nonempty.i.f.d);
   S2 tint_symbol_5 = S2(6, nonempty);
   S3 nested_nonempty_with_expr = S3(1, tint_symbol_4, tint_symbol_5);
   S1 tint_symbol_6 = S1(0, 0, 0, 0);
   int subexpr_empty = tint_symbol_6.a;
   S1 tint_symbol_7 = S1(1, 2, 3, 4);
   int subexpr_nonempty = tint_symbol_7.b;
-  S1 tint_symbol_8 = S1(1, x, (x + 1), nonempty.d);
+  S1 tint_symbol_8 = S1(1, 42, (42 + 1), nonempty.d);
   int subexpr_nonempty_with_expr = tint_symbol_8.c;
   S2 tint_symbol_9 = S2(0, S1(0, 0, 0, 0));
   S1 subexpr_nested_empty = tint_symbol_9.f;
   S1 tint_symbol_10 = S1(2, 3, 4, 5);
   S2 tint_symbol_11 = S2(1, tint_symbol_10);
   S1 subexpr_nested_nonempty = tint_symbol_11.f;
-  S1 tint_symbol_12 = S1(2, x, (x + 1), nested_nonempty.i.f.d);
+  S1 tint_symbol_12 = S1(2, 42, (42 + 1), nested_nonempty.i.f.d);
   S2 tint_symbol_13 = S2(1, tint_symbol_12);
   S1 subexpr_nested_nonempty_with_expr = tint_symbol_13.f;
   T aosoa_empty[2] = T[2](T(int[2](0, 0)), T(int[2](0, 0)));
diff --git a/test/tint/types/function_scope_declarations.wgsl.expected.glsl b/test/tint/types/function_scope_declarations.wgsl.expected.glsl
index 5ef25d5..3a647fb 100644
--- a/test/tint/types/function_scope_declarations.wgsl.expected.glsl
+++ b/test/tint/types/function_scope_declarations.wgsl.expected.glsl
@@ -13,14 +13,14 @@
   uint u32_let = 0u;
   float f32_var = 0.0f;
   float f32_let = 0.0f;
-  ivec2 v2i32_var = ivec2(0, 0);
-  ivec2 v2i32_let = ivec2(0, 0);
-  uvec3 v3u32_var = uvec3(0u, 0u, 0u);
-  uvec3 v3u32_let = uvec3(0u, 0u, 0u);
-  vec4 v4f32_var = vec4(0.0f, 0.0f, 0.0f, 0.0f);
-  vec4 v4f32_let = vec4(0.0f, 0.0f, 0.0f, 0.0f);
-  mat2x3 m2x3_var = mat2x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
-  mat3x4 m3x4_let = mat3x4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
+  ivec2 v2i32_var = ivec2(0);
+  ivec2 v2i32_let = ivec2(0);
+  uvec3 v3u32_var = uvec3(0u);
+  uvec3 v3u32_let = uvec3(0u);
+  vec4 v4f32_var = vec4(0.0f);
+  vec4 v4f32_let = vec4(0.0f);
+  mat2x3 m2x3_var = mat2x3(vec3(0.0f), vec3(0.0f));
+  mat3x4 m3x4_let = mat3x4(vec4(0.0f), vec4(0.0f), vec4(0.0f));
   float arr_var[4] = float[4](0.0f, 0.0f, 0.0f, 0.0f);
   float arr_let[4] = float[4](0.0f, 0.0f, 0.0f, 0.0f);
   S struct_var = S(0.0f);
diff --git a/test/tint/types/function_scope_var_conversions.wgsl.expected.glsl b/test/tint/types/function_scope_var_conversions.wgsl.expected.glsl
index e91857e..afb853e 100644
--- a/test/tint/types/function_scope_var_conversions.wgsl.expected.glsl
+++ b/test/tint/types/function_scope_var_conversions.wgsl.expected.glsl
@@ -1,27 +1,27 @@
 #version 310 es
 
 void tint_symbol() {
-  bool bool_var1 = bool(123u);
-  bool bool_var2 = bool(123);
-  bool bool_var3 = bool(123.0f);
-  int i32_var1 = int(123u);
-  int i32_var2 = int(123.0f);
-  int i32_var3 = int(true);
-  uint u32_var1 = uint(123);
-  uint u32_var2 = uint(123.0f);
-  uint u32_var3 = uint(true);
-  bvec3 v3bool_var1 = bvec3(uvec3(123u));
-  bvec3 v3bool_var11 = bvec3(uvec3(1234u));
-  bvec3 v3bool_var2 = bvec3(ivec3(123));
-  bvec3 v3bool_var3 = bvec3(vec3(123.0f));
-  ivec3 v3i32_var1 = ivec3(uvec3(123u));
-  ivec3 v3i32_var2 = ivec3(vec3(123.0f));
-  ivec3 v3i32_var3 = ivec3(bvec3(true));
-  uvec3 v3u32_var1 = uvec3(ivec3(123));
-  uvec3 v3u32_var2 = uvec3(vec3(123.0f));
-  uvec3 v3u32_var3 = uvec3(bvec3(true));
-  bvec3 v3bool_var4 = bvec3(bvec2(vec2(123.0f)), true);
-  bvec4 v4bool_var5 = bvec4(bvec2(vec2(123.0f, 0.0f)), bvec2(true, bool(float(0.0f))));
+  bool bool_var1 = true;
+  bool bool_var2 = true;
+  bool bool_var3 = true;
+  int i32_var1 = 123;
+  int i32_var2 = 123;
+  int i32_var3 = 1;
+  uint u32_var1 = 123u;
+  uint u32_var2 = 123u;
+  uint u32_var3 = 1u;
+  bvec3 v3bool_var1 = bvec3(true);
+  bvec3 v3bool_var11 = bvec3(true);
+  bvec3 v3bool_var2 = bvec3(true);
+  bvec3 v3bool_var3 = bvec3(true);
+  ivec3 v3i32_var1 = ivec3(123);
+  ivec3 v3i32_var2 = ivec3(123);
+  ivec3 v3i32_var3 = ivec3(1);
+  uvec3 v3u32_var1 = uvec3(123u);
+  uvec3 v3u32_var2 = uvec3(123u);
+  uvec3 v3u32_var3 = uvec3(1u);
+  bvec3 v3bool_var4 = bvec3(true);
+  bvec4 v4bool_var5 = bvec4(true, false, true, false);
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/types/module_scope_var.wgsl.expected.glsl b/test/tint/types/module_scope_var.wgsl.expected.glsl
index c9ffa11..139306d 100644
--- a/test/tint/types/module_scope_var.wgsl.expected.glsl
+++ b/test/tint/types/module_scope_var.wgsl.expected.glsl
@@ -19,10 +19,10 @@
   i32_var = 0;
   u32_var = 0u;
   f32_var = 0.0f;
-  v2i32_var = ivec2(0, 0);
-  v3u32_var = uvec3(0u, 0u, 0u);
-  v4f32_var = vec4(0.0f, 0.0f, 0.0f, 0.0f);
-  m2x3_var = mat2x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
+  v2i32_var = ivec2(0);
+  v3u32_var = uvec3(0u);
+  v4f32_var = vec4(0.0f);
+  m2x3_var = mat2x3(vec3(0.0f), vec3(0.0f));
   float tint_symbol_1[4] = float[4](0.0f, 0.0f, 0.0f, 0.0f);
   arr_var = tint_symbol_1;
   S tint_symbol_2 = S(0.0f);
diff --git a/test/tint/types/module_scope_var_conversions.wgsl.expected.glsl b/test/tint/types/module_scope_var_conversions.wgsl.expected.glsl
index 5e715e5..fcf3ca7 100644
--- a/test/tint/types/module_scope_var_conversions.wgsl.expected.glsl
+++ b/test/tint/types/module_scope_var_conversions.wgsl.expected.glsl
@@ -1,25 +1,25 @@
 #version 310 es
 
-bool bool_var1 = bool(1u);
-bool bool_var2 = bool(1);
-bool bool_var3 = bool(1.0f);
-int i32_var1 = int(1u);
-int i32_var2 = int(1.0f);
-int i32_var3 = int(true);
-uint u32_var1 = uint(1);
-uint u32_var2 = uint(1.0f);
-uint u32_var3 = uint(true);
-bvec3 v3bool_var1 = bvec3(uvec3(1u));
-bvec3 v3bool_var2 = bvec3(ivec3(1));
-bvec3 v3bool_var3 = bvec3(vec3(1.0f));
-ivec3 v3i32_var1 = ivec3(uvec3(1u));
-ivec3 v3i32_var2 = ivec3(vec3(1.0f));
-ivec3 v3i32_var3 = ivec3(bvec3(true));
-uvec3 v3u32_var1 = uvec3(ivec3(1));
-uvec3 v3u32_var2 = uvec3(vec3(1.0f));
-uvec3 v3u32_var3 = uvec3(bvec3(true));
-bvec3 v3bool_var4 = bvec3(bvec2(vec2(123.0f)), true);
-bvec4 v4bool_var5 = bvec4(bvec2(vec2(123.0f, 0.0f)), bvec2(true, bool(float(0.0f))));
+bool bool_var1 = true;
+bool bool_var2 = true;
+bool bool_var3 = true;
+int i32_var1 = 1;
+int i32_var2 = 1;
+int i32_var3 = 1;
+uint u32_var1 = 1u;
+uint u32_var2 = 1u;
+uint u32_var3 = 1u;
+bvec3 v3bool_var1 = bvec3(true);
+bvec3 v3bool_var2 = bvec3(true);
+bvec3 v3bool_var3 = bvec3(true);
+ivec3 v3i32_var1 = ivec3(1);
+ivec3 v3i32_var2 = ivec3(1);
+ivec3 v3i32_var3 = ivec3(1);
+uvec3 v3u32_var1 = uvec3(1u);
+uvec3 v3u32_var2 = uvec3(1u);
+uvec3 v3u32_var3 = uvec3(1u);
+bvec3 v3bool_var4 = bvec3(true);
+bvec4 v4bool_var5 = bvec4(true, false, true, false);
 void tint_symbol() {
   bool_var1 = false;
   bool_var2 = false;
@@ -30,17 +30,17 @@
   u32_var1 = 0u;
   u32_var2 = 0u;
   u32_var3 = 0u;
-  v3bool_var1 = bvec3(false, false, false);
-  v3bool_var2 = bvec3(false, false, false);
-  v3bool_var3 = bvec3(false, false, false);
-  v3bool_var4 = bvec3(false, false, false);
-  v4bool_var5 = bvec4(false, false, false, false);
-  v3i32_var1 = ivec3(0, 0, 0);
-  v3i32_var2 = ivec3(0, 0, 0);
-  v3i32_var3 = ivec3(0, 0, 0);
-  v3u32_var1 = uvec3(0u, 0u, 0u);
-  v3u32_var2 = uvec3(0u, 0u, 0u);
-  v3u32_var3 = uvec3(0u, 0u, 0u);
+  v3bool_var1 = bvec3(false);
+  v3bool_var2 = bvec3(false);
+  v3bool_var3 = bvec3(false);
+  v3bool_var4 = bvec3(false);
+  v4bool_var5 = bvec4(false);
+  v3i32_var1 = ivec3(0);
+  v3i32_var2 = ivec3(0);
+  v3i32_var3 = ivec3(0);
+  v3u32_var1 = uvec3(0u);
+  v3u32_var2 = uvec3(0u);
+  v3u32_var3 = uvec3(0u);
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/types/module_scope_var_initializers.wgsl.expected.glsl b/test/tint/types/module_scope_var_initializers.wgsl.expected.glsl
index c9ffa11..ecf7368 100644
--- a/test/tint/types/module_scope_var_initializers.wgsl.expected.glsl
+++ b/test/tint/types/module_scope_var_initializers.wgsl.expected.glsl
@@ -8,10 +8,10 @@
 int i32_var = 0;
 uint u32_var = 0u;
 float f32_var = 0.0f;
-ivec2 v2i32_var = ivec2(0, 0);
-uvec3 v3u32_var = uvec3(0u, 0u, 0u);
-vec4 v4f32_var = vec4(0.0f, 0.0f, 0.0f, 0.0f);
-mat2x3 m2x3_var = mat2x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
+ivec2 v2i32_var = ivec2(0);
+uvec3 v3u32_var = uvec3(0u);
+vec4 v4f32_var = vec4(0.0f);
+mat2x3 m2x3_var = mat2x3(vec3(0.0f), vec3(0.0f));
 float arr_var[4] = float[4](0.0f, 0.0f, 0.0f, 0.0f);
 S struct_var = S(0.0f);
 void tint_symbol() {
@@ -19,10 +19,10 @@
   i32_var = 0;
   u32_var = 0u;
   f32_var = 0.0f;
-  v2i32_var = ivec2(0, 0);
-  v3u32_var = uvec3(0u, 0u, 0u);
-  v4f32_var = vec4(0.0f, 0.0f, 0.0f, 0.0f);
-  m2x3_var = mat2x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
+  v2i32_var = ivec2(0);
+  v3u32_var = uvec3(0u);
+  v4f32_var = vec4(0.0f);
+  m2x3_var = mat2x3(vec3(0.0f), vec3(0.0f));
   float tint_symbol_1[4] = float[4](0.0f, 0.0f, 0.0f, 0.0f);
   arr_var = tint_symbol_1;
   S tint_symbol_2 = S(0.0f);
diff --git a/test/tint/var/inferred/function.wgsl.expected.glsl b/test/tint/var/inferred/function.wgsl.expected.glsl
index 797dbaf..b350456 100644
--- a/test/tint/var/inferred/function.wgsl.expected.glsl
+++ b/test/tint/var/inferred/function.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 };
 
 vec4 tint_symbol() {
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+  return vec4(0.0f);
 }
 
 void main() {
diff --git a/test/tint/var/initialization/workgroup/matrix.wgsl.expected.glsl b/test/tint/var/initialization/workgroup/matrix.wgsl.expected.glsl
index 8a9d90a..d657b89 100644
--- a/test/tint/var/initialization/workgroup/matrix.wgsl.expected.glsl
+++ b/test/tint/var/initialization/workgroup/matrix.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 shared mat2x3 v;
 void tint_symbol(uint local_invocation_index) {
   {
-    v = mat2x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
+    v = mat2x3(vec3(0.0f), vec3(0.0f));
   }
   barrier();
 }
diff --git a/test/tint/var/initialization/workgroup/vector.wgsl.expected.glsl b/test/tint/var/initialization/workgroup/vector.wgsl.expected.glsl
index 8db8861..39dfffd 100644
--- a/test/tint/var/initialization/workgroup/vector.wgsl.expected.glsl
+++ b/test/tint/var/initialization/workgroup/vector.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 shared ivec3 v;
 void tint_symbol(uint local_invocation_index) {
   {
-    v = ivec3(0, 0, 0);
+    v = ivec3(0);
   }
   barrier();
 }
diff --git a/test/tint/var/uses/many_workgroup_vars.wgsl.expected.glsl b/test/tint/var/uses/many_workgroup_vars.wgsl.expected.glsl
index 2fafa41..ea1bcc3 100644
--- a/test/tint/var/uses/many_workgroup_vars.wgsl.expected.glsl
+++ b/test/tint/var/uses/many_workgroup_vars.wgsl.expected.glsl
@@ -102,106 +102,106 @@
 shared mat2 m99;
 void tint_symbol(uint idx) {
   {
-    m00 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m01 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m02 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m03 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m04 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m05 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m06 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m07 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m08 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m09 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m10 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m11 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m12 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m13 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m14 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m15 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m16 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m17 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m18 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m19 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m20 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m21 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m22 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m23 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m24 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m25 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m26 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m27 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m28 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m29 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m30 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m31 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m32 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m33 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m34 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m35 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m36 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m37 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m38 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m39 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m40 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m41 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m42 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m43 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m44 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m45 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m46 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m47 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m48 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m49 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m50 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m51 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m52 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m53 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m54 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m55 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m56 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m57 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m58 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m59 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m60 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m61 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m62 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m63 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m64 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m65 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m66 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m67 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m68 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m69 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m70 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m71 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m72 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m73 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m74 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m75 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m76 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m77 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m78 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m79 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m80 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m81 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m82 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m83 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m84 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m85 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m86 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m87 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m88 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m89 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m90 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m91 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m92 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m93 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m94 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m95 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m96 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m97 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m98 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
-    m99 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+    m00 = mat2(vec2(0.0f), vec2(0.0f));
+    m01 = mat2(vec2(0.0f), vec2(0.0f));
+    m02 = mat2(vec2(0.0f), vec2(0.0f));
+    m03 = mat2(vec2(0.0f), vec2(0.0f));
+    m04 = mat2(vec2(0.0f), vec2(0.0f));
+    m05 = mat2(vec2(0.0f), vec2(0.0f));
+    m06 = mat2(vec2(0.0f), vec2(0.0f));
+    m07 = mat2(vec2(0.0f), vec2(0.0f));
+    m08 = mat2(vec2(0.0f), vec2(0.0f));
+    m09 = mat2(vec2(0.0f), vec2(0.0f));
+    m10 = mat2(vec2(0.0f), vec2(0.0f));
+    m11 = mat2(vec2(0.0f), vec2(0.0f));
+    m12 = mat2(vec2(0.0f), vec2(0.0f));
+    m13 = mat2(vec2(0.0f), vec2(0.0f));
+    m14 = mat2(vec2(0.0f), vec2(0.0f));
+    m15 = mat2(vec2(0.0f), vec2(0.0f));
+    m16 = mat2(vec2(0.0f), vec2(0.0f));
+    m17 = mat2(vec2(0.0f), vec2(0.0f));
+    m18 = mat2(vec2(0.0f), vec2(0.0f));
+    m19 = mat2(vec2(0.0f), vec2(0.0f));
+    m20 = mat2(vec2(0.0f), vec2(0.0f));
+    m21 = mat2(vec2(0.0f), vec2(0.0f));
+    m22 = mat2(vec2(0.0f), vec2(0.0f));
+    m23 = mat2(vec2(0.0f), vec2(0.0f));
+    m24 = mat2(vec2(0.0f), vec2(0.0f));
+    m25 = mat2(vec2(0.0f), vec2(0.0f));
+    m26 = mat2(vec2(0.0f), vec2(0.0f));
+    m27 = mat2(vec2(0.0f), vec2(0.0f));
+    m28 = mat2(vec2(0.0f), vec2(0.0f));
+    m29 = mat2(vec2(0.0f), vec2(0.0f));
+    m30 = mat2(vec2(0.0f), vec2(0.0f));
+    m31 = mat2(vec2(0.0f), vec2(0.0f));
+    m32 = mat2(vec2(0.0f), vec2(0.0f));
+    m33 = mat2(vec2(0.0f), vec2(0.0f));
+    m34 = mat2(vec2(0.0f), vec2(0.0f));
+    m35 = mat2(vec2(0.0f), vec2(0.0f));
+    m36 = mat2(vec2(0.0f), vec2(0.0f));
+    m37 = mat2(vec2(0.0f), vec2(0.0f));
+    m38 = mat2(vec2(0.0f), vec2(0.0f));
+    m39 = mat2(vec2(0.0f), vec2(0.0f));
+    m40 = mat2(vec2(0.0f), vec2(0.0f));
+    m41 = mat2(vec2(0.0f), vec2(0.0f));
+    m42 = mat2(vec2(0.0f), vec2(0.0f));
+    m43 = mat2(vec2(0.0f), vec2(0.0f));
+    m44 = mat2(vec2(0.0f), vec2(0.0f));
+    m45 = mat2(vec2(0.0f), vec2(0.0f));
+    m46 = mat2(vec2(0.0f), vec2(0.0f));
+    m47 = mat2(vec2(0.0f), vec2(0.0f));
+    m48 = mat2(vec2(0.0f), vec2(0.0f));
+    m49 = mat2(vec2(0.0f), vec2(0.0f));
+    m50 = mat2(vec2(0.0f), vec2(0.0f));
+    m51 = mat2(vec2(0.0f), vec2(0.0f));
+    m52 = mat2(vec2(0.0f), vec2(0.0f));
+    m53 = mat2(vec2(0.0f), vec2(0.0f));
+    m54 = mat2(vec2(0.0f), vec2(0.0f));
+    m55 = mat2(vec2(0.0f), vec2(0.0f));
+    m56 = mat2(vec2(0.0f), vec2(0.0f));
+    m57 = mat2(vec2(0.0f), vec2(0.0f));
+    m58 = mat2(vec2(0.0f), vec2(0.0f));
+    m59 = mat2(vec2(0.0f), vec2(0.0f));
+    m60 = mat2(vec2(0.0f), vec2(0.0f));
+    m61 = mat2(vec2(0.0f), vec2(0.0f));
+    m62 = mat2(vec2(0.0f), vec2(0.0f));
+    m63 = mat2(vec2(0.0f), vec2(0.0f));
+    m64 = mat2(vec2(0.0f), vec2(0.0f));
+    m65 = mat2(vec2(0.0f), vec2(0.0f));
+    m66 = mat2(vec2(0.0f), vec2(0.0f));
+    m67 = mat2(vec2(0.0f), vec2(0.0f));
+    m68 = mat2(vec2(0.0f), vec2(0.0f));
+    m69 = mat2(vec2(0.0f), vec2(0.0f));
+    m70 = mat2(vec2(0.0f), vec2(0.0f));
+    m71 = mat2(vec2(0.0f), vec2(0.0f));
+    m72 = mat2(vec2(0.0f), vec2(0.0f));
+    m73 = mat2(vec2(0.0f), vec2(0.0f));
+    m74 = mat2(vec2(0.0f), vec2(0.0f));
+    m75 = mat2(vec2(0.0f), vec2(0.0f));
+    m76 = mat2(vec2(0.0f), vec2(0.0f));
+    m77 = mat2(vec2(0.0f), vec2(0.0f));
+    m78 = mat2(vec2(0.0f), vec2(0.0f));
+    m79 = mat2(vec2(0.0f), vec2(0.0f));
+    m80 = mat2(vec2(0.0f), vec2(0.0f));
+    m81 = mat2(vec2(0.0f), vec2(0.0f));
+    m82 = mat2(vec2(0.0f), vec2(0.0f));
+    m83 = mat2(vec2(0.0f), vec2(0.0f));
+    m84 = mat2(vec2(0.0f), vec2(0.0f));
+    m85 = mat2(vec2(0.0f), vec2(0.0f));
+    m86 = mat2(vec2(0.0f), vec2(0.0f));
+    m87 = mat2(vec2(0.0f), vec2(0.0f));
+    m88 = mat2(vec2(0.0f), vec2(0.0f));
+    m89 = mat2(vec2(0.0f), vec2(0.0f));
+    m90 = mat2(vec2(0.0f), vec2(0.0f));
+    m91 = mat2(vec2(0.0f), vec2(0.0f));
+    m92 = mat2(vec2(0.0f), vec2(0.0f));
+    m93 = mat2(vec2(0.0f), vec2(0.0f));
+    m94 = mat2(vec2(0.0f), vec2(0.0f));
+    m95 = mat2(vec2(0.0f), vec2(0.0f));
+    m96 = mat2(vec2(0.0f), vec2(0.0f));
+    m97 = mat2(vec2(0.0f), vec2(0.0f));
+    m98 = mat2(vec2(0.0f), vec2(0.0f));
+    m99 = mat2(vec2(0.0f), vec2(0.0f));
   }
   barrier();
   m00[0][0] = 1.0f;