HLSL-IR: fix arrays of size 1 initialization

Bug: b/375234377
Change-Id: I493692bff512b6e0fd8e42f32b48c3db000c5a3d
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/212194
Reviewed-by: dan sinclair <dsinclair@chromium.org>
Auto-Submit: Antonio Maiorano <amaiorano@google.com>
Commit-Queue: dan sinclair <dsinclair@chromium.org>
diff --git a/src/tint/lang/hlsl/writer/printer/printer.cc b/src/tint/lang/hlsl/writer/printer/printer.cc
index 05d3209..34ce4ea 100644
--- a/src/tint/lang/hlsl/writer/printer/printer.cc
+++ b/src/tint/lang/hlsl/writer/printer/printer.cc
@@ -777,18 +777,9 @@
         Switch(
             c->Result(0)->Type(),
             [&](const core::type::Array*) {
-                // The PromoteInitializers transform will inject splat arrays as composites of one
-                // element. These need to convert to `(type)0` in HLSL otherwise DXC will complain
-                // about missing values.
-                if (c->Args().Length() == 1) {
-                    out << "(";
-                    EmitType(out, c->Result(0)->Type());
-                    out << ")0";
-                } else {
-                    out << "{";
-                    emit_args();
-                    out << "}";
-                }
+                out << "{";
+                emit_args();
+                out << "}";
             },
             [&](const core::type::Struct*) {
                 out << "{";
diff --git a/test/tint/bug/tint/2059.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/2059.wgsl.expected.ir.dxc.hlsl
index 0fd28a0..07750db 100644
--- a/test/tint/bug/tint/2059.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/2059.wgsl.expected.ir.dxc.hlsl
@@ -243,7 +243,7 @@
   S v_44 = {m};
   S a_1 = v_44;
   v_39(0u, a_1);
-  float3x3 v_45[1] = (float3x3[1])0;
+  float3x3 v_45[1] = {m};
   S2 v_46 = {v_45};
   S2 a_2 = v_46;
   v_36(0u, a_2);
@@ -252,20 +252,20 @@
   S3 a_3 = v_48;
   v_30(0u, a_3);
   S v_49 = {m};
-  S v_50[1] = (S[1])0;
+  S v_50[1] = {v_49};
   S4 v_51 = {v_50};
   S4 a_4 = v_51;
   v_26(0u, a_4);
-  float3x3 v_52[1] = (float3x3[1])0;
+  float3x3 v_52[1] = {m};
   float3x3 a_5[1] = v_52;
   v_17(0u, a_5);
   S v_53 = {m};
-  S v_54[1] = (S[1])0;
+  S v_54[1] = {v_53};
   S a_6[1] = v_54;
   v_12(0u, a_6);
-  float3x3 v_55[1] = (float3x3[1])0;
+  float3x3 v_55[1] = {m};
   S2 v_56 = {v_55};
-  S2 v_57[1] = (S2[1])0;
+  S2 v_57[1] = {v_56};
   S2 a_7[1] = v_57;
   v_6(0u, a_7);
 }
diff --git a/test/tint/bug/tint/2059.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/2059.wgsl.expected.ir.fxc.hlsl
index 10d187e..1b41e47 100644
--- a/test/tint/bug/tint/2059.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/2059.wgsl.expected.ir.fxc.hlsl
@@ -264,7 +264,7 @@
   S v_45 = {m};
   S a_1 = v_45;
   v_39(0u, a_1);
-  float3x3 v_46[1] = (float3x3[1])0;
+  float3x3 v_46[1] = {m};
   S2 v_47 = {v_46};
   S2 a_2 = v_47;
   v_36(0u, a_2);
@@ -273,20 +273,20 @@
   S3 a_3 = v_49;
   v_30(0u, a_3);
   S v_50 = {m};
-  S v_51[1] = (S[1])0;
+  S v_51[1] = {v_50};
   S4 v_52 = {v_51};
   S4 a_4 = v_52;
   v_26(0u, a_4);
-  float3x3 v_53[1] = (float3x3[1])0;
+  float3x3 v_53[1] = {m};
   float3x3 a_5[1] = v_53;
   v_17(0u, a_5);
   S v_54 = {m};
-  S v_55[1] = (S[1])0;
+  S v_55[1] = {v_54};
   S a_6[1] = v_55;
   v_12(0u, a_6);
-  float3x3 v_56[1] = (float3x3[1])0;
+  float3x3 v_56[1] = {m};
   S2 v_57 = {v_56};
-  S2 v_58[1] = (S2[1])0;
+  S2 v_58[1] = {v_57};
   S2 a_7[1] = v_58;
   v_6(0u, a_7);
 }
