tint/writer/hlsl: Inline constant expressions

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

Bug: tint:1504
Change-Id: I79ad567954de2d1cfea09dda255894e4e2aa678e
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/92081
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Antonio Maiorano <amaiorano@google.com>
Commit-Queue: Ben Clayton <bclayton@chromium.org>
diff --git a/test/tint/builtins/gen/transpose/2585cd.wgsl.expected.hlsl b/test/tint/builtins/gen/transpose/2585cd.wgsl.expected.hlsl
index 0dcb894..3ffeca1 100644
--- a/test/tint/builtins/gen/transpose/2585cd.wgsl.expected.hlsl
+++ b/test/tint/builtins/gen/transpose/2585cd.wgsl.expected.hlsl
@@ -1,5 +1,5 @@
 void transpose_2585cd() {
-  float3x4 res = transpose(float4x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
+  float3x4 res = transpose(float4x3((0.0f).xxx, (0.0f).xxx, (0.0f).xxx, (0.0f).xxx));
 }
 
 struct tint_symbol {
@@ -8,7 +8,7 @@
 
 float4 vertex_main_inner() {
   transpose_2585cd();
-  return float4(0.0f, 0.0f, 0.0f, 0.0f);
+  return (0.0f).xxxx;
 }
 
 tint_symbol vertex_main() {