HLSL-IR: emit constant i32 literals as int(<literal>)

DXC workaround: unless we compile with '-HV 202x', constant signed
integral values are interpreted 64-bit ints. Apart from this not
matching our intent, there are bugs in DXC when handling 64-bit integer
splats. Therefore, we always make sure to emit these values as 32-bit
signed ints.

Note that this fixes 110 Tint e2e test failures (difficult to see
because so many other tests are affected by this change).

Note that this obviates the need for this change, which we can revert
later: https://dawn-review.googlesource.com/c/dawn/+/205915

Bug: 368092875
Bug: 361794783
Change-Id: I2d0ef1dd00ae41e16094438f056851ecab6466a6
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/207334
Commit-Queue: Antonio Maiorano <amaiorano@google.com>
Reviewed-by: James Price <jrprice@google.com>
Reviewed-by: dan sinclair <dsinclair@google.com>
diff --git a/test/tint/builtins/gen/literal/textureLoad/582015.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/582015.wgsl.expected.ir.dxc.hlsl
index 2ecc2ff..ec044d7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/582015.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/582015.wgsl.expected.ir.dxc.hlsl
@@ -13,8 +13,8 @@
 Texture2DArray<int4> arg_0 : register(t0, space1);
 int4 textureLoad_582015() {
   Texture2DArray<int4> v = arg_0;
-  int2 v_1 = int2((1).xx);
-  int4 res = int4(v.Load(int4(v_1, int(1), 0)));
+  int2 v_1 = int2((int(1)).xx);
+  int4 res = int4(v.Load(int4(v_1, int(int(1)), int(0))));
   return res;
 }