diff --git a/test/tint/builtins/workgroupUniformLoad/via_param.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/workgroupUniformLoad/via_param.wgsl.expected.ir.dxc.hlsl
index 56f827a..1b92454 100644
--- a/test/tint/builtins/workgroupUniformLoad/via_param.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/workgroupUniformLoad/via_param.wgsl.expected.ir.dxc.hlsl
@@ -8,7 +8,7 @@
 }
 
 int bar() {
-  uint v_2[1] = (uint[1])0;
+  uint v_2[1] = {uint(int(0))};
   return foo(v_2);
 }
 
diff --git a/test/tint/builtins/workgroupUniformLoad/via_param.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/workgroupUniformLoad/via_param.wgsl.expected.ir.fxc.hlsl
index 56f827a..1b92454 100644
--- a/test/tint/builtins/workgroupUniformLoad/via_param.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/workgroupUniformLoad/via_param.wgsl.expected.ir.fxc.hlsl
@@ -8,7 +8,7 @@
 }
 
 int bar() {
-  uint v_2[1] = (uint[1])0;
+  uint v_2[1] = {uint(int(0))};
   return foo(v_2);
 }
 
diff --git a/test/tint/ptr_ref/load/param/storage/struct_in_array.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/load/param/storage/struct_in_array.wgsl.expected.ir.dxc.hlsl
index 4465345..38fdfdf 100644
--- a/test/tint/ptr_ref/load/param/storage/struct_in_array.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/load/param/storage/struct_in_array.wgsl.expected.ir.dxc.hlsl
@@ -16,7 +16,7 @@
 
 [numthreads(1, 1, 1)]
 void main() {
-  uint v_3[1] = (uint[1])0;
+  uint v_3[1] = {uint(int(2))};
   str r = func(v_3);
 }
 
diff --git a/test/tint/ptr_ref/load/param/storage/struct_in_array.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/load/param/storage/struct_in_array.wgsl.expected.ir.fxc.hlsl
index 4465345..38fdfdf 100644
--- a/test/tint/ptr_ref/load/param/storage/struct_in_array.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/load/param/storage/struct_in_array.wgsl.expected.ir.fxc.hlsl
@@ -16,7 +16,7 @@
 
 [numthreads(1, 1, 1)]
 void main() {
-  uint v_3[1] = (uint[1])0;
+  uint v_3[1] = {uint(int(2))};
   str r = func(v_3);
 }
 
diff --git a/test/tint/ptr_ref/load/param/storage/vec2_f32_in_mat2x2.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/load/param/storage/vec2_f32_in_mat2x2.wgsl.expected.ir.dxc.hlsl
index fff9464..7c51992 100644
--- a/test/tint/ptr_ref/load/param/storage/vec2_f32_in_mat2x2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/load/param/storage/vec2_f32_in_mat2x2.wgsl.expected.ir.dxc.hlsl
@@ -6,7 +6,7 @@
 
 [numthreads(1, 1, 1)]
 void main() {
-  uint v[1] = (uint[1])0;
+  uint v[1] = {uint(int(1))};
   float2 r = func(v);
 }
 
diff --git a/test/tint/ptr_ref/load/param/storage/vec2_f32_in_mat2x2.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/load/param/storage/vec2_f32_in_mat2x2.wgsl.expected.ir.fxc.hlsl
index fff9464..7c51992 100644
--- a/test/tint/ptr_ref/load/param/storage/vec2_f32_in_mat2x2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/load/param/storage/vec2_f32_in_mat2x2.wgsl.expected.ir.fxc.hlsl
@@ -6,7 +6,7 @@
 
 [numthreads(1, 1, 1)]
 void main() {
-  uint v[1] = (uint[1])0;
+  uint v[1] = {uint(int(1))};
   float2 r = func(v);
 }
 
diff --git a/test/tint/ptr_ref/load/param/storage/vec4_f32_in_mat2x4.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/load/param/storage/vec4_f32_in_mat2x4.wgsl.expected.ir.dxc.hlsl
index 0c48cb4..d102c40 100644
--- a/test/tint/ptr_ref/load/param/storage/vec4_f32_in_mat2x4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/load/param/storage/vec4_f32_in_mat2x4.wgsl.expected.ir.dxc.hlsl
@@ -6,7 +6,7 @@
 
 [numthreads(1, 1, 1)]
 void main() {
-  uint v[1] = (uint[1])0;
+  uint v[1] = {uint(int(1))};
   float4 r = func(v);
 }
 
diff --git a/test/tint/ptr_ref/load/param/storage/vec4_f32_in_mat2x4.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/load/param/storage/vec4_f32_in_mat2x4.wgsl.expected.ir.fxc.hlsl
index 0c48cb4..d102c40 100644
--- a/test/tint/ptr_ref/load/param/storage/vec4_f32_in_mat2x4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/load/param/storage/vec4_f32_in_mat2x4.wgsl.expected.ir.fxc.hlsl
@@ -6,7 +6,7 @@
 
 [numthreads(1, 1, 1)]
 void main() {
-  uint v[1] = (uint[1])0;
+  uint v[1] = {uint(int(1))};
   float4 r = func(v);
 }
 
diff --git a/test/tint/ptr_ref/load/param/uniform/struct_in_array.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/load/param/uniform/struct_in_array.wgsl.expected.ir.dxc.hlsl
index acca4fd..5be51ef 100644
--- a/test/tint/ptr_ref/load/param/uniform/struct_in_array.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/load/param/uniform/struct_in_array.wgsl.expected.ir.dxc.hlsl
@@ -18,7 +18,7 @@
 
 [numthreads(1, 1, 1)]
 void main() {
-  uint v_3[1] = (uint[1])0;
+  uint v_3[1] = {uint(int(2))};
   str r = func(v_3);
 }
 
diff --git a/test/tint/ptr_ref/load/param/uniform/struct_in_array.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/load/param/uniform/struct_in_array.wgsl.expected.ir.fxc.hlsl
index acca4fd..5be51ef 100644
--- a/test/tint/ptr_ref/load/param/uniform/struct_in_array.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/load/param/uniform/struct_in_array.wgsl.expected.ir.fxc.hlsl
@@ -18,7 +18,7 @@
 
 [numthreads(1, 1, 1)]
 void main() {
-  uint v_3[1] = (uint[1])0;
+  uint v_3[1] = {uint(int(2))};
   str r = func(v_3);
 }
 
diff --git a/test/tint/ptr_ref/load/param/uniform/vec2_f32_in_mat2x2.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/load/param/uniform/vec2_f32_in_mat2x2.wgsl.expected.ir.dxc.hlsl
index 8bb1ce3..806bfe4 100644
--- a/test/tint/ptr_ref/load/param/uniform/vec2_f32_in_mat2x2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/load/param/uniform/vec2_f32_in_mat2x2.wgsl.expected.ir.dxc.hlsl
@@ -10,7 +10,7 @@
 
 [numthreads(1, 1, 1)]
 void main() {
-  uint v_2[1] = (uint[1])0;
+  uint v_2[1] = {uint(int(1))};
   float2 r = func(v_2);
 }
 
diff --git a/test/tint/ptr_ref/load/param/uniform/vec2_f32_in_mat2x2.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/load/param/uniform/vec2_f32_in_mat2x2.wgsl.expected.ir.fxc.hlsl
index 8bb1ce3..806bfe4 100644
--- a/test/tint/ptr_ref/load/param/uniform/vec2_f32_in_mat2x2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/load/param/uniform/vec2_f32_in_mat2x2.wgsl.expected.ir.fxc.hlsl
@@ -10,7 +10,7 @@
 
 [numthreads(1, 1, 1)]
 void main() {
-  uint v_2[1] = (uint[1])0;
+  uint v_2[1] = {uint(int(1))};
   float2 r = func(v_2);
 }
 
diff --git a/test/tint/ptr_ref/load/param/uniform/vec4_f32_in_mat2x4.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/load/param/uniform/vec4_f32_in_mat2x4.wgsl.expected.ir.dxc.hlsl
index 9fa6205..c7b2dde 100644
--- a/test/tint/ptr_ref/load/param/uniform/vec4_f32_in_mat2x4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/load/param/uniform/vec4_f32_in_mat2x4.wgsl.expected.ir.dxc.hlsl
@@ -9,7 +9,7 @@
 
 [numthreads(1, 1, 1)]
 void main() {
-  uint v_1[1] = (uint[1])0;
+  uint v_1[1] = {uint(int(1))};
   float4 r = func(v_1);
 }
 
diff --git a/test/tint/ptr_ref/load/param/uniform/vec4_f32_in_mat2x4.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/load/param/uniform/vec4_f32_in_mat2x4.wgsl.expected.ir.fxc.hlsl
index 9fa6205..c7b2dde 100644
--- a/test/tint/ptr_ref/load/param/uniform/vec4_f32_in_mat2x4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/load/param/uniform/vec4_f32_in_mat2x4.wgsl.expected.ir.fxc.hlsl
@@ -9,7 +9,7 @@
 
 [numthreads(1, 1, 1)]
 void main() {
-  uint v_1[1] = (uint[1])0;
+  uint v_1[1] = {uint(int(1))};
   float4 r = func(v_1);
 }
 
diff --git a/test/tint/ptr_ref/load/param/workgroup/struct_in_array.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/load/param/workgroup/struct_in_array.wgsl.expected.ir.dxc.hlsl
index 9c0d3c7..e8486b6 100644
--- a/test/tint/ptr_ref/load/param/workgroup/struct_in_array.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/load/param/workgroup/struct_in_array.wgsl.expected.ir.dxc.hlsl
@@ -31,7 +31,7 @@
     }
   }
   GroupMemoryBarrierWithGroupSync();
-  uint v_4[1] = (uint[1])0;
+  uint v_4[1] = {uint(int(2))};
   str r = func(v_4);
 }
 
diff --git a/test/tint/ptr_ref/load/param/workgroup/struct_in_array.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/load/param/workgroup/struct_in_array.wgsl.expected.ir.fxc.hlsl
index 9c0d3c7..e8486b6 100644
--- a/test/tint/ptr_ref/load/param/workgroup/struct_in_array.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/load/param/workgroup/struct_in_array.wgsl.expected.ir.fxc.hlsl
@@ -31,7 +31,7 @@
     }
   }
   GroupMemoryBarrierWithGroupSync();
-  uint v_4[1] = (uint[1])0;
+  uint v_4[1] = {uint(int(2))};
   str r = func(v_4);
 }
 
diff --git a/test/tint/ptr_ref/load/param/workgroup/vec2_f32_in_mat2x2.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/load/param/workgroup/vec2_f32_in_mat2x2.wgsl.expected.ir.dxc.hlsl
index 0c2d798..5ba60f7 100644
--- a/test/tint/ptr_ref/load/param/workgroup/vec2_f32_in_mat2x2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/load/param/workgroup/vec2_f32_in_mat2x2.wgsl.expected.ir.dxc.hlsl
@@ -13,7 +13,7 @@
     S = float2x2((0.0f).xx, (0.0f).xx);
   }
   GroupMemoryBarrierWithGroupSync();
-  uint v[1] = (uint[1])0;
+  uint v[1] = {uint(int(1))};
   float2 r = func(v);
 }
 
diff --git a/test/tint/ptr_ref/load/param/workgroup/vec2_f32_in_mat2x2.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/load/param/workgroup/vec2_f32_in_mat2x2.wgsl.expected.ir.fxc.hlsl
index 0c2d798..5ba60f7 100644
--- a/test/tint/ptr_ref/load/param/workgroup/vec2_f32_in_mat2x2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/load/param/workgroup/vec2_f32_in_mat2x2.wgsl.expected.ir.fxc.hlsl
@@ -13,7 +13,7 @@
     S = float2x2((0.0f).xx, (0.0f).xx);
   }
   GroupMemoryBarrierWithGroupSync();
-  uint v[1] = (uint[1])0;
+  uint v[1] = {uint(int(1))};
   float2 r = func(v);
 }
 
diff --git a/test/tint/ptr_ref/load/param/workgroup/vec4_f32_in_mat2x4.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/load/param/workgroup/vec4_f32_in_mat2x4.wgsl.expected.ir.dxc.hlsl
index 2360fea..3f4532e 100644
--- a/test/tint/ptr_ref/load/param/workgroup/vec4_f32_in_mat2x4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/load/param/workgroup/vec4_f32_in_mat2x4.wgsl.expected.ir.dxc.hlsl
@@ -13,7 +13,7 @@
     S = float2x4((0.0f).xxxx, (0.0f).xxxx);
   }
   GroupMemoryBarrierWithGroupSync();
-  uint v[1] = (uint[1])0;
+  uint v[1] = {uint(int(1))};
   float4 r = func(v);
 }
 
diff --git a/test/tint/ptr_ref/load/param/workgroup/vec4_f32_in_mat2x4.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/load/param/workgroup/vec4_f32_in_mat2x4.wgsl.expected.ir.fxc.hlsl
index 2360fea..3f4532e 100644
--- a/test/tint/ptr_ref/load/param/workgroup/vec4_f32_in_mat2x4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/load/param/workgroup/vec4_f32_in_mat2x4.wgsl.expected.ir.fxc.hlsl
@@ -13,7 +13,7 @@
     S = float2x4((0.0f).xxxx, (0.0f).xxxx);
   }
   GroupMemoryBarrierWithGroupSync();
-  uint v[1] = (uint[1])0;
+  uint v[1] = {uint(int(1))};
   float4 r = func(v);
 }
 
diff --git a/test/tint/ptr_ref/store/param/storage/struct_in_array.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/store/param/storage/struct_in_array.wgsl.expected.ir.dxc.hlsl
index 177f58c..6eca4ed 100644
--- a/test/tint/ptr_ref/store/param/storage/struct_in_array.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/store/param/storage/struct_in_array.wgsl.expected.ir.dxc.hlsl
@@ -15,7 +15,7 @@
 
 [numthreads(1, 1, 1)]
 void main() {
-  uint v_2[1] = (uint[1])0;
+  uint v_2[1] = {uint(int(2))};
   func(v_2);
 }
 
diff --git a/test/tint/ptr_ref/store/param/storage/struct_in_array.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/store/param/storage/struct_in_array.wgsl.expected.ir.fxc.hlsl
index 177f58c..6eca4ed 100644
--- a/test/tint/ptr_ref/store/param/storage/struct_in_array.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/store/param/storage/struct_in_array.wgsl.expected.ir.fxc.hlsl
@@ -15,7 +15,7 @@
 
 [numthreads(1, 1, 1)]
 void main() {
-  uint v_2[1] = (uint[1])0;
+  uint v_2[1] = {uint(int(2))};
   func(v_2);
 }
 
diff --git a/test/tint/ptr_ref/store/param/storage/vec2_f32_in_mat2x2.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/store/param/storage/vec2_f32_in_mat2x2.wgsl.expected.ir.dxc.hlsl
index 792d9b3..a233fd6 100644
--- a/test/tint/ptr_ref/store/param/storage/vec2_f32_in_mat2x2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/store/param/storage/vec2_f32_in_mat2x2.wgsl.expected.ir.dxc.hlsl
@@ -7,7 +7,7 @@
 
 [numthreads(1, 1, 1)]
 void main() {
-  uint v_1[1] = (uint[1])0;
+  uint v_1[1] = {uint(int(1))};
   func(v_1);
 }
 
diff --git a/test/tint/ptr_ref/store/param/storage/vec2_f32_in_mat2x2.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/store/param/storage/vec2_f32_in_mat2x2.wgsl.expected.ir.fxc.hlsl
index 792d9b3..a233fd6 100644
--- a/test/tint/ptr_ref/store/param/storage/vec2_f32_in_mat2x2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/store/param/storage/vec2_f32_in_mat2x2.wgsl.expected.ir.fxc.hlsl
@@ -7,7 +7,7 @@
 
 [numthreads(1, 1, 1)]
 void main() {
-  uint v_1[1] = (uint[1])0;
+  uint v_1[1] = {uint(int(1))};
   func(v_1);
 }
 
diff --git a/test/tint/ptr_ref/store/param/storage/vec4_f32_in_mat2x4.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/store/param/storage/vec4_f32_in_mat2x4.wgsl.expected.ir.dxc.hlsl
index 82c7061..5b0e996 100644
--- a/test/tint/ptr_ref/store/param/storage/vec4_f32_in_mat2x4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/store/param/storage/vec4_f32_in_mat2x4.wgsl.expected.ir.dxc.hlsl
@@ -7,7 +7,7 @@
 
 [numthreads(1, 1, 1)]
 void main() {
-  uint v_1[1] = (uint[1])0;
+  uint v_1[1] = {uint(int(1))};
   func(v_1);
 }
 
diff --git a/test/tint/ptr_ref/store/param/storage/vec4_f32_in_mat2x4.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/store/param/storage/vec4_f32_in_mat2x4.wgsl.expected.ir.fxc.hlsl
index 82c7061..5b0e996 100644
--- a/test/tint/ptr_ref/store/param/storage/vec4_f32_in_mat2x4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/store/param/storage/vec4_f32_in_mat2x4.wgsl.expected.ir.fxc.hlsl
@@ -7,7 +7,7 @@
 
 [numthreads(1, 1, 1)]
 void main() {
-  uint v_1[1] = (uint[1])0;
+  uint v_1[1] = {uint(int(1))};
   func(v_1);
 }
 
diff --git a/test/tint/ptr_ref/store/param/workgroup/struct_in_array.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/store/param/workgroup/struct_in_array.wgsl.expected.ir.dxc.hlsl
index 1d35e6d..3fcc5aa 100644
--- a/test/tint/ptr_ref/store/param/workgroup/struct_in_array.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/store/param/workgroup/struct_in_array.wgsl.expected.ir.dxc.hlsl
@@ -31,7 +31,7 @@
     }
   }
   GroupMemoryBarrierWithGroupSync();
-  uint v_4[1] = (uint[1])0;
+  uint v_4[1] = {uint(int(2))};
   func(v_4);
 }
 
diff --git a/test/tint/ptr_ref/store/param/workgroup/struct_in_array.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/store/param/workgroup/struct_in_array.wgsl.expected.ir.fxc.hlsl
index 1d35e6d..3fcc5aa 100644
--- a/test/tint/ptr_ref/store/param/workgroup/struct_in_array.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/store/param/workgroup/struct_in_array.wgsl.expected.ir.fxc.hlsl
@@ -31,7 +31,7 @@
     }
   }
   GroupMemoryBarrierWithGroupSync();
-  uint v_4[1] = (uint[1])0;
+  uint v_4[1] = {uint(int(2))};
   func(v_4);
 }
 
diff --git a/test/tint/ptr_ref/store/param/workgroup/vec2_f32_in_mat2x2.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/store/param/workgroup/vec2_f32_in_mat2x2.wgsl.expected.ir.dxc.hlsl
index 4a4be2d..a7e776a 100644
--- a/test/tint/ptr_ref/store/param/workgroup/vec2_f32_in_mat2x2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/store/param/workgroup/vec2_f32_in_mat2x2.wgsl.expected.ir.dxc.hlsl
@@ -13,7 +13,7 @@
     S = float2x2((0.0f).xx, (0.0f).xx);
   }
   GroupMemoryBarrierWithGroupSync();
-  uint v[1] = (uint[1])0;
+  uint v[1] = {uint(int(1))};
   func(v);
 }
 
diff --git a/test/tint/ptr_ref/store/param/workgroup/vec2_f32_in_mat2x2.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/store/param/workgroup/vec2_f32_in_mat2x2.wgsl.expected.ir.fxc.hlsl
index 4a4be2d..a7e776a 100644
--- a/test/tint/ptr_ref/store/param/workgroup/vec2_f32_in_mat2x2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/store/param/workgroup/vec2_f32_in_mat2x2.wgsl.expected.ir.fxc.hlsl
@@ -13,7 +13,7 @@
     S = float2x2((0.0f).xx, (0.0f).xx);
   }
   GroupMemoryBarrierWithGroupSync();
-  uint v[1] = (uint[1])0;
+  uint v[1] = {uint(int(1))};
   func(v);
 }
 
diff --git a/test/tint/ptr_ref/store/param/workgroup/vec4_f32_in_mat2x4.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/store/param/workgroup/vec4_f32_in_mat2x4.wgsl.expected.ir.dxc.hlsl
index 0b7148d..483ab62 100644
--- a/test/tint/ptr_ref/store/param/workgroup/vec4_f32_in_mat2x4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/store/param/workgroup/vec4_f32_in_mat2x4.wgsl.expected.ir.dxc.hlsl
@@ -13,7 +13,7 @@
     S = float2x4((0.0f).xxxx, (0.0f).xxxx);
   }
   GroupMemoryBarrierWithGroupSync();
-  uint v[1] = (uint[1])0;
+  uint v[1] = {uint(int(1))};
   func(v);
 }
 
diff --git a/test/tint/ptr_ref/store/param/workgroup/vec4_f32_in_mat2x4.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/store/param/workgroup/vec4_f32_in_mat2x4.wgsl.expected.ir.fxc.hlsl
index 0b7148d..483ab62 100644
--- a/test/tint/ptr_ref/store/param/workgroup/vec4_f32_in_mat2x4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/store/param/workgroup/vec4_f32_in_mat2x4.wgsl.expected.ir.fxc.hlsl
@@ -13,7 +13,7 @@
     S = float2x4((0.0f).xxxx, (0.0f).xxxx);
   }
   GroupMemoryBarrierWithGroupSync();
-  uint v[1] = (uint[1])0;
+  uint v[1] = {uint(int(1))};
   func(v);
 }