Generic template and forward in stringstream.

This CL updates the templates in the StringStream to match more types.
All of the internal `operator<<` methods have been converted over to
StringStream. The precision was increased in order to better match the
precision needed to read back as a double.

Bug: tint:1686
Change-Id: Iaa15cf247f174967dd1014647ba5a74804997c22
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/122080
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: Dan Sinclair <dsinclair@chromium.org>
diff --git a/test/tint/bug/chromium/1350147.wgsl.expected.dxc.hlsl b/test/tint/bug/chromium/1350147.wgsl.expected.dxc.hlsl
index 4d6d056..251c3c2 100644
--- a/test/tint/bug/chromium/1350147.wgsl.expected.dxc.hlsl
+++ b/test/tint/bug/chromium/1350147.wgsl.expected.dxc.hlsl
@@ -8,8 +8,8 @@
 
 void more_tests_that_would_fail() {
   {
-    const float a = 1.471127629f;
-    const float b = 0.099668652f;
+    const float a = 1.47112762928009033203f;
+    const float b = 0.09966865181922912598f;
   }
   {
     const float a = 2.5f;
diff --git a/test/tint/bug/chromium/1350147.wgsl.expected.fxc.hlsl b/test/tint/bug/chromium/1350147.wgsl.expected.fxc.hlsl
index 4d6d056..251c3c2 100644
--- a/test/tint/bug/chromium/1350147.wgsl.expected.fxc.hlsl
+++ b/test/tint/bug/chromium/1350147.wgsl.expected.fxc.hlsl
@@ -8,8 +8,8 @@
 
 void more_tests_that_would_fail() {
   {
-    const float a = 1.471127629f;
-    const float b = 0.099668652f;
+    const float a = 1.47112762928009033203f;
+    const float b = 0.09966865181922912598f;
   }
   {
     const float a = 2.5f;
diff --git a/test/tint/bug/chromium/1350147.wgsl.expected.glsl b/test/tint/bug/chromium/1350147.wgsl.expected.glsl
index 0b8a55c..5860f9b 100644
--- a/test/tint/bug/chromium/1350147.wgsl.expected.glsl
+++ b/test/tint/bug/chromium/1350147.wgsl.expected.glsl
@@ -9,8 +9,8 @@
 
 void more_tests_that_would_fail() {
   {
-    float a = 1.471127629f;
-    float b = 0.099668652f;
+    float a = 1.47112762928009033203f;
+    float b = 0.09966865181922912598f;
   }
   {
     float a = 2.5f;
diff --git a/test/tint/bug/chromium/1350147.wgsl.expected.msl b/test/tint/bug/chromium/1350147.wgsl.expected.msl
index 9c6dde8..86dcfe5 100644
--- a/test/tint/bug/chromium/1350147.wgsl.expected.msl
+++ b/test/tint/bug/chromium/1350147.wgsl.expected.msl
@@ -6,8 +6,8 @@
 
 void more_tests_that_would_fail() {
   {
-    float const a = 1.471127629f;
-    float const b = 0.099668652f;
+    float const a = 1.47112762928009033203f;
+    float const b = 0.09966865181922912598f;
   }
   {
     float const a = 2.5f;
diff --git a/test/tint/bug/chromium/1350147.wgsl.expected.wgsl b/test/tint/bug/chromium/1350147.wgsl.expected.wgsl
index 000a19d..128801a 100644
--- a/test/tint/bug/chromium/1350147.wgsl.expected.wgsl
+++ b/test/tint/bug/chromium/1350147.wgsl.expected.wgsl
@@ -1,18 +1,18 @@
 fn original_clusterfuzz_code() {
-  _ = atan2(1, 0.1);
+  _ = atan2(1, 0.10000000000000000555);
 }
 
 fn more_tests_that_would_fail() {
   {
-    let a = atan2(1, 0.1);
-    let b = atan2(0.1, 1);
+    let a = atan2(1, 0.10000000000000000555);
+    let b = atan2(0.10000000000000000555, 1);
   }
   {
     let a = (1 + 1.5);
     let b = (1.5 + 1);
   }
   {
-    _ = atan2(1, 0.1);
-    _ = atan2(0.1, 1);
+    _ = atan2(1, 0.10000000000000000555);
+    _ = atan2(0.10000000000000000555, 1);
   }
 }
diff --git a/test/tint/bug/chromium/1405676.wgsl.expected.dxc.hlsl b/test/tint/bug/chromium/1405676.wgsl.expected.dxc.hlsl
index 722c2eb..1701eba 100644
--- a/test/tint/bug/chromium/1405676.wgsl.expected.dxc.hlsl
+++ b/test/tint/bug/chromium/1405676.wgsl.expected.dxc.hlsl
@@ -6,5 +6,5 @@
 Texture1D<int4> arg_0 : register(t0, space0);
 
 void d() {
-  const float l = 0.141120002f;
+  const float l = 0.14112000167369842529f;
 }
diff --git a/test/tint/bug/chromium/1405676.wgsl.expected.fxc.hlsl b/test/tint/bug/chromium/1405676.wgsl.expected.fxc.hlsl
index 722c2eb..1701eba 100644
--- a/test/tint/bug/chromium/1405676.wgsl.expected.fxc.hlsl
+++ b/test/tint/bug/chromium/1405676.wgsl.expected.fxc.hlsl
@@ -6,5 +6,5 @@
 Texture1D<int4> arg_0 : register(t0, space0);
 
 void d() {
-  const float l = 0.141120002f;
+  const float l = 0.14112000167369842529f;
 }
diff --git a/test/tint/bug/chromium/1405676.wgsl.expected.glsl b/test/tint/bug/chromium/1405676.wgsl.expected.glsl
index 37ea957..4519f38 100644
--- a/test/tint/bug/chromium/1405676.wgsl.expected.glsl
+++ b/test/tint/bug/chromium/1405676.wgsl.expected.glsl
@@ -5,6 +5,6 @@
   return;
 }
 void d() {
-  float l = 0.141120002f;
+  float l = 0.14112000167369842529f;
 }
 
diff --git a/test/tint/bug/chromium/1405676.wgsl.expected.msl b/test/tint/bug/chromium/1405676.wgsl.expected.msl
index 08263a7..6101357 100644
--- a/test/tint/bug/chromium/1405676.wgsl.expected.msl
+++ b/test/tint/bug/chromium/1405676.wgsl.expected.msl
@@ -2,6 +2,6 @@
 
 using namespace metal;
 void d() {
-  float const l = 0.141120002f;
+  float const l = 0.14112000167369842529f;
 }
 
diff --git a/test/tint/bug/tint/1061.spvasm.expected.dxc.hlsl b/test/tint/bug/tint/1061.spvasm.expected.dxc.hlsl
index e4d1fbd..556a74d 100644
--- a/test/tint/bug/tint/1061.spvasm.expected.dxc.hlsl
+++ b/test/tint/bug/tint/1061.spvasm.expected.dxc.hlsl
@@ -14,7 +14,7 @@
   v = float4(sin(x_33), cos(x_35), exp2(x_37), log(x_39));
   const float4 x_42 = v;
   const float4 x_44 = asfloat(x_7[0]);
-  if ((distance(x_42, x_44) < 0.100000001f)) {
+  if ((distance(x_42, x_44) < 0.10000000149011611938f)) {
     x_GLF_color = float4(1.0f, 0.0f, 0.0f, 1.0f);
   } else {
     x_GLF_color = (0.0f).xxxx;
diff --git a/test/tint/bug/tint/1061.spvasm.expected.fxc.hlsl b/test/tint/bug/tint/1061.spvasm.expected.fxc.hlsl
index e4d1fbd..556a74d 100644
--- a/test/tint/bug/tint/1061.spvasm.expected.fxc.hlsl
+++ b/test/tint/bug/tint/1061.spvasm.expected.fxc.hlsl
@@ -14,7 +14,7 @@
   v = float4(sin(x_33), cos(x_35), exp2(x_37), log(x_39));
   const float4 x_42 = v;
   const float4 x_44 = asfloat(x_7[0]);
-  if ((distance(x_42, x_44) < 0.100000001f)) {
+  if ((distance(x_42, x_44) < 0.10000000149011611938f)) {
     x_GLF_color = float4(1.0f, 0.0f, 0.0f, 1.0f);
   } else {
     x_GLF_color = (0.0f).xxxx;
diff --git a/test/tint/bug/tint/1061.spvasm.expected.glsl b/test/tint/bug/tint/1061.spvasm.expected.glsl
index 0a12089..eaa934c 100644
--- a/test/tint/bug/tint/1061.spvasm.expected.glsl
+++ b/test/tint/bug/tint/1061.spvasm.expected.glsl
@@ -22,7 +22,7 @@
   v = vec4(sin(x_33), cos(x_35), exp2(x_37), log(x_39));
   vec4 x_42 = v;
   vec4 x_44 = x_7.inner.r;
-  if ((distance(x_42, x_44) < 0.100000001f)) {
+  if ((distance(x_42, x_44) < 0.10000000149011611938f)) {
     x_GLF_color = vec4(1.0f, 0.0f, 0.0f, 1.0f);
   } else {
     x_GLF_color = vec4(0.0f);
diff --git a/test/tint/bug/tint/1061.spvasm.expected.msl b/test/tint/bug/tint/1061.spvasm.expected.msl
index 2f9478f..2ef0acd 100644
--- a/test/tint/bug/tint/1061.spvasm.expected.msl
+++ b/test/tint/bug/tint/1061.spvasm.expected.msl
@@ -16,7 +16,7 @@
   v = float4(sin(x_33), cos(x_35), exp2(x_37), log(x_39));
   float4 const x_42 = v;
   float4 const x_44 = (*(tint_symbol_3)).r;
-  if ((distance(x_42, x_44) < 0.100000001f)) {
+  if ((distance(x_42, x_44) < 0.10000000149011611938f)) {
     *(tint_symbol_4) = float4(1.0f, 0.0f, 0.0f, 1.0f);
   } else {
     *(tint_symbol_4) = float4(0.0f);
diff --git a/test/tint/bug/tint/1061.spvasm.expected.wgsl b/test/tint/bug/tint/1061.spvasm.expected.wgsl
index 3dcf16c..c375f06 100644
--- a/test/tint/bug/tint/1061.spvasm.expected.wgsl
+++ b/test/tint/bug/tint/1061.spvasm.expected.wgsl
@@ -18,7 +18,7 @@
   v = vec4<f32>(sin(x_33), cos(x_35), exp2(x_37), log(x_39));
   let x_42 : vec4<f32> = v;
   let x_44 : vec4<f32> = x_7.r;
-  if ((distance(x_42, x_44) < 0.100000001f)) {
+  if ((distance(x_42, x_44) < 0.10000000149011611938f)) {
     x_GLF_color = vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f);
   } else {
     x_GLF_color = vec4<f32>(0.0f, 0.0f, 0.0f, 0.0f);
diff --git a/test/tint/bug/tint/1121.wgsl.expected.dxc.hlsl b/test/tint/bug/tint/1121.wgsl.expected.dxc.hlsl
index db16cb0..00dff54 100644
--- a/test/tint/bug/tint/1121.wgsl.expected.dxc.hlsl
+++ b/test/tint/bug/tint/1121.wgsl.expected.dxc.hlsl
@@ -34,7 +34,7 @@
   if ((index >= config[0].x)) {
     return;
   }
-  lightsBuffer.Store(((32u * index) + 4u), asuint(((asfloat(lightsBuffer.Load(((32u * index) + 4u))) - 0.100000001f) + (0.001f * (float(index) - (64.0f * floor((float(index) / 64.0f))))))));
+  lightsBuffer.Store(((32u * index) + 4u), asuint(((asfloat(lightsBuffer.Load(((32u * index) + 4u))) - 0.10000000149011611938f) + (0.00100000004749745131f * (float(index) - (64.0f * floor((float(index) / 64.0f))))))));
   if ((asfloat(lightsBuffer.Load(((32u * index) + 4u))) < asfloat(uniforms[0].y))) {
     lightsBuffer.Store(((32u * index) + 4u), asuint(asfloat(uniforms[1].y)));
   }
diff --git a/test/tint/bug/tint/1121.wgsl.expected.fxc.hlsl b/test/tint/bug/tint/1121.wgsl.expected.fxc.hlsl
index db16cb0..00dff54 100644
--- a/test/tint/bug/tint/1121.wgsl.expected.fxc.hlsl
+++ b/test/tint/bug/tint/1121.wgsl.expected.fxc.hlsl
@@ -34,7 +34,7 @@
   if ((index >= config[0].x)) {
     return;
   }
-  lightsBuffer.Store(((32u * index) + 4u), asuint(((asfloat(lightsBuffer.Load(((32u * index) + 4u))) - 0.100000001f) + (0.001f * (float(index) - (64.0f * floor((float(index) / 64.0f))))))));
+  lightsBuffer.Store(((32u * index) + 4u), asuint(((asfloat(lightsBuffer.Load(((32u * index) + 4u))) - 0.10000000149011611938f) + (0.00100000004749745131f * (float(index) - (64.0f * floor((float(index) / 64.0f))))))));
   if ((asfloat(lightsBuffer.Load(((32u * index) + 4u))) < asfloat(uniforms[0].y))) {
     lightsBuffer.Store(((32u * index) + 4u), asuint(asfloat(uniforms[1].y)));
   }
diff --git a/test/tint/bug/tint/1121.wgsl.expected.glsl b/test/tint/bug/tint/1121.wgsl.expected.glsl
index 5e6dfaf..5ad0d39 100644
--- a/test/tint/bug/tint/1121.wgsl.expected.glsl
+++ b/test/tint/bug/tint/1121.wgsl.expected.glsl
@@ -55,7 +55,7 @@
   if ((index >= config.inner.numLights)) {
     return;
   }
-  lightsBuffer.lights[index].position.y = ((lightsBuffer.lights[index].position.y - 0.100000001f) + (0.001f * (float(index) - (64.0f * floor((float(index) / 64.0f))))));
+  lightsBuffer.lights[index].position.y = ((lightsBuffer.lights[index].position.y - 0.10000000149011611938f) + (0.00100000004749745131f * (float(index) - (64.0f * floor((float(index) / 64.0f))))));
   if ((lightsBuffer.lights[index].position.y < uniforms.inner.tint_symbol.y)) {
     lightsBuffer.lights[index].position.y = uniforms.inner.tint_symbol_1.y;
   }
diff --git a/test/tint/bug/tint/1121.wgsl.expected.msl b/test/tint/bug/tint/1121.wgsl.expected.msl
index 64aeee3..339e957 100644
--- a/test/tint/bug/tint/1121.wgsl.expected.msl
+++ b/test/tint/bug/tint/1121.wgsl.expected.msl
@@ -65,7 +65,7 @@
   if ((index >= (*(tint_symbol_1)).numLights)) {
     return;
   }
-  (*(tint_symbol_2)).lights[index].position[1] = (((*(tint_symbol_2)).lights[index].position[1] - 0.100000001f) + (0.001f * (float(index) - (64.0f * floor((float(index) / 64.0f))))));
+  (*(tint_symbol_2)).lights[index].position[1] = (((*(tint_symbol_2)).lights[index].position[1] - 0.10000000149011611938f) + (0.00100000004749745131f * (float(index) - (64.0f * floor((float(index) / 64.0f))))));
   if (((*(tint_symbol_2)).lights[index].position[1] < (*(tint_symbol_3)).min[1])) {
     (*(tint_symbol_2)).lights[index].position[1] = (*(tint_symbol_3)).max[1];
   }
diff --git a/test/tint/bug/tint/1121.wgsl.expected.wgsl b/test/tint/bug/tint/1121.wgsl.expected.wgsl
index 4e5bd4a..f455687 100644
--- a/test/tint/bug/tint/1121.wgsl.expected.wgsl
+++ b/test/tint/bug/tint/1121.wgsl.expected.wgsl
@@ -48,7 +48,7 @@
   if ((index >= config.numLights)) {
     return;
   }
-  lightsBuffer.lights[index].position.y = ((lightsBuffer.lights[index].position.y - 0.1) + (0.001 * (f32(index) - (64.0 * floor((f32(index) / 64.0))))));
+  lightsBuffer.lights[index].position.y = ((lightsBuffer.lights[index].position.y - 0.10000000000000000555) + (0.00100000000000000002 * (f32(index) - (64.0 * floor((f32(index) / 64.0))))));
   if ((lightsBuffer.lights[index].position.y < uniforms.min.y)) {
     lightsBuffer.lights[index].position.y = uniforms.max.y;
   }
diff --git a/test/tint/bug/tint/1332.wgsl b/test/tint/bug/tint/1332.wgsl
index d83c3ab..85af82a 100644
--- a/test/tint/bug/tint/1332.wgsl
+++ b/test/tint/bug/tint/1332.wgsl
@@ -1,5 +1,5 @@
 @compute @workgroup_size(1)
 fn compute_main() {
-	let a = 1.23;
+	let a = 1.24;
 	var b = max(a, 1.17549435e-38);
 }
diff --git a/test/tint/bug/tint/1332.wgsl.expected.dxc.hlsl b/test/tint/bug/tint/1332.wgsl.expected.dxc.hlsl
index 9df2d8c..f89bdcd 100644
--- a/test/tint/bug/tint/1332.wgsl.expected.dxc.hlsl
+++ b/test/tint/bug/tint/1332.wgsl.expected.dxc.hlsl
@@ -1,6 +1,6 @@
 [numthreads(1, 1, 1)]
 void compute_main() {
-  const float a = 1.230000019f;
+  const float a = 1.24000000953674316406f;
   float b = max(a, 1.17549435e-38f);
   return;
 }
diff --git a/test/tint/bug/tint/1332.wgsl.expected.fxc.hlsl b/test/tint/bug/tint/1332.wgsl.expected.fxc.hlsl
index 9df2d8c..f89bdcd 100644
--- a/test/tint/bug/tint/1332.wgsl.expected.fxc.hlsl
+++ b/test/tint/bug/tint/1332.wgsl.expected.fxc.hlsl
@@ -1,6 +1,6 @@
 [numthreads(1, 1, 1)]
 void compute_main() {
-  const float a = 1.230000019f;
+  const float a = 1.24000000953674316406f;
   float b = max(a, 1.17549435e-38f);
   return;
 }
diff --git a/test/tint/bug/tint/1332.wgsl.expected.glsl b/test/tint/bug/tint/1332.wgsl.expected.glsl
index f95ddc7..d6637dc 100644
--- a/test/tint/bug/tint/1332.wgsl.expected.glsl
+++ b/test/tint/bug/tint/1332.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void compute_main() {
-  float a = 1.230000019f;
+  float a = 1.24000000953674316406f;
   float b = max(a, 1.17549435e-38f);
 }
 
diff --git a/test/tint/bug/tint/1332.wgsl.expected.msl b/test/tint/bug/tint/1332.wgsl.expected.msl
index 7ae8771..998556e 100644
--- a/test/tint/bug/tint/1332.wgsl.expected.msl
+++ b/test/tint/bug/tint/1332.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 kernel void compute_main() {
-  float const a = 1.230000019f;
+  float const a = 1.24000000953674316406f;
   float b = fmax(a, 1.17549435e-38f);
   return;
 }
diff --git a/test/tint/bug/tint/1332.wgsl.expected.spvasm b/test/tint/bug/tint/1332.wgsl.expected.spvasm
index 005dab5..5c8ad70 100644
--- a/test/tint/bug/tint/1332.wgsl.expected.spvasm
+++ b/test/tint/bug/tint/1332.wgsl.expected.spvasm
@@ -13,14 +13,14 @@
        %void = OpTypeVoid
           %1 = OpTypeFunction %void
       %float = OpTypeFloat 32
-%float_1_23000002 = OpConstant %float 1.23000002
+%float_1_24000001 = OpConstant %float 1.24000001
 %float_1_17549435en38 = OpConstant %float 1.17549435e-38
 %_ptr_Function_float = OpTypePointer Function %float
          %12 = OpConstantNull %float
 %compute_main = OpFunction %void None %1
           %4 = OpLabel
           %b = OpVariable %_ptr_Function_float Function %12
-          %7 = OpExtInst %float %8 NMax %float_1_23000002 %float_1_17549435en38
+          %7 = OpExtInst %float %8 NMax %float_1_24000001 %float_1_17549435en38
                OpStore %b %7
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/bug/tint/1332.wgsl.expected.wgsl b/test/tint/bug/tint/1332.wgsl.expected.wgsl
index 27e8e44..6680d1d 100644
--- a/test/tint/bug/tint/1332.wgsl.expected.wgsl
+++ b/test/tint/bug/tint/1332.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 @compute @workgroup_size(1)
 fn compute_main() {
-  let a = 1.23;
+  let a = 1.23999999999999999112;
   var b = max(a, 1.17549435e-38);
 }
diff --git a/test/tint/bug/tint/292.wgsl.expected.dxc.hlsl b/test/tint/bug/tint/292.wgsl.expected.dxc.hlsl
index bb6e936..0ac8209 100644
--- a/test/tint/bug/tint/292.wgsl.expected.dxc.hlsl
+++ b/test/tint/bug/tint/292.wgsl.expected.dxc.hlsl
@@ -3,7 +3,7 @@
 };
 
 float4 main_inner() {
-  float3 light = float3(1.200000048f, 1.0f, 2.0f);
+  float3 light = float3(1.20000004768371582031f, 1.0f, 2.0f);
   float3 negative_light = -(light);
   return (0.0f).xxxx;
 }
diff --git a/test/tint/bug/tint/292.wgsl.expected.fxc.hlsl b/test/tint/bug/tint/292.wgsl.expected.fxc.hlsl
index bb6e936..0ac8209 100644
--- a/test/tint/bug/tint/292.wgsl.expected.fxc.hlsl
+++ b/test/tint/bug/tint/292.wgsl.expected.fxc.hlsl
@@ -3,7 +3,7 @@
 };
 
 float4 main_inner() {
-  float3 light = float3(1.200000048f, 1.0f, 2.0f);
+  float3 light = float3(1.20000004768371582031f, 1.0f, 2.0f);
   float3 negative_light = -(light);
   return (0.0f).xxxx;
 }
diff --git a/test/tint/bug/tint/292.wgsl.expected.glsl b/test/tint/bug/tint/292.wgsl.expected.glsl
index 6d11586..1d7b70c 100644
--- a/test/tint/bug/tint/292.wgsl.expected.glsl
+++ b/test/tint/bug/tint/292.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 vec4 tint_symbol() {
-  vec3 light = vec3(1.200000048f, 1.0f, 2.0f);
+  vec3 light = vec3(1.20000004768371582031f, 1.0f, 2.0f);
   vec3 negative_light = -(light);
   return vec4(0.0f);
 }
diff --git a/test/tint/bug/tint/292.wgsl.expected.msl b/test/tint/bug/tint/292.wgsl.expected.msl
index c1f9d49..02914e8 100644
--- a/test/tint/bug/tint/292.wgsl.expected.msl
+++ b/test/tint/bug/tint/292.wgsl.expected.msl
@@ -6,7 +6,7 @@
 };
 
 float4 tint_symbol_inner() {
-  float3 light = float3(1.200000048f, 1.0f, 2.0f);
+  float3 light = float3(1.20000004768371582031f, 1.0f, 2.0f);
   float3 negative_light = -(light);
   return float4(0.0f);
 }
diff --git a/test/tint/bug/tint/292.wgsl.expected.wgsl b/test/tint/bug/tint/292.wgsl.expected.wgsl
index 994483a..f078d18 100644
--- a/test/tint/bug/tint/292.wgsl.expected.wgsl
+++ b/test/tint/bug/tint/292.wgsl.expected.wgsl
@@ -1,6 +1,6 @@
 @vertex
 fn main() -> @builtin(position) vec4<f32> {
-  var light : vec3<f32> = vec3<f32>(1.2, 1.0, 2.0);
+  var light : vec3<f32> = vec3<f32>(1.19999999999999995559, 1.0, 2.0);
   var negative_light : vec3<f32> = -(light);
   return vec4<f32>();
 }
diff --git a/test/tint/bug/tint/824.wgsl.expected.dxc.hlsl b/test/tint/bug/tint/824.wgsl.expected.dxc.hlsl
index d565814..cef190b 100644
--- a/test/tint/bug/tint/824.wgsl.expected.dxc.hlsl
+++ b/test/tint/bug/tint/824.wgsl.expected.dxc.hlsl
@@ -12,7 +12,7 @@
 };
 
 Output main_inner(uint VertexIndex, uint InstanceIndex) {
-  const float2 zv[4] = {(0.200000003f).xx, (0.300000012f).xx, (-0.100000001f).xx, (1.100000024f).xx};
+  const float2 zv[4] = {(0.20000000298023223877f).xx, (0.30000001192092895508f).xx, (-0.10000000149011611938f).xx, (1.10000002384185791016f).xx};
   const float z = zv[InstanceIndex].x;
   Output output = (Output)0;
   output.Position = float4(0.5f, 0.5f, z, 1.0f);
diff --git a/test/tint/bug/tint/824.wgsl.expected.fxc.hlsl b/test/tint/bug/tint/824.wgsl.expected.fxc.hlsl
index d565814..cef190b 100644
--- a/test/tint/bug/tint/824.wgsl.expected.fxc.hlsl
+++ b/test/tint/bug/tint/824.wgsl.expected.fxc.hlsl
@@ -12,7 +12,7 @@
 };
 
 Output main_inner(uint VertexIndex, uint InstanceIndex) {
-  const float2 zv[4] = {(0.200000003f).xx, (0.300000012f).xx, (-0.100000001f).xx, (1.100000024f).xx};
+  const float2 zv[4] = {(0.20000000298023223877f).xx, (0.30000001192092895508f).xx, (-0.10000000149011611938f).xx, (1.10000002384185791016f).xx};
   const float z = zv[InstanceIndex].x;
   Output output = (Output)0;
   output.Position = float4(0.5f, 0.5f, z, 1.0f);
diff --git a/test/tint/bug/tint/824.wgsl.expected.glsl b/test/tint/bug/tint/824.wgsl.expected.glsl
index 0656691..074047c 100644
--- a/test/tint/bug/tint/824.wgsl.expected.glsl
+++ b/test/tint/bug/tint/824.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 };
 
 Output tint_symbol(uint VertexIndex, uint InstanceIndex) {
-  vec2 zv[4] = vec2[4](vec2(0.200000003f), vec2(0.300000012f), vec2(-0.100000001f), vec2(1.100000024f));
+  vec2 zv[4] = vec2[4](vec2(0.20000000298023223877f), vec2(0.30000001192092895508f), vec2(-0.10000000149011611938f), vec2(1.10000002384185791016f));
   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);
diff --git a/test/tint/bug/tint/824.wgsl.expected.msl b/test/tint/bug/tint/824.wgsl.expected.msl
index 4427773..f7b83d5 100644
--- a/test/tint/bug/tint/824.wgsl.expected.msl
+++ b/test/tint/bug/tint/824.wgsl.expected.msl
@@ -25,7 +25,7 @@
 };
 
 Output tint_symbol_inner(uint VertexIndex, uint InstanceIndex) {
-  tint_array<float2, 4> const zv = tint_array<float2, 4>{float2(0.200000003f), float2(0.300000012f), float2(-0.100000001f), float2(1.100000024f)};
+  tint_array<float2, 4> const zv = tint_array<float2, 4>{float2(0.20000000298023223877f), float2(0.30000001192092895508f), float2(-0.10000000149011611938f), float2(1.10000002384185791016f)};
   float const z = zv[InstanceIndex][0];
   Output output = {};
   output.Position = float4(0.5f, 0.5f, z, 1.0f);
diff --git a/test/tint/bug/tint/824.wgsl.expected.wgsl b/test/tint/bug/tint/824.wgsl.expected.wgsl
index 929857f..01e87f3 100644
--- a/test/tint/bug/tint/824.wgsl.expected.wgsl
+++ b/test/tint/bug/tint/824.wgsl.expected.wgsl
@@ -7,7 +7,7 @@
 
 @vertex
 fn main(@builtin(vertex_index) VertexIndex : u32, @builtin(instance_index) InstanceIndex : u32) -> Output {
-  let zv : array<vec2<f32>, 4> = array<vec2<f32>, 4>(vec2<f32>(0.2, 0.2), vec2<f32>(0.3, 0.3), vec2<f32>(-(0.1), -(0.1)), vec2<f32>(1.1, 1.1));
+  let zv : array<vec2<f32>, 4> = array<vec2<f32>, 4>(vec2<f32>(0.2000000000000000111, 0.2000000000000000111), vec2<f32>(0.2999999999999999889, 0.2999999999999999889), vec2<f32>(-(0.10000000000000000555), -(0.10000000000000000555)), vec2<f32>(1.10000000000000008882, 1.10000000000000008882));
   let z : f32 = zv[InstanceIndex].x;
   var output : Output;
   output.Position = vec4<f32>(0.5, 0.5, z, 1.0);
diff --git a/test/tint/bug/tint/913.wgsl.expected.dxc.hlsl b/test/tint/bug/tint/913.wgsl.expected.dxc.hlsl
index df80614..721ec13 100644
--- a/test/tint/bug/tint/913.wgsl.expected.dxc.hlsl
+++ b/test/tint/bug/tint/913.wgsl.expected.dxc.hlsl
@@ -6,7 +6,7 @@
 };
 
 bool aboutEqual(float value, float expect) {
-  return (abs((value - expect)) < 0.001f);
+  return (abs((value - expect)) < 0.00100000004749745131f);
 }
 
 struct tint_symbol_8 {
diff --git a/test/tint/bug/tint/913.wgsl.expected.fxc.hlsl b/test/tint/bug/tint/913.wgsl.expected.fxc.hlsl
index df80614..721ec13 100644
--- a/test/tint/bug/tint/913.wgsl.expected.fxc.hlsl
+++ b/test/tint/bug/tint/913.wgsl.expected.fxc.hlsl
@@ -6,7 +6,7 @@
 };
 
 bool aboutEqual(float value, float expect) {
-  return (abs((value - expect)) < 0.001f);
+  return (abs((value - expect)) < 0.00100000004749745131f);
 }
 
 struct tint_symbol_8 {
diff --git a/test/tint/bug/tint/913.wgsl.expected.glsl b/test/tint/bug/tint/913.wgsl.expected.glsl
index 788849f7..79032c5 100644
--- a/test/tint/bug/tint/913.wgsl.expected.glsl
+++ b/test/tint/bug/tint/913.wgsl.expected.glsl
@@ -17,7 +17,7 @@
 } uniforms;
 
 bool aboutEqual(float value, float expect) {
-  return (abs((value - expect)) < 0.001f);
+  return (abs((value - expect)) < 0.00100000004749745131f);
 }
 
 uniform highp sampler2D src_1;
diff --git a/test/tint/bug/tint/913.wgsl.expected.msl b/test/tint/bug/tint/913.wgsl.expected.msl
index 3520d9e..6a4fbea 100644
--- a/test/tint/bug/tint/913.wgsl.expected.msl
+++ b/test/tint/bug/tint/913.wgsl.expected.msl
@@ -27,7 +27,7 @@
 };
 
 bool aboutEqual(float value, float expect) {
-  return (fabs((value - expect)) < 0.001f);
+  return (fabs((value - expect)) < 0.00100000004749745131f);
 }
 
 void tint_symbol_inner(uint3 GlobalInvocationID, texture2d<float, access::sample> tint_symbol_7, texture2d<float, access::sample> tint_symbol_8, const constant Uniforms* const tint_symbol_9, device OutputBuf* const tint_symbol_10) {
diff --git a/test/tint/bug/tint/913.wgsl.expected.wgsl b/test/tint/bug/tint/913.wgsl.expected.wgsl
index 4940ac9..db96ff9 100644
--- a/test/tint/bug/tint/913.wgsl.expected.wgsl
+++ b/test/tint/bug/tint/913.wgsl.expected.wgsl
@@ -19,7 +19,7 @@
 @group(0) @binding(3) var<uniform> uniforms : Uniforms;
 
 fn aboutEqual(value : f32, expect : f32) -> bool {
-  return (abs((value - expect)) < 0.001);
+  return (abs((value - expect)) < 0.00100000000000000002);
 }
 
 @compute @workgroup_size(1, 1, 1)
diff --git a/test/tint/builtins/degrees.spvasm.expected.dxc.hlsl b/test/tint/builtins/degrees.spvasm.expected.dxc.hlsl
index 6baebf9..6362b1d 100644
--- a/test/tint/builtins/degrees.spvasm.expected.dxc.hlsl
+++ b/test/tint/builtins/degrees.spvasm.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 float tint_degrees(float param_0) {
-  return param_0 * 57.295779513082323;
+  return param_0 * 57.29577951308232286465;
 }
 
 void main_1() {
diff --git a/test/tint/builtins/degrees.spvasm.expected.fxc.hlsl b/test/tint/builtins/degrees.spvasm.expected.fxc.hlsl
index 6baebf9..6362b1d 100644
--- a/test/tint/builtins/degrees.spvasm.expected.fxc.hlsl
+++ b/test/tint/builtins/degrees.spvasm.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 float tint_degrees(float param_0) {
-  return param_0 * 57.295779513082323;
+  return param_0 * 57.29577951308232286465;
 }
 
 void main_1() {
diff --git a/test/tint/builtins/degrees.spvasm.expected.glsl b/test/tint/builtins/degrees.spvasm.expected.glsl
index bc50976..4ff1e45 100644
--- a/test/tint/builtins/degrees.spvasm.expected.glsl
+++ b/test/tint/builtins/degrees.spvasm.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 float tint_degrees(float param_0) {
-  return param_0 * 57.295779513082323f;
+  return param_0 * 57.29577951308232286465f;
 }
 
 
diff --git a/test/tint/builtins/degrees.spvasm.expected.msl b/test/tint/builtins/degrees.spvasm.expected.msl
index d5dca09..2db983e 100644
--- a/test/tint/builtins/degrees.spvasm.expected.msl
+++ b/test/tint/builtins/degrees.spvasm.expected.msl
@@ -3,7 +3,7 @@
 using namespace metal;
 
 float tint_degrees(float param_0) {
-  return param_0 * 57.295779513082323;
+  return param_0 * 57.29577951308232286465;
 }
 
 void main_1() {
diff --git a/test/tint/builtins/frexp.wgsl.expected.dxc.hlsl b/test/tint/builtins/frexp.wgsl.expected.dxc.hlsl
index 8afb719..477f97b 100644
--- a/test/tint/builtins/frexp.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/frexp.wgsl.expected.dxc.hlsl
@@ -4,7 +4,7 @@
 };
 [numthreads(1, 1, 1)]
 void main() {
-  const frexp_result_f32 res = {0.61500001f, 1};
+  const frexp_result_f32 res = {0.61500000953674316406f, 1};
   const int exp = res.exp;
   const float fract = res.fract;
   return;
diff --git a/test/tint/builtins/frexp.wgsl.expected.fxc.hlsl b/test/tint/builtins/frexp.wgsl.expected.fxc.hlsl
index 8afb719..477f97b 100644
--- a/test/tint/builtins/frexp.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/frexp.wgsl.expected.fxc.hlsl
@@ -4,7 +4,7 @@
 };
 [numthreads(1, 1, 1)]
 void main() {
-  const frexp_result_f32 res = {0.61500001f, 1};
+  const frexp_result_f32 res = {0.61500000953674316406f, 1};
   const int exp = res.exp;
   const float fract = res.fract;
   return;
diff --git a/test/tint/builtins/frexp.wgsl.expected.glsl b/test/tint/builtins/frexp.wgsl.expected.glsl
index fbf6fb3..a48a2e2 100644
--- a/test/tint/builtins/frexp.wgsl.expected.glsl
+++ b/test/tint/builtins/frexp.wgsl.expected.glsl
@@ -7,7 +7,7 @@
 
 
 void tint_symbol() {
-  frexp_result_f32 res = frexp_result_f32(0.61500001f, 1);
+  frexp_result_f32 res = frexp_result_f32(0.61500000953674316406f, 1);
   int tint_symbol_1 = res.exp;
   float tint_symbol_2 = res.fract;
 }
diff --git a/test/tint/builtins/frexp.wgsl.expected.msl b/test/tint/builtins/frexp.wgsl.expected.msl
index d0791c7..a927527 100644
--- a/test/tint/builtins/frexp.wgsl.expected.msl
+++ b/test/tint/builtins/frexp.wgsl.expected.msl
@@ -7,7 +7,7 @@
   int exp;
 };
 kernel void tint_symbol() {
-  frexp_result_f32 const res = frexp_result_f32{.fract=0.61500001f, .exp=1};
+  frexp_result_f32 const res = frexp_result_f32{.fract=0.61500000953674316406f, .exp=1};
   int const exp = res.exp;
   float const fract = res.fract;
   return;
diff --git a/test/tint/builtins/frexp.wgsl.expected.wgsl b/test/tint/builtins/frexp.wgsl.expected.wgsl
index b90d86b..915825e 100644
--- a/test/tint/builtins/frexp.wgsl.expected.wgsl
+++ b/test/tint/builtins/frexp.wgsl.expected.wgsl
@@ -1,6 +1,6 @@
 @compute @workgroup_size(1)
 fn main() {
-  let res = frexp(1.23);
+  let res = frexp(1.22999999999999998224);
   let exp : i32 = res.exp;
   let fract : f32 = res.fract;
 }
diff --git a/test/tint/builtins/gen/literal/acos/004aff.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/acos/004aff.wgsl.expected.dxc.hlsl
index 12356f0..6bb1b9c 100644
--- a/test/tint/builtins/gen/literal/acos/004aff.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/acos/004aff.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void acos_004aff() {
-  vector<float16_t, 2> res = (float16_t(0.250488281h)).xx;
+  vector<float16_t, 2> res = (float16_t(0.25048828125h)).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/acos/004aff.wgsl.expected.glsl b/test/tint/builtins/gen/literal/acos/004aff.wgsl.expected.glsl
index 015ed01..e59e9c4 100644
--- a/test/tint/builtins/gen/literal/acos/004aff.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/acos/004aff.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void acos_004aff() {
-  f16vec2 res = f16vec2(0.250488281hf);
+  f16vec2 res = f16vec2(0.25048828125hf);
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 precision mediump float;
 
 void acos_004aff() {
-  f16vec2 res = f16vec2(0.250488281hf);
+  f16vec2 res = f16vec2(0.25048828125hf);
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void acos_004aff() {
-  f16vec2 res = f16vec2(0.250488281hf);
+  f16vec2 res = f16vec2(0.25048828125hf);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/acos/004aff.wgsl.expected.msl b/test/tint/builtins/gen/literal/acos/004aff.wgsl.expected.msl
index 67bf3ab..7c2ca8f 100644
--- a/test/tint/builtins/gen/literal/acos/004aff.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/acos/004aff.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void acos_004aff() {
-  half2 res = half2(0.250488281h);
+  half2 res = half2(0.25048828125h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/acos/069188.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/acos/069188.wgsl.expected.wgsl
index e63b172..f06e5d5 100644
--- a/test/tint/builtins/gen/literal/acos/069188.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/acos/069188.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn acos_069188() {
-  var res = acos(vec3(0.96891242171000003));
+  var res = acos(vec3(0.96891242171000002692));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/acos/15d35b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/acos/15d35b.wgsl.expected.wgsl
index f43392d..6e33be1 100644
--- a/test/tint/builtins/gen/literal/acos/15d35b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/acos/15d35b.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn acos_15d35b() {
-  var res = acos(vec2(0.96891242171000003));
+  var res = acos(vec2(0.96891242171000002692));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/acos/203628.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/acos/203628.wgsl.expected.dxc.hlsl
index 1dff9cc..dea8dd8 100644
--- a/test/tint/builtins/gen/literal/acos/203628.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/acos/203628.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void acos_203628() {
-  vector<float16_t, 4> res = (float16_t(0.250488281h)).xxxx;
+  vector<float16_t, 4> res = (float16_t(0.25048828125h)).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/acos/203628.wgsl.expected.glsl b/test/tint/builtins/gen/literal/acos/203628.wgsl.expected.glsl
index 5831f92..8acbd6f 100644
--- a/test/tint/builtins/gen/literal/acos/203628.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/acos/203628.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void acos_203628() {
-  f16vec4 res = f16vec4(0.250488281hf);
+  f16vec4 res = f16vec4(0.25048828125hf);
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 precision mediump float;
 
 void acos_203628() {
-  f16vec4 res = f16vec4(0.250488281hf);
+  f16vec4 res = f16vec4(0.25048828125hf);
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void acos_203628() {
-  f16vec4 res = f16vec4(0.250488281hf);
+  f16vec4 res = f16vec4(0.25048828125hf);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/acos/203628.wgsl.expected.msl b/test/tint/builtins/gen/literal/acos/203628.wgsl.expected.msl
index 718ec84..11d632e 100644
--- a/test/tint/builtins/gen/literal/acos/203628.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/acos/203628.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void acos_203628() {
-  half4 res = half4(0.250488281h);
+  half4 res = half4(0.25048828125h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/acos/303e3d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/acos/303e3d.wgsl.expected.dxc.hlsl
index 1ae3af9..ad7679f 100644
--- a/test/tint/builtins/gen/literal/acos/303e3d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/acos/303e3d.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void acos_303e3d() {
-  float16_t res = float16_t(0.250488281h);
+  float16_t res = float16_t(0.25048828125h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/acos/303e3d.wgsl.expected.glsl b/test/tint/builtins/gen/literal/acos/303e3d.wgsl.expected.glsl
index ffc7b25..6b8fc12 100644
--- a/test/tint/builtins/gen/literal/acos/303e3d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/acos/303e3d.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void acos_303e3d() {
-  float16_t res = 0.250488281hf;
+  float16_t res = 0.25048828125hf;
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 precision mediump float;
 
 void acos_303e3d() {
-  float16_t res = 0.250488281hf;
+  float16_t res = 0.25048828125hf;
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void acos_303e3d() {
-  float16_t res = 0.250488281hf;
+  float16_t res = 0.25048828125hf;
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/acos/303e3d.wgsl.expected.msl b/test/tint/builtins/gen/literal/acos/303e3d.wgsl.expected.msl
index 80a86d6..ed81513 100644
--- a/test/tint/builtins/gen/literal/acos/303e3d.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/acos/303e3d.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void acos_303e3d() {
-  half res = 0.250488281h;
+  half res = 0.25048828125h;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/acos/489247.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/acos/489247.wgsl.expected.wgsl
index 528d7d5..b3aad15 100644
--- a/test/tint/builtins/gen/literal/acos/489247.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/acos/489247.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn acos_489247() {
-  var res : f32 = acos(0.968912423f);
+  var res : f32 = acos(0.96891242265701293945f);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/acos/4dac75.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/acos/4dac75.wgsl.expected.wgsl
index a5deb74..5724b04 100644
--- a/test/tint/builtins/gen/literal/acos/4dac75.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/acos/4dac75.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn acos_4dac75() {
-  var res = acos(vec4(0.96891242171000003));
+  var res = acos(vec4(0.96891242171000002692));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/acos/5e9ad2.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/acos/5e9ad2.wgsl.expected.wgsl
index 5ea3b75..85a294e 100644
--- a/test/tint/builtins/gen/literal/acos/5e9ad2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/acos/5e9ad2.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn acos_5e9ad2() {
-  var res = acos(0.96891242171000003);
+  var res = acos(0.96891242171000002692);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/acos/8e2acf.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/acos/8e2acf.wgsl.expected.wgsl
index 9cf63c30..8de5539 100644
--- a/test/tint/builtins/gen/literal/acos/8e2acf.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/acos/8e2acf.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn acos_8e2acf() {
-  var res : vec4<f32> = acos(vec4<f32>(0.968912423f));
+  var res : vec4<f32> = acos(vec4<f32>(0.96891242265701293945f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/acos/a610c4.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/acos/a610c4.wgsl.expected.wgsl
index cc5628a..bca3a51 100644
--- a/test/tint/builtins/gen/literal/acos/a610c4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/acos/a610c4.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn acos_a610c4() {
-  var res : vec3<f32> = acos(vec3<f32>(0.968912423f));
+  var res : vec3<f32> = acos(vec3<f32>(0.96891242265701293945f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/acos/dfc915.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/acos/dfc915.wgsl.expected.wgsl
index 1824267..cac426d 100644
--- a/test/tint/builtins/gen/literal/acos/dfc915.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/acos/dfc915.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn acos_dfc915() {
-  var res : vec2<f32> = acos(vec2<f32>(0.968912423f));
+  var res : vec2<f32> = acos(vec2<f32>(0.96891242265701293945f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/acos/f47057.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/acos/f47057.wgsl.expected.dxc.hlsl
index c972d2e..40d4b10 100644
--- a/test/tint/builtins/gen/literal/acos/f47057.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/acos/f47057.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void acos_f47057() {
-  vector<float16_t, 3> res = (float16_t(0.250488281h)).xxx;
+  vector<float16_t, 3> res = (float16_t(0.25048828125h)).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/acos/f47057.wgsl.expected.glsl b/test/tint/builtins/gen/literal/acos/f47057.wgsl.expected.glsl
index 51cfd54..12eb244 100644
--- a/test/tint/builtins/gen/literal/acos/f47057.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/acos/f47057.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void acos_f47057() {
-  f16vec3 res = f16vec3(0.250488281hf);
+  f16vec3 res = f16vec3(0.25048828125hf);
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 precision mediump float;
 
 void acos_f47057() {
-  f16vec3 res = f16vec3(0.250488281hf);
+  f16vec3 res = f16vec3(0.25048828125hf);
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void acos_f47057() {
-  f16vec3 res = f16vec3(0.250488281hf);
+  f16vec3 res = f16vec3(0.25048828125hf);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/acos/f47057.wgsl.expected.msl b/test/tint/builtins/gen/literal/acos/f47057.wgsl.expected.msl
index 547e7db..c8b8e72 100644
--- a/test/tint/builtins/gen/literal/acos/f47057.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/acos/f47057.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void acos_f47057() {
-  half3 res = half3(0.250488281h);
+  half3 res = half3(0.25048828125h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/acosh/17260e.wgsl b/test/tint/builtins/gen/literal/acosh/17260e.wgsl
index 359ab28..8726acc 100644
--- a/test/tint/builtins/gen/literal/acosh/17260e.wgsl
+++ b/test/tint/builtins/gen/literal/acosh/17260e.wgsl
@@ -23,7 +23,7 @@
 
 // fn acosh(vec<2, fa>) -> vec<2, fa>
 fn acosh_17260e() {
-  var res = acosh(vec2(2.));
+  var res = acosh(vec2(1.5430806348));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/acosh/17260e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/acosh/17260e.wgsl.expected.dxc.hlsl
index df4361d..2585c3d 100644
--- a/test/tint/builtins/gen/literal/acosh/17260e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/acosh/17260e.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void acosh_17260e() {
-  float2 res = (1.316957951f).xx;
+  float2 res = (1.0f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/acosh/17260e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/acosh/17260e.wgsl.expected.fxc.hlsl
index df4361d..2585c3d 100644
--- a/test/tint/builtins/gen/literal/acosh/17260e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/acosh/17260e.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void acosh_17260e() {
-  float2 res = (1.316957951f).xx;
+  float2 res = (1.0f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/acosh/17260e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/acosh/17260e.wgsl.expected.glsl
index ccd2b03..cc419fd 100644
--- a/test/tint/builtins/gen/literal/acosh/17260e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/acosh/17260e.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void acosh_17260e() {
-  vec2 res = vec2(1.316957951f);
+  vec2 res = vec2(1.0f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void acosh_17260e() {
-  vec2 res = vec2(1.316957951f);
+  vec2 res = vec2(1.0f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void acosh_17260e() {
-  vec2 res = vec2(1.316957951f);
+  vec2 res = vec2(1.0f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/acosh/17260e.wgsl.expected.msl b/test/tint/builtins/gen/literal/acosh/17260e.wgsl.expected.msl
index a279c86..1bbb7fd 100644
--- a/test/tint/builtins/gen/literal/acosh/17260e.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/acosh/17260e.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void acosh_17260e() {
-  float2 res = float2(1.316957951f);
+  float2 res = float2(1.0f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/acosh/17260e.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/acosh/17260e.wgsl.expected.spvasm
index 83ef32a..3604454 100644
--- a/test/tint/builtins/gen/literal/acosh/17260e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/acosh/17260e.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 33
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -31,12 +31,11 @@
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-%float_1_31695795 = OpConstant %float 1.31695795
-         %15 = OpConstantComposite %v2float %float_1_31695795 %float_1_31695795
+    %float_1 = OpConstant %float 1
+         %15 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
          %18 = OpConstantNull %v2float
          %19 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
 %acosh_17260e = OpFunction %void None %9
          %12 = OpLabel
         %res = OpVariable %_ptr_Function_v2float Function %18
@@ -56,12 +55,12 @@
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %acosh_17260e
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %acosh_17260e
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %acosh_17260e
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %acosh_17260e
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/acosh/17260e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/acosh/17260e.wgsl.expected.wgsl
index 9a71725..f12ef9d 100644
--- a/test/tint/builtins/gen/literal/acosh/17260e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/acosh/17260e.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn acosh_17260e() {
-  var res = acosh(vec2(2.0));
+  var res = acosh(vec2(1.54308063479999990619));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/acosh/3433e8.wgsl b/test/tint/builtins/gen/literal/acosh/3433e8.wgsl
index 1753ed7..22bab11 100644
--- a/test/tint/builtins/gen/literal/acosh/3433e8.wgsl
+++ b/test/tint/builtins/gen/literal/acosh/3433e8.wgsl
@@ -23,7 +23,7 @@
 
 // fn acosh(fa) -> fa
 fn acosh_3433e8() {
-  var res = acosh(2.);
+  var res = acosh(1.5430806348);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/acosh/3433e8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/acosh/3433e8.wgsl.expected.dxc.hlsl
index 4349e35..868a9af 100644
--- a/test/tint/builtins/gen/literal/acosh/3433e8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/acosh/3433e8.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void acosh_3433e8() {
-  float res = 1.316957951f;
+  float res = 1.0f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/acosh/3433e8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/acosh/3433e8.wgsl.expected.fxc.hlsl
index 4349e35..868a9af 100644
--- a/test/tint/builtins/gen/literal/acosh/3433e8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/acosh/3433e8.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void acosh_3433e8() {
-  float res = 1.316957951f;
+  float res = 1.0f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/acosh/3433e8.wgsl.expected.glsl b/test/tint/builtins/gen/literal/acosh/3433e8.wgsl.expected.glsl
index f425b91..b1d4a3a 100644
--- a/test/tint/builtins/gen/literal/acosh/3433e8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/acosh/3433e8.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void acosh_3433e8() {
-  float res = 1.316957951f;
+  float res = 1.0f;
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void acosh_3433e8() {
-  float res = 1.316957951f;
+  float res = 1.0f;
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void acosh_3433e8() {
-  float res = 1.316957951f;
+  float res = 1.0f;
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/acosh/3433e8.wgsl.expected.msl b/test/tint/builtins/gen/literal/acosh/3433e8.wgsl.expected.msl
index 24bcb7d..edbcc9a 100644
--- a/test/tint/builtins/gen/literal/acosh/3433e8.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/acosh/3433e8.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void acosh_3433e8() {
-  float res = 1.316957951f;
+  float res = 1.0f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/acosh/3433e8.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/acosh/3433e8.wgsl.expected.spvasm
index 8b4981f..31904ab 100644
--- a/test/tint/builtins/gen/literal/acosh/3433e8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/acosh/3433e8.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 30
+; Bound: 29
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -30,14 +30,13 @@
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
-%float_1_31695795 = OpConstant %float 1.31695795
+    %float_1 = OpConstant %float 1
 %_ptr_Function_float = OpTypePointer Function %float
          %16 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
 %acosh_3433e8 = OpFunction %void None %9
          %12 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
-               OpStore %res %float_1_31695795
+               OpStore %res %float_1
                OpReturn
                OpFunctionEnd
 %vertex_main_inner = OpFunction %v4float None %16
@@ -53,12 +52,12 @@
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %25 = OpLabel
-         %26 = OpFunctionCall %void %acosh_3433e8
+         %24 = OpLabel
+         %25 = OpFunctionCall %void %acosh_3433e8
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %acosh_3433e8
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %acosh_3433e8
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/acosh/3433e8.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/acosh/3433e8.wgsl.expected.wgsl
index 657dfb7..ff805c6 100644
--- a/test/tint/builtins/gen/literal/acosh/3433e8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/acosh/3433e8.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn acosh_3433e8() {
-  var res = acosh(2.0);
+  var res = acosh(1.54308063479999990619);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/acosh/490aae.wgsl b/test/tint/builtins/gen/literal/acosh/490aae.wgsl
index 179b970..75b63f9 100644
--- a/test/tint/builtins/gen/literal/acosh/490aae.wgsl
+++ b/test/tint/builtins/gen/literal/acosh/490aae.wgsl
@@ -23,7 +23,7 @@
 
 // fn acosh(vec<4, fa>) -> vec<4, fa>
 fn acosh_490aae() {
-  var res = acosh(vec4(2.));
+  var res = acosh(vec4(1.5430806348));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/acosh/490aae.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/acosh/490aae.wgsl.expected.dxc.hlsl
index ed15f7d..1799078 100644
--- a/test/tint/builtins/gen/literal/acosh/490aae.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/acosh/490aae.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void acosh_490aae() {
-  float4 res = (1.316957951f).xxxx;
+  float4 res = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/acosh/490aae.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/acosh/490aae.wgsl.expected.fxc.hlsl
index ed15f7d..1799078 100644
--- a/test/tint/builtins/gen/literal/acosh/490aae.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/acosh/490aae.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void acosh_490aae() {
-  float4 res = (1.316957951f).xxxx;
+  float4 res = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/acosh/490aae.wgsl.expected.glsl b/test/tint/builtins/gen/literal/acosh/490aae.wgsl.expected.glsl
index 907f155..b5c0bd3 100644
--- a/test/tint/builtins/gen/literal/acosh/490aae.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/acosh/490aae.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void acosh_490aae() {
-  vec4 res = vec4(1.316957951f);
+  vec4 res = vec4(1.0f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void acosh_490aae() {
-  vec4 res = vec4(1.316957951f);
+  vec4 res = vec4(1.0f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void acosh_490aae() {
-  vec4 res = vec4(1.316957951f);
+  vec4 res = vec4(1.0f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/acosh/490aae.wgsl.expected.msl b/test/tint/builtins/gen/literal/acosh/490aae.wgsl.expected.msl
index d098c04..61dfb50 100644
--- a/test/tint/builtins/gen/literal/acosh/490aae.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/acosh/490aae.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void acosh_490aae() {
-  float4 res = float4(1.316957951f);
+  float4 res = float4(1.0f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/acosh/490aae.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/acosh/490aae.wgsl.expected.spvasm
index 914b880..4e0f69b 100644
--- a/test/tint/builtins/gen/literal/acosh/490aae.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/acosh/490aae.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 31
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -30,11 +30,10 @@
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
-%float_1_31695795 = OpConstant %float 1.31695795
-         %14 = OpConstantComposite %v4float %float_1_31695795 %float_1_31695795 %float_1_31695795 %float_1_31695795
+    %float_1 = OpConstant %float 1
+         %14 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
          %17 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
 %acosh_490aae = OpFunction %void None %9
          %12 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
@@ -54,12 +53,12 @@
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %acosh_490aae
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %acosh_490aae
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %acosh_490aae
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %acosh_490aae
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/acosh/490aae.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/acosh/490aae.wgsl.expected.wgsl
index 1e81f7f..9457a49 100644
--- a/test/tint/builtins/gen/literal/acosh/490aae.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/acosh/490aae.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn acosh_490aae() {
-  var res = acosh(vec4(2.0));
+  var res = acosh(vec4(1.54308063479999990619));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/acosh/5f49d8.wgsl b/test/tint/builtins/gen/literal/acosh/5f49d8.wgsl
index 46807d3..4679b37 100644
--- a/test/tint/builtins/gen/literal/acosh/5f49d8.wgsl
+++ b/test/tint/builtins/gen/literal/acosh/5f49d8.wgsl
@@ -25,7 +25,7 @@
 
 // fn acosh(vec<2, f16>) -> vec<2, f16>
 fn acosh_5f49d8() {
-  var res: vec2<f16> = acosh(vec2<f16>(2.h));
+  var res: vec2<f16> = acosh(vec2<f16>(1.5430806348h));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/acosh/5f49d8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/acosh/5f49d8.wgsl.expected.dxc.hlsl
index 73f2e1f..9dc5706 100644
--- a/test/tint/builtins/gen/literal/acosh/5f49d8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/acosh/5f49d8.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void acosh_5f49d8() {
-  vector<float16_t, 2> res = (float16_t(1.31640625h)).xx;
+  vector<float16_t, 2> res = (float16_t(0.99951171875h)).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/acosh/5f49d8.wgsl.expected.glsl b/test/tint/builtins/gen/literal/acosh/5f49d8.wgsl.expected.glsl
index b0c35d8..559172b 100644
--- a/test/tint/builtins/gen/literal/acosh/5f49d8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/acosh/5f49d8.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void acosh_5f49d8() {
-  f16vec2 res = f16vec2(1.31640625hf);
+  f16vec2 res = f16vec2(0.99951171875hf);
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 precision mediump float;
 
 void acosh_5f49d8() {
-  f16vec2 res = f16vec2(1.31640625hf);
+  f16vec2 res = f16vec2(0.99951171875hf);
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void acosh_5f49d8() {
-  f16vec2 res = f16vec2(1.31640625hf);
+  f16vec2 res = f16vec2(0.99951171875hf);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/acosh/5f49d8.wgsl.expected.msl b/test/tint/builtins/gen/literal/acosh/5f49d8.wgsl.expected.msl
index c403efd..df27967 100644
--- a/test/tint/builtins/gen/literal/acosh/5f49d8.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/acosh/5f49d8.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void acosh_5f49d8() {
-  half2 res = half2(1.31640625h);
+  half2 res = half2(0.99951171875h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/acosh/5f49d8.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/acosh/5f49d8.wgsl.expected.spvasm
index f320e4e..5a493f9 100644
--- a/test/tint/builtins/gen/literal/acosh/5f49d8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/acosh/5f49d8.wgsl.expected.spvasm
@@ -36,8 +36,8 @@
           %9 = OpTypeFunction %void
        %half = OpTypeFloat 16
      %v2half = OpTypeVector %half 2
-%half_0x1_51p_0 = OpConstant %half 0x1.51p+0
-         %16 = OpConstantComposite %v2half %half_0x1_51p_0 %half_0x1_51p_0
+%half_0x1_ffcpn1 = OpConstant %half 0x1.ffcp-1
+         %16 = OpConstantComposite %v2half %half_0x1_ffcpn1 %half_0x1_ffcpn1
 %_ptr_Function_v2half = OpTypePointer Function %v2half
          %19 = OpConstantNull %v2half
          %20 = OpTypeFunction %v4float
diff --git a/test/tint/builtins/gen/literal/acosh/5f49d8.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/acosh/5f49d8.wgsl.expected.wgsl
index b50c1bd..1886b02 100644
--- a/test/tint/builtins/gen/literal/acosh/5f49d8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/acosh/5f49d8.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 enable f16;
 
 fn acosh_5f49d8() {
-  var res : vec2<f16> = acosh(vec2<f16>(2.0h));
+  var res : vec2<f16> = acosh(vec2<f16>(1.54296875h));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/acosh/640883.wgsl b/test/tint/builtins/gen/literal/acosh/640883.wgsl
index a1f9e53..6b962ff 100644
--- a/test/tint/builtins/gen/literal/acosh/640883.wgsl
+++ b/test/tint/builtins/gen/literal/acosh/640883.wgsl
@@ -23,7 +23,7 @@
 
 // fn acosh(vec<2, f32>) -> vec<2, f32>
 fn acosh_640883() {
-  var res: vec2<f32> = acosh(vec2<f32>(2.f));
+  var res: vec2<f32> = acosh(vec2<f32>(1.5430806348f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/acosh/640883.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/acosh/640883.wgsl.expected.dxc.hlsl
index 8e11176..216fb4c 100644
--- a/test/tint/builtins/gen/literal/acosh/640883.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/acosh/640883.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void acosh_640883() {
-  float2 res = (1.316957951f).xx;
+  float2 res = (1.0f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/acosh/640883.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/acosh/640883.wgsl.expected.fxc.hlsl
index 8e11176..216fb4c 100644
--- a/test/tint/builtins/gen/literal/acosh/640883.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/acosh/640883.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void acosh_640883() {
-  float2 res = (1.316957951f).xx;
+  float2 res = (1.0f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/acosh/640883.wgsl.expected.glsl b/test/tint/builtins/gen/literal/acosh/640883.wgsl.expected.glsl
index f983f22..0c16b6f 100644
--- a/test/tint/builtins/gen/literal/acosh/640883.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/acosh/640883.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void acosh_640883() {
-  vec2 res = vec2(1.316957951f);
+  vec2 res = vec2(1.0f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void acosh_640883() {
-  vec2 res = vec2(1.316957951f);
+  vec2 res = vec2(1.0f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void acosh_640883() {
-  vec2 res = vec2(1.316957951f);
+  vec2 res = vec2(1.0f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/acosh/640883.wgsl.expected.msl b/test/tint/builtins/gen/literal/acosh/640883.wgsl.expected.msl
index ed3bf24..09896fe 100644
--- a/test/tint/builtins/gen/literal/acosh/640883.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/acosh/640883.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void acosh_640883() {
-  float2 res = float2(1.316957951f);
+  float2 res = float2(1.0f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/acosh/640883.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/acosh/640883.wgsl.expected.spvasm
index 5bbf93e..ea6700f 100644
--- a/test/tint/builtins/gen/literal/acosh/640883.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/acosh/640883.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 33
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -31,12 +31,11 @@
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-%float_1_31695795 = OpConstant %float 1.31695795
-         %15 = OpConstantComposite %v2float %float_1_31695795 %float_1_31695795
+    %float_1 = OpConstant %float 1
+         %15 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
          %18 = OpConstantNull %v2float
          %19 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
 %acosh_640883 = OpFunction %void None %9
          %12 = OpLabel
         %res = OpVariable %_ptr_Function_v2float Function %18
@@ -56,12 +55,12 @@
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %acosh_640883
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %acosh_640883
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %acosh_640883
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %acosh_640883
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/acosh/640883.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/acosh/640883.wgsl.expected.wgsl
index 700d426..00d4e01 100644
--- a/test/tint/builtins/gen/literal/acosh/640883.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/acosh/640883.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn acosh_640883() {
-  var res : vec2<f32> = acosh(vec2<f32>(2.0f));
+  var res : vec2<f32> = acosh(vec2<f32>(1.54308068752288818359f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/acosh/9f213e.wgsl b/test/tint/builtins/gen/literal/acosh/9f213e.wgsl
index 994cac0..0fea651 100644
--- a/test/tint/builtins/gen/literal/acosh/9f213e.wgsl
+++ b/test/tint/builtins/gen/literal/acosh/9f213e.wgsl
@@ -23,7 +23,7 @@
 
 // fn acosh(vec<3, fa>) -> vec<3, fa>
 fn acosh_9f213e() {
-  var res = acosh(vec3(2.));
+  var res = acosh(vec3(1.5430806348));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/acosh/9f213e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/acosh/9f213e.wgsl.expected.dxc.hlsl
index 15244b5..8f27be1 100644
--- a/test/tint/builtins/gen/literal/acosh/9f213e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/acosh/9f213e.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void acosh_9f213e() {
-  float3 res = (1.316957951f).xxx;
+  float3 res = (1.0f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/acosh/9f213e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/acosh/9f213e.wgsl.expected.fxc.hlsl
index 15244b5..8f27be1 100644
--- a/test/tint/builtins/gen/literal/acosh/9f213e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/acosh/9f213e.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void acosh_9f213e() {
-  float3 res = (1.316957951f).xxx;
+  float3 res = (1.0f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/acosh/9f213e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/acosh/9f213e.wgsl.expected.glsl
index d8b3935..cd02020 100644
--- a/test/tint/builtins/gen/literal/acosh/9f213e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/acosh/9f213e.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void acosh_9f213e() {
-  vec3 res = vec3(1.316957951f);
+  vec3 res = vec3(1.0f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void acosh_9f213e() {
-  vec3 res = vec3(1.316957951f);
+  vec3 res = vec3(1.0f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void acosh_9f213e() {
-  vec3 res = vec3(1.316957951f);
+  vec3 res = vec3(1.0f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/acosh/9f213e.wgsl.expected.msl b/test/tint/builtins/gen/literal/acosh/9f213e.wgsl.expected.msl
index 4937d28..fa5ea42 100644
--- a/test/tint/builtins/gen/literal/acosh/9f213e.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/acosh/9f213e.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void acosh_9f213e() {
-  float3 res = float3(1.316957951f);
+  float3 res = float3(1.0f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/acosh/9f213e.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/acosh/9f213e.wgsl.expected.spvasm
index 6b2098f..9ec135e 100644
--- a/test/tint/builtins/gen/literal/acosh/9f213e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/acosh/9f213e.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 33
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -31,12 +31,11 @@
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
-%float_1_31695795 = OpConstant %float 1.31695795
-         %15 = OpConstantComposite %v3float %float_1_31695795 %float_1_31695795 %float_1_31695795
+    %float_1 = OpConstant %float 1
+         %15 = OpConstantComposite %v3float %float_1 %float_1 %float_1
 %_ptr_Function_v3float = OpTypePointer Function %v3float
          %18 = OpConstantNull %v3float
          %19 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
 %acosh_9f213e = OpFunction %void None %9
          %12 = OpLabel
         %res = OpVariable %_ptr_Function_v3float Function %18
@@ -56,12 +55,12 @@
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %acosh_9f213e
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %acosh_9f213e
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %acosh_9f213e
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %acosh_9f213e
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/acosh/9f213e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/acosh/9f213e.wgsl.expected.wgsl
index 9dfc860..8e4d2bb 100644
--- a/test/tint/builtins/gen/literal/acosh/9f213e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/acosh/9f213e.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn acosh_9f213e() {
-  var res = acosh(vec3(2.0));
+  var res = acosh(vec3(1.54308063479999990619));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/acosh/a37dfe.wgsl b/test/tint/builtins/gen/literal/acosh/a37dfe.wgsl
index 3a3b29e..e5bf068 100644
--- a/test/tint/builtins/gen/literal/acosh/a37dfe.wgsl
+++ b/test/tint/builtins/gen/literal/acosh/a37dfe.wgsl
@@ -25,7 +25,7 @@
 
 // fn acosh(f16) -> f16
 fn acosh_a37dfe() {
-  var res: f16 = acosh(2.h);
+  var res: f16 = acosh(1.5430806348h);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/acosh/a37dfe.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/acosh/a37dfe.wgsl.expected.dxc.hlsl
index df213bf..8bcc87e 100644
--- a/test/tint/builtins/gen/literal/acosh/a37dfe.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/acosh/a37dfe.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void acosh_a37dfe() {
-  float16_t res = float16_t(1.31640625h);
+  float16_t res = float16_t(0.99951171875h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/acosh/a37dfe.wgsl.expected.glsl b/test/tint/builtins/gen/literal/acosh/a37dfe.wgsl.expected.glsl
index 890d7a3..5675660 100644
--- a/test/tint/builtins/gen/literal/acosh/a37dfe.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/acosh/a37dfe.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void acosh_a37dfe() {
-  float16_t res = 1.31640625hf;
+  float16_t res = 0.99951171875hf;
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 precision mediump float;
 
 void acosh_a37dfe() {
-  float16_t res = 1.31640625hf;
+  float16_t res = 0.99951171875hf;
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void acosh_a37dfe() {
-  float16_t res = 1.31640625hf;
+  float16_t res = 0.99951171875hf;
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/acosh/a37dfe.wgsl.expected.msl b/test/tint/builtins/gen/literal/acosh/a37dfe.wgsl.expected.msl
index 54d77e1..aa56648 100644
--- a/test/tint/builtins/gen/literal/acosh/a37dfe.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/acosh/a37dfe.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void acosh_a37dfe() {
-  half res = 1.31640625h;
+  half res = 0.99951171875h;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/acosh/a37dfe.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/acosh/a37dfe.wgsl.expected.spvasm
index deba610..0024847 100644
--- a/test/tint/builtins/gen/literal/acosh/a37dfe.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/acosh/a37dfe.wgsl.expected.spvasm
@@ -35,7 +35,7 @@
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
        %half = OpTypeFloat 16
-%half_0x1_51p_0 = OpConstant %half 0x1.51p+0
+%half_0x1_ffcpn1 = OpConstant %half 0x1.ffcp-1
 %_ptr_Function_half = OpTypePointer Function %half
          %17 = OpConstantNull %half
          %18 = OpTypeFunction %v4float
@@ -43,7 +43,7 @@
 %acosh_a37dfe = OpFunction %void None %9
          %12 = OpLabel
         %res = OpVariable %_ptr_Function_half Function %17
-               OpStore %res %half_0x1_51p_0
+               OpStore %res %half_0x1_ffcpn1
                OpReturn
                OpFunctionEnd
 %vertex_main_inner = OpFunction %v4float None %18
diff --git a/test/tint/builtins/gen/literal/acosh/a37dfe.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/acosh/a37dfe.wgsl.expected.wgsl
index 6d0aeac..6f55e4e 100644
--- a/test/tint/builtins/gen/literal/acosh/a37dfe.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/acosh/a37dfe.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 enable f16;
 
 fn acosh_a37dfe() {
-  var res : f16 = acosh(2.0h);
+  var res : f16 = acosh(1.54296875h);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/acosh/d51ccb.wgsl b/test/tint/builtins/gen/literal/acosh/d51ccb.wgsl
index 1108535..4f494cc 100644
--- a/test/tint/builtins/gen/literal/acosh/d51ccb.wgsl
+++ b/test/tint/builtins/gen/literal/acosh/d51ccb.wgsl
@@ -23,7 +23,7 @@
 
 // fn acosh(vec<4, f32>) -> vec<4, f32>
 fn acosh_d51ccb() {
-  var res: vec4<f32> = acosh(vec4<f32>(2.f));
+  var res: vec4<f32> = acosh(vec4<f32>(1.5430806348f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/acosh/d51ccb.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/acosh/d51ccb.wgsl.expected.dxc.hlsl
index 8404b8e..bc54cfc 100644
--- a/test/tint/builtins/gen/literal/acosh/d51ccb.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/acosh/d51ccb.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void acosh_d51ccb() {
-  float4 res = (1.316957951f).xxxx;
+  float4 res = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/acosh/d51ccb.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/acosh/d51ccb.wgsl.expected.fxc.hlsl
index 8404b8e..bc54cfc 100644
--- a/test/tint/builtins/gen/literal/acosh/d51ccb.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/acosh/d51ccb.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void acosh_d51ccb() {
-  float4 res = (1.316957951f).xxxx;
+  float4 res = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/acosh/d51ccb.wgsl.expected.glsl b/test/tint/builtins/gen/literal/acosh/d51ccb.wgsl.expected.glsl
index bdd22a9..c40473a 100644
--- a/test/tint/builtins/gen/literal/acosh/d51ccb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/acosh/d51ccb.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void acosh_d51ccb() {
-  vec4 res = vec4(1.316957951f);
+  vec4 res = vec4(1.0f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void acosh_d51ccb() {
-  vec4 res = vec4(1.316957951f);
+  vec4 res = vec4(1.0f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void acosh_d51ccb() {
-  vec4 res = vec4(1.316957951f);
+  vec4 res = vec4(1.0f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/acosh/d51ccb.wgsl.expected.msl b/test/tint/builtins/gen/literal/acosh/d51ccb.wgsl.expected.msl
index bb8f6b2..04c0cfa 100644
--- a/test/tint/builtins/gen/literal/acosh/d51ccb.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/acosh/d51ccb.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void acosh_d51ccb() {
-  float4 res = float4(1.316957951f);
+  float4 res = float4(1.0f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/acosh/d51ccb.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/acosh/d51ccb.wgsl.expected.spvasm
index f2951e5..0af3742 100644
--- a/test/tint/builtins/gen/literal/acosh/d51ccb.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/acosh/d51ccb.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 31
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -30,11 +30,10 @@
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
-%float_1_31695795 = OpConstant %float 1.31695795
-         %14 = OpConstantComposite %v4float %float_1_31695795 %float_1_31695795 %float_1_31695795 %float_1_31695795
+    %float_1 = OpConstant %float 1
+         %14 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
          %17 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
 %acosh_d51ccb = OpFunction %void None %9
          %12 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
@@ -54,12 +53,12 @@
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %acosh_d51ccb
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %acosh_d51ccb
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %acosh_d51ccb
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %acosh_d51ccb
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/acosh/d51ccb.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/acosh/d51ccb.wgsl.expected.wgsl
index b964b8e..6f12d48 100644
--- a/test/tint/builtins/gen/literal/acosh/d51ccb.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/acosh/d51ccb.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn acosh_d51ccb() {
-  var res : vec4<f32> = acosh(vec4<f32>(2.0f));
+  var res : vec4<f32> = acosh(vec4<f32>(1.54308068752288818359f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/acosh/de60d8.wgsl b/test/tint/builtins/gen/literal/acosh/de60d8.wgsl
index fca8b80..acd9343 100644
--- a/test/tint/builtins/gen/literal/acosh/de60d8.wgsl
+++ b/test/tint/builtins/gen/literal/acosh/de60d8.wgsl
@@ -25,7 +25,7 @@
 
 // fn acosh(vec<4, f16>) -> vec<4, f16>
 fn acosh_de60d8() {
-  var res: vec4<f16> = acosh(vec4<f16>(2.h));
+  var res: vec4<f16> = acosh(vec4<f16>(1.5430806348h));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/acosh/de60d8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/acosh/de60d8.wgsl.expected.dxc.hlsl
index 3342ff9..4df2787 100644
--- a/test/tint/builtins/gen/literal/acosh/de60d8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/acosh/de60d8.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void acosh_de60d8() {
-  vector<float16_t, 4> res = (float16_t(1.31640625h)).xxxx;
+  vector<float16_t, 4> res = (float16_t(0.99951171875h)).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/acosh/de60d8.wgsl.expected.glsl b/test/tint/builtins/gen/literal/acosh/de60d8.wgsl.expected.glsl
index 641da93..7d52db7 100644
--- a/test/tint/builtins/gen/literal/acosh/de60d8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/acosh/de60d8.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void acosh_de60d8() {
-  f16vec4 res = f16vec4(1.31640625hf);
+  f16vec4 res = f16vec4(0.99951171875hf);
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 precision mediump float;
 
 void acosh_de60d8() {
-  f16vec4 res = f16vec4(1.31640625hf);
+  f16vec4 res = f16vec4(0.99951171875hf);
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void acosh_de60d8() {
-  f16vec4 res = f16vec4(1.31640625hf);
+  f16vec4 res = f16vec4(0.99951171875hf);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/acosh/de60d8.wgsl.expected.msl b/test/tint/builtins/gen/literal/acosh/de60d8.wgsl.expected.msl
index 2996e65..3ba201e 100644
--- a/test/tint/builtins/gen/literal/acosh/de60d8.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/acosh/de60d8.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void acosh_de60d8() {
-  half4 res = half4(1.31640625h);
+  half4 res = half4(0.99951171875h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/acosh/de60d8.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/acosh/de60d8.wgsl.expected.spvasm
index cdf0fd7..5337702 100644
--- a/test/tint/builtins/gen/literal/acosh/de60d8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/acosh/de60d8.wgsl.expected.spvasm
@@ -36,8 +36,8 @@
           %9 = OpTypeFunction %void
        %half = OpTypeFloat 16
      %v4half = OpTypeVector %half 4
-%half_0x1_51p_0 = OpConstant %half 0x1.51p+0
-         %16 = OpConstantComposite %v4half %half_0x1_51p_0 %half_0x1_51p_0 %half_0x1_51p_0 %half_0x1_51p_0
+%half_0x1_ffcpn1 = OpConstant %half 0x1.ffcp-1
+         %16 = OpConstantComposite %v4half %half_0x1_ffcpn1 %half_0x1_ffcpn1 %half_0x1_ffcpn1 %half_0x1_ffcpn1
 %_ptr_Function_v4half = OpTypePointer Function %v4half
          %19 = OpConstantNull %v4half
          %20 = OpTypeFunction %v4float
diff --git a/test/tint/builtins/gen/literal/acosh/de60d8.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/acosh/de60d8.wgsl.expected.wgsl
index 8fac87b..f834d7d 100644
--- a/test/tint/builtins/gen/literal/acosh/de60d8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/acosh/de60d8.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 enable f16;
 
 fn acosh_de60d8() {
-  var res : vec4<f16> = acosh(vec4<f16>(2.0h));
+  var res : vec4<f16> = acosh(vec4<f16>(1.54296875h));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/acosh/e38f5c.wgsl b/test/tint/builtins/gen/literal/acosh/e38f5c.wgsl
index 3fea9ad..a4fed29 100644
--- a/test/tint/builtins/gen/literal/acosh/e38f5c.wgsl
+++ b/test/tint/builtins/gen/literal/acosh/e38f5c.wgsl
@@ -23,7 +23,7 @@
 
 // fn acosh(vec<3, f32>) -> vec<3, f32>
 fn acosh_e38f5c() {
-  var res: vec3<f32> = acosh(vec3<f32>(2.f));
+  var res: vec3<f32> = acosh(vec3<f32>(1.5430806348f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/acosh/e38f5c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/acosh/e38f5c.wgsl.expected.dxc.hlsl
index 9df46f5..ffcf2d9 100644
--- a/test/tint/builtins/gen/literal/acosh/e38f5c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/acosh/e38f5c.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void acosh_e38f5c() {
-  float3 res = (1.316957951f).xxx;
+  float3 res = (1.0f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/acosh/e38f5c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/acosh/e38f5c.wgsl.expected.fxc.hlsl
index 9df46f5..ffcf2d9 100644
--- a/test/tint/builtins/gen/literal/acosh/e38f5c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/acosh/e38f5c.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void acosh_e38f5c() {
-  float3 res = (1.316957951f).xxx;
+  float3 res = (1.0f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/acosh/e38f5c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/acosh/e38f5c.wgsl.expected.glsl
index 575313c..5ace5b6 100644
--- a/test/tint/builtins/gen/literal/acosh/e38f5c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/acosh/e38f5c.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void acosh_e38f5c() {
-  vec3 res = vec3(1.316957951f);
+  vec3 res = vec3(1.0f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void acosh_e38f5c() {
-  vec3 res = vec3(1.316957951f);
+  vec3 res = vec3(1.0f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void acosh_e38f5c() {
-  vec3 res = vec3(1.316957951f);
+  vec3 res = vec3(1.0f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/acosh/e38f5c.wgsl.expected.msl b/test/tint/builtins/gen/literal/acosh/e38f5c.wgsl.expected.msl
index 6ebf8c7..7d01e57 100644
--- a/test/tint/builtins/gen/literal/acosh/e38f5c.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/acosh/e38f5c.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void acosh_e38f5c() {
-  float3 res = float3(1.316957951f);
+  float3 res = float3(1.0f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/acosh/e38f5c.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/acosh/e38f5c.wgsl.expected.spvasm
index 169cee0..d85709e 100644
--- a/test/tint/builtins/gen/literal/acosh/e38f5c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/acosh/e38f5c.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 33
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -31,12 +31,11 @@
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
-%float_1_31695795 = OpConstant %float 1.31695795
-         %15 = OpConstantComposite %v3float %float_1_31695795 %float_1_31695795 %float_1_31695795
+    %float_1 = OpConstant %float 1
+         %15 = OpConstantComposite %v3float %float_1 %float_1 %float_1
 %_ptr_Function_v3float = OpTypePointer Function %v3float
          %18 = OpConstantNull %v3float
          %19 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
 %acosh_e38f5c = OpFunction %void None %9
          %12 = OpLabel
         %res = OpVariable %_ptr_Function_v3float Function %18
@@ -56,12 +55,12 @@
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %acosh_e38f5c
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %acosh_e38f5c
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %acosh_e38f5c
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %acosh_e38f5c
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/acosh/e38f5c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/acosh/e38f5c.wgsl.expected.wgsl
index e62cdaa..f8473c9 100644
--- a/test/tint/builtins/gen/literal/acosh/e38f5c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/acosh/e38f5c.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn acosh_e38f5c() {
-  var res : vec3<f32> = acosh(vec3<f32>(2.0f));
+  var res : vec3<f32> = acosh(vec3<f32>(1.54308068752288818359f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/acosh/ecf2d1.wgsl b/test/tint/builtins/gen/literal/acosh/ecf2d1.wgsl
index a94002b..9de3379 100644
--- a/test/tint/builtins/gen/literal/acosh/ecf2d1.wgsl
+++ b/test/tint/builtins/gen/literal/acosh/ecf2d1.wgsl
@@ -23,7 +23,7 @@
 
 // fn acosh(f32) -> f32
 fn acosh_ecf2d1() {
-  var res: f32 = acosh(2.f);
+  var res: f32 = acosh(1.5430806348f);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/acosh/ecf2d1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/acosh/ecf2d1.wgsl.expected.dxc.hlsl
index b4765ec..93def9e 100644
--- a/test/tint/builtins/gen/literal/acosh/ecf2d1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/acosh/ecf2d1.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void acosh_ecf2d1() {
-  float res = 1.316957951f;
+  float res = 1.0f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/acosh/ecf2d1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/acosh/ecf2d1.wgsl.expected.fxc.hlsl
index b4765ec..93def9e 100644
--- a/test/tint/builtins/gen/literal/acosh/ecf2d1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/acosh/ecf2d1.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void acosh_ecf2d1() {
-  float res = 1.316957951f;
+  float res = 1.0f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/acosh/ecf2d1.wgsl.expected.glsl b/test/tint/builtins/gen/literal/acosh/ecf2d1.wgsl.expected.glsl
index 196118b..a4311af 100644
--- a/test/tint/builtins/gen/literal/acosh/ecf2d1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/acosh/ecf2d1.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void acosh_ecf2d1() {
-  float res = 1.316957951f;
+  float res = 1.0f;
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void acosh_ecf2d1() {
-  float res = 1.316957951f;
+  float res = 1.0f;
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void acosh_ecf2d1() {
-  float res = 1.316957951f;
+  float res = 1.0f;
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/acosh/ecf2d1.wgsl.expected.msl b/test/tint/builtins/gen/literal/acosh/ecf2d1.wgsl.expected.msl
index 3d30b27..1cd6264 100644
--- a/test/tint/builtins/gen/literal/acosh/ecf2d1.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/acosh/ecf2d1.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void acosh_ecf2d1() {
-  float res = 1.316957951f;
+  float res = 1.0f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/acosh/ecf2d1.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/acosh/ecf2d1.wgsl.expected.spvasm
index 108eeb0..3c51a05 100644
--- a/test/tint/builtins/gen/literal/acosh/ecf2d1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/acosh/ecf2d1.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 30
+; Bound: 29
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -30,14 +30,13 @@
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
-%float_1_31695795 = OpConstant %float 1.31695795
+    %float_1 = OpConstant %float 1
 %_ptr_Function_float = OpTypePointer Function %float
          %16 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
 %acosh_ecf2d1 = OpFunction %void None %9
          %12 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
-               OpStore %res %float_1_31695795
+               OpStore %res %float_1
                OpReturn
                OpFunctionEnd
 %vertex_main_inner = OpFunction %v4float None %16
@@ -53,12 +52,12 @@
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %25 = OpLabel
-         %26 = OpFunctionCall %void %acosh_ecf2d1
+         %24 = OpLabel
+         %25 = OpFunctionCall %void %acosh_ecf2d1
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %acosh_ecf2d1
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %acosh_ecf2d1
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/acosh/ecf2d1.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/acosh/ecf2d1.wgsl.expected.wgsl
index c85a427..f07750c 100644
--- a/test/tint/builtins/gen/literal/acosh/ecf2d1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/acosh/ecf2d1.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn acosh_ecf2d1() {
-  var res : f32 = acosh(2.0f);
+  var res : f32 = acosh(1.54308068752288818359f);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/acosh/f56574.wgsl b/test/tint/builtins/gen/literal/acosh/f56574.wgsl
index f39d38d..8d9a464 100644
--- a/test/tint/builtins/gen/literal/acosh/f56574.wgsl
+++ b/test/tint/builtins/gen/literal/acosh/f56574.wgsl
@@ -25,7 +25,7 @@
 
 // fn acosh(vec<3, f16>) -> vec<3, f16>
 fn acosh_f56574() {
-  var res: vec3<f16> = acosh(vec3<f16>(2.h));
+  var res: vec3<f16> = acosh(vec3<f16>(1.5430806348h));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/acosh/f56574.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/acosh/f56574.wgsl.expected.dxc.hlsl
index d7e00fd..ee217e6 100644
--- a/test/tint/builtins/gen/literal/acosh/f56574.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/acosh/f56574.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void acosh_f56574() {
-  vector<float16_t, 3> res = (float16_t(1.31640625h)).xxx;
+  vector<float16_t, 3> res = (float16_t(0.99951171875h)).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/acosh/f56574.wgsl.expected.glsl b/test/tint/builtins/gen/literal/acosh/f56574.wgsl.expected.glsl
index 9cbd247..a3a707e 100644
--- a/test/tint/builtins/gen/literal/acosh/f56574.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/acosh/f56574.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void acosh_f56574() {
-  f16vec3 res = f16vec3(1.31640625hf);
+  f16vec3 res = f16vec3(0.99951171875hf);
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 precision mediump float;
 
 void acosh_f56574() {
-  f16vec3 res = f16vec3(1.31640625hf);
+  f16vec3 res = f16vec3(0.99951171875hf);
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void acosh_f56574() {
-  f16vec3 res = f16vec3(1.31640625hf);
+  f16vec3 res = f16vec3(0.99951171875hf);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/acosh/f56574.wgsl.expected.msl b/test/tint/builtins/gen/literal/acosh/f56574.wgsl.expected.msl
index 7abc0d3..2a90824 100644
--- a/test/tint/builtins/gen/literal/acosh/f56574.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/acosh/f56574.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void acosh_f56574() {
-  half3 res = half3(1.31640625h);
+  half3 res = half3(0.99951171875h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/acosh/f56574.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/acosh/f56574.wgsl.expected.spvasm
index 0fd6735..8605345 100644
--- a/test/tint/builtins/gen/literal/acosh/f56574.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/acosh/f56574.wgsl.expected.spvasm
@@ -36,8 +36,8 @@
           %9 = OpTypeFunction %void
        %half = OpTypeFloat 16
      %v3half = OpTypeVector %half 3
-%half_0x1_51p_0 = OpConstant %half 0x1.51p+0
-         %16 = OpConstantComposite %v3half %half_0x1_51p_0 %half_0x1_51p_0 %half_0x1_51p_0
+%half_0x1_ffcpn1 = OpConstant %half 0x1.ffcp-1
+         %16 = OpConstantComposite %v3half %half_0x1_ffcpn1 %half_0x1_ffcpn1 %half_0x1_ffcpn1
 %_ptr_Function_v3half = OpTypePointer Function %v3half
          %19 = OpConstantNull %v3half
          %20 = OpTypeFunction %v4float
diff --git a/test/tint/builtins/gen/literal/acosh/f56574.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/acosh/f56574.wgsl.expected.wgsl
index bece2fd..463b9e2 100644
--- a/test/tint/builtins/gen/literal/acosh/f56574.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/acosh/f56574.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 enable f16;
 
 fn acosh_f56574() {
-  var res : vec3<f16> = acosh(vec3<f16>(2.0h));
+  var res : vec3<f16> = acosh(vec3<f16>(1.54296875h));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/asin/064953.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/asin/064953.wgsl.expected.wgsl
index bc5d1dc..8f104ac 100644
--- a/test/tint/builtins/gen/literal/asin/064953.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/asin/064953.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn asin_064953() {
-  var res : vec4<f32> = asin(vec4<f32>(0.47942555f));
+  var res : vec4<f32> = asin(vec4<f32>(0.47942554950714111328f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/asin/0bac07.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/asin/0bac07.wgsl.expected.wgsl
index a283860..f9e60a3 100644
--- a/test/tint/builtins/gen/literal/asin/0bac07.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/asin/0bac07.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn asin_0bac07() {
-  var res = asin(vec3(0.479425538604));
+  var res = asin(vec3(0.4794255386040000011));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/asin/11dfda.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/asin/11dfda.wgsl.expected.dxc.hlsl
index 21b8491..a3ec9d2 100644
--- a/test/tint/builtins/gen/literal/asin/11dfda.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/asin/11dfda.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void asin_11dfda() {
-  float16_t res = float16_t(0.499755859h);
+  float16_t res = float16_t(0.499755859375h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/asin/11dfda.wgsl.expected.glsl b/test/tint/builtins/gen/literal/asin/11dfda.wgsl.expected.glsl
index ee0dcab..7867385 100644
--- a/test/tint/builtins/gen/literal/asin/11dfda.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/asin/11dfda.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void asin_11dfda() {
-  float16_t res = 0.499755859hf;
+  float16_t res = 0.499755859375hf;
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 precision mediump float;
 
 void asin_11dfda() {
-  float16_t res = 0.499755859hf;
+  float16_t res = 0.499755859375hf;
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void asin_11dfda() {
-  float16_t res = 0.499755859hf;
+  float16_t res = 0.499755859375hf;
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/asin/11dfda.wgsl.expected.msl b/test/tint/builtins/gen/literal/asin/11dfda.wgsl.expected.msl
index 5bb00b3..e5b8c70 100644
--- a/test/tint/builtins/gen/literal/asin/11dfda.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/asin/11dfda.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void asin_11dfda() {
-  half res = 0.499755859h;
+  half res = 0.499755859375h;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/asin/11dfda.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/asin/11dfda.wgsl.expected.wgsl
index 434bded..97d74ca 100644
--- a/test/tint/builtins/gen/literal/asin/11dfda.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/asin/11dfda.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 enable f16;
 
 fn asin_11dfda() {
-  var res : f16 = asin(0.479248047h);
+  var res : f16 = asin(0.479248046875h);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/asin/2d8e29.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/asin/2d8e29.wgsl.expected.dxc.hlsl
index b39bb3e..b4a1c25 100644
--- a/test/tint/builtins/gen/literal/asin/2d8e29.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/asin/2d8e29.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void asin_2d8e29() {
-  vector<float16_t, 3> res = (float16_t(0.499755859h)).xxx;
+  vector<float16_t, 3> res = (float16_t(0.499755859375h)).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/asin/2d8e29.wgsl.expected.glsl b/test/tint/builtins/gen/literal/asin/2d8e29.wgsl.expected.glsl
index 1f946d0..62addca 100644
--- a/test/tint/builtins/gen/literal/asin/2d8e29.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/asin/2d8e29.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void asin_2d8e29() {
-  f16vec3 res = f16vec3(0.499755859hf);
+  f16vec3 res = f16vec3(0.499755859375hf);
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 precision mediump float;
 
 void asin_2d8e29() {
-  f16vec3 res = f16vec3(0.499755859hf);
+  f16vec3 res = f16vec3(0.499755859375hf);
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void asin_2d8e29() {
-  f16vec3 res = f16vec3(0.499755859hf);
+  f16vec3 res = f16vec3(0.499755859375hf);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/asin/2d8e29.wgsl.expected.msl b/test/tint/builtins/gen/literal/asin/2d8e29.wgsl.expected.msl
index f71b867..da728bf 100644
--- a/test/tint/builtins/gen/literal/asin/2d8e29.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/asin/2d8e29.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void asin_2d8e29() {
-  half3 res = half3(0.499755859h);
+  half3 res = half3(0.499755859375h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/asin/2d8e29.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/asin/2d8e29.wgsl.expected.wgsl
index 0a0207c..d911ca4 100644
--- a/test/tint/builtins/gen/literal/asin/2d8e29.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/asin/2d8e29.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 enable f16;
 
 fn asin_2d8e29() {
-  var res : vec3<f16> = asin(vec3<f16>(0.479248047h));
+  var res : vec3<f16> = asin(vec3<f16>(0.479248046875h));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/asin/3cfbd4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/asin/3cfbd4.wgsl.expected.dxc.hlsl
index 62589e5..2f61c02 100644
--- a/test/tint/builtins/gen/literal/asin/3cfbd4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/asin/3cfbd4.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void asin_3cfbd4() {
-  vector<float16_t, 4> res = (float16_t(0.499755859h)).xxxx;
+  vector<float16_t, 4> res = (float16_t(0.499755859375h)).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/asin/3cfbd4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/asin/3cfbd4.wgsl.expected.glsl
index 1c60738..9af8626 100644
--- a/test/tint/builtins/gen/literal/asin/3cfbd4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/asin/3cfbd4.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void asin_3cfbd4() {
-  f16vec4 res = f16vec4(0.499755859hf);
+  f16vec4 res = f16vec4(0.499755859375hf);
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 precision mediump float;
 
 void asin_3cfbd4() {
-  f16vec4 res = f16vec4(0.499755859hf);
+  f16vec4 res = f16vec4(0.499755859375hf);
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void asin_3cfbd4() {
-  f16vec4 res = f16vec4(0.499755859hf);
+  f16vec4 res = f16vec4(0.499755859375hf);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/asin/3cfbd4.wgsl.expected.msl b/test/tint/builtins/gen/literal/asin/3cfbd4.wgsl.expected.msl
index 6283ba0..ecbe8f5 100644
--- a/test/tint/builtins/gen/literal/asin/3cfbd4.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/asin/3cfbd4.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void asin_3cfbd4() {
-  half4 res = half4(0.499755859h);
+  half4 res = half4(0.499755859375h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/asin/3cfbd4.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/asin/3cfbd4.wgsl.expected.wgsl
index e646e00..f2ee7c3 100644
--- a/test/tint/builtins/gen/literal/asin/3cfbd4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/asin/3cfbd4.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 enable f16;
 
 fn asin_3cfbd4() {
-  var res : vec4<f16> = asin(vec4<f16>(0.479248047h));
+  var res : vec4<f16> = asin(vec4<f16>(0.479248046875h));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/asin/64bb1f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/asin/64bb1f.wgsl.expected.wgsl
index f6ce56f..651b4af 100644
--- a/test/tint/builtins/gen/literal/asin/64bb1f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/asin/64bb1f.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn asin_64bb1f() {
-  var res = asin(vec4(0.479425538604));
+  var res = asin(vec4(0.4794255386040000011));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/asin/7b6a44.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/asin/7b6a44.wgsl.expected.wgsl
index 77b8ae2..b5a89eb 100644
--- a/test/tint/builtins/gen/literal/asin/7b6a44.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/asin/7b6a44.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn asin_7b6a44() {
-  var res : vec2<f32> = asin(vec2<f32>(0.47942555f));
+  var res : vec2<f32> = asin(vec2<f32>(0.47942554950714111328f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/asin/8cd9c9.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/asin/8cd9c9.wgsl.expected.wgsl
index 8d19bf5..fab18a2 100644
--- a/test/tint/builtins/gen/literal/asin/8cd9c9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/asin/8cd9c9.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn asin_8cd9c9() {
-  var res : vec3<f32> = asin(vec3<f32>(0.47942555f));
+  var res : vec3<f32> = asin(vec3<f32>(0.47942554950714111328f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/asin/a5dd88.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/asin/a5dd88.wgsl.expected.wgsl
index e7aacda..7e32e21 100644
--- a/test/tint/builtins/gen/literal/asin/a5dd88.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/asin/a5dd88.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn asin_a5dd88() {
-  var res = asin(vec2(0.479425538604));
+  var res = asin(vec2(0.4794255386040000011));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/asin/a6d73a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/asin/a6d73a.wgsl.expected.wgsl
index 09cf49a..5664236 100644
--- a/test/tint/builtins/gen/literal/asin/a6d73a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/asin/a6d73a.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn asin_a6d73a() {
-  var res = asin(0.479425538604);
+  var res = asin(0.4794255386040000011);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/asin/b4aced.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/asin/b4aced.wgsl.expected.dxc.hlsl
index 870f92b..7f4a247 100644
--- a/test/tint/builtins/gen/literal/asin/b4aced.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/asin/b4aced.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void asin_b4aced() {
-  vector<float16_t, 2> res = (float16_t(0.499755859h)).xx;
+  vector<float16_t, 2> res = (float16_t(0.499755859375h)).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/asin/b4aced.wgsl.expected.glsl b/test/tint/builtins/gen/literal/asin/b4aced.wgsl.expected.glsl
index b462aa0..1e8ba02 100644
--- a/test/tint/builtins/gen/literal/asin/b4aced.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/asin/b4aced.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void asin_b4aced() {
-  f16vec2 res = f16vec2(0.499755859hf);
+  f16vec2 res = f16vec2(0.499755859375hf);
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 precision mediump float;
 
 void asin_b4aced() {
-  f16vec2 res = f16vec2(0.499755859hf);
+  f16vec2 res = f16vec2(0.499755859375hf);
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void asin_b4aced() {
-  f16vec2 res = f16vec2(0.499755859hf);
+  f16vec2 res = f16vec2(0.499755859375hf);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/asin/b4aced.wgsl.expected.msl b/test/tint/builtins/gen/literal/asin/b4aced.wgsl.expected.msl
index 56a0113..32e1af9 100644
--- a/test/tint/builtins/gen/literal/asin/b4aced.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/asin/b4aced.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void asin_b4aced() {
-  half2 res = half2(0.499755859h);
+  half2 res = half2(0.499755859375h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/asin/b4aced.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/asin/b4aced.wgsl.expected.wgsl
index 81b0b44..da77c20 100644
--- a/test/tint/builtins/gen/literal/asin/b4aced.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/asin/b4aced.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 enable f16;
 
 fn asin_b4aced() {
-  var res : vec2<f16> = asin(vec2<f16>(0.479248047h));
+  var res : vec2<f16> = asin(vec2<f16>(0.479248046875h));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/asin/c0c272.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/asin/c0c272.wgsl.expected.wgsl
index 7e36cce..ad35e32 100644
--- a/test/tint/builtins/gen/literal/asin/c0c272.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/asin/c0c272.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn asin_c0c272() {
-  var res : f32 = asin(0.47942555f);
+  var res : f32 = asin(0.47942554950714111328f);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/asinh/157447.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/asinh/157447.wgsl.expected.dxc.hlsl
index ea3d30b..e3052ef 100644
--- a/test/tint/builtins/gen/literal/asinh/157447.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/asinh/157447.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void asinh_157447() {
-  float res = 0.881373584f;
+  float res = 0.88137358427047729492f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/asinh/157447.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/asinh/157447.wgsl.expected.fxc.hlsl
index ea3d30b..e3052ef 100644
--- a/test/tint/builtins/gen/literal/asinh/157447.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/asinh/157447.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void asinh_157447() {
-  float res = 0.881373584f;
+  float res = 0.88137358427047729492f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/asinh/157447.wgsl.expected.glsl b/test/tint/builtins/gen/literal/asinh/157447.wgsl.expected.glsl
index f4e0999..d407617 100644
--- a/test/tint/builtins/gen/literal/asinh/157447.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/asinh/157447.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void asinh_157447() {
-  float res = 0.881373584f;
+  float res = 0.88137358427047729492f;
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void asinh_157447() {
-  float res = 0.881373584f;
+  float res = 0.88137358427047729492f;
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void asinh_157447() {
-  float res = 0.881373584f;
+  float res = 0.88137358427047729492f;
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/asinh/157447.wgsl.expected.msl b/test/tint/builtins/gen/literal/asinh/157447.wgsl.expected.msl
index 1a3b085..f3f3433 100644
--- a/test/tint/builtins/gen/literal/asinh/157447.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/asinh/157447.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void asinh_157447() {
-  float res = 0.881373584f;
+  float res = 0.88137358427047729492f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/asinh/16b543.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/asinh/16b543.wgsl.expected.dxc.hlsl
index aa8bcb9..01a4bd5 100644
--- a/test/tint/builtins/gen/literal/asinh/16b543.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/asinh/16b543.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void asinh_16b543() {
-  float2 res = (0.881373584f).xx;
+  float2 res = (0.88137358427047729492f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/asinh/16b543.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/asinh/16b543.wgsl.expected.fxc.hlsl
index aa8bcb9..01a4bd5 100644
--- a/test/tint/builtins/gen/literal/asinh/16b543.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/asinh/16b543.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void asinh_16b543() {
-  float2 res = (0.881373584f).xx;
+  float2 res = (0.88137358427047729492f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/asinh/16b543.wgsl.expected.glsl b/test/tint/builtins/gen/literal/asinh/16b543.wgsl.expected.glsl
index bccd4b5..f714432 100644
--- a/test/tint/builtins/gen/literal/asinh/16b543.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/asinh/16b543.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void asinh_16b543() {
-  vec2 res = vec2(0.881373584f);
+  vec2 res = vec2(0.88137358427047729492f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void asinh_16b543() {
-  vec2 res = vec2(0.881373584f);
+  vec2 res = vec2(0.88137358427047729492f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void asinh_16b543() {
-  vec2 res = vec2(0.881373584f);
+  vec2 res = vec2(0.88137358427047729492f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/asinh/16b543.wgsl.expected.msl b/test/tint/builtins/gen/literal/asinh/16b543.wgsl.expected.msl
index f4b3d6a..4a5e1a7 100644
--- a/test/tint/builtins/gen/literal/asinh/16b543.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/asinh/16b543.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void asinh_16b543() {
-  float2 res = float2(0.881373584f);
+  float2 res = float2(0.88137358427047729492f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/asinh/180015.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/asinh/180015.wgsl.expected.dxc.hlsl
index 8b08b8c..10d6034 100644
--- a/test/tint/builtins/gen/literal/asinh/180015.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/asinh/180015.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void asinh_180015() {
-  float res = 0.881373584f;
+  float res = 0.88137358427047729492f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/asinh/180015.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/asinh/180015.wgsl.expected.fxc.hlsl
index 8b08b8c..10d6034 100644
--- a/test/tint/builtins/gen/literal/asinh/180015.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/asinh/180015.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void asinh_180015() {
-  float res = 0.881373584f;
+  float res = 0.88137358427047729492f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/asinh/180015.wgsl.expected.glsl b/test/tint/builtins/gen/literal/asinh/180015.wgsl.expected.glsl
index dd4be60..e2e9a76 100644
--- a/test/tint/builtins/gen/literal/asinh/180015.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/asinh/180015.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void asinh_180015() {
-  float res = 0.881373584f;
+  float res = 0.88137358427047729492f;
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void asinh_180015() {
-  float res = 0.881373584f;
+  float res = 0.88137358427047729492f;
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void asinh_180015() {
-  float res = 0.881373584f;
+  float res = 0.88137358427047729492f;
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/asinh/180015.wgsl.expected.msl b/test/tint/builtins/gen/literal/asinh/180015.wgsl.expected.msl
index a391e66..f2634fd 100644
--- a/test/tint/builtins/gen/literal/asinh/180015.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/asinh/180015.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void asinh_180015() {
-  float res = 0.881373584f;
+  float res = 0.88137358427047729492f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/asinh/2265ee.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/asinh/2265ee.wgsl.expected.dxc.hlsl
index 42281c9..a1b603f8 100644
--- a/test/tint/builtins/gen/literal/asinh/2265ee.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/asinh/2265ee.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void asinh_2265ee() {
-  float3 res = (0.881373584f).xxx;
+  float3 res = (0.88137358427047729492f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/asinh/2265ee.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/asinh/2265ee.wgsl.expected.fxc.hlsl
index 42281c9..a1b603f8 100644
--- a/test/tint/builtins/gen/literal/asinh/2265ee.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/asinh/2265ee.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void asinh_2265ee() {
-  float3 res = (0.881373584f).xxx;
+  float3 res = (0.88137358427047729492f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/asinh/2265ee.wgsl.expected.glsl b/test/tint/builtins/gen/literal/asinh/2265ee.wgsl.expected.glsl
index a5b2df8..1f46b85 100644
--- a/test/tint/builtins/gen/literal/asinh/2265ee.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/asinh/2265ee.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void asinh_2265ee() {
-  vec3 res = vec3(0.881373584f);
+  vec3 res = vec3(0.88137358427047729492f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void asinh_2265ee() {
-  vec3 res = vec3(0.881373584f);
+  vec3 res = vec3(0.88137358427047729492f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void asinh_2265ee() {
-  vec3 res = vec3(0.881373584f);
+  vec3 res = vec3(0.88137358427047729492f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/asinh/2265ee.wgsl.expected.msl b/test/tint/builtins/gen/literal/asinh/2265ee.wgsl.expected.msl
index 01ed85c..425e59f 100644
--- a/test/tint/builtins/gen/literal/asinh/2265ee.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/asinh/2265ee.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void asinh_2265ee() {
-  float3 res = float3(0.881373584f);
+  float3 res = float3(0.88137358427047729492f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/asinh/468a48.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/asinh/468a48.wgsl.expected.dxc.hlsl
index 16f004b..d4f5bb7 100644
--- a/test/tint/builtins/gen/literal/asinh/468a48.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/asinh/468a48.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void asinh_468a48() {
-  float16_t res = float16_t(0.881347656h);
+  float16_t res = float16_t(0.88134765625h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/asinh/468a48.wgsl.expected.glsl b/test/tint/builtins/gen/literal/asinh/468a48.wgsl.expected.glsl
index d5da6f4..4b0554c 100644
--- a/test/tint/builtins/gen/literal/asinh/468a48.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/asinh/468a48.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void asinh_468a48() {
-  float16_t res = 0.881347656hf;
+  float16_t res = 0.88134765625hf;
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 precision mediump float;
 
 void asinh_468a48() {
-  float16_t res = 0.881347656hf;
+  float16_t res = 0.88134765625hf;
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void asinh_468a48() {
-  float16_t res = 0.881347656hf;
+  float16_t res = 0.88134765625hf;
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/asinh/468a48.wgsl.expected.msl b/test/tint/builtins/gen/literal/asinh/468a48.wgsl.expected.msl
index eecb9b7..3d04c5f 100644
--- a/test/tint/builtins/gen/literal/asinh/468a48.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/asinh/468a48.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void asinh_468a48() {
-  half res = 0.881347656h;
+  half res = 0.88134765625h;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/asinh/4a2226.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/asinh/4a2226.wgsl.expected.dxc.hlsl
index bd77bf3..d6f9077 100644
--- a/test/tint/builtins/gen/literal/asinh/4a2226.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/asinh/4a2226.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void asinh_4a2226() {
-  float2 res = (0.881373584f).xx;
+  float2 res = (0.88137358427047729492f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/asinh/4a2226.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/asinh/4a2226.wgsl.expected.fxc.hlsl
index bd77bf3..d6f9077 100644
--- a/test/tint/builtins/gen/literal/asinh/4a2226.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/asinh/4a2226.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void asinh_4a2226() {
-  float2 res = (0.881373584f).xx;
+  float2 res = (0.88137358427047729492f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/asinh/4a2226.wgsl.expected.glsl b/test/tint/builtins/gen/literal/asinh/4a2226.wgsl.expected.glsl
index 2148139..2f38d77 100644
--- a/test/tint/builtins/gen/literal/asinh/4a2226.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/asinh/4a2226.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void asinh_4a2226() {
-  vec2 res = vec2(0.881373584f);
+  vec2 res = vec2(0.88137358427047729492f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void asinh_4a2226() {
-  vec2 res = vec2(0.881373584f);
+  vec2 res = vec2(0.88137358427047729492f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void asinh_4a2226() {
-  vec2 res = vec2(0.881373584f);
+  vec2 res = vec2(0.88137358427047729492f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/asinh/4a2226.wgsl.expected.msl b/test/tint/builtins/gen/literal/asinh/4a2226.wgsl.expected.msl
index 1e30067..10eca91 100644
--- a/test/tint/builtins/gen/literal/asinh/4a2226.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/asinh/4a2226.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void asinh_4a2226() {
-  float2 res = float2(0.881373584f);
+  float2 res = float2(0.88137358427047729492f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/asinh/51079e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/asinh/51079e.wgsl.expected.dxc.hlsl
index 7352b92..1a8827f 100644
--- a/test/tint/builtins/gen/literal/asinh/51079e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/asinh/51079e.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void asinh_51079e() {
-  float3 res = (0.881373584f).xxx;
+  float3 res = (0.88137358427047729492f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/asinh/51079e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/asinh/51079e.wgsl.expected.fxc.hlsl
index 7352b92..1a8827f 100644
--- a/test/tint/builtins/gen/literal/asinh/51079e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/asinh/51079e.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void asinh_51079e() {
-  float3 res = (0.881373584f).xxx;
+  float3 res = (0.88137358427047729492f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/asinh/51079e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/asinh/51079e.wgsl.expected.glsl
index 00b7fd0..7af712f 100644
--- a/test/tint/builtins/gen/literal/asinh/51079e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/asinh/51079e.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void asinh_51079e() {
-  vec3 res = vec3(0.881373584f);
+  vec3 res = vec3(0.88137358427047729492f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void asinh_51079e() {
-  vec3 res = vec3(0.881373584f);
+  vec3 res = vec3(0.88137358427047729492f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void asinh_51079e() {
-  vec3 res = vec3(0.881373584f);
+  vec3 res = vec3(0.88137358427047729492f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/asinh/51079e.wgsl.expected.msl b/test/tint/builtins/gen/literal/asinh/51079e.wgsl.expected.msl
index 94fd3a3..3df4a6b 100644
--- a/test/tint/builtins/gen/literal/asinh/51079e.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/asinh/51079e.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void asinh_51079e() {
-  float3 res = float3(0.881373584f);
+  float3 res = float3(0.88137358427047729492f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/asinh/8d2e51.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/asinh/8d2e51.wgsl.expected.dxc.hlsl
index 38dbc99..28cf9bf 100644
--- a/test/tint/builtins/gen/literal/asinh/8d2e51.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/asinh/8d2e51.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void asinh_8d2e51() {
-  float4 res = (0.881373584f).xxxx;
+  float4 res = (0.88137358427047729492f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/asinh/8d2e51.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/asinh/8d2e51.wgsl.expected.fxc.hlsl
index 38dbc99..28cf9bf 100644
--- a/test/tint/builtins/gen/literal/asinh/8d2e51.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/asinh/8d2e51.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void asinh_8d2e51() {
-  float4 res = (0.881373584f).xxxx;
+  float4 res = (0.88137358427047729492f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/asinh/8d2e51.wgsl.expected.glsl b/test/tint/builtins/gen/literal/asinh/8d2e51.wgsl.expected.glsl
index 1a087ee..9fb9a3b 100644
--- a/test/tint/builtins/gen/literal/asinh/8d2e51.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/asinh/8d2e51.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void asinh_8d2e51() {
-  vec4 res = vec4(0.881373584f);
+  vec4 res = vec4(0.88137358427047729492f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void asinh_8d2e51() {
-  vec4 res = vec4(0.881373584f);
+  vec4 res = vec4(0.88137358427047729492f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void asinh_8d2e51() {
-  vec4 res = vec4(0.881373584f);
+  vec4 res = vec4(0.88137358427047729492f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/asinh/8d2e51.wgsl.expected.msl b/test/tint/builtins/gen/literal/asinh/8d2e51.wgsl.expected.msl
index 0f6c879..e6ddde2 100644
--- a/test/tint/builtins/gen/literal/asinh/8d2e51.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/asinh/8d2e51.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void asinh_8d2e51() {
-  float4 res = float4(0.881373584f);
+  float4 res = float4(0.88137358427047729492f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/asinh/95ab2b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/asinh/95ab2b.wgsl.expected.dxc.hlsl
index aceecc0..de48e04 100644
--- a/test/tint/builtins/gen/literal/asinh/95ab2b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/asinh/95ab2b.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void asinh_95ab2b() {
-  vector<float16_t, 4> res = (float16_t(0.881347656h)).xxxx;
+  vector<float16_t, 4> res = (float16_t(0.88134765625h)).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/asinh/95ab2b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/asinh/95ab2b.wgsl.expected.glsl
index 7033652..35c3916 100644
--- a/test/tint/builtins/gen/literal/asinh/95ab2b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/asinh/95ab2b.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void asinh_95ab2b() {
-  f16vec4 res = f16vec4(0.881347656hf);
+  f16vec4 res = f16vec4(0.88134765625hf);
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 precision mediump float;
 
 void asinh_95ab2b() {
-  f16vec4 res = f16vec4(0.881347656hf);
+  f16vec4 res = f16vec4(0.88134765625hf);
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void asinh_95ab2b() {
-  f16vec4 res = f16vec4(0.881347656hf);
+  f16vec4 res = f16vec4(0.88134765625hf);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/asinh/95ab2b.wgsl.expected.msl b/test/tint/builtins/gen/literal/asinh/95ab2b.wgsl.expected.msl
index d294e1a..d191758 100644
--- a/test/tint/builtins/gen/literal/asinh/95ab2b.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/asinh/95ab2b.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void asinh_95ab2b() {
-  half4 res = half4(0.881347656h);
+  half4 res = half4(0.88134765625h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/asinh/ad8f8b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/asinh/ad8f8b.wgsl.expected.dxc.hlsl
index 7a2f4f0..802429f 100644
--- a/test/tint/builtins/gen/literal/asinh/ad8f8b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/asinh/ad8f8b.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void asinh_ad8f8b() {
-  vector<float16_t, 2> res = (float16_t(0.881347656h)).xx;
+  vector<float16_t, 2> res = (float16_t(0.88134765625h)).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/asinh/ad8f8b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/asinh/ad8f8b.wgsl.expected.glsl
index b6efd56..1be54f0 100644
--- a/test/tint/builtins/gen/literal/asinh/ad8f8b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/asinh/ad8f8b.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void asinh_ad8f8b() {
-  f16vec2 res = f16vec2(0.881347656hf);
+  f16vec2 res = f16vec2(0.88134765625hf);
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 precision mediump float;
 
 void asinh_ad8f8b() {
-  f16vec2 res = f16vec2(0.881347656hf);
+  f16vec2 res = f16vec2(0.88134765625hf);
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void asinh_ad8f8b() {
-  f16vec2 res = f16vec2(0.881347656hf);
+  f16vec2 res = f16vec2(0.88134765625hf);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/asinh/ad8f8b.wgsl.expected.msl b/test/tint/builtins/gen/literal/asinh/ad8f8b.wgsl.expected.msl
index 4d9d5b5..4a89f51 100644
--- a/test/tint/builtins/gen/literal/asinh/ad8f8b.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/asinh/ad8f8b.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void asinh_ad8f8b() {
-  half2 res = half2(0.881347656h);
+  half2 res = half2(0.88134765625h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/asinh/cf8603.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/asinh/cf8603.wgsl.expected.dxc.hlsl
index b15efcd..dbf7249 100644
--- a/test/tint/builtins/gen/literal/asinh/cf8603.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/asinh/cf8603.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void asinh_cf8603() {
-  float4 res = (0.881373584f).xxxx;
+  float4 res = (0.88137358427047729492f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/asinh/cf8603.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/asinh/cf8603.wgsl.expected.fxc.hlsl
index b15efcd..dbf7249 100644
--- a/test/tint/builtins/gen/literal/asinh/cf8603.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/asinh/cf8603.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void asinh_cf8603() {
-  float4 res = (0.881373584f).xxxx;
+  float4 res = (0.88137358427047729492f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/asinh/cf8603.wgsl.expected.glsl b/test/tint/builtins/gen/literal/asinh/cf8603.wgsl.expected.glsl
index 11087b2..e60d6d8 100644
--- a/test/tint/builtins/gen/literal/asinh/cf8603.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/asinh/cf8603.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void asinh_cf8603() {
-  vec4 res = vec4(0.881373584f);
+  vec4 res = vec4(0.88137358427047729492f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void asinh_cf8603() {
-  vec4 res = vec4(0.881373584f);
+  vec4 res = vec4(0.88137358427047729492f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void asinh_cf8603() {
-  vec4 res = vec4(0.881373584f);
+  vec4 res = vec4(0.88137358427047729492f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/asinh/cf8603.wgsl.expected.msl b/test/tint/builtins/gen/literal/asinh/cf8603.wgsl.expected.msl
index 61a56b9..e1a1d53 100644
--- a/test/tint/builtins/gen/literal/asinh/cf8603.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/asinh/cf8603.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void asinh_cf8603() {
-  float4 res = float4(0.881373584f);
+  float4 res = float4(0.88137358427047729492f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/asinh/fb5e8c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/asinh/fb5e8c.wgsl.expected.dxc.hlsl
index 611ab3e..bb18443 100644
--- a/test/tint/builtins/gen/literal/asinh/fb5e8c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/asinh/fb5e8c.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void asinh_fb5e8c() {
-  vector<float16_t, 3> res = (float16_t(0.881347656h)).xxx;
+  vector<float16_t, 3> res = (float16_t(0.88134765625h)).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/asinh/fb5e8c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/asinh/fb5e8c.wgsl.expected.glsl
index f5e2e87..46c51ce 100644
--- a/test/tint/builtins/gen/literal/asinh/fb5e8c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/asinh/fb5e8c.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void asinh_fb5e8c() {
-  f16vec3 res = f16vec3(0.881347656hf);
+  f16vec3 res = f16vec3(0.88134765625hf);
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 precision mediump float;
 
 void asinh_fb5e8c() {
-  f16vec3 res = f16vec3(0.881347656hf);
+  f16vec3 res = f16vec3(0.88134765625hf);
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void asinh_fb5e8c() {
-  f16vec3 res = f16vec3(0.881347656hf);
+  f16vec3 res = f16vec3(0.88134765625hf);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/asinh/fb5e8c.wgsl.expected.msl b/test/tint/builtins/gen/literal/asinh/fb5e8c.wgsl.expected.msl
index a7d247d..7753043 100644
--- a/test/tint/builtins/gen/literal/asinh/fb5e8c.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/asinh/fb5e8c.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void asinh_fb5e8c() {
-  half3 res = half3(0.881347656h);
+  half3 res = half3(0.88134765625h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/atan/02979a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/atan/02979a.wgsl.expected.dxc.hlsl
index 41818f4..1f58ff0 100644
--- a/test/tint/builtins/gen/literal/atan/02979a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan/02979a.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void atan_02979a() {
-  float res = 0.785398185f;
+  float res = 0.78539818525314331055f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/atan/02979a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/atan/02979a.wgsl.expected.fxc.hlsl
index 41818f4..1f58ff0 100644
--- a/test/tint/builtins/gen/literal/atan/02979a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan/02979a.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void atan_02979a() {
-  float res = 0.785398185f;
+  float res = 0.78539818525314331055f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/atan/02979a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atan/02979a.wgsl.expected.glsl
index 46783bc..85d99bb 100644
--- a/test/tint/builtins/gen/literal/atan/02979a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atan/02979a.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void atan_02979a() {
-  float res = 0.785398185f;
+  float res = 0.78539818525314331055f;
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void atan_02979a() {
-  float res = 0.785398185f;
+  float res = 0.78539818525314331055f;
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void atan_02979a() {
-  float res = 0.785398185f;
+  float res = 0.78539818525314331055f;
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/atan/02979a.wgsl.expected.msl b/test/tint/builtins/gen/literal/atan/02979a.wgsl.expected.msl
index 39b894b..0112cf1 100644
--- a/test/tint/builtins/gen/literal/atan/02979a.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/atan/02979a.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void atan_02979a() {
-  float res = 0.785398185f;
+  float res = 0.78539818525314331055f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/atan/331e6d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/atan/331e6d.wgsl.expected.dxc.hlsl
index e5151fa..2ddd1f2 100644
--- a/test/tint/builtins/gen/literal/atan/331e6d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan/331e6d.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void atan_331e6d() {
-  float3 res = (0.785398185f).xxx;
+  float3 res = (0.78539818525314331055f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/atan/331e6d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/atan/331e6d.wgsl.expected.fxc.hlsl
index e5151fa..2ddd1f2 100644
--- a/test/tint/builtins/gen/literal/atan/331e6d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan/331e6d.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void atan_331e6d() {
-  float3 res = (0.785398185f).xxx;
+  float3 res = (0.78539818525314331055f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/atan/331e6d.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atan/331e6d.wgsl.expected.glsl
index 646e9e3..c3d1dbb 100644
--- a/test/tint/builtins/gen/literal/atan/331e6d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atan/331e6d.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void atan_331e6d() {
-  vec3 res = vec3(0.785398185f);
+  vec3 res = vec3(0.78539818525314331055f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void atan_331e6d() {
-  vec3 res = vec3(0.785398185f);
+  vec3 res = vec3(0.78539818525314331055f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void atan_331e6d() {
-  vec3 res = vec3(0.785398185f);
+  vec3 res = vec3(0.78539818525314331055f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/atan/331e6d.wgsl.expected.msl b/test/tint/builtins/gen/literal/atan/331e6d.wgsl.expected.msl
index fc6b5b9..a505ed9 100644
--- a/test/tint/builtins/gen/literal/atan/331e6d.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/atan/331e6d.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void atan_331e6d() {
-  float3 res = float3(0.785398185f);
+  float3 res = float3(0.78539818525314331055f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/atan/5ca7b8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/atan/5ca7b8.wgsl.expected.dxc.hlsl
index bea5d88..a7298c6 100644
--- a/test/tint/builtins/gen/literal/atan/5ca7b8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan/5ca7b8.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void atan_5ca7b8() {
-  float2 res = (0.785398185f).xx;
+  float2 res = (0.78539818525314331055f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/atan/5ca7b8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/atan/5ca7b8.wgsl.expected.fxc.hlsl
index bea5d88..a7298c6 100644
--- a/test/tint/builtins/gen/literal/atan/5ca7b8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan/5ca7b8.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void atan_5ca7b8() {
-  float2 res = (0.785398185f).xx;
+  float2 res = (0.78539818525314331055f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/atan/5ca7b8.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atan/5ca7b8.wgsl.expected.glsl
index e816df0..c79c72f 100644
--- a/test/tint/builtins/gen/literal/atan/5ca7b8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atan/5ca7b8.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void atan_5ca7b8() {
-  vec2 res = vec2(0.785398185f);
+  vec2 res = vec2(0.78539818525314331055f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void atan_5ca7b8() {
-  vec2 res = vec2(0.785398185f);
+  vec2 res = vec2(0.78539818525314331055f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void atan_5ca7b8() {
-  vec2 res = vec2(0.785398185f);
+  vec2 res = vec2(0.78539818525314331055f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/atan/5ca7b8.wgsl.expected.msl b/test/tint/builtins/gen/literal/atan/5ca7b8.wgsl.expected.msl
index d2a1cc8..8629789 100644
--- a/test/tint/builtins/gen/literal/atan/5ca7b8.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/atan/5ca7b8.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void atan_5ca7b8() {
-  float2 res = float2(0.785398185f);
+  float2 res = float2(0.78539818525314331055f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/atan/749e1b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/atan/749e1b.wgsl.expected.dxc.hlsl
index f7c75ea..2db8ef0 100644
--- a/test/tint/builtins/gen/literal/atan/749e1b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan/749e1b.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void atan_749e1b() {
-  float3 res = (0.785398185f).xxx;
+  float3 res = (0.78539818525314331055f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/atan/749e1b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/atan/749e1b.wgsl.expected.fxc.hlsl
index f7c75ea..2db8ef0 100644
--- a/test/tint/builtins/gen/literal/atan/749e1b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan/749e1b.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void atan_749e1b() {
-  float3 res = (0.785398185f).xxx;
+  float3 res = (0.78539818525314331055f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/atan/749e1b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atan/749e1b.wgsl.expected.glsl
index e596e37..049397c 100644
--- a/test/tint/builtins/gen/literal/atan/749e1b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atan/749e1b.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void atan_749e1b() {
-  vec3 res = vec3(0.785398185f);
+  vec3 res = vec3(0.78539818525314331055f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void atan_749e1b() {
-  vec3 res = vec3(0.785398185f);
+  vec3 res = vec3(0.78539818525314331055f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void atan_749e1b() {
-  vec3 res = vec3(0.785398185f);
+  vec3 res = vec3(0.78539818525314331055f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/atan/749e1b.wgsl.expected.msl b/test/tint/builtins/gen/literal/atan/749e1b.wgsl.expected.msl
index 4ee66a7..0a495f1 100644
--- a/test/tint/builtins/gen/literal/atan/749e1b.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/atan/749e1b.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void atan_749e1b() {
-  float3 res = float3(0.785398185f);
+  float3 res = float3(0.78539818525314331055f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/atan/7a2a75.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/atan/7a2a75.wgsl.expected.dxc.hlsl
index 173246a..e193179 100644
--- a/test/tint/builtins/gen/literal/atan/7a2a75.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan/7a2a75.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void atan_7a2a75() {
-  float res = 0.785398185f;
+  float res = 0.78539818525314331055f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/atan/7a2a75.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/atan/7a2a75.wgsl.expected.fxc.hlsl
index 173246a..e193179 100644
--- a/test/tint/builtins/gen/literal/atan/7a2a75.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan/7a2a75.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void atan_7a2a75() {
-  float res = 0.785398185f;
+  float res = 0.78539818525314331055f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/atan/7a2a75.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atan/7a2a75.wgsl.expected.glsl
index 952e56b..3cc4ed2 100644
--- a/test/tint/builtins/gen/literal/atan/7a2a75.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atan/7a2a75.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void atan_7a2a75() {
-  float res = 0.785398185f;
+  float res = 0.78539818525314331055f;
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void atan_7a2a75() {
-  float res = 0.785398185f;
+  float res = 0.78539818525314331055f;
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void atan_7a2a75() {
-  float res = 0.785398185f;
+  float res = 0.78539818525314331055f;
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/atan/7a2a75.wgsl.expected.msl b/test/tint/builtins/gen/literal/atan/7a2a75.wgsl.expected.msl
index 12934a2..f007b24 100644
--- a/test/tint/builtins/gen/literal/atan/7a2a75.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/atan/7a2a75.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void atan_7a2a75() {
-  float res = 0.785398185f;
+  float res = 0.78539818525314331055f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/atan/a8b696.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/atan/a8b696.wgsl.expected.dxc.hlsl
index f007a49..1b444ab 100644
--- a/test/tint/builtins/gen/literal/atan/a8b696.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan/a8b696.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void atan_a8b696() {
-  float4 res = (0.785398185f).xxxx;
+  float4 res = (0.78539818525314331055f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/atan/a8b696.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/atan/a8b696.wgsl.expected.fxc.hlsl
index f007a49..1b444ab 100644
--- a/test/tint/builtins/gen/literal/atan/a8b696.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan/a8b696.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void atan_a8b696() {
-  float4 res = (0.785398185f).xxxx;
+  float4 res = (0.78539818525314331055f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/atan/a8b696.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atan/a8b696.wgsl.expected.glsl
index d04359c..21a67f4 100644
--- a/test/tint/builtins/gen/literal/atan/a8b696.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atan/a8b696.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void atan_a8b696() {
-  vec4 res = vec4(0.785398185f);
+  vec4 res = vec4(0.78539818525314331055f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void atan_a8b696() {
-  vec4 res = vec4(0.785398185f);
+  vec4 res = vec4(0.78539818525314331055f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void atan_a8b696() {
-  vec4 res = vec4(0.785398185f);
+  vec4 res = vec4(0.78539818525314331055f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/atan/a8b696.wgsl.expected.msl b/test/tint/builtins/gen/literal/atan/a8b696.wgsl.expected.msl
index c7e812e..e3636b0 100644
--- a/test/tint/builtins/gen/literal/atan/a8b696.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/atan/a8b696.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void atan_a8b696() {
-  float4 res = float4(0.785398185f);
+  float4 res = float4(0.78539818525314331055f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/atan/ad96e4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/atan/ad96e4.wgsl.expected.dxc.hlsl
index 96fe34b..fc396b4 100644
--- a/test/tint/builtins/gen/literal/atan/ad96e4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan/ad96e4.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void atan_ad96e4() {
-  float2 res = (0.785398185f).xx;
+  float2 res = (0.78539818525314331055f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/atan/ad96e4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/atan/ad96e4.wgsl.expected.fxc.hlsl
index 96fe34b..fc396b4 100644
--- a/test/tint/builtins/gen/literal/atan/ad96e4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan/ad96e4.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void atan_ad96e4() {
-  float2 res = (0.785398185f).xx;
+  float2 res = (0.78539818525314331055f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/atan/ad96e4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atan/ad96e4.wgsl.expected.glsl
index eb84cd8..bac3b19 100644
--- a/test/tint/builtins/gen/literal/atan/ad96e4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atan/ad96e4.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void atan_ad96e4() {
-  vec2 res = vec2(0.785398185f);
+  vec2 res = vec2(0.78539818525314331055f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void atan_ad96e4() {
-  vec2 res = vec2(0.785398185f);
+  vec2 res = vec2(0.78539818525314331055f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void atan_ad96e4() {
-  vec2 res = vec2(0.785398185f);
+  vec2 res = vec2(0.78539818525314331055f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/atan/ad96e4.wgsl.expected.msl b/test/tint/builtins/gen/literal/atan/ad96e4.wgsl.expected.msl
index ce75560..adbe323 100644
--- a/test/tint/builtins/gen/literal/atan/ad96e4.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/atan/ad96e4.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void atan_ad96e4() {
-  float2 res = float2(0.785398185f);
+  float2 res = float2(0.78539818525314331055f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/atan/d17fb2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/atan/d17fb2.wgsl.expected.dxc.hlsl
index 96e0256..e6dfad9 100644
--- a/test/tint/builtins/gen/literal/atan/d17fb2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan/d17fb2.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void atan_d17fb2() {
-  float4 res = (0.785398185f).xxxx;
+  float4 res = (0.78539818525314331055f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/atan/d17fb2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/atan/d17fb2.wgsl.expected.fxc.hlsl
index 96e0256..e6dfad9 100644
--- a/test/tint/builtins/gen/literal/atan/d17fb2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan/d17fb2.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void atan_d17fb2() {
-  float4 res = (0.785398185f).xxxx;
+  float4 res = (0.78539818525314331055f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/atan/d17fb2.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atan/d17fb2.wgsl.expected.glsl
index 93ead11..3ea638e 100644
--- a/test/tint/builtins/gen/literal/atan/d17fb2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atan/d17fb2.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void atan_d17fb2() {
-  vec4 res = vec4(0.785398185f);
+  vec4 res = vec4(0.78539818525314331055f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void atan_d17fb2() {
-  vec4 res = vec4(0.785398185f);
+  vec4 res = vec4(0.78539818525314331055f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void atan_d17fb2() {
-  vec4 res = vec4(0.785398185f);
+  vec4 res = vec4(0.78539818525314331055f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/atan/d17fb2.wgsl.expected.msl b/test/tint/builtins/gen/literal/atan/d17fb2.wgsl.expected.msl
index d74bfda..b0029f9 100644
--- a/test/tint/builtins/gen/literal/atan/d17fb2.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/atan/d17fb2.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void atan_d17fb2() {
-  float4 res = float4(0.785398185f);
+  float4 res = float4(0.78539818525314331055f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/atan2/034ace.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/atan2/034ace.wgsl.expected.dxc.hlsl
index dce0209..5af1f00 100644
--- a/test/tint/builtins/gen/literal/atan2/034ace.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan2/034ace.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void atan2_034ace() {
-  float res = 0.785398185f;
+  float res = 0.78539818525314331055f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/atan2/034ace.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/atan2/034ace.wgsl.expected.fxc.hlsl
index dce0209..5af1f00 100644
--- a/test/tint/builtins/gen/literal/atan2/034ace.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan2/034ace.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void atan2_034ace() {
-  float res = 0.785398185f;
+  float res = 0.78539818525314331055f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/atan2/034ace.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atan2/034ace.wgsl.expected.glsl
index 4919787..b4afab7 100644
--- a/test/tint/builtins/gen/literal/atan2/034ace.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atan2/034ace.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void atan2_034ace() {
-  float res = 0.785398185f;
+  float res = 0.78539818525314331055f;
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void atan2_034ace() {
-  float res = 0.785398185f;
+  float res = 0.78539818525314331055f;
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void atan2_034ace() {
-  float res = 0.785398185f;
+  float res = 0.78539818525314331055f;
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/atan2/034ace.wgsl.expected.msl b/test/tint/builtins/gen/literal/atan2/034ace.wgsl.expected.msl
index fb91e8d..5d601c5 100644
--- a/test/tint/builtins/gen/literal/atan2/034ace.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/atan2/034ace.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void atan2_034ace() {
-  float res = 0.785398185f;
+  float res = 0.78539818525314331055f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/atan2/3c2865.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/atan2/3c2865.wgsl.expected.dxc.hlsl
index 71f64a4..6251bb1 100644
--- a/test/tint/builtins/gen/literal/atan2/3c2865.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan2/3c2865.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void atan2_3c2865() {
-  float3 res = (0.785398185f).xxx;
+  float3 res = (0.78539818525314331055f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/atan2/3c2865.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/atan2/3c2865.wgsl.expected.fxc.hlsl
index 71f64a4..6251bb1 100644
--- a/test/tint/builtins/gen/literal/atan2/3c2865.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan2/3c2865.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void atan2_3c2865() {
-  float3 res = (0.785398185f).xxx;
+  float3 res = (0.78539818525314331055f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/atan2/3c2865.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atan2/3c2865.wgsl.expected.glsl
index b2ebe38..40e2aaa 100644
--- a/test/tint/builtins/gen/literal/atan2/3c2865.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atan2/3c2865.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void atan2_3c2865() {
-  vec3 res = vec3(0.785398185f);
+  vec3 res = vec3(0.78539818525314331055f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void atan2_3c2865() {
-  vec3 res = vec3(0.785398185f);
+  vec3 res = vec3(0.78539818525314331055f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void atan2_3c2865() {
-  vec3 res = vec3(0.785398185f);
+  vec3 res = vec3(0.78539818525314331055f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/atan2/3c2865.wgsl.expected.msl b/test/tint/builtins/gen/literal/atan2/3c2865.wgsl.expected.msl
index 867108a..c6528f6 100644
--- a/test/tint/builtins/gen/literal/atan2/3c2865.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/atan2/3c2865.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void atan2_3c2865() {
-  float3 res = float3(0.785398185f);
+  float3 res = float3(0.78539818525314331055f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/atan2/57fb13.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/atan2/57fb13.wgsl.expected.dxc.hlsl
index f3d2565..4c5a28f 100644
--- a/test/tint/builtins/gen/literal/atan2/57fb13.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan2/57fb13.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void atan2_57fb13() {
-  float2 res = (0.785398185f).xx;
+  float2 res = (0.78539818525314331055f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/atan2/57fb13.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/atan2/57fb13.wgsl.expected.fxc.hlsl
index f3d2565..4c5a28f 100644
--- a/test/tint/builtins/gen/literal/atan2/57fb13.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan2/57fb13.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void atan2_57fb13() {
-  float2 res = (0.785398185f).xx;
+  float2 res = (0.78539818525314331055f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/atan2/57fb13.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atan2/57fb13.wgsl.expected.glsl
index e4ffcba..a774c1c 100644
--- a/test/tint/builtins/gen/literal/atan2/57fb13.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atan2/57fb13.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void atan2_57fb13() {
-  vec2 res = vec2(0.785398185f);
+  vec2 res = vec2(0.78539818525314331055f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void atan2_57fb13() {
-  vec2 res = vec2(0.785398185f);
+  vec2 res = vec2(0.78539818525314331055f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void atan2_57fb13() {
-  vec2 res = vec2(0.785398185f);
+  vec2 res = vec2(0.78539818525314331055f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/atan2/57fb13.wgsl.expected.msl b/test/tint/builtins/gen/literal/atan2/57fb13.wgsl.expected.msl
index bdc31a4..df50917 100644
--- a/test/tint/builtins/gen/literal/atan2/57fb13.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/atan2/57fb13.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void atan2_57fb13() {
-  float2 res = float2(0.785398185f);
+  float2 res = float2(0.78539818525314331055f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/atan2/96057c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/atan2/96057c.wgsl.expected.dxc.hlsl
index d1f9172..3f5ad15 100644
--- a/test/tint/builtins/gen/literal/atan2/96057c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan2/96057c.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void atan2_96057c() {
-  float res = 0.785398185f;
+  float res = 0.78539818525314331055f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/atan2/96057c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/atan2/96057c.wgsl.expected.fxc.hlsl
index d1f9172..3f5ad15 100644
--- a/test/tint/builtins/gen/literal/atan2/96057c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan2/96057c.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void atan2_96057c() {
-  float res = 0.785398185f;
+  float res = 0.78539818525314331055f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/atan2/96057c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atan2/96057c.wgsl.expected.glsl
index 84a2072..a55d862 100644
--- a/test/tint/builtins/gen/literal/atan2/96057c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atan2/96057c.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void atan2_96057c() {
-  float res = 0.785398185f;
+  float res = 0.78539818525314331055f;
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void atan2_96057c() {
-  float res = 0.785398185f;
+  float res = 0.78539818525314331055f;
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void atan2_96057c() {
-  float res = 0.785398185f;
+  float res = 0.78539818525314331055f;
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/atan2/96057c.wgsl.expected.msl b/test/tint/builtins/gen/literal/atan2/96057c.wgsl.expected.msl
index 8a2998e..4f5806a 100644
--- a/test/tint/builtins/gen/literal/atan2/96057c.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/atan2/96057c.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void atan2_96057c() {
-  float res = 0.785398185f;
+  float res = 0.78539818525314331055f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/atan2/a70d0d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/atan2/a70d0d.wgsl.expected.dxc.hlsl
index a025539..603b203 100644
--- a/test/tint/builtins/gen/literal/atan2/a70d0d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan2/a70d0d.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void atan2_a70d0d() {
-  float3 res = (0.785398185f).xxx;
+  float3 res = (0.78539818525314331055f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/atan2/a70d0d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/atan2/a70d0d.wgsl.expected.fxc.hlsl
index a025539..603b203 100644
--- a/test/tint/builtins/gen/literal/atan2/a70d0d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan2/a70d0d.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void atan2_a70d0d() {
-  float3 res = (0.785398185f).xxx;
+  float3 res = (0.78539818525314331055f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/atan2/a70d0d.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atan2/a70d0d.wgsl.expected.glsl
index a63fa44..27a20ac 100644
--- a/test/tint/builtins/gen/literal/atan2/a70d0d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atan2/a70d0d.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void atan2_a70d0d() {
-  vec3 res = vec3(0.785398185f);
+  vec3 res = vec3(0.78539818525314331055f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void atan2_a70d0d() {
-  vec3 res = vec3(0.785398185f);
+  vec3 res = vec3(0.78539818525314331055f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void atan2_a70d0d() {
-  vec3 res = vec3(0.785398185f);
+  vec3 res = vec3(0.78539818525314331055f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/atan2/a70d0d.wgsl.expected.msl b/test/tint/builtins/gen/literal/atan2/a70d0d.wgsl.expected.msl
index c34104b..b2d9b60 100644
--- a/test/tint/builtins/gen/literal/atan2/a70d0d.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/atan2/a70d0d.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void atan2_a70d0d() {
-  float3 res = float3(0.785398185f);
+  float3 res = float3(0.78539818525314331055f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/atan2/ae713e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/atan2/ae713e.wgsl.expected.dxc.hlsl
index 5620691..0b86fe8 100644
--- a/test/tint/builtins/gen/literal/atan2/ae713e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan2/ae713e.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void atan2_ae713e() {
-  float4 res = (0.785398185f).xxxx;
+  float4 res = (0.78539818525314331055f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/atan2/ae713e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/atan2/ae713e.wgsl.expected.fxc.hlsl
index 5620691..0b86fe8 100644
--- a/test/tint/builtins/gen/literal/atan2/ae713e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan2/ae713e.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void atan2_ae713e() {
-  float4 res = (0.785398185f).xxxx;
+  float4 res = (0.78539818525314331055f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/atan2/ae713e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atan2/ae713e.wgsl.expected.glsl
index 46798f9..d511e37 100644
--- a/test/tint/builtins/gen/literal/atan2/ae713e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atan2/ae713e.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void atan2_ae713e() {
-  vec4 res = vec4(0.785398185f);
+  vec4 res = vec4(0.78539818525314331055f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void atan2_ae713e() {
-  vec4 res = vec4(0.785398185f);
+  vec4 res = vec4(0.78539818525314331055f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void atan2_ae713e() {
-  vec4 res = vec4(0.785398185f);
+  vec4 res = vec4(0.78539818525314331055f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/atan2/ae713e.wgsl.expected.msl b/test/tint/builtins/gen/literal/atan2/ae713e.wgsl.expected.msl
index ec369ef..3ec89eb 100644
--- a/test/tint/builtins/gen/literal/atan2/ae713e.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/atan2/ae713e.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void atan2_ae713e() {
-  float4 res = float4(0.785398185f);
+  float4 res = float4(0.78539818525314331055f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/atan2/c19683.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/atan2/c19683.wgsl.expected.dxc.hlsl
index 93f2273..2401e58 100644
--- a/test/tint/builtins/gen/literal/atan2/c19683.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan2/c19683.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void atan2_c19683() {
-  float2 res = (0.785398185f).xx;
+  float2 res = (0.78539818525314331055f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/atan2/c19683.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/atan2/c19683.wgsl.expected.fxc.hlsl
index 93f2273..2401e58 100644
--- a/test/tint/builtins/gen/literal/atan2/c19683.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan2/c19683.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void atan2_c19683() {
-  float2 res = (0.785398185f).xx;
+  float2 res = (0.78539818525314331055f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/atan2/c19683.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atan2/c19683.wgsl.expected.glsl
index d823d61..dc495d7 100644
--- a/test/tint/builtins/gen/literal/atan2/c19683.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atan2/c19683.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void atan2_c19683() {
-  vec2 res = vec2(0.785398185f);
+  vec2 res = vec2(0.78539818525314331055f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void atan2_c19683() {
-  vec2 res = vec2(0.785398185f);
+  vec2 res = vec2(0.78539818525314331055f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void atan2_c19683() {
-  vec2 res = vec2(0.785398185f);
+  vec2 res = vec2(0.78539818525314331055f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/atan2/c19683.wgsl.expected.msl b/test/tint/builtins/gen/literal/atan2/c19683.wgsl.expected.msl
index 3af76c7..82ea445 100644
--- a/test/tint/builtins/gen/literal/atan2/c19683.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/atan2/c19683.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void atan2_c19683() {
-  float2 res = float2(0.785398185f);
+  float2 res = float2(0.78539818525314331055f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/atan2/c4be45.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/atan2/c4be45.wgsl.expected.dxc.hlsl
index c666d69..63f0862 100644
--- a/test/tint/builtins/gen/literal/atan2/c4be45.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan2/c4be45.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void atan2_c4be45() {
-  float4 res = (0.785398185f).xxxx;
+  float4 res = (0.78539818525314331055f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/atan2/c4be45.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/atan2/c4be45.wgsl.expected.fxc.hlsl
index c666d69..63f0862 100644
--- a/test/tint/builtins/gen/literal/atan2/c4be45.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan2/c4be45.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void atan2_c4be45() {
-  float4 res = (0.785398185f).xxxx;
+  float4 res = (0.78539818525314331055f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/atan2/c4be45.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atan2/c4be45.wgsl.expected.glsl
index 2d65f82..427f0a0 100644
--- a/test/tint/builtins/gen/literal/atan2/c4be45.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atan2/c4be45.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void atan2_c4be45() {
-  vec4 res = vec4(0.785398185f);
+  vec4 res = vec4(0.78539818525314331055f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void atan2_c4be45() {
-  vec4 res = vec4(0.785398185f);
+  vec4 res = vec4(0.78539818525314331055f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void atan2_c4be45() {
-  vec4 res = vec4(0.785398185f);
+  vec4 res = vec4(0.78539818525314331055f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/atan2/c4be45.wgsl.expected.msl b/test/tint/builtins/gen/literal/atan2/c4be45.wgsl.expected.msl
index 89fe4fa..8f638ca 100644
--- a/test/tint/builtins/gen/literal/atan2/c4be45.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/atan2/c4be45.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void atan2_c4be45() {
-  float4 res = float4(0.785398185f);
+  float4 res = float4(0.78539818525314331055f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/atanh/440cca.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/atanh/440cca.wgsl.expected.dxc.hlsl
index 2aacc1c..9886e9a 100644
--- a/test/tint/builtins/gen/literal/atanh/440cca.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atanh/440cca.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void atanh_440cca() {
-  float3 res = (0.549306154f).xxx;
+  float3 res = (0.54930615425109863281f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/atanh/440cca.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/atanh/440cca.wgsl.expected.fxc.hlsl
index 2aacc1c..9886e9a 100644
--- a/test/tint/builtins/gen/literal/atanh/440cca.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atanh/440cca.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void atanh_440cca() {
-  float3 res = (0.549306154f).xxx;
+  float3 res = (0.54930615425109863281f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/atanh/440cca.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atanh/440cca.wgsl.expected.glsl
index babebf4..113da45 100644
--- a/test/tint/builtins/gen/literal/atanh/440cca.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atanh/440cca.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void atanh_440cca() {
-  vec3 res = vec3(0.549306154f);
+  vec3 res = vec3(0.54930615425109863281f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void atanh_440cca() {
-  vec3 res = vec3(0.549306154f);
+  vec3 res = vec3(0.54930615425109863281f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void atanh_440cca() {
-  vec3 res = vec3(0.549306154f);
+  vec3 res = vec3(0.54930615425109863281f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/atanh/440cca.wgsl.expected.msl b/test/tint/builtins/gen/literal/atanh/440cca.wgsl.expected.msl
index 203e734..079c92e 100644
--- a/test/tint/builtins/gen/literal/atanh/440cca.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/atanh/440cca.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void atanh_440cca() {
-  float3 res = float3(0.549306154f);
+  float3 res = float3(0.54930615425109863281f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/atanh/70d5bd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/atanh/70d5bd.wgsl.expected.dxc.hlsl
index c309e30..bf921e0 100644
--- a/test/tint/builtins/gen/literal/atanh/70d5bd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atanh/70d5bd.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void atanh_70d5bd() {
-  float2 res = (0.549306154f).xx;
+  float2 res = (0.54930615425109863281f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/atanh/70d5bd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/atanh/70d5bd.wgsl.expected.fxc.hlsl
index c309e30..bf921e0 100644
--- a/test/tint/builtins/gen/literal/atanh/70d5bd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atanh/70d5bd.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void atanh_70d5bd() {
-  float2 res = (0.549306154f).xx;
+  float2 res = (0.54930615425109863281f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/atanh/70d5bd.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atanh/70d5bd.wgsl.expected.glsl
index 4810f62..2fce2e4 100644
--- a/test/tint/builtins/gen/literal/atanh/70d5bd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atanh/70d5bd.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void atanh_70d5bd() {
-  vec2 res = vec2(0.549306154f);
+  vec2 res = vec2(0.54930615425109863281f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void atanh_70d5bd() {
-  vec2 res = vec2(0.549306154f);
+  vec2 res = vec2(0.54930615425109863281f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void atanh_70d5bd() {
-  vec2 res = vec2(0.549306154f);
+  vec2 res = vec2(0.54930615425109863281f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/atanh/70d5bd.wgsl.expected.msl b/test/tint/builtins/gen/literal/atanh/70d5bd.wgsl.expected.msl
index 57452f4..811ff35 100644
--- a/test/tint/builtins/gen/literal/atanh/70d5bd.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/atanh/70d5bd.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void atanh_70d5bd() {
-  float2 res = float2(0.549306154f);
+  float2 res = float2(0.54930615425109863281f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/atanh/7997d8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/atanh/7997d8.wgsl.expected.dxc.hlsl
index 1b3ce0a..eda280b 100644
--- a/test/tint/builtins/gen/literal/atanh/7997d8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atanh/7997d8.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void atanh_7997d8() {
-  float res = 0.549306154f;
+  float res = 0.54930615425109863281f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/atanh/7997d8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/atanh/7997d8.wgsl.expected.fxc.hlsl
index 1b3ce0a..eda280b 100644
--- a/test/tint/builtins/gen/literal/atanh/7997d8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atanh/7997d8.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void atanh_7997d8() {
-  float res = 0.549306154f;
+  float res = 0.54930615425109863281f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/atanh/7997d8.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atanh/7997d8.wgsl.expected.glsl
index df17e4d..c084125 100644
--- a/test/tint/builtins/gen/literal/atanh/7997d8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atanh/7997d8.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void atanh_7997d8() {
-  float res = 0.549306154f;
+  float res = 0.54930615425109863281f;
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void atanh_7997d8() {
-  float res = 0.549306154f;
+  float res = 0.54930615425109863281f;
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void atanh_7997d8() {
-  float res = 0.549306154f;
+  float res = 0.54930615425109863281f;
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/atanh/7997d8.wgsl.expected.msl b/test/tint/builtins/gen/literal/atanh/7997d8.wgsl.expected.msl
index 4e41260..0caba9a 100644
--- a/test/tint/builtins/gen/literal/atanh/7997d8.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/atanh/7997d8.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void atanh_7997d8() {
-  float res = 0.549306154f;
+  float res = 0.54930615425109863281f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/atanh/7f2874.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/atanh/7f2874.wgsl.expected.dxc.hlsl
index 001e7db..9493ebf 100644
--- a/test/tint/builtins/gen/literal/atanh/7f2874.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atanh/7f2874.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void atanh_7f2874() {
-  float3 res = (0.549306154f).xxx;
+  float3 res = (0.54930615425109863281f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/atanh/7f2874.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/atanh/7f2874.wgsl.expected.fxc.hlsl
index 001e7db..9493ebf 100644
--- a/test/tint/builtins/gen/literal/atanh/7f2874.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atanh/7f2874.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void atanh_7f2874() {
-  float3 res = (0.549306154f).xxx;
+  float3 res = (0.54930615425109863281f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/atanh/7f2874.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atanh/7f2874.wgsl.expected.glsl
index 1de983e..a28b2e9 100644
--- a/test/tint/builtins/gen/literal/atanh/7f2874.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atanh/7f2874.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void atanh_7f2874() {
-  vec3 res = vec3(0.549306154f);
+  vec3 res = vec3(0.54930615425109863281f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void atanh_7f2874() {
-  vec3 res = vec3(0.549306154f);
+  vec3 res = vec3(0.54930615425109863281f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void atanh_7f2874() {
-  vec3 res = vec3(0.549306154f);
+  vec3 res = vec3(0.54930615425109863281f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/atanh/7f2874.wgsl.expected.msl b/test/tint/builtins/gen/literal/atanh/7f2874.wgsl.expected.msl
index e93df5b..f4dcc17 100644
--- a/test/tint/builtins/gen/literal/atanh/7f2874.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/atanh/7f2874.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void atanh_7f2874() {
-  float3 res = float3(0.549306154f);
+  float3 res = float3(0.54930615425109863281f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/atanh/c0e634.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/atanh/c0e634.wgsl.expected.dxc.hlsl
index 88aa1bd..0db252c 100644
--- a/test/tint/builtins/gen/literal/atanh/c0e634.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atanh/c0e634.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void atanh_c0e634() {
-  float2 res = (0.549306154f).xx;
+  float2 res = (0.54930615425109863281f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/atanh/c0e634.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/atanh/c0e634.wgsl.expected.fxc.hlsl
index 88aa1bd..0db252c 100644
--- a/test/tint/builtins/gen/literal/atanh/c0e634.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atanh/c0e634.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void atanh_c0e634() {
-  float2 res = (0.549306154f).xx;
+  float2 res = (0.54930615425109863281f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/atanh/c0e634.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atanh/c0e634.wgsl.expected.glsl
index 9b5babf..ffa9cf4 100644
--- a/test/tint/builtins/gen/literal/atanh/c0e634.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atanh/c0e634.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void atanh_c0e634() {
-  vec2 res = vec2(0.549306154f);
+  vec2 res = vec2(0.54930615425109863281f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void atanh_c0e634() {
-  vec2 res = vec2(0.549306154f);
+  vec2 res = vec2(0.54930615425109863281f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void atanh_c0e634() {
-  vec2 res = vec2(0.549306154f);
+  vec2 res = vec2(0.54930615425109863281f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/atanh/c0e634.wgsl.expected.msl b/test/tint/builtins/gen/literal/atanh/c0e634.wgsl.expected.msl
index 631c14f..59f2617 100644
--- a/test/tint/builtins/gen/literal/atanh/c0e634.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/atanh/c0e634.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void atanh_c0e634() {
-  float2 res = float2(0.549306154f);
+  float2 res = float2(0.54930615425109863281f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/atanh/c5dc32.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/atanh/c5dc32.wgsl.expected.dxc.hlsl
index 8f168ec..39101cd 100644
--- a/test/tint/builtins/gen/literal/atanh/c5dc32.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atanh/c5dc32.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void atanh_c5dc32() {
-  float res = 0.549306154f;
+  float res = 0.54930615425109863281f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/atanh/c5dc32.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/atanh/c5dc32.wgsl.expected.fxc.hlsl
index 8f168ec..39101cd 100644
--- a/test/tint/builtins/gen/literal/atanh/c5dc32.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atanh/c5dc32.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void atanh_c5dc32() {
-  float res = 0.549306154f;
+  float res = 0.54930615425109863281f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/atanh/c5dc32.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atanh/c5dc32.wgsl.expected.glsl
index 0ce5962..86ca443 100644
--- a/test/tint/builtins/gen/literal/atanh/c5dc32.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atanh/c5dc32.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void atanh_c5dc32() {
-  float res = 0.549306154f;
+  float res = 0.54930615425109863281f;
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void atanh_c5dc32() {
-  float res = 0.549306154f;
+  float res = 0.54930615425109863281f;
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void atanh_c5dc32() {
-  float res = 0.549306154f;
+  float res = 0.54930615425109863281f;
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/atanh/c5dc32.wgsl.expected.msl b/test/tint/builtins/gen/literal/atanh/c5dc32.wgsl.expected.msl
index 966c056..5d78f52 100644
--- a/test/tint/builtins/gen/literal/atanh/c5dc32.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/atanh/c5dc32.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void atanh_c5dc32() {
-  float res = 0.549306154f;
+  float res = 0.54930615425109863281f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/atanh/e431bb.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/atanh/e431bb.wgsl.expected.dxc.hlsl
index a1d65a3..dbd3c2d 100644
--- a/test/tint/builtins/gen/literal/atanh/e431bb.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atanh/e431bb.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void atanh_e431bb() {
-  float4 res = (0.549306154f).xxxx;
+  float4 res = (0.54930615425109863281f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/atanh/e431bb.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/atanh/e431bb.wgsl.expected.fxc.hlsl
index a1d65a3..dbd3c2d 100644
--- a/test/tint/builtins/gen/literal/atanh/e431bb.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atanh/e431bb.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void atanh_e431bb() {
-  float4 res = (0.549306154f).xxxx;
+  float4 res = (0.54930615425109863281f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/atanh/e431bb.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atanh/e431bb.wgsl.expected.glsl
index 240bd01..28ea06f 100644
--- a/test/tint/builtins/gen/literal/atanh/e431bb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atanh/e431bb.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void atanh_e431bb() {
-  vec4 res = vec4(0.549306154f);
+  vec4 res = vec4(0.54930615425109863281f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void atanh_e431bb() {
-  vec4 res = vec4(0.549306154f);
+  vec4 res = vec4(0.54930615425109863281f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void atanh_e431bb() {
-  vec4 res = vec4(0.549306154f);
+  vec4 res = vec4(0.54930615425109863281f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/atanh/e431bb.wgsl.expected.msl b/test/tint/builtins/gen/literal/atanh/e431bb.wgsl.expected.msl
index caa1898..f13663a 100644
--- a/test/tint/builtins/gen/literal/atanh/e431bb.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/atanh/e431bb.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void atanh_e431bb() {
-  float4 res = float4(0.549306154f);
+  float4 res = float4(0.54930615425109863281f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/atanh/f3e01b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/atanh/f3e01b.wgsl.expected.dxc.hlsl
index ae5ce9c..8a89d13 100644
--- a/test/tint/builtins/gen/literal/atanh/f3e01b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atanh/f3e01b.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void atanh_f3e01b() {
-  float4 res = (0.549306154f).xxxx;
+  float4 res = (0.54930615425109863281f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/atanh/f3e01b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/atanh/f3e01b.wgsl.expected.fxc.hlsl
index ae5ce9c..8a89d13 100644
--- a/test/tint/builtins/gen/literal/atanh/f3e01b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atanh/f3e01b.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void atanh_f3e01b() {
-  float4 res = (0.549306154f).xxxx;
+  float4 res = (0.54930615425109863281f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/atanh/f3e01b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atanh/f3e01b.wgsl.expected.glsl
index 882eea2..0b3dcbe 100644
--- a/test/tint/builtins/gen/literal/atanh/f3e01b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atanh/f3e01b.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void atanh_f3e01b() {
-  vec4 res = vec4(0.549306154f);
+  vec4 res = vec4(0.54930615425109863281f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void atanh_f3e01b() {
-  vec4 res = vec4(0.549306154f);
+  vec4 res = vec4(0.54930615425109863281f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void atanh_f3e01b() {
-  vec4 res = vec4(0.549306154f);
+  vec4 res = vec4(0.54930615425109863281f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/atanh/f3e01b.wgsl.expected.msl b/test/tint/builtins/gen/literal/atanh/f3e01b.wgsl.expected.msl
index 2b04fe0..a86f707 100644
--- a/test/tint/builtins/gen/literal/atanh/f3e01b.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/atanh/f3e01b.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void atanh_f3e01b() {
-  float4 res = float4(0.549306154f);
+  float4 res = float4(0.54930615425109863281f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/degrees/0d170c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/degrees/0d170c.wgsl.expected.dxc.hlsl
index 63b2df2..18eec3c 100644
--- a/test/tint/builtins/gen/literal/degrees/0d170c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/degrees/0d170c.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void degrees_0d170c() {
-  float4 res = (57.295776367f).xxxx;
+  float4 res = (57.2957763671875f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/degrees/0d170c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/degrees/0d170c.wgsl.expected.fxc.hlsl
index 63b2df2..18eec3c 100644
--- a/test/tint/builtins/gen/literal/degrees/0d170c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/degrees/0d170c.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void degrees_0d170c() {
-  float4 res = (57.295776367f).xxxx;
+  float4 res = (57.2957763671875f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/degrees/0d170c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/degrees/0d170c.wgsl.expected.glsl
index 4269efe..e14cbfc 100644
--- a/test/tint/builtins/gen/literal/degrees/0d170c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/degrees/0d170c.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void degrees_0d170c() {
-  vec4 res = vec4(57.295776367f);
+  vec4 res = vec4(57.2957763671875f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void degrees_0d170c() {
-  vec4 res = vec4(57.295776367f);
+  vec4 res = vec4(57.2957763671875f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void degrees_0d170c() {
-  vec4 res = vec4(57.295776367f);
+  vec4 res = vec4(57.2957763671875f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/degrees/0d170c.wgsl.expected.msl b/test/tint/builtins/gen/literal/degrees/0d170c.wgsl.expected.msl
index ef0d58a..337b31f 100644
--- a/test/tint/builtins/gen/literal/degrees/0d170c.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/degrees/0d170c.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void degrees_0d170c() {
-  float4 res = float4(57.295776367f);
+  float4 res = float4(57.2957763671875f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/degrees/1ad5df.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/degrees/1ad5df.wgsl.expected.dxc.hlsl
index cbe6583..f2668e1 100644
--- a/test/tint/builtins/gen/literal/degrees/1ad5df.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/degrees/1ad5df.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void degrees_1ad5df() {
-  float2 res = (57.295776367f).xx;
+  float2 res = (57.2957763671875f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/degrees/1ad5df.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/degrees/1ad5df.wgsl.expected.fxc.hlsl
index cbe6583..f2668e1 100644
--- a/test/tint/builtins/gen/literal/degrees/1ad5df.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/degrees/1ad5df.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void degrees_1ad5df() {
-  float2 res = (57.295776367f).xx;
+  float2 res = (57.2957763671875f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/degrees/1ad5df.wgsl.expected.glsl b/test/tint/builtins/gen/literal/degrees/1ad5df.wgsl.expected.glsl
index 8640b14..c985ccc 100644
--- a/test/tint/builtins/gen/literal/degrees/1ad5df.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/degrees/1ad5df.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void degrees_1ad5df() {
-  vec2 res = vec2(57.295776367f);
+  vec2 res = vec2(57.2957763671875f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void degrees_1ad5df() {
-  vec2 res = vec2(57.295776367f);
+  vec2 res = vec2(57.2957763671875f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void degrees_1ad5df() {
-  vec2 res = vec2(57.295776367f);
+  vec2 res = vec2(57.2957763671875f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/degrees/1ad5df.wgsl.expected.msl b/test/tint/builtins/gen/literal/degrees/1ad5df.wgsl.expected.msl
index 4af91d1..e2c6907 100644
--- a/test/tint/builtins/gen/literal/degrees/1ad5df.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/degrees/1ad5df.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void degrees_1ad5df() {
-  float2 res = float2(57.295776367f);
+  float2 res = float2(57.2957763671875f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/degrees/2af623.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/degrees/2af623.wgsl.expected.dxc.hlsl
index fa9e278..a55fec7 100644
--- a/test/tint/builtins/gen/literal/degrees/2af623.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/degrees/2af623.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void degrees_2af623() {
-  float3 res = (57.295776367f).xxx;
+  float3 res = (57.2957763671875f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/degrees/2af623.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/degrees/2af623.wgsl.expected.fxc.hlsl
index fa9e278..a55fec7 100644
--- a/test/tint/builtins/gen/literal/degrees/2af623.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/degrees/2af623.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void degrees_2af623() {
-  float3 res = (57.295776367f).xxx;
+  float3 res = (57.2957763671875f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/degrees/2af623.wgsl.expected.glsl b/test/tint/builtins/gen/literal/degrees/2af623.wgsl.expected.glsl
index 08b51ee..1f14b71 100644
--- a/test/tint/builtins/gen/literal/degrees/2af623.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/degrees/2af623.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void degrees_2af623() {
-  vec3 res = vec3(57.295776367f);
+  vec3 res = vec3(57.2957763671875f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void degrees_2af623() {
-  vec3 res = vec3(57.295776367f);
+  vec3 res = vec3(57.2957763671875f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void degrees_2af623() {
-  vec3 res = vec3(57.295776367f);
+  vec3 res = vec3(57.2957763671875f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/degrees/2af623.wgsl.expected.msl b/test/tint/builtins/gen/literal/degrees/2af623.wgsl.expected.msl
index 4da3b35..5ee520d 100644
--- a/test/tint/builtins/gen/literal/degrees/2af623.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/degrees/2af623.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void degrees_2af623() {
-  float3 res = float3(57.295776367f);
+  float3 res = float3(57.2957763671875f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/degrees/51f705.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/degrees/51f705.wgsl.expected.dxc.hlsl
index 360efa4..c9c20ca 100644
--- a/test/tint/builtins/gen/literal/degrees/51f705.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/degrees/51f705.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void degrees_51f705() {
-  float res = 57.295776367f;
+  float res = 57.2957763671875f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/degrees/51f705.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/degrees/51f705.wgsl.expected.fxc.hlsl
index 360efa4..c9c20ca 100644
--- a/test/tint/builtins/gen/literal/degrees/51f705.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/degrees/51f705.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void degrees_51f705() {
-  float res = 57.295776367f;
+  float res = 57.2957763671875f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/degrees/51f705.wgsl.expected.glsl b/test/tint/builtins/gen/literal/degrees/51f705.wgsl.expected.glsl
index a9b22b4..dbb8ac8 100644
--- a/test/tint/builtins/gen/literal/degrees/51f705.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/degrees/51f705.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void degrees_51f705() {
-  float res = 57.295776367f;
+  float res = 57.2957763671875f;
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void degrees_51f705() {
-  float res = 57.295776367f;
+  float res = 57.2957763671875f;
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void degrees_51f705() {
-  float res = 57.295776367f;
+  float res = 57.2957763671875f;
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/degrees/51f705.wgsl.expected.msl b/test/tint/builtins/gen/literal/degrees/51f705.wgsl.expected.msl
index 6ff8e85..326c7b3 100644
--- a/test/tint/builtins/gen/literal/degrees/51f705.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/degrees/51f705.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void degrees_51f705() {
-  float res = 57.295776367f;
+  float res = 57.2957763671875f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/degrees/810467.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/degrees/810467.wgsl.expected.dxc.hlsl
index eb0415d..7092c04 100644
--- a/test/tint/builtins/gen/literal/degrees/810467.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/degrees/810467.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void degrees_810467() {
-  float2 res = (57.295780182f).xx;
+  float2 res = (57.295780181884765625f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/degrees/810467.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/degrees/810467.wgsl.expected.fxc.hlsl
index eb0415d..7092c04 100644
--- a/test/tint/builtins/gen/literal/degrees/810467.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/degrees/810467.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void degrees_810467() {
-  float2 res = (57.295780182f).xx;
+  float2 res = (57.295780181884765625f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/degrees/810467.wgsl.expected.glsl b/test/tint/builtins/gen/literal/degrees/810467.wgsl.expected.glsl
index cee6770..9d96588 100644
--- a/test/tint/builtins/gen/literal/degrees/810467.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/degrees/810467.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void degrees_810467() {
-  vec2 res = vec2(57.295780182f);
+  vec2 res = vec2(57.295780181884765625f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void degrees_810467() {
-  vec2 res = vec2(57.295780182f);
+  vec2 res = vec2(57.295780181884765625f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void degrees_810467() {
-  vec2 res = vec2(57.295780182f);
+  vec2 res = vec2(57.295780181884765625f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/degrees/810467.wgsl.expected.msl b/test/tint/builtins/gen/literal/degrees/810467.wgsl.expected.msl
index 26fdf6d..60430771 100644
--- a/test/tint/builtins/gen/literal/degrees/810467.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/degrees/810467.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void degrees_810467() {
-  float2 res = float2(57.295780182f);
+  float2 res = float2(57.295780181884765625f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/degrees/c0880c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/degrees/c0880c.wgsl.expected.dxc.hlsl
index 78013a9..1b755ad 100644
--- a/test/tint/builtins/gen/literal/degrees/c0880c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/degrees/c0880c.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void degrees_c0880c() {
-  float3 res = (57.295780182f).xxx;
+  float3 res = (57.295780181884765625f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/degrees/c0880c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/degrees/c0880c.wgsl.expected.fxc.hlsl
index 78013a9..1b755ad 100644
--- a/test/tint/builtins/gen/literal/degrees/c0880c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/degrees/c0880c.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void degrees_c0880c() {
-  float3 res = (57.295780182f).xxx;
+  float3 res = (57.295780181884765625f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/degrees/c0880c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/degrees/c0880c.wgsl.expected.glsl
index ad03188..d5946bf 100644
--- a/test/tint/builtins/gen/literal/degrees/c0880c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/degrees/c0880c.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void degrees_c0880c() {
-  vec3 res = vec3(57.295780182f);
+  vec3 res = vec3(57.295780181884765625f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void degrees_c0880c() {
-  vec3 res = vec3(57.295780182f);
+  vec3 res = vec3(57.295780181884765625f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void degrees_c0880c() {
-  vec3 res = vec3(57.295780182f);
+  vec3 res = vec3(57.295780181884765625f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/degrees/c0880c.wgsl.expected.msl b/test/tint/builtins/gen/literal/degrees/c0880c.wgsl.expected.msl
index 4b019e9..9047e09 100644
--- a/test/tint/builtins/gen/literal/degrees/c0880c.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/degrees/c0880c.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void degrees_c0880c() {
-  float3 res = float3(57.295780182f);
+  float3 res = float3(57.295780181884765625f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/degrees/d43a49.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/degrees/d43a49.wgsl.expected.dxc.hlsl
index 0ea5685..5d5f6b3 100644
--- a/test/tint/builtins/gen/literal/degrees/d43a49.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/degrees/d43a49.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void degrees_d43a49() {
-  float4 res = (57.295780182f).xxxx;
+  float4 res = (57.295780181884765625f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/degrees/d43a49.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/degrees/d43a49.wgsl.expected.fxc.hlsl
index 0ea5685..5d5f6b3 100644
--- a/test/tint/builtins/gen/literal/degrees/d43a49.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/degrees/d43a49.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void degrees_d43a49() {
-  float4 res = (57.295780182f).xxxx;
+  float4 res = (57.295780181884765625f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/degrees/d43a49.wgsl.expected.glsl b/test/tint/builtins/gen/literal/degrees/d43a49.wgsl.expected.glsl
index 893f790..b599bb7 100644
--- a/test/tint/builtins/gen/literal/degrees/d43a49.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/degrees/d43a49.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void degrees_d43a49() {
-  vec4 res = vec4(57.295780182f);
+  vec4 res = vec4(57.295780181884765625f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void degrees_d43a49() {
-  vec4 res = vec4(57.295780182f);
+  vec4 res = vec4(57.295780181884765625f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void degrees_d43a49() {
-  vec4 res = vec4(57.295780182f);
+  vec4 res = vec4(57.295780181884765625f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/degrees/d43a49.wgsl.expected.msl b/test/tint/builtins/gen/literal/degrees/d43a49.wgsl.expected.msl
index adddeb0..623900a 100644
--- a/test/tint/builtins/gen/literal/degrees/d43a49.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/degrees/d43a49.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void degrees_d43a49() {
-  float4 res = float4(57.295780182f);
+  float4 res = float4(57.295780181884765625f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/degrees/fafa7e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/degrees/fafa7e.wgsl.expected.dxc.hlsl
index a11be10..574781e6 100644
--- a/test/tint/builtins/gen/literal/degrees/fafa7e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/degrees/fafa7e.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void degrees_fafa7e() {
-  float res = 57.295780182f;
+  float res = 57.295780181884765625f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/degrees/fafa7e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/degrees/fafa7e.wgsl.expected.fxc.hlsl
index a11be10..574781e6 100644
--- a/test/tint/builtins/gen/literal/degrees/fafa7e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/degrees/fafa7e.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void degrees_fafa7e() {
-  float res = 57.295780182f;
+  float res = 57.295780181884765625f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/degrees/fafa7e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/degrees/fafa7e.wgsl.expected.glsl
index 4572eb3..3017003 100644
--- a/test/tint/builtins/gen/literal/degrees/fafa7e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/degrees/fafa7e.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void degrees_fafa7e() {
-  float res = 57.295780182f;
+  float res = 57.295780181884765625f;
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void degrees_fafa7e() {
-  float res = 57.295780182f;
+  float res = 57.295780181884765625f;
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void degrees_fafa7e() {
-  float res = 57.295780182f;
+  float res = 57.295780181884765625f;
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/degrees/fafa7e.wgsl.expected.msl b/test/tint/builtins/gen/literal/degrees/fafa7e.wgsl.expected.msl
index 770b0ab..ff426d2 100644
--- a/test/tint/builtins/gen/literal/degrees/fafa7e.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/degrees/fafa7e.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void degrees_fafa7e() {
-  float res = 57.295780182f;
+  float res = 57.295780181884765625f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/exp/0f70eb.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/exp/0f70eb.wgsl.expected.dxc.hlsl
index f3d2a84..2c3fb1b 100644
--- a/test/tint/builtins/gen/literal/exp/0f70eb.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp/0f70eb.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void exp_0f70eb() {
-  float4 res = (2.718281746f).xxxx;
+  float4 res = (2.71828174591064453125f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/exp/0f70eb.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/exp/0f70eb.wgsl.expected.fxc.hlsl
index f3d2a84..2c3fb1b 100644
--- a/test/tint/builtins/gen/literal/exp/0f70eb.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp/0f70eb.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void exp_0f70eb() {
-  float4 res = (2.718281746f).xxxx;
+  float4 res = (2.71828174591064453125f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/exp/0f70eb.wgsl.expected.glsl b/test/tint/builtins/gen/literal/exp/0f70eb.wgsl.expected.glsl
index d2c6e1a..7dd5b56 100644
--- a/test/tint/builtins/gen/literal/exp/0f70eb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/exp/0f70eb.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void exp_0f70eb() {
-  vec4 res = vec4(2.718281746f);
+  vec4 res = vec4(2.71828174591064453125f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void exp_0f70eb() {
-  vec4 res = vec4(2.718281746f);
+  vec4 res = vec4(2.71828174591064453125f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void exp_0f70eb() {
-  vec4 res = vec4(2.718281746f);
+  vec4 res = vec4(2.71828174591064453125f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/exp/0f70eb.wgsl.expected.msl b/test/tint/builtins/gen/literal/exp/0f70eb.wgsl.expected.msl
index 2a9ee2c..8fa9364 100644
--- a/test/tint/builtins/gen/literal/exp/0f70eb.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/exp/0f70eb.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void exp_0f70eb() {
-  float4 res = float4(2.718281746f);
+  float4 res = float4(2.71828174591064453125f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/exp/1951e7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/exp/1951e7.wgsl.expected.dxc.hlsl
index 22d7711..df1dea4 100644
--- a/test/tint/builtins/gen/literal/exp/1951e7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp/1951e7.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void exp_1951e7() {
-  float2 res = (2.718281746f).xx;
+  float2 res = (2.71828174591064453125f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/exp/1951e7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/exp/1951e7.wgsl.expected.fxc.hlsl
index 22d7711..df1dea4 100644
--- a/test/tint/builtins/gen/literal/exp/1951e7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp/1951e7.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void exp_1951e7() {
-  float2 res = (2.718281746f).xx;
+  float2 res = (2.71828174591064453125f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/exp/1951e7.wgsl.expected.glsl b/test/tint/builtins/gen/literal/exp/1951e7.wgsl.expected.glsl
index 33980c0..cec115c 100644
--- a/test/tint/builtins/gen/literal/exp/1951e7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/exp/1951e7.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void exp_1951e7() {
-  vec2 res = vec2(2.718281746f);
+  vec2 res = vec2(2.71828174591064453125f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void exp_1951e7() {
-  vec2 res = vec2(2.718281746f);
+  vec2 res = vec2(2.71828174591064453125f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void exp_1951e7() {
-  vec2 res = vec2(2.718281746f);
+  vec2 res = vec2(2.71828174591064453125f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/exp/1951e7.wgsl.expected.msl b/test/tint/builtins/gen/literal/exp/1951e7.wgsl.expected.msl
index 4b3ae55..28541fa 100644
--- a/test/tint/builtins/gen/literal/exp/1951e7.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/exp/1951e7.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void exp_1951e7() {
-  float2 res = float2(2.718281746f);
+  float2 res = float2(2.71828174591064453125f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/exp/49e4c5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/exp/49e4c5.wgsl.expected.dxc.hlsl
index a370f26..28dfe2e 100644
--- a/test/tint/builtins/gen/literal/exp/49e4c5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp/49e4c5.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void exp_49e4c5() {
-  float res = 2.718281746f;
+  float res = 2.71828174591064453125f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/exp/49e4c5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/exp/49e4c5.wgsl.expected.fxc.hlsl
index a370f26..28dfe2e 100644
--- a/test/tint/builtins/gen/literal/exp/49e4c5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp/49e4c5.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void exp_49e4c5() {
-  float res = 2.718281746f;
+  float res = 2.71828174591064453125f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/exp/49e4c5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/exp/49e4c5.wgsl.expected.glsl
index 304cb4d..2b7644c 100644
--- a/test/tint/builtins/gen/literal/exp/49e4c5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/exp/49e4c5.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void exp_49e4c5() {
-  float res = 2.718281746f;
+  float res = 2.71828174591064453125f;
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void exp_49e4c5() {
-  float res = 2.718281746f;
+  float res = 2.71828174591064453125f;
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void exp_49e4c5() {
-  float res = 2.718281746f;
+  float res = 2.71828174591064453125f;
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/exp/49e4c5.wgsl.expected.msl b/test/tint/builtins/gen/literal/exp/49e4c5.wgsl.expected.msl
index 94c050b..8a3790c 100644
--- a/test/tint/builtins/gen/literal/exp/49e4c5.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/exp/49e4c5.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void exp_49e4c5() {
-  float res = 2.718281746f;
+  float res = 2.71828174591064453125f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/exp/699629.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/exp/699629.wgsl.expected.dxc.hlsl
index f19809c..03894d3 100644
--- a/test/tint/builtins/gen/literal/exp/699629.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp/699629.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void exp_699629() {
-  float2 res = (2.718281746f).xx;
+  float2 res = (2.71828174591064453125f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/exp/699629.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/exp/699629.wgsl.expected.fxc.hlsl
index f19809c..03894d3 100644
--- a/test/tint/builtins/gen/literal/exp/699629.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp/699629.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void exp_699629() {
-  float2 res = (2.718281746f).xx;
+  float2 res = (2.71828174591064453125f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/exp/699629.wgsl.expected.glsl b/test/tint/builtins/gen/literal/exp/699629.wgsl.expected.glsl
index 93856b5..6a619c6 100644
--- a/test/tint/builtins/gen/literal/exp/699629.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/exp/699629.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void exp_699629() {
-  vec2 res = vec2(2.718281746f);
+  vec2 res = vec2(2.71828174591064453125f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void exp_699629() {
-  vec2 res = vec2(2.718281746f);
+  vec2 res = vec2(2.71828174591064453125f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void exp_699629() {
-  vec2 res = vec2(2.718281746f);
+  vec2 res = vec2(2.71828174591064453125f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/exp/699629.wgsl.expected.msl b/test/tint/builtins/gen/literal/exp/699629.wgsl.expected.msl
index e68e3dd..0520bd3 100644
--- a/test/tint/builtins/gen/literal/exp/699629.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/exp/699629.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void exp_699629() {
-  float2 res = float2(2.718281746f);
+  float2 res = float2(2.71828174591064453125f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/exp/771fd2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/exp/771fd2.wgsl.expected.dxc.hlsl
index 5f88788..1894900 100644
--- a/test/tint/builtins/gen/literal/exp/771fd2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp/771fd2.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void exp_771fd2() {
-  float res = 2.718281746f;
+  float res = 2.71828174591064453125f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/exp/771fd2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/exp/771fd2.wgsl.expected.fxc.hlsl
index 5f88788..1894900 100644
--- a/test/tint/builtins/gen/literal/exp/771fd2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp/771fd2.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void exp_771fd2() {
-  float res = 2.718281746f;
+  float res = 2.71828174591064453125f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/exp/771fd2.wgsl.expected.glsl b/test/tint/builtins/gen/literal/exp/771fd2.wgsl.expected.glsl
index 882d7aa..a92f5aa 100644
--- a/test/tint/builtins/gen/literal/exp/771fd2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/exp/771fd2.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void exp_771fd2() {
-  float res = 2.718281746f;
+  float res = 2.71828174591064453125f;
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void exp_771fd2() {
-  float res = 2.718281746f;
+  float res = 2.71828174591064453125f;
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void exp_771fd2() {
-  float res = 2.718281746f;
+  float res = 2.71828174591064453125f;
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/exp/771fd2.wgsl.expected.msl b/test/tint/builtins/gen/literal/exp/771fd2.wgsl.expected.msl
index f86564f..fe77596 100644
--- a/test/tint/builtins/gen/literal/exp/771fd2.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/exp/771fd2.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void exp_771fd2() {
-  float res = 2.718281746f;
+  float res = 2.71828174591064453125f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/exp/bda5bb.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/exp/bda5bb.wgsl.expected.dxc.hlsl
index ea132ce..439cbe2 100644
--- a/test/tint/builtins/gen/literal/exp/bda5bb.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp/bda5bb.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void exp_bda5bb() {
-  float3 res = (2.718281746f).xxx;
+  float3 res = (2.71828174591064453125f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/exp/bda5bb.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/exp/bda5bb.wgsl.expected.fxc.hlsl
index ea132ce..439cbe2 100644
--- a/test/tint/builtins/gen/literal/exp/bda5bb.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp/bda5bb.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void exp_bda5bb() {
-  float3 res = (2.718281746f).xxx;
+  float3 res = (2.71828174591064453125f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/exp/bda5bb.wgsl.expected.glsl b/test/tint/builtins/gen/literal/exp/bda5bb.wgsl.expected.glsl
index 65cb0f6..71a9995 100644
--- a/test/tint/builtins/gen/literal/exp/bda5bb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/exp/bda5bb.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void exp_bda5bb() {
-  vec3 res = vec3(2.718281746f);
+  vec3 res = vec3(2.71828174591064453125f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void exp_bda5bb() {
-  vec3 res = vec3(2.718281746f);
+  vec3 res = vec3(2.71828174591064453125f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void exp_bda5bb() {
-  vec3 res = vec3(2.718281746f);
+  vec3 res = vec3(2.71828174591064453125f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/exp/bda5bb.wgsl.expected.msl b/test/tint/builtins/gen/literal/exp/bda5bb.wgsl.expected.msl
index 46be400..e43a8a9 100644
--- a/test/tint/builtins/gen/literal/exp/bda5bb.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/exp/bda5bb.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void exp_bda5bb() {
-  float3 res = float3(2.718281746f);
+  float3 res = float3(2.71828174591064453125f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/exp/d98450.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/exp/d98450.wgsl.expected.dxc.hlsl
index 5d794f9..bd62731 100644
--- a/test/tint/builtins/gen/literal/exp/d98450.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp/d98450.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void exp_d98450() {
-  float3 res = (2.718281746f).xxx;
+  float3 res = (2.71828174591064453125f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/exp/d98450.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/exp/d98450.wgsl.expected.fxc.hlsl
index 5d794f9..bd62731 100644
--- a/test/tint/builtins/gen/literal/exp/d98450.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp/d98450.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void exp_d98450() {
-  float3 res = (2.718281746f).xxx;
+  float3 res = (2.71828174591064453125f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/exp/d98450.wgsl.expected.glsl b/test/tint/builtins/gen/literal/exp/d98450.wgsl.expected.glsl
index 4074503..f6fc3b3 100644
--- a/test/tint/builtins/gen/literal/exp/d98450.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/exp/d98450.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void exp_d98450() {
-  vec3 res = vec3(2.718281746f);
+  vec3 res = vec3(2.71828174591064453125f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void exp_d98450() {
-  vec3 res = vec3(2.718281746f);
+  vec3 res = vec3(2.71828174591064453125f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void exp_d98450() {
-  vec3 res = vec3(2.718281746f);
+  vec3 res = vec3(2.71828174591064453125f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/exp/d98450.wgsl.expected.msl b/test/tint/builtins/gen/literal/exp/d98450.wgsl.expected.msl
index 2c3e2f0..dec059d 100644
--- a/test/tint/builtins/gen/literal/exp/d98450.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/exp/d98450.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void exp_d98450() {
-  float3 res = float3(2.718281746f);
+  float3 res = float3(2.71828174591064453125f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/exp/dad791.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/exp/dad791.wgsl.expected.dxc.hlsl
index b4228d0..7d907a4 100644
--- a/test/tint/builtins/gen/literal/exp/dad791.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp/dad791.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void exp_dad791() {
-  float4 res = (2.718281746f).xxxx;
+  float4 res = (2.71828174591064453125f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/exp/dad791.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/exp/dad791.wgsl.expected.fxc.hlsl
index b4228d0..7d907a4 100644
--- a/test/tint/builtins/gen/literal/exp/dad791.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp/dad791.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void exp_dad791() {
-  float4 res = (2.718281746f).xxxx;
+  float4 res = (2.71828174591064453125f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/exp/dad791.wgsl.expected.glsl b/test/tint/builtins/gen/literal/exp/dad791.wgsl.expected.glsl
index 1adc457..756089e 100644
--- a/test/tint/builtins/gen/literal/exp/dad791.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/exp/dad791.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void exp_dad791() {
-  vec4 res = vec4(2.718281746f);
+  vec4 res = vec4(2.71828174591064453125f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void exp_dad791() {
-  vec4 res = vec4(2.718281746f);
+  vec4 res = vec4(2.71828174591064453125f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void exp_dad791() {
-  vec4 res = vec4(2.718281746f);
+  vec4 res = vec4(2.71828174591064453125f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/exp/dad791.wgsl.expected.msl b/test/tint/builtins/gen/literal/exp/dad791.wgsl.expected.msl
index c445389..76c438c 100644
--- a/test/tint/builtins/gen/literal/exp/dad791.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/exp/dad791.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void exp_dad791() {
-  float4 res = float4(2.718281746f);
+  float4 res = float4(2.71828174591064453125f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/normalize/39d5ec.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/normalize/39d5ec.wgsl.expected.dxc.hlsl
index 53cdda9..befe3df 100644
--- a/test/tint/builtins/gen/literal/normalize/39d5ec.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/normalize/39d5ec.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void normalize_39d5ec() {
-  vector<float16_t, 3> res = (float16_t(0.577148438h)).xxx;
+  vector<float16_t, 3> res = (float16_t(0.5771484375h)).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/normalize/39d5ec.wgsl.expected.glsl b/test/tint/builtins/gen/literal/normalize/39d5ec.wgsl.expected.glsl
index ce3ca5b..3bd03af 100644
--- a/test/tint/builtins/gen/literal/normalize/39d5ec.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/normalize/39d5ec.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void normalize_39d5ec() {
-  f16vec3 res = f16vec3(0.577148438hf);
+  f16vec3 res = f16vec3(0.5771484375hf);
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 precision mediump float;
 
 void normalize_39d5ec() {
-  f16vec3 res = f16vec3(0.577148438hf);
+  f16vec3 res = f16vec3(0.5771484375hf);
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void normalize_39d5ec() {
-  f16vec3 res = f16vec3(0.577148438hf);
+  f16vec3 res = f16vec3(0.5771484375hf);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/normalize/39d5ec.wgsl.expected.msl b/test/tint/builtins/gen/literal/normalize/39d5ec.wgsl.expected.msl
index ec7d2f3..afa6c5d 100644
--- a/test/tint/builtins/gen/literal/normalize/39d5ec.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/normalize/39d5ec.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void normalize_39d5ec() {
-  half3 res = half3(0.577148438h);
+  half3 res = half3(0.5771484375h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/normalize/584e47.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/normalize/584e47.wgsl.expected.dxc.hlsl
index 7ecf609..19d529f 100644
--- a/test/tint/builtins/gen/literal/normalize/584e47.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/normalize/584e47.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void normalize_584e47() {
-  float2 res = (0.707106769f).xx;
+  float2 res = (0.70710676908493041992f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/normalize/584e47.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/normalize/584e47.wgsl.expected.fxc.hlsl
index 7ecf609..19d529f 100644
--- a/test/tint/builtins/gen/literal/normalize/584e47.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/normalize/584e47.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void normalize_584e47() {
-  float2 res = (0.707106769f).xx;
+  float2 res = (0.70710676908493041992f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/normalize/584e47.wgsl.expected.glsl b/test/tint/builtins/gen/literal/normalize/584e47.wgsl.expected.glsl
index bc0e2ee..8d56c8c 100644
--- a/test/tint/builtins/gen/literal/normalize/584e47.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/normalize/584e47.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void normalize_584e47() {
-  vec2 res = vec2(0.707106769f);
+  vec2 res = vec2(0.70710676908493041992f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void normalize_584e47() {
-  vec2 res = vec2(0.707106769f);
+  vec2 res = vec2(0.70710676908493041992f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void normalize_584e47() {
-  vec2 res = vec2(0.707106769f);
+  vec2 res = vec2(0.70710676908493041992f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/normalize/584e47.wgsl.expected.msl b/test/tint/builtins/gen/literal/normalize/584e47.wgsl.expected.msl
index 37095b8..53b3295 100644
--- a/test/tint/builtins/gen/literal/normalize/584e47.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/normalize/584e47.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void normalize_584e47() {
-  float2 res = float2(0.707106769f);
+  float2 res = float2(0.70710676908493041992f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/normalize/64d8c0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/normalize/64d8c0.wgsl.expected.dxc.hlsl
index 79592d9..bf9c4b9 100644
--- a/test/tint/builtins/gen/literal/normalize/64d8c0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/normalize/64d8c0.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void normalize_64d8c0() {
-  float3 res = (0.577350259f).xxx;
+  float3 res = (0.57735025882720947266f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/normalize/64d8c0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/normalize/64d8c0.wgsl.expected.fxc.hlsl
index 79592d9..bf9c4b9 100644
--- a/test/tint/builtins/gen/literal/normalize/64d8c0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/normalize/64d8c0.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void normalize_64d8c0() {
-  float3 res = (0.577350259f).xxx;
+  float3 res = (0.57735025882720947266f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/normalize/64d8c0.wgsl.expected.glsl b/test/tint/builtins/gen/literal/normalize/64d8c0.wgsl.expected.glsl
index 490f3e8..fcdb09e 100644
--- a/test/tint/builtins/gen/literal/normalize/64d8c0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/normalize/64d8c0.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void normalize_64d8c0() {
-  vec3 res = vec3(0.577350259f);
+  vec3 res = vec3(0.57735025882720947266f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void normalize_64d8c0() {
-  vec3 res = vec3(0.577350259f);
+  vec3 res = vec3(0.57735025882720947266f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void normalize_64d8c0() {
-  vec3 res = vec3(0.577350259f);
+  vec3 res = vec3(0.57735025882720947266f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/normalize/64d8c0.wgsl.expected.msl b/test/tint/builtins/gen/literal/normalize/64d8c0.wgsl.expected.msl
index b7d517c..d67eae3 100644
--- a/test/tint/builtins/gen/literal/normalize/64d8c0.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/normalize/64d8c0.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void normalize_64d8c0() {
-  float3 res = float3(0.577350259f);
+  float3 res = float3(0.57735025882720947266f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/normalize/e7def8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/normalize/e7def8.wgsl.expected.dxc.hlsl
index 257e626..0112f14 100644
--- a/test/tint/builtins/gen/literal/normalize/e7def8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/normalize/e7def8.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void normalize_e7def8() {
-  float3 res = (0.577350259f).xxx;
+  float3 res = (0.57735025882720947266f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/normalize/e7def8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/normalize/e7def8.wgsl.expected.fxc.hlsl
index 257e626..0112f14 100644
--- a/test/tint/builtins/gen/literal/normalize/e7def8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/normalize/e7def8.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void normalize_e7def8() {
-  float3 res = (0.577350259f).xxx;
+  float3 res = (0.57735025882720947266f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/normalize/e7def8.wgsl.expected.glsl b/test/tint/builtins/gen/literal/normalize/e7def8.wgsl.expected.glsl
index b29cf51..053a255 100644
--- a/test/tint/builtins/gen/literal/normalize/e7def8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/normalize/e7def8.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void normalize_e7def8() {
-  vec3 res = vec3(0.577350259f);
+  vec3 res = vec3(0.57735025882720947266f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void normalize_e7def8() {
-  vec3 res = vec3(0.577350259f);
+  vec3 res = vec3(0.57735025882720947266f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void normalize_e7def8() {
-  vec3 res = vec3(0.577350259f);
+  vec3 res = vec3(0.57735025882720947266f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/normalize/e7def8.wgsl.expected.msl b/test/tint/builtins/gen/literal/normalize/e7def8.wgsl.expected.msl
index b07b880..a931001 100644
--- a/test/tint/builtins/gen/literal/normalize/e7def8.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/normalize/e7def8.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void normalize_e7def8() {
-  float3 res = float3(0.577350259f);
+  float3 res = float3(0.57735025882720947266f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/normalize/fc2ef1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/normalize/fc2ef1.wgsl.expected.dxc.hlsl
index 05e023e..eded47d 100644
--- a/test/tint/builtins/gen/literal/normalize/fc2ef1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/normalize/fc2ef1.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void normalize_fc2ef1() {
-  float2 res = (0.707106769f).xx;
+  float2 res = (0.70710676908493041992f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/normalize/fc2ef1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/normalize/fc2ef1.wgsl.expected.fxc.hlsl
index 05e023e..eded47d 100644
--- a/test/tint/builtins/gen/literal/normalize/fc2ef1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/normalize/fc2ef1.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void normalize_fc2ef1() {
-  float2 res = (0.707106769f).xx;
+  float2 res = (0.70710676908493041992f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/normalize/fc2ef1.wgsl.expected.glsl b/test/tint/builtins/gen/literal/normalize/fc2ef1.wgsl.expected.glsl
index 9cac98d..d1bb408 100644
--- a/test/tint/builtins/gen/literal/normalize/fc2ef1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/normalize/fc2ef1.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void normalize_fc2ef1() {
-  vec2 res = vec2(0.707106769f);
+  vec2 res = vec2(0.70710676908493041992f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void normalize_fc2ef1() {
-  vec2 res = vec2(0.707106769f);
+  vec2 res = vec2(0.70710676908493041992f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void normalize_fc2ef1() {
-  vec2 res = vec2(0.707106769f);
+  vec2 res = vec2(0.70710676908493041992f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/normalize/fc2ef1.wgsl.expected.msl b/test/tint/builtins/gen/literal/normalize/fc2ef1.wgsl.expected.msl
index c2c153d..5bd8afa 100644
--- a/test/tint/builtins/gen/literal/normalize/fc2ef1.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/normalize/fc2ef1.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void normalize_fc2ef1() {
-  float2 res = float2(0.707106769f);
+  float2 res = float2(0.70710676908493041992f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/radians/09b7fc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/radians/09b7fc.wgsl.expected.dxc.hlsl
index 9fda1fb..96e2ebe 100644
--- a/test/tint/builtins/gen/literal/radians/09b7fc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/radians/09b7fc.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void radians_09b7fc() {
-  float4 res = (0.017453292f).xxxx;
+  float4 res = (0.01745329238474369049f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/radians/09b7fc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/radians/09b7fc.wgsl.expected.fxc.hlsl
index 9fda1fb..96e2ebe 100644
--- a/test/tint/builtins/gen/literal/radians/09b7fc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/radians/09b7fc.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void radians_09b7fc() {
-  float4 res = (0.017453292f).xxxx;
+  float4 res = (0.01745329238474369049f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/radians/09b7fc.wgsl.expected.glsl b/test/tint/builtins/gen/literal/radians/09b7fc.wgsl.expected.glsl
index 4a6d169..47c6819 100644
--- a/test/tint/builtins/gen/literal/radians/09b7fc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/radians/09b7fc.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void radians_09b7fc() {
-  vec4 res = vec4(0.017453292f);
+  vec4 res = vec4(0.01745329238474369049f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void radians_09b7fc() {
-  vec4 res = vec4(0.017453292f);
+  vec4 res = vec4(0.01745329238474369049f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void radians_09b7fc() {
-  vec4 res = vec4(0.017453292f);
+  vec4 res = vec4(0.01745329238474369049f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/radians/09b7fc.wgsl.expected.msl b/test/tint/builtins/gen/literal/radians/09b7fc.wgsl.expected.msl
index 5b7469d..9f35906 100644
--- a/test/tint/builtins/gen/literal/radians/09b7fc.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/radians/09b7fc.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void radians_09b7fc() {
-  float4 res = float4(0.017453292f);
+  float4 res = float4(0.01745329238474369049f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/radians/208fd9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/radians/208fd9.wgsl.expected.dxc.hlsl
index 0421e6d..6f3a8c1 100644
--- a/test/tint/builtins/gen/literal/radians/208fd9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/radians/208fd9.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void radians_208fd9() {
-  float16_t res = float16_t(0.017440796h);
+  float16_t res = float16_t(0.0174407958984375h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/radians/208fd9.wgsl.expected.glsl b/test/tint/builtins/gen/literal/radians/208fd9.wgsl.expected.glsl
index efcf7aa..732800a 100644
--- a/test/tint/builtins/gen/literal/radians/208fd9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/radians/208fd9.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void radians_208fd9() {
-  float16_t res = 0.017440796hf;
+  float16_t res = 0.0174407958984375hf;
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 precision mediump float;
 
 void radians_208fd9() {
-  float16_t res = 0.017440796hf;
+  float16_t res = 0.0174407958984375hf;
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void radians_208fd9() {
-  float16_t res = 0.017440796hf;
+  float16_t res = 0.0174407958984375hf;
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/radians/208fd9.wgsl.expected.msl b/test/tint/builtins/gen/literal/radians/208fd9.wgsl.expected.msl
index 93c1037..758dea9 100644
--- a/test/tint/builtins/gen/literal/radians/208fd9.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/radians/208fd9.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void radians_208fd9() {
-  half res = 0.017440796h;
+  half res = 0.0174407958984375h;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/radians/379214.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/radians/379214.wgsl.expected.dxc.hlsl
index 247db1d..9250050 100644
--- a/test/tint/builtins/gen/literal/radians/379214.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/radians/379214.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void radians_379214() {
-  float3 res = (0.017453292f).xxx;
+  float3 res = (0.01745329238474369049f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/radians/379214.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/radians/379214.wgsl.expected.fxc.hlsl
index 247db1d..9250050 100644
--- a/test/tint/builtins/gen/literal/radians/379214.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/radians/379214.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void radians_379214() {
-  float3 res = (0.017453292f).xxx;
+  float3 res = (0.01745329238474369049f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/radians/379214.wgsl.expected.glsl b/test/tint/builtins/gen/literal/radians/379214.wgsl.expected.glsl
index 5593c1d..750b043 100644
--- a/test/tint/builtins/gen/literal/radians/379214.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/radians/379214.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void radians_379214() {
-  vec3 res = vec3(0.017453292f);
+  vec3 res = vec3(0.01745329238474369049f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void radians_379214() {
-  vec3 res = vec3(0.017453292f);
+  vec3 res = vec3(0.01745329238474369049f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void radians_379214() {
-  vec3 res = vec3(0.017453292f);
+  vec3 res = vec3(0.01745329238474369049f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/radians/379214.wgsl.expected.msl b/test/tint/builtins/gen/literal/radians/379214.wgsl.expected.msl
index 638763a..a5472a1 100644
--- a/test/tint/builtins/gen/literal/radians/379214.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/radians/379214.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void radians_379214() {
-  float3 res = float3(0.017453292f);
+  float3 res = float3(0.01745329238474369049f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/radians/44a9f8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/radians/44a9f8.wgsl.expected.dxc.hlsl
index cb67c5d9..495afb9 100644
--- a/test/tint/builtins/gen/literal/radians/44a9f8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/radians/44a9f8.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void radians_44a9f8() {
-  float2 res = (0.017453292f).xx;
+  float2 res = (0.01745329238474369049f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/radians/44a9f8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/radians/44a9f8.wgsl.expected.fxc.hlsl
index cb67c5d9..495afb9 100644
--- a/test/tint/builtins/gen/literal/radians/44a9f8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/radians/44a9f8.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void radians_44a9f8() {
-  float2 res = (0.017453292f).xx;
+  float2 res = (0.01745329238474369049f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/radians/44a9f8.wgsl.expected.glsl b/test/tint/builtins/gen/literal/radians/44a9f8.wgsl.expected.glsl
index 6caa601..201150e 100644
--- a/test/tint/builtins/gen/literal/radians/44a9f8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/radians/44a9f8.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void radians_44a9f8() {
-  vec2 res = vec2(0.017453292f);
+  vec2 res = vec2(0.01745329238474369049f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void radians_44a9f8() {
-  vec2 res = vec2(0.017453292f);
+  vec2 res = vec2(0.01745329238474369049f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void radians_44a9f8() {
-  vec2 res = vec2(0.017453292f);
+  vec2 res = vec2(0.01745329238474369049f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/radians/44a9f8.wgsl.expected.msl b/test/tint/builtins/gen/literal/radians/44a9f8.wgsl.expected.msl
index fea0149..c6b2951 100644
--- a/test/tint/builtins/gen/literal/radians/44a9f8.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/radians/44a9f8.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void radians_44a9f8() {
-  float2 res = float2(0.017453292f);
+  float2 res = float2(0.01745329238474369049f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/radians/44f20b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/radians/44f20b.wgsl.expected.dxc.hlsl
index f107b59..ab8106d 100644
--- a/test/tint/builtins/gen/literal/radians/44f20b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/radians/44f20b.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void radians_44f20b() {
-  vector<float16_t, 4> res = (float16_t(0.017440796h)).xxxx;
+  vector<float16_t, 4> res = (float16_t(0.0174407958984375h)).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/radians/44f20b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/radians/44f20b.wgsl.expected.glsl
index ed65328..37ab991 100644
--- a/test/tint/builtins/gen/literal/radians/44f20b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/radians/44f20b.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void radians_44f20b() {
-  f16vec4 res = f16vec4(0.017440796hf);
+  f16vec4 res = f16vec4(0.0174407958984375hf);
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 precision mediump float;
 
 void radians_44f20b() {
-  f16vec4 res = f16vec4(0.017440796hf);
+  f16vec4 res = f16vec4(0.0174407958984375hf);
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void radians_44f20b() {
-  f16vec4 res = f16vec4(0.017440796hf);
+  f16vec4 res = f16vec4(0.0174407958984375hf);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/radians/44f20b.wgsl.expected.msl b/test/tint/builtins/gen/literal/radians/44f20b.wgsl.expected.msl
index d279cb3..b89d20e 100644
--- a/test/tint/builtins/gen/literal/radians/44f20b.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/radians/44f20b.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void radians_44f20b() {
-  half4 res = half4(0.017440796h);
+  half4 res = half4(0.0174407958984375h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/radians/524a91.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/radians/524a91.wgsl.expected.dxc.hlsl
index b3e2192..a633d34 100644
--- a/test/tint/builtins/gen/literal/radians/524a91.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/radians/524a91.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void radians_524a91() {
-  float4 res = (0.017453292f).xxxx;
+  float4 res = (0.01745329238474369049f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/radians/524a91.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/radians/524a91.wgsl.expected.fxc.hlsl
index b3e2192..a633d34 100644
--- a/test/tint/builtins/gen/literal/radians/524a91.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/radians/524a91.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void radians_524a91() {
-  float4 res = (0.017453292f).xxxx;
+  float4 res = (0.01745329238474369049f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/radians/524a91.wgsl.expected.glsl b/test/tint/builtins/gen/literal/radians/524a91.wgsl.expected.glsl
index fd1508e..1f61586 100644
--- a/test/tint/builtins/gen/literal/radians/524a91.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/radians/524a91.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void radians_524a91() {
-  vec4 res = vec4(0.017453292f);
+  vec4 res = vec4(0.01745329238474369049f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void radians_524a91() {
-  vec4 res = vec4(0.017453292f);
+  vec4 res = vec4(0.01745329238474369049f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void radians_524a91() {
-  vec4 res = vec4(0.017453292f);
+  vec4 res = vec4(0.01745329238474369049f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/radians/524a91.wgsl.expected.msl b/test/tint/builtins/gen/literal/radians/524a91.wgsl.expected.msl
index fa539e0..dd19a42 100644
--- a/test/tint/builtins/gen/literal/radians/524a91.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/radians/524a91.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void radians_524a91() {
-  float4 res = float4(0.017453292f);
+  float4 res = float4(0.01745329238474369049f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/radians/61687a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/radians/61687a.wgsl.expected.dxc.hlsl
index 08ec6b4..a96dd39 100644
--- a/test/tint/builtins/gen/literal/radians/61687a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/radians/61687a.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void radians_61687a() {
-  float2 res = (0.017453292f).xx;
+  float2 res = (0.01745329238474369049f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/radians/61687a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/radians/61687a.wgsl.expected.fxc.hlsl
index 08ec6b4..a96dd39 100644
--- a/test/tint/builtins/gen/literal/radians/61687a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/radians/61687a.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void radians_61687a() {
-  float2 res = (0.017453292f).xx;
+  float2 res = (0.01745329238474369049f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/radians/61687a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/radians/61687a.wgsl.expected.glsl
index 3ef50f3..2aa6742 100644
--- a/test/tint/builtins/gen/literal/radians/61687a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/radians/61687a.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void radians_61687a() {
-  vec2 res = vec2(0.017453292f);
+  vec2 res = vec2(0.01745329238474369049f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void radians_61687a() {
-  vec2 res = vec2(0.017453292f);
+  vec2 res = vec2(0.01745329238474369049f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void radians_61687a() {
-  vec2 res = vec2(0.017453292f);
+  vec2 res = vec2(0.01745329238474369049f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/radians/61687a.wgsl.expected.msl b/test/tint/builtins/gen/literal/radians/61687a.wgsl.expected.msl
index 8d8cf5c..8d7cc83 100644
--- a/test/tint/builtins/gen/literal/radians/61687a.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/radians/61687a.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void radians_61687a() {
-  float2 res = float2(0.017453292f);
+  float2 res = float2(0.01745329238474369049f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/radians/6b0ff2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/radians/6b0ff2.wgsl.expected.dxc.hlsl
index 5722b0d..7a1632f 100644
--- a/test/tint/builtins/gen/literal/radians/6b0ff2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/radians/6b0ff2.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void radians_6b0ff2() {
-  float res = 0.017453292f;
+  float res = 0.01745329238474369049f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/radians/6b0ff2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/radians/6b0ff2.wgsl.expected.fxc.hlsl
index 5722b0d..7a1632f 100644
--- a/test/tint/builtins/gen/literal/radians/6b0ff2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/radians/6b0ff2.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void radians_6b0ff2() {
-  float res = 0.017453292f;
+  float res = 0.01745329238474369049f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/radians/6b0ff2.wgsl.expected.glsl b/test/tint/builtins/gen/literal/radians/6b0ff2.wgsl.expected.glsl
index ceb5f05..65b545c 100644
--- a/test/tint/builtins/gen/literal/radians/6b0ff2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/radians/6b0ff2.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void radians_6b0ff2() {
-  float res = 0.017453292f;
+  float res = 0.01745329238474369049f;
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void radians_6b0ff2() {
-  float res = 0.017453292f;
+  float res = 0.01745329238474369049f;
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void radians_6b0ff2() {
-  float res = 0.017453292f;
+  float res = 0.01745329238474369049f;
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/radians/6b0ff2.wgsl.expected.msl b/test/tint/builtins/gen/literal/radians/6b0ff2.wgsl.expected.msl
index 486252d..4a419cd 100644
--- a/test/tint/builtins/gen/literal/radians/6b0ff2.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/radians/6b0ff2.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void radians_6b0ff2() {
-  float res = 0.017453292f;
+  float res = 0.01745329238474369049f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/radians/7ea4c7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/radians/7ea4c7.wgsl.expected.dxc.hlsl
index 680dffd..a805d45 100644
--- a/test/tint/builtins/gen/literal/radians/7ea4c7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/radians/7ea4c7.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void radians_7ea4c7() {
-  vector<float16_t, 3> res = (float16_t(0.017440796h)).xxx;
+  vector<float16_t, 3> res = (float16_t(0.0174407958984375h)).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/radians/7ea4c7.wgsl.expected.glsl b/test/tint/builtins/gen/literal/radians/7ea4c7.wgsl.expected.glsl
index 44b3775..21ac51c 100644
--- a/test/tint/builtins/gen/literal/radians/7ea4c7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/radians/7ea4c7.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void radians_7ea4c7() {
-  f16vec3 res = f16vec3(0.017440796hf);
+  f16vec3 res = f16vec3(0.0174407958984375hf);
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 precision mediump float;
 
 void radians_7ea4c7() {
-  f16vec3 res = f16vec3(0.017440796hf);
+  f16vec3 res = f16vec3(0.0174407958984375hf);
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void radians_7ea4c7() {
-  f16vec3 res = f16vec3(0.017440796hf);
+  f16vec3 res = f16vec3(0.0174407958984375hf);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/radians/7ea4c7.wgsl.expected.msl b/test/tint/builtins/gen/literal/radians/7ea4c7.wgsl.expected.msl
index 59edb2a..15bc4dd 100644
--- a/test/tint/builtins/gen/literal/radians/7ea4c7.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/radians/7ea4c7.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void radians_7ea4c7() {
-  half3 res = half3(0.017440796h);
+  half3 res = half3(0.0174407958984375h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/radians/bff231.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/radians/bff231.wgsl.expected.dxc.hlsl
index cde7b14..a8182f5 100644
--- a/test/tint/builtins/gen/literal/radians/bff231.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/radians/bff231.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void radians_bff231() {
-  float res = 0.017453292f;
+  float res = 0.01745329238474369049f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/radians/bff231.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/radians/bff231.wgsl.expected.fxc.hlsl
index cde7b14..a8182f5 100644
--- a/test/tint/builtins/gen/literal/radians/bff231.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/radians/bff231.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void radians_bff231() {
-  float res = 0.017453292f;
+  float res = 0.01745329238474369049f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/radians/bff231.wgsl.expected.glsl b/test/tint/builtins/gen/literal/radians/bff231.wgsl.expected.glsl
index a445da1..c25f8c4 100644
--- a/test/tint/builtins/gen/literal/radians/bff231.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/radians/bff231.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void radians_bff231() {
-  float res = 0.017453292f;
+  float res = 0.01745329238474369049f;
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void radians_bff231() {
-  float res = 0.017453292f;
+  float res = 0.01745329238474369049f;
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void radians_bff231() {
-  float res = 0.017453292f;
+  float res = 0.01745329238474369049f;
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/radians/bff231.wgsl.expected.msl b/test/tint/builtins/gen/literal/radians/bff231.wgsl.expected.msl
index ddd3b6e..82e4244 100644
--- a/test/tint/builtins/gen/literal/radians/bff231.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/radians/bff231.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void radians_bff231() {
-  float res = 0.017453292f;
+  float res = 0.01745329238474369049f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/radians/f96258.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/radians/f96258.wgsl.expected.dxc.hlsl
index 92aca96..e209cbc 100644
--- a/test/tint/builtins/gen/literal/radians/f96258.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/radians/f96258.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void radians_f96258() {
-  float3 res = (0.017453292f).xxx;
+  float3 res = (0.01745329238474369049f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/radians/f96258.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/radians/f96258.wgsl.expected.fxc.hlsl
index 92aca96..e209cbc 100644
--- a/test/tint/builtins/gen/literal/radians/f96258.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/radians/f96258.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void radians_f96258() {
-  float3 res = (0.017453292f).xxx;
+  float3 res = (0.01745329238474369049f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/radians/f96258.wgsl.expected.glsl b/test/tint/builtins/gen/literal/radians/f96258.wgsl.expected.glsl
index 7f15f68..e270807 100644
--- a/test/tint/builtins/gen/literal/radians/f96258.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/radians/f96258.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void radians_f96258() {
-  vec3 res = vec3(0.017453292f);
+  vec3 res = vec3(0.01745329238474369049f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void radians_f96258() {
-  vec3 res = vec3(0.017453292f);
+  vec3 res = vec3(0.01745329238474369049f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void radians_f96258() {
-  vec3 res = vec3(0.017453292f);
+  vec3 res = vec3(0.01745329238474369049f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/radians/f96258.wgsl.expected.msl b/test/tint/builtins/gen/literal/radians/f96258.wgsl.expected.msl
index 3ce84b4..9b61c50 100644
--- a/test/tint/builtins/gen/literal/radians/f96258.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/radians/f96258.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void radians_f96258() {
-  float3 res = float3(0.017453292f);
+  float3 res = float3(0.01745329238474369049f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/radians/fbacf0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/radians/fbacf0.wgsl.expected.dxc.hlsl
index 4ed51a0..a3813ae 100644
--- a/test/tint/builtins/gen/literal/radians/fbacf0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/radians/fbacf0.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void radians_fbacf0() {
-  vector<float16_t, 2> res = (float16_t(0.017440796h)).xx;
+  vector<float16_t, 2> res = (float16_t(0.0174407958984375h)).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/radians/fbacf0.wgsl.expected.glsl b/test/tint/builtins/gen/literal/radians/fbacf0.wgsl.expected.glsl
index 263666e..80ea9f0 100644
--- a/test/tint/builtins/gen/literal/radians/fbacf0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/radians/fbacf0.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void radians_fbacf0() {
-  f16vec2 res = f16vec2(0.017440796hf);
+  f16vec2 res = f16vec2(0.0174407958984375hf);
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 precision mediump float;
 
 void radians_fbacf0() {
-  f16vec2 res = f16vec2(0.017440796hf);
+  f16vec2 res = f16vec2(0.0174407958984375hf);
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void radians_fbacf0() {
-  f16vec2 res = f16vec2(0.017440796hf);
+  f16vec2 res = f16vec2(0.0174407958984375hf);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/radians/fbacf0.wgsl.expected.msl b/test/tint/builtins/gen/literal/radians/fbacf0.wgsl.expected.msl
index d462d32..f813a60 100644
--- a/test/tint/builtins/gen/literal/radians/fbacf0.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/radians/fbacf0.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void radians_fbacf0() {
-  half2 res = half2(0.017440796h);
+  half2 res = half2(0.0174407958984375h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/round/106c0b.wgsl b/test/tint/builtins/gen/literal/round/106c0b.wgsl
index 31e76ba..e4be756 100644
--- a/test/tint/builtins/gen/literal/round/106c0b.wgsl
+++ b/test/tint/builtins/gen/literal/round/106c0b.wgsl
@@ -23,7 +23,7 @@
 
 // fn round(vec<4, f32>) -> vec<4, f32>
 fn round_106c0b() {
-  var res: vec4<f32> = round(vec4<f32>(3.4f));
+  var res: vec4<f32> = round(vec4<f32>(3.5f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/round/106c0b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/round/106c0b.wgsl.expected.dxc.hlsl
index 3bdb1e3..8a44079 100644
--- a/test/tint/builtins/gen/literal/round/106c0b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/round/106c0b.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void round_106c0b() {
-  float4 res = (3.0f).xxxx;
+  float4 res = (4.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/round/106c0b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/round/106c0b.wgsl.expected.fxc.hlsl
index 3bdb1e3..8a44079 100644
--- a/test/tint/builtins/gen/literal/round/106c0b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/round/106c0b.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void round_106c0b() {
-  float4 res = (3.0f).xxxx;
+  float4 res = (4.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/round/106c0b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/round/106c0b.wgsl.expected.glsl
index 39b7333..df6aaf6 100644
--- a/test/tint/builtins/gen/literal/round/106c0b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/round/106c0b.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void round_106c0b() {
-  vec4 res = vec4(3.0f);
+  vec4 res = vec4(4.0f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void round_106c0b() {
-  vec4 res = vec4(3.0f);
+  vec4 res = vec4(4.0f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void round_106c0b() {
-  vec4 res = vec4(3.0f);
+  vec4 res = vec4(4.0f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/round/106c0b.wgsl.expected.msl b/test/tint/builtins/gen/literal/round/106c0b.wgsl.expected.msl
index cfa1d57..7569146 100644
--- a/test/tint/builtins/gen/literal/round/106c0b.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/round/106c0b.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void round_106c0b() {
-  float4 res = float4(3.0f);
+  float4 res = float4(4.0f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/round/106c0b.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/round/106c0b.wgsl.expected.spvasm
index 878880c..71ffb45 100644
--- a/test/tint/builtins/gen/literal/round/106c0b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/round/106c0b.wgsl.expected.spvasm
@@ -30,8 +30,8 @@
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
-    %float_3 = OpConstant %float 3
-         %14 = OpConstantComposite %v4float %float_3 %float_3 %float_3 %float_3
+    %float_4 = OpConstant %float 4
+         %14 = OpConstantComposite %v4float %float_4 %float_4 %float_4 %float_4
 %_ptr_Function_v4float = OpTypePointer Function %v4float
          %17 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
diff --git a/test/tint/builtins/gen/literal/round/106c0b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/round/106c0b.wgsl.expected.wgsl
index be86d16..b378aa9 100644
--- a/test/tint/builtins/gen/literal/round/106c0b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/round/106c0b.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn round_106c0b() {
-  var res : vec4<f32> = round(vec4<f32>(3.400000095f));
+  var res : vec4<f32> = round(vec4<f32>(3.5f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/round/184d5a.wgsl b/test/tint/builtins/gen/literal/round/184d5a.wgsl
index 56c4e50..530da3b 100644
--- a/test/tint/builtins/gen/literal/round/184d5a.wgsl
+++ b/test/tint/builtins/gen/literal/round/184d5a.wgsl
@@ -23,7 +23,7 @@
 
 // fn round(vec<4, fa>) -> vec<4, fa>
 fn round_184d5a() {
-  var res = round(vec4(3.4));
+  var res = round(vec4(3.5));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/round/184d5a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/round/184d5a.wgsl.expected.dxc.hlsl
index 278152a..f7bdfca 100644
--- a/test/tint/builtins/gen/literal/round/184d5a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/round/184d5a.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void round_184d5a() {
-  float4 res = (3.0f).xxxx;
+  float4 res = (4.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/round/184d5a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/round/184d5a.wgsl.expected.fxc.hlsl
index 278152a..f7bdfca 100644
--- a/test/tint/builtins/gen/literal/round/184d5a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/round/184d5a.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void round_184d5a() {
-  float4 res = (3.0f).xxxx;
+  float4 res = (4.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/round/184d5a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/round/184d5a.wgsl.expected.glsl
index d27ab94..a18114c 100644
--- a/test/tint/builtins/gen/literal/round/184d5a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/round/184d5a.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void round_184d5a() {
-  vec4 res = vec4(3.0f);
+  vec4 res = vec4(4.0f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void round_184d5a() {
-  vec4 res = vec4(3.0f);
+  vec4 res = vec4(4.0f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void round_184d5a() {
-  vec4 res = vec4(3.0f);
+  vec4 res = vec4(4.0f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/round/184d5a.wgsl.expected.msl b/test/tint/builtins/gen/literal/round/184d5a.wgsl.expected.msl
index e592f73..318e048 100644
--- a/test/tint/builtins/gen/literal/round/184d5a.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/round/184d5a.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void round_184d5a() {
-  float4 res = float4(3.0f);
+  float4 res = float4(4.0f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/round/184d5a.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/round/184d5a.wgsl.expected.spvasm
index 67a91d3..dedbfa1c 100644
--- a/test/tint/builtins/gen/literal/round/184d5a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/round/184d5a.wgsl.expected.spvasm
@@ -30,8 +30,8 @@
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
-    %float_3 = OpConstant %float 3
-         %14 = OpConstantComposite %v4float %float_3 %float_3 %float_3 %float_3
+    %float_4 = OpConstant %float 4
+         %14 = OpConstantComposite %v4float %float_4 %float_4 %float_4 %float_4
 %_ptr_Function_v4float = OpTypePointer Function %v4float
          %17 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
diff --git a/test/tint/builtins/gen/literal/round/184d5a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/round/184d5a.wgsl.expected.wgsl
index 8f0872c..bcbe801 100644
--- a/test/tint/builtins/gen/literal/round/184d5a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/round/184d5a.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn round_184d5a() {
-  var res = round(vec4(3.4));
+  var res = round(vec4(3.5));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/round/1c7897.wgsl b/test/tint/builtins/gen/literal/round/1c7897.wgsl
index af33919..0a90eae 100644
--- a/test/tint/builtins/gen/literal/round/1c7897.wgsl
+++ b/test/tint/builtins/gen/literal/round/1c7897.wgsl
@@ -23,7 +23,7 @@
 
 // fn round(vec<3, f32>) -> vec<3, f32>
 fn round_1c7897() {
-  var res: vec3<f32> = round(vec3<f32>(3.4f));
+  var res: vec3<f32> = round(vec3<f32>(3.5f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/round/1c7897.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/round/1c7897.wgsl.expected.dxc.hlsl
index f22675b..6653501 100644
--- a/test/tint/builtins/gen/literal/round/1c7897.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/round/1c7897.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void round_1c7897() {
-  float3 res = (3.0f).xxx;
+  float3 res = (4.0f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/round/1c7897.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/round/1c7897.wgsl.expected.fxc.hlsl
index f22675b..6653501 100644
--- a/test/tint/builtins/gen/literal/round/1c7897.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/round/1c7897.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void round_1c7897() {
-  float3 res = (3.0f).xxx;
+  float3 res = (4.0f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/round/1c7897.wgsl.expected.glsl b/test/tint/builtins/gen/literal/round/1c7897.wgsl.expected.glsl
index c275e8e..9bc7454 100644
--- a/test/tint/builtins/gen/literal/round/1c7897.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/round/1c7897.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void round_1c7897() {
-  vec3 res = vec3(3.0f);
+  vec3 res = vec3(4.0f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void round_1c7897() {
-  vec3 res = vec3(3.0f);
+  vec3 res = vec3(4.0f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void round_1c7897() {
-  vec3 res = vec3(3.0f);
+  vec3 res = vec3(4.0f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/round/1c7897.wgsl.expected.msl b/test/tint/builtins/gen/literal/round/1c7897.wgsl.expected.msl
index 2e26c54..c4da823 100644
--- a/test/tint/builtins/gen/literal/round/1c7897.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/round/1c7897.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void round_1c7897() {
-  float3 res = float3(3.0f);
+  float3 res = float3(4.0f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/round/1c7897.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/round/1c7897.wgsl.expected.spvasm
index a28da2e..81eb5a8 100644
--- a/test/tint/builtins/gen/literal/round/1c7897.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/round/1c7897.wgsl.expected.spvasm
@@ -31,8 +31,8 @@
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
-    %float_3 = OpConstant %float 3
-         %15 = OpConstantComposite %v3float %float_3 %float_3 %float_3
+    %float_4 = OpConstant %float 4
+         %15 = OpConstantComposite %v3float %float_4 %float_4 %float_4
 %_ptr_Function_v3float = OpTypePointer Function %v3float
          %18 = OpConstantNull %v3float
          %19 = OpTypeFunction %v4float
diff --git a/test/tint/builtins/gen/literal/round/1c7897.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/round/1c7897.wgsl.expected.wgsl
index 1dd4fc6..919ce17 100644
--- a/test/tint/builtins/gen/literal/round/1c7897.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/round/1c7897.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn round_1c7897() {
-  var res : vec3<f32> = round(vec3<f32>(3.400000095f));
+  var res : vec3<f32> = round(vec3<f32>(3.5f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/round/52c84d.wgsl b/test/tint/builtins/gen/literal/round/52c84d.wgsl
index 17bf011..b66178c 100644
--- a/test/tint/builtins/gen/literal/round/52c84d.wgsl
+++ b/test/tint/builtins/gen/literal/round/52c84d.wgsl
@@ -23,7 +23,7 @@
 
 // fn round(vec<2, f32>) -> vec<2, f32>
 fn round_52c84d() {
-  var res: vec2<f32> = round(vec2<f32>(3.4f));
+  var res: vec2<f32> = round(vec2<f32>(3.5f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/round/52c84d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/round/52c84d.wgsl.expected.dxc.hlsl
index 9bbbab4..e1678fe 100644
--- a/test/tint/builtins/gen/literal/round/52c84d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/round/52c84d.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void round_52c84d() {
-  float2 res = (3.0f).xx;
+  float2 res = (4.0f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/round/52c84d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/round/52c84d.wgsl.expected.fxc.hlsl
index 9bbbab4..e1678fe 100644
--- a/test/tint/builtins/gen/literal/round/52c84d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/round/52c84d.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void round_52c84d() {
-  float2 res = (3.0f).xx;
+  float2 res = (4.0f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/round/52c84d.wgsl.expected.glsl b/test/tint/builtins/gen/literal/round/52c84d.wgsl.expected.glsl
index 30ba810..9376115 100644
--- a/test/tint/builtins/gen/literal/round/52c84d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/round/52c84d.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void round_52c84d() {
-  vec2 res = vec2(3.0f);
+  vec2 res = vec2(4.0f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void round_52c84d() {
-  vec2 res = vec2(3.0f);
+  vec2 res = vec2(4.0f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void round_52c84d() {
-  vec2 res = vec2(3.0f);
+  vec2 res = vec2(4.0f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/round/52c84d.wgsl.expected.msl b/test/tint/builtins/gen/literal/round/52c84d.wgsl.expected.msl
index af2fe94..51f463a 100644
--- a/test/tint/builtins/gen/literal/round/52c84d.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/round/52c84d.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void round_52c84d() {
-  float2 res = float2(3.0f);
+  float2 res = float2(4.0f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/round/52c84d.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/round/52c84d.wgsl.expected.spvasm
index 43f47a8..1e63417 100644
--- a/test/tint/builtins/gen/literal/round/52c84d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/round/52c84d.wgsl.expected.spvasm
@@ -31,8 +31,8 @@
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-    %float_3 = OpConstant %float 3
-         %15 = OpConstantComposite %v2float %float_3 %float_3
+    %float_4 = OpConstant %float 4
+         %15 = OpConstantComposite %v2float %float_4 %float_4
 %_ptr_Function_v2float = OpTypePointer Function %v2float
          %18 = OpConstantNull %v2float
          %19 = OpTypeFunction %v4float
diff --git a/test/tint/builtins/gen/literal/round/52c84d.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/round/52c84d.wgsl.expected.wgsl
index c075326..d4288e4 100644
--- a/test/tint/builtins/gen/literal/round/52c84d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/round/52c84d.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn round_52c84d() {
-  var res : vec2<f32> = round(vec2<f32>(3.400000095f));
+  var res : vec2<f32> = round(vec2<f32>(3.5f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/round/773a8f.wgsl b/test/tint/builtins/gen/literal/round/773a8f.wgsl
index 1f0ad03..28ac24e 100644
--- a/test/tint/builtins/gen/literal/round/773a8f.wgsl
+++ b/test/tint/builtins/gen/literal/round/773a8f.wgsl
@@ -23,7 +23,7 @@
 
 // fn round(fa) -> fa
 fn round_773a8f() {
-  var res = round(3.4);
+  var res = round(3.5);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/round/773a8f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/round/773a8f.wgsl.expected.dxc.hlsl
index dc329d8..f8e0f12 100644
--- a/test/tint/builtins/gen/literal/round/773a8f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/round/773a8f.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void round_773a8f() {
-  float res = 3.0f;
+  float res = 4.0f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/round/773a8f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/round/773a8f.wgsl.expected.fxc.hlsl
index dc329d8..f8e0f12 100644
--- a/test/tint/builtins/gen/literal/round/773a8f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/round/773a8f.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void round_773a8f() {
-  float res = 3.0f;
+  float res = 4.0f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/round/773a8f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/round/773a8f.wgsl.expected.glsl
index f7e71c8..0d7b0a4 100644
--- a/test/tint/builtins/gen/literal/round/773a8f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/round/773a8f.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void round_773a8f() {
-  float res = 3.0f;
+  float res = 4.0f;
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void round_773a8f() {
-  float res = 3.0f;
+  float res = 4.0f;
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void round_773a8f() {
-  float res = 3.0f;
+  float res = 4.0f;
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/round/773a8f.wgsl.expected.msl b/test/tint/builtins/gen/literal/round/773a8f.wgsl.expected.msl
index 4b27365..c9f83f8 100644
--- a/test/tint/builtins/gen/literal/round/773a8f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/round/773a8f.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void round_773a8f() {
-  float res = 3.0f;
+  float res = 4.0f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/round/773a8f.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/round/773a8f.wgsl.expected.spvasm
index b97daa9..d784d9a 100644
--- a/test/tint/builtins/gen/literal/round/773a8f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/round/773a8f.wgsl.expected.spvasm
@@ -30,14 +30,14 @@
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
-    %float_3 = OpConstant %float 3
+    %float_4 = OpConstant %float 4
 %_ptr_Function_float = OpTypePointer Function %float
          %16 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %round_773a8f = OpFunction %void None %9
          %12 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
-               OpStore %res %float_3
+               OpStore %res %float_4
                OpReturn
                OpFunctionEnd
 %vertex_main_inner = OpFunction %v4float None %16
diff --git a/test/tint/builtins/gen/literal/round/773a8f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/round/773a8f.wgsl.expected.wgsl
index b151d40..0942acb 100644
--- a/test/tint/builtins/gen/literal/round/773a8f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/round/773a8f.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn round_773a8f() {
-  var res = round(3.4);
+  var res = round(3.5);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/round/8fdca3.wgsl b/test/tint/builtins/gen/literal/round/8fdca3.wgsl
index 059ab19..ff10793 100644
--- a/test/tint/builtins/gen/literal/round/8fdca3.wgsl
+++ b/test/tint/builtins/gen/literal/round/8fdca3.wgsl
@@ -23,7 +23,7 @@
 
 // fn round(vec<2, fa>) -> vec<2, fa>
 fn round_8fdca3() {
-  var res = round(vec2(3.4));
+  var res = round(vec2(3.5));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/round/8fdca3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/round/8fdca3.wgsl.expected.dxc.hlsl
index 5e441a3..3f822c5 100644
--- a/test/tint/builtins/gen/literal/round/8fdca3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/round/8fdca3.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void round_8fdca3() {
-  float2 res = (3.0f).xx;
+  float2 res = (4.0f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/round/8fdca3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/round/8fdca3.wgsl.expected.fxc.hlsl
index 5e441a3..3f822c5 100644
--- a/test/tint/builtins/gen/literal/round/8fdca3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/round/8fdca3.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void round_8fdca3() {
-  float2 res = (3.0f).xx;
+  float2 res = (4.0f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/round/8fdca3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/round/8fdca3.wgsl.expected.glsl
index ef15129..14cbb3b 100644
--- a/test/tint/builtins/gen/literal/round/8fdca3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/round/8fdca3.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void round_8fdca3() {
-  vec2 res = vec2(3.0f);
+  vec2 res = vec2(4.0f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void round_8fdca3() {
-  vec2 res = vec2(3.0f);
+  vec2 res = vec2(4.0f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void round_8fdca3() {
-  vec2 res = vec2(3.0f);
+  vec2 res = vec2(4.0f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/round/8fdca3.wgsl.expected.msl b/test/tint/builtins/gen/literal/round/8fdca3.wgsl.expected.msl
index dbffaee..0ff475e 100644
--- a/test/tint/builtins/gen/literal/round/8fdca3.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/round/8fdca3.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void round_8fdca3() {
-  float2 res = float2(3.0f);
+  float2 res = float2(4.0f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/round/8fdca3.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/round/8fdca3.wgsl.expected.spvasm
index 40ce4a2..f24efe9 100644
--- a/test/tint/builtins/gen/literal/round/8fdca3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/round/8fdca3.wgsl.expected.spvasm
@@ -31,8 +31,8 @@
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-    %float_3 = OpConstant %float 3
-         %15 = OpConstantComposite %v2float %float_3 %float_3
+    %float_4 = OpConstant %float 4
+         %15 = OpConstantComposite %v2float %float_4 %float_4
 %_ptr_Function_v2float = OpTypePointer Function %v2float
          %18 = OpConstantNull %v2float
          %19 = OpTypeFunction %v4float
diff --git a/test/tint/builtins/gen/literal/round/8fdca3.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/round/8fdca3.wgsl.expected.wgsl
index 13867b0..d59b694 100644
--- a/test/tint/builtins/gen/literal/round/8fdca3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/round/8fdca3.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn round_8fdca3() {
-  var res = round(vec2(3.4));
+  var res = round(vec2(3.5));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/round/9078ef.wgsl b/test/tint/builtins/gen/literal/round/9078ef.wgsl
index 58c608f..62b2ce5 100644
--- a/test/tint/builtins/gen/literal/round/9078ef.wgsl
+++ b/test/tint/builtins/gen/literal/round/9078ef.wgsl
@@ -25,7 +25,7 @@
 
 // fn round(f16) -> f16
 fn round_9078ef() {
-  var res: f16 = round(3.4h);
+  var res: f16 = round(3.5h);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/round/9078ef.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/round/9078ef.wgsl.expected.dxc.hlsl
index 5ffca69..ca26e0e 100644
--- a/test/tint/builtins/gen/literal/round/9078ef.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/round/9078ef.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void round_9078ef() {
-  float16_t res = float16_t(3.0h);
+  float16_t res = float16_t(4.0h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/round/9078ef.wgsl.expected.glsl b/test/tint/builtins/gen/literal/round/9078ef.wgsl.expected.glsl
index 72105b4..a30b084 100644
--- a/test/tint/builtins/gen/literal/round/9078ef.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/round/9078ef.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void round_9078ef() {
-  float16_t res = 3.0hf;
+  float16_t res = 4.0hf;
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 precision mediump float;
 
 void round_9078ef() {
-  float16_t res = 3.0hf;
+  float16_t res = 4.0hf;
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void round_9078ef() {
-  float16_t res = 3.0hf;
+  float16_t res = 4.0hf;
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/round/9078ef.wgsl.expected.msl b/test/tint/builtins/gen/literal/round/9078ef.wgsl.expected.msl
index a9fe430..1dfd603 100644
--- a/test/tint/builtins/gen/literal/round/9078ef.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/round/9078ef.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void round_9078ef() {
-  half res = 3.0h;
+  half res = 4.0h;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/round/9078ef.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/round/9078ef.wgsl.expected.spvasm
index 7e23e01..6add4c3 100644
--- a/test/tint/builtins/gen/literal/round/9078ef.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/round/9078ef.wgsl.expected.spvasm
@@ -35,7 +35,7 @@
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
        %half = OpTypeFloat 16
-%half_0x1_8p_1 = OpConstant %half 0x1.8p+1
+%half_0x1p_2 = OpConstant %half 0x1p+2
 %_ptr_Function_half = OpTypePointer Function %half
          %17 = OpConstantNull %half
          %18 = OpTypeFunction %v4float
@@ -43,7 +43,7 @@
 %round_9078ef = OpFunction %void None %9
          %12 = OpLabel
         %res = OpVariable %_ptr_Function_half Function %17
-               OpStore %res %half_0x1_8p_1
+               OpStore %res %half_0x1p_2
                OpReturn
                OpFunctionEnd
 %vertex_main_inner = OpFunction %v4float None %18
diff --git a/test/tint/builtins/gen/literal/round/9078ef.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/round/9078ef.wgsl.expected.wgsl
index 170d4a4..6e919be 100644
--- a/test/tint/builtins/gen/literal/round/9078ef.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/round/9078ef.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 enable f16;
 
 fn round_9078ef() {
-  var res : f16 = round(3.3984375h);
+  var res : f16 = round(3.5h);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/round/9edc38.wgsl b/test/tint/builtins/gen/literal/round/9edc38.wgsl
index a3b64a4..a54a0d8 100644
--- a/test/tint/builtins/gen/literal/round/9edc38.wgsl
+++ b/test/tint/builtins/gen/literal/round/9edc38.wgsl
@@ -23,7 +23,7 @@
 
 // fn round(f32) -> f32
 fn round_9edc38() {
-  var res: f32 = round(3.4f);
+  var res: f32 = round(3.5f);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/round/9edc38.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/round/9edc38.wgsl.expected.dxc.hlsl
index daa1c1c..e33c4f3 100644
--- a/test/tint/builtins/gen/literal/round/9edc38.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/round/9edc38.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void round_9edc38() {
-  float res = 3.0f;
+  float res = 4.0f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/round/9edc38.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/round/9edc38.wgsl.expected.fxc.hlsl
index daa1c1c..e33c4f3 100644
--- a/test/tint/builtins/gen/literal/round/9edc38.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/round/9edc38.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void round_9edc38() {
-  float res = 3.0f;
+  float res = 4.0f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/round/9edc38.wgsl.expected.glsl b/test/tint/builtins/gen/literal/round/9edc38.wgsl.expected.glsl
index 01ef2a5..3b6ac86 100644
--- a/test/tint/builtins/gen/literal/round/9edc38.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/round/9edc38.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void round_9edc38() {
-  float res = 3.0f;
+  float res = 4.0f;
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void round_9edc38() {
-  float res = 3.0f;
+  float res = 4.0f;
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void round_9edc38() {
-  float res = 3.0f;
+  float res = 4.0f;
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/round/9edc38.wgsl.expected.msl b/test/tint/builtins/gen/literal/round/9edc38.wgsl.expected.msl
index 611d154..21bf09c 100644
--- a/test/tint/builtins/gen/literal/round/9edc38.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/round/9edc38.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void round_9edc38() {
-  float res = 3.0f;
+  float res = 4.0f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/round/9edc38.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/round/9edc38.wgsl.expected.spvasm
index 8f2c920..3639932 100644
--- a/test/tint/builtins/gen/literal/round/9edc38.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/round/9edc38.wgsl.expected.spvasm
@@ -30,14 +30,14 @@
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
-    %float_3 = OpConstant %float 3
+    %float_4 = OpConstant %float 4
 %_ptr_Function_float = OpTypePointer Function %float
          %16 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %round_9edc38 = OpFunction %void None %9
          %12 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
-               OpStore %res %float_3
+               OpStore %res %float_4
                OpReturn
                OpFunctionEnd
 %vertex_main_inner = OpFunction %v4float None %16
diff --git a/test/tint/builtins/gen/literal/round/9edc38.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/round/9edc38.wgsl.expected.wgsl
index 918f864..b8d95e0 100644
--- a/test/tint/builtins/gen/literal/round/9edc38.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/round/9edc38.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn round_9edc38() {
-  var res : f32 = round(3.400000095f);
+  var res : f32 = round(3.5f);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/round/a1673d.wgsl b/test/tint/builtins/gen/literal/round/a1673d.wgsl
index 9487990..cbb609e 100644
--- a/test/tint/builtins/gen/literal/round/a1673d.wgsl
+++ b/test/tint/builtins/gen/literal/round/a1673d.wgsl
@@ -23,7 +23,7 @@
 
 // fn round(vec<3, fa>) -> vec<3, fa>
 fn round_a1673d() {
-  var res = round(vec3(3.4));
+  var res = round(vec3(3.5));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/round/a1673d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/round/a1673d.wgsl.expected.dxc.hlsl
index 4032312..df8181f 100644
--- a/test/tint/builtins/gen/literal/round/a1673d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/round/a1673d.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void round_a1673d() {
-  float3 res = (3.0f).xxx;
+  float3 res = (4.0f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/round/a1673d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/round/a1673d.wgsl.expected.fxc.hlsl
index 4032312..df8181f 100644
--- a/test/tint/builtins/gen/literal/round/a1673d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/round/a1673d.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void round_a1673d() {
-  float3 res = (3.0f).xxx;
+  float3 res = (4.0f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/round/a1673d.wgsl.expected.glsl b/test/tint/builtins/gen/literal/round/a1673d.wgsl.expected.glsl
index 0a8db5f..dd390a7 100644
--- a/test/tint/builtins/gen/literal/round/a1673d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/round/a1673d.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void round_a1673d() {
-  vec3 res = vec3(3.0f);
+  vec3 res = vec3(4.0f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void round_a1673d() {
-  vec3 res = vec3(3.0f);
+  vec3 res = vec3(4.0f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void round_a1673d() {
-  vec3 res = vec3(3.0f);
+  vec3 res = vec3(4.0f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/round/a1673d.wgsl.expected.msl b/test/tint/builtins/gen/literal/round/a1673d.wgsl.expected.msl
index e9b35bb..7303f72 100644
--- a/test/tint/builtins/gen/literal/round/a1673d.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/round/a1673d.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void round_a1673d() {
-  float3 res = float3(3.0f);
+  float3 res = float3(4.0f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/round/a1673d.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/round/a1673d.wgsl.expected.spvasm
index e9bbf2e..f0a7e42 100644
--- a/test/tint/builtins/gen/literal/round/a1673d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/round/a1673d.wgsl.expected.spvasm
@@ -31,8 +31,8 @@
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
-    %float_3 = OpConstant %float 3
-         %15 = OpConstantComposite %v3float %float_3 %float_3 %float_3
+    %float_4 = OpConstant %float 4
+         %15 = OpConstantComposite %v3float %float_4 %float_4 %float_4
 %_ptr_Function_v3float = OpTypePointer Function %v3float
          %18 = OpConstantNull %v3float
          %19 = OpTypeFunction %v4float
diff --git a/test/tint/builtins/gen/literal/round/a1673d.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/round/a1673d.wgsl.expected.wgsl
index 89bacdf..bdcf70d 100644
--- a/test/tint/builtins/gen/literal/round/a1673d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/round/a1673d.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn round_a1673d() {
-  var res = round(vec3(3.4));
+  var res = round(vec3(3.5));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/round/d87e84.wgsl b/test/tint/builtins/gen/literal/round/d87e84.wgsl
index b9d842e..95ab824 100644
--- a/test/tint/builtins/gen/literal/round/d87e84.wgsl
+++ b/test/tint/builtins/gen/literal/round/d87e84.wgsl
@@ -25,7 +25,7 @@
 
 // fn round(vec<2, f16>) -> vec<2, f16>
 fn round_d87e84() {
-  var res: vec2<f16> = round(vec2<f16>(3.4h));
+  var res: vec2<f16> = round(vec2<f16>(3.5h));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/round/d87e84.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/round/d87e84.wgsl.expected.dxc.hlsl
index 96f6ffe..9189150 100644
--- a/test/tint/builtins/gen/literal/round/d87e84.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/round/d87e84.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void round_d87e84() {
-  vector<float16_t, 2> res = (float16_t(3.0h)).xx;
+  vector<float16_t, 2> res = (float16_t(4.0h)).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/round/d87e84.wgsl.expected.glsl b/test/tint/builtins/gen/literal/round/d87e84.wgsl.expected.glsl
index 2c32de4..5ede7fd 100644
--- a/test/tint/builtins/gen/literal/round/d87e84.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/round/d87e84.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void round_d87e84() {
-  f16vec2 res = f16vec2(3.0hf);
+  f16vec2 res = f16vec2(4.0hf);
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 precision mediump float;
 
 void round_d87e84() {
-  f16vec2 res = f16vec2(3.0hf);
+  f16vec2 res = f16vec2(4.0hf);
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void round_d87e84() {
-  f16vec2 res = f16vec2(3.0hf);
+  f16vec2 res = f16vec2(4.0hf);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/round/d87e84.wgsl.expected.msl b/test/tint/builtins/gen/literal/round/d87e84.wgsl.expected.msl
index 4393a40..5d535eb 100644
--- a/test/tint/builtins/gen/literal/round/d87e84.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/round/d87e84.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void round_d87e84() {
-  half2 res = half2(3.0h);
+  half2 res = half2(4.0h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/round/d87e84.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/round/d87e84.wgsl.expected.spvasm
index 5e597b2..9c21fe9 100644
--- a/test/tint/builtins/gen/literal/round/d87e84.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/round/d87e84.wgsl.expected.spvasm
@@ -36,8 +36,8 @@
           %9 = OpTypeFunction %void
        %half = OpTypeFloat 16
      %v2half = OpTypeVector %half 2
-%half_0x1_8p_1 = OpConstant %half 0x1.8p+1
-         %16 = OpConstantComposite %v2half %half_0x1_8p_1 %half_0x1_8p_1
+%half_0x1p_2 = OpConstant %half 0x1p+2
+         %16 = OpConstantComposite %v2half %half_0x1p_2 %half_0x1p_2
 %_ptr_Function_v2half = OpTypePointer Function %v2half
          %19 = OpConstantNull %v2half
          %20 = OpTypeFunction %v4float
diff --git a/test/tint/builtins/gen/literal/round/d87e84.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/round/d87e84.wgsl.expected.wgsl
index 64094ac..e47782b 100644
--- a/test/tint/builtins/gen/literal/round/d87e84.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/round/d87e84.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 enable f16;
 
 fn round_d87e84() {
-  var res : vec2<f16> = round(vec2<f16>(3.3984375h));
+  var res : vec2<f16> = round(vec2<f16>(3.5h));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/round/e1bba2.wgsl b/test/tint/builtins/gen/literal/round/e1bba2.wgsl
index 5353797..cbf710a 100644
--- a/test/tint/builtins/gen/literal/round/e1bba2.wgsl
+++ b/test/tint/builtins/gen/literal/round/e1bba2.wgsl
@@ -25,7 +25,7 @@
 
 // fn round(vec<3, f16>) -> vec<3, f16>
 fn round_e1bba2() {
-  var res: vec3<f16> = round(vec3<f16>(3.4h));
+  var res: vec3<f16> = round(vec3<f16>(3.5h));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/round/e1bba2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/round/e1bba2.wgsl.expected.dxc.hlsl
index d2d2c98..b5d707f 100644
--- a/test/tint/builtins/gen/literal/round/e1bba2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/round/e1bba2.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void round_e1bba2() {
-  vector<float16_t, 3> res = (float16_t(3.0h)).xxx;
+  vector<float16_t, 3> res = (float16_t(4.0h)).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/round/e1bba2.wgsl.expected.glsl b/test/tint/builtins/gen/literal/round/e1bba2.wgsl.expected.glsl
index a03d0bf..1a7a32a 100644
--- a/test/tint/builtins/gen/literal/round/e1bba2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/round/e1bba2.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void round_e1bba2() {
-  f16vec3 res = f16vec3(3.0hf);
+  f16vec3 res = f16vec3(4.0hf);
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 precision mediump float;
 
 void round_e1bba2() {
-  f16vec3 res = f16vec3(3.0hf);
+  f16vec3 res = f16vec3(4.0hf);
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void round_e1bba2() {
-  f16vec3 res = f16vec3(3.0hf);
+  f16vec3 res = f16vec3(4.0hf);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/round/e1bba2.wgsl.expected.msl b/test/tint/builtins/gen/literal/round/e1bba2.wgsl.expected.msl
index 4b890be..1b0be02 100644
--- a/test/tint/builtins/gen/literal/round/e1bba2.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/round/e1bba2.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void round_e1bba2() {
-  half3 res = half3(3.0h);
+  half3 res = half3(4.0h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/round/e1bba2.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/round/e1bba2.wgsl.expected.spvasm
index 9a870a2..713ac10 100644
--- a/test/tint/builtins/gen/literal/round/e1bba2.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/round/e1bba2.wgsl.expected.spvasm
@@ -36,8 +36,8 @@
           %9 = OpTypeFunction %void
        %half = OpTypeFloat 16
      %v3half = OpTypeVector %half 3
-%half_0x1_8p_1 = OpConstant %half 0x1.8p+1
-         %16 = OpConstantComposite %v3half %half_0x1_8p_1 %half_0x1_8p_1 %half_0x1_8p_1
+%half_0x1p_2 = OpConstant %half 0x1p+2
+         %16 = OpConstantComposite %v3half %half_0x1p_2 %half_0x1p_2 %half_0x1p_2
 %_ptr_Function_v3half = OpTypePointer Function %v3half
          %19 = OpConstantNull %v3half
          %20 = OpTypeFunction %v4float
diff --git a/test/tint/builtins/gen/literal/round/e1bba2.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/round/e1bba2.wgsl.expected.wgsl
index 897964e..67e742f 100644
--- a/test/tint/builtins/gen/literal/round/e1bba2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/round/e1bba2.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 enable f16;
 
 fn round_e1bba2() {
-  var res : vec3<f16> = round(vec3<f16>(3.3984375h));
+  var res : vec3<f16> = round(vec3<f16>(3.5h));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/round/f665b5.wgsl b/test/tint/builtins/gen/literal/round/f665b5.wgsl
index f16b14a..dd4fbea 100644
--- a/test/tint/builtins/gen/literal/round/f665b5.wgsl
+++ b/test/tint/builtins/gen/literal/round/f665b5.wgsl
@@ -25,7 +25,7 @@
 
 // fn round(vec<4, f16>) -> vec<4, f16>
 fn round_f665b5() {
-  var res: vec4<f16> = round(vec4<f16>(3.4h));
+  var res: vec4<f16> = round(vec4<f16>(3.5h));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/round/f665b5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/round/f665b5.wgsl.expected.dxc.hlsl
index 90f7e0b..9acd46a 100644
--- a/test/tint/builtins/gen/literal/round/f665b5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/round/f665b5.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void round_f665b5() {
-  vector<float16_t, 4> res = (float16_t(3.0h)).xxxx;
+  vector<float16_t, 4> res = (float16_t(4.0h)).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/round/f665b5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/round/f665b5.wgsl.expected.glsl
index 5107c21..60ff2bd 100644
--- a/test/tint/builtins/gen/literal/round/f665b5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/round/f665b5.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void round_f665b5() {
-  f16vec4 res = f16vec4(3.0hf);
+  f16vec4 res = f16vec4(4.0hf);
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 precision mediump float;
 
 void round_f665b5() {
-  f16vec4 res = f16vec4(3.0hf);
+  f16vec4 res = f16vec4(4.0hf);
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void round_f665b5() {
-  f16vec4 res = f16vec4(3.0hf);
+  f16vec4 res = f16vec4(4.0hf);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/round/f665b5.wgsl.expected.msl b/test/tint/builtins/gen/literal/round/f665b5.wgsl.expected.msl
index 9ab14ff..7d642cc 100644
--- a/test/tint/builtins/gen/literal/round/f665b5.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/round/f665b5.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void round_f665b5() {
-  half4 res = half4(3.0h);
+  half4 res = half4(4.0h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/round/f665b5.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/round/f665b5.wgsl.expected.spvasm
index 341d4cc..0398b56 100644
--- a/test/tint/builtins/gen/literal/round/f665b5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/round/f665b5.wgsl.expected.spvasm
@@ -36,8 +36,8 @@
           %9 = OpTypeFunction %void
        %half = OpTypeFloat 16
      %v4half = OpTypeVector %half 4
-%half_0x1_8p_1 = OpConstant %half 0x1.8p+1
-         %16 = OpConstantComposite %v4half %half_0x1_8p_1 %half_0x1_8p_1 %half_0x1_8p_1 %half_0x1_8p_1
+%half_0x1p_2 = OpConstant %half 0x1p+2
+         %16 = OpConstantComposite %v4half %half_0x1p_2 %half_0x1p_2 %half_0x1p_2 %half_0x1p_2
 %_ptr_Function_v4half = OpTypePointer Function %v4half
          %19 = OpConstantNull %v4half
          %20 = OpTypeFunction %v4float
diff --git a/test/tint/builtins/gen/literal/round/f665b5.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/round/f665b5.wgsl.expected.wgsl
index ed1085f..30a8e63 100644
--- a/test/tint/builtins/gen/literal/round/f665b5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/round/f665b5.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 enable f16;
 
 fn round_f665b5() {
-  var res : vec4<f16> = round(vec4<f16>(3.3984375h));
+  var res : vec4<f16> = round(vec4<f16>(3.5h));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/sin/01f241.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/sin/01f241.wgsl.expected.wgsl
index 21eef61..cfd6a05 100644
--- a/test/tint/builtins/gen/literal/sin/01f241.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/sin/01f241.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn sin_01f241() {
-  var res : vec3<f32> = sin(vec3<f32>(1.570796371f));
+  var res : vec3<f32> = sin(vec3<f32>(1.57079637050628662109f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/sin/15b2c6.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/sin/15b2c6.wgsl.expected.wgsl
index ac0d7a3..f86cd7b 100644
--- a/test/tint/builtins/gen/literal/sin/15b2c6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/sin/15b2c6.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn sin_15b2c6() {
-  var res = sin(vec4(1.57079632679));
+  var res = sin(vec4(1.57079632679000003037));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/sin/2c903b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/sin/2c903b.wgsl.expected.dxc.hlsl
index f1f2665..3a502b0 100644
--- a/test/tint/builtins/gen/literal/sin/2c903b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sin/2c903b.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void sin_2c903b() {
-  vector<float16_t, 3> res = (float16_t(0.999511719h)).xxx;
+  vector<float16_t, 3> res = (float16_t(0.99951171875h)).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/sin/2c903b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/sin/2c903b.wgsl.expected.glsl
index dafd096..1deffeb 100644
--- a/test/tint/builtins/gen/literal/sin/2c903b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/sin/2c903b.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void sin_2c903b() {
-  f16vec3 res = f16vec3(0.999511719hf);
+  f16vec3 res = f16vec3(0.99951171875hf);
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 precision mediump float;
 
 void sin_2c903b() {
-  f16vec3 res = f16vec3(0.999511719hf);
+  f16vec3 res = f16vec3(0.99951171875hf);
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void sin_2c903b() {
-  f16vec3 res = f16vec3(0.999511719hf);
+  f16vec3 res = f16vec3(0.99951171875hf);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/sin/2c903b.wgsl.expected.msl b/test/tint/builtins/gen/literal/sin/2c903b.wgsl.expected.msl
index 48e1f49..7ad80c1 100644
--- a/test/tint/builtins/gen/literal/sin/2c903b.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/sin/2c903b.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void sin_2c903b() {
-  half3 res = half3(0.999511719h);
+  half3 res = half3(0.99951171875h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/sin/3cca11.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/sin/3cca11.wgsl.expected.dxc.hlsl
index 54efd94..fd5dbc4 100644
--- a/test/tint/builtins/gen/literal/sin/3cca11.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sin/3cca11.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void sin_3cca11() {
-  vector<float16_t, 2> res = (float16_t(0.999511719h)).xx;
+  vector<float16_t, 2> res = (float16_t(0.99951171875h)).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/sin/3cca11.wgsl.expected.glsl b/test/tint/builtins/gen/literal/sin/3cca11.wgsl.expected.glsl
index 1fb265d..3b74546 100644
--- a/test/tint/builtins/gen/literal/sin/3cca11.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/sin/3cca11.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void sin_3cca11() {
-  f16vec2 res = f16vec2(0.999511719hf);
+  f16vec2 res = f16vec2(0.99951171875hf);
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 precision mediump float;
 
 void sin_3cca11() {
-  f16vec2 res = f16vec2(0.999511719hf);
+  f16vec2 res = f16vec2(0.99951171875hf);
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void sin_3cca11() {
-  f16vec2 res = f16vec2(0.999511719hf);
+  f16vec2 res = f16vec2(0.99951171875hf);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/sin/3cca11.wgsl.expected.msl b/test/tint/builtins/gen/literal/sin/3cca11.wgsl.expected.msl
index f4e66e7..9073313 100644
--- a/test/tint/builtins/gen/literal/sin/3cca11.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/sin/3cca11.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void sin_3cca11() {
-  half2 res = half2(0.999511719h);
+  half2 res = half2(0.99951171875h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/sin/4e3979.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/sin/4e3979.wgsl.expected.wgsl
index b34cd50..c41ee07 100644
--- a/test/tint/builtins/gen/literal/sin/4e3979.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/sin/4e3979.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn sin_4e3979() {
-  var res : vec4<f32> = sin(vec4<f32>(1.570796371f));
+  var res : vec4<f32> = sin(vec4<f32>(1.57079637050628662109f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/sin/5c0712.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/sin/5c0712.wgsl.expected.dxc.hlsl
index 3bc3e1a..0df743d 100644
--- a/test/tint/builtins/gen/literal/sin/5c0712.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sin/5c0712.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void sin_5c0712() {
-  vector<float16_t, 4> res = (float16_t(0.999511719h)).xxxx;
+  vector<float16_t, 4> res = (float16_t(0.99951171875h)).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/sin/5c0712.wgsl.expected.glsl b/test/tint/builtins/gen/literal/sin/5c0712.wgsl.expected.glsl
index 7062bc7..51d37c9 100644
--- a/test/tint/builtins/gen/literal/sin/5c0712.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/sin/5c0712.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void sin_5c0712() {
-  f16vec4 res = f16vec4(0.999511719hf);
+  f16vec4 res = f16vec4(0.99951171875hf);
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 precision mediump float;
 
 void sin_5c0712() {
-  f16vec4 res = f16vec4(0.999511719hf);
+  f16vec4 res = f16vec4(0.99951171875hf);
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void sin_5c0712() {
-  f16vec4 res = f16vec4(0.999511719hf);
+  f16vec4 res = f16vec4(0.99951171875hf);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/sin/5c0712.wgsl.expected.msl b/test/tint/builtins/gen/literal/sin/5c0712.wgsl.expected.msl
index d391468..eb4455c 100644
--- a/test/tint/builtins/gen/literal/sin/5c0712.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/sin/5c0712.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void sin_5c0712() {
-  half4 res = half4(0.999511719h);
+  half4 res = half4(0.99951171875h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/sin/66a59f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/sin/66a59f.wgsl.expected.dxc.hlsl
index 2b4a486..99fbd85 100644
--- a/test/tint/builtins/gen/literal/sin/66a59f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sin/66a59f.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void sin_66a59f() {
-  float16_t res = float16_t(0.999511719h);
+  float16_t res = float16_t(0.99951171875h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/sin/66a59f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/sin/66a59f.wgsl.expected.glsl
index 7f38b05..cf886ea 100644
--- a/test/tint/builtins/gen/literal/sin/66a59f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/sin/66a59f.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void sin_66a59f() {
-  float16_t res = 0.999511719hf;
+  float16_t res = 0.99951171875hf;
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 precision mediump float;
 
 void sin_66a59f() {
-  float16_t res = 0.999511719hf;
+  float16_t res = 0.99951171875hf;
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void sin_66a59f() {
-  float16_t res = 0.999511719hf;
+  float16_t res = 0.99951171875hf;
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/sin/66a59f.wgsl.expected.msl b/test/tint/builtins/gen/literal/sin/66a59f.wgsl.expected.msl
index 25b572f..1bd61c0 100644
--- a/test/tint/builtins/gen/literal/sin/66a59f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/sin/66a59f.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void sin_66a59f() {
-  half res = 0.999511719h;
+  half res = 0.99951171875h;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/sin/67b03c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/sin/67b03c.wgsl.expected.wgsl
index 66c7133..0113897 100644
--- a/test/tint/builtins/gen/literal/sin/67b03c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/sin/67b03c.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn sin_67b03c() {
-  var res = sin(vec3(1.57079632679));
+  var res = sin(vec3(1.57079632679000003037));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/sin/68d3ab.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/sin/68d3ab.wgsl.expected.wgsl
index c5dc6fb..f419906 100644
--- a/test/tint/builtins/gen/literal/sin/68d3ab.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/sin/68d3ab.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn sin_68d3ab() {
-  var res = sin(vec2(1.57079632679));
+  var res = sin(vec2(1.57079632679000003037));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/sin/a9ab19.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/sin/a9ab19.wgsl.expected.wgsl
index ee62525..3f2f4a5 100644
--- a/test/tint/builtins/gen/literal/sin/a9ab19.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/sin/a9ab19.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn sin_a9ab19() {
-  var res = sin(1.57079632679);
+  var res = sin(1.57079632679000003037);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/sin/b78c91.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/sin/b78c91.wgsl.expected.wgsl
index e2ee40d..c8cecdf 100644
--- a/test/tint/builtins/gen/literal/sin/b78c91.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/sin/b78c91.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn sin_b78c91() {
-  var res : f32 = sin(1.570796371f);
+  var res : f32 = sin(1.57079637050628662109f);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/sin/fc8bc4.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/sin/fc8bc4.wgsl.expected.wgsl
index f51b852..63a10ac 100644
--- a/test/tint/builtins/gen/literal/sin/fc8bc4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/sin/fc8bc4.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn sin_fc8bc4() {
-  var res : vec2<f32> = sin(vec2<f32>(1.570796371f));
+  var res : vec2<f32> = sin(vec2<f32>(1.57079637050628662109f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/sinh/0908c1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/sinh/0908c1.wgsl.expected.dxc.hlsl
index cba9089..6eacac1 100644
--- a/test/tint/builtins/gen/literal/sinh/0908c1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sinh/0908c1.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void sinh_0908c1() {
-  vector<float16_t, 3> res = (float16_t(1.174804688h)).xxx;
+  vector<float16_t, 3> res = (float16_t(1.1748046875h)).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/sinh/0908c1.wgsl.expected.glsl b/test/tint/builtins/gen/literal/sinh/0908c1.wgsl.expected.glsl
index 637d66a..9a5ff4e 100644
--- a/test/tint/builtins/gen/literal/sinh/0908c1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/sinh/0908c1.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void sinh_0908c1() {
-  f16vec3 res = f16vec3(1.174804688hf);
+  f16vec3 res = f16vec3(1.1748046875hf);
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 precision mediump float;
 
 void sinh_0908c1() {
-  f16vec3 res = f16vec3(1.174804688hf);
+  f16vec3 res = f16vec3(1.1748046875hf);
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void sinh_0908c1() {
-  f16vec3 res = f16vec3(1.174804688hf);
+  f16vec3 res = f16vec3(1.1748046875hf);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/sinh/0908c1.wgsl.expected.msl b/test/tint/builtins/gen/literal/sinh/0908c1.wgsl.expected.msl
index ae2eac9..df2390e 100644
--- a/test/tint/builtins/gen/literal/sinh/0908c1.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/sinh/0908c1.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void sinh_0908c1() {
-  half3 res = half3(1.174804688h);
+  half3 res = half3(1.1748046875h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/sinh/445e33.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/sinh/445e33.wgsl.expected.dxc.hlsl
index 2fffd3e..b9d5df0 100644
--- a/test/tint/builtins/gen/literal/sinh/445e33.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sinh/445e33.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void sinh_445e33() {
-  float4 res = (1.175201178f).xxxx;
+  float4 res = (1.17520117759704589844f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/sinh/445e33.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/sinh/445e33.wgsl.expected.fxc.hlsl
index 2fffd3e..b9d5df0 100644
--- a/test/tint/builtins/gen/literal/sinh/445e33.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sinh/445e33.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void sinh_445e33() {
-  float4 res = (1.175201178f).xxxx;
+  float4 res = (1.17520117759704589844f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/sinh/445e33.wgsl.expected.glsl b/test/tint/builtins/gen/literal/sinh/445e33.wgsl.expected.glsl
index 3dcdacd..0b7b8c2 100644
--- a/test/tint/builtins/gen/literal/sinh/445e33.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/sinh/445e33.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void sinh_445e33() {
-  vec4 res = vec4(1.175201178f);
+  vec4 res = vec4(1.17520117759704589844f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void sinh_445e33() {
-  vec4 res = vec4(1.175201178f);
+  vec4 res = vec4(1.17520117759704589844f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void sinh_445e33() {
-  vec4 res = vec4(1.175201178f);
+  vec4 res = vec4(1.17520117759704589844f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/sinh/445e33.wgsl.expected.msl b/test/tint/builtins/gen/literal/sinh/445e33.wgsl.expected.msl
index 412a087..6c11d97 100644
--- a/test/tint/builtins/gen/literal/sinh/445e33.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/sinh/445e33.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void sinh_445e33() {
-  float4 res = float4(1.175201178f);
+  float4 res = float4(1.17520117759704589844f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/sinh/69cce2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/sinh/69cce2.wgsl.expected.dxc.hlsl
index 451e9cf..024f936 100644
--- a/test/tint/builtins/gen/literal/sinh/69cce2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sinh/69cce2.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void sinh_69cce2() {
-  float16_t res = float16_t(1.174804688h);
+  float16_t res = float16_t(1.1748046875h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/sinh/69cce2.wgsl.expected.glsl b/test/tint/builtins/gen/literal/sinh/69cce2.wgsl.expected.glsl
index 7e42f16..73167f0 100644
--- a/test/tint/builtins/gen/literal/sinh/69cce2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/sinh/69cce2.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void sinh_69cce2() {
-  float16_t res = 1.174804688hf;
+  float16_t res = 1.1748046875hf;
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 precision mediump float;
 
 void sinh_69cce2() {
-  float16_t res = 1.174804688hf;
+  float16_t res = 1.1748046875hf;
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void sinh_69cce2() {
-  float16_t res = 1.174804688hf;
+  float16_t res = 1.1748046875hf;
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/sinh/69cce2.wgsl.expected.msl b/test/tint/builtins/gen/literal/sinh/69cce2.wgsl.expected.msl
index 61ee6d4..dab30e3 100644
--- a/test/tint/builtins/gen/literal/sinh/69cce2.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/sinh/69cce2.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void sinh_69cce2() {
-  half res = 1.174804688h;
+  half res = 1.1748046875h;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/sinh/77a2a3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/sinh/77a2a3.wgsl.expected.dxc.hlsl
index cc0e402..e630d7f 100644
--- a/test/tint/builtins/gen/literal/sinh/77a2a3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sinh/77a2a3.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void sinh_77a2a3() {
-  float3 res = (1.175201178f).xxx;
+  float3 res = (1.17520117759704589844f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/sinh/77a2a3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/sinh/77a2a3.wgsl.expected.fxc.hlsl
index cc0e402..e630d7f 100644
--- a/test/tint/builtins/gen/literal/sinh/77a2a3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sinh/77a2a3.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void sinh_77a2a3() {
-  float3 res = (1.175201178f).xxx;
+  float3 res = (1.17520117759704589844f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/sinh/77a2a3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/sinh/77a2a3.wgsl.expected.glsl
index 4853046..da0114b 100644
--- a/test/tint/builtins/gen/literal/sinh/77a2a3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/sinh/77a2a3.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void sinh_77a2a3() {
-  vec3 res = vec3(1.175201178f);
+  vec3 res = vec3(1.17520117759704589844f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void sinh_77a2a3() {
-  vec3 res = vec3(1.175201178f);
+  vec3 res = vec3(1.17520117759704589844f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void sinh_77a2a3() {
-  vec3 res = vec3(1.175201178f);
+  vec3 res = vec3(1.17520117759704589844f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/sinh/77a2a3.wgsl.expected.msl b/test/tint/builtins/gen/literal/sinh/77a2a3.wgsl.expected.msl
index 2370cd2..c9d3493 100644
--- a/test/tint/builtins/gen/literal/sinh/77a2a3.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/sinh/77a2a3.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void sinh_77a2a3() {
-  float3 res = float3(1.175201178f);
+  float3 res = float3(1.17520117759704589844f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/sinh/7bb598.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/sinh/7bb598.wgsl.expected.dxc.hlsl
index fc2f01c..f0601ba 100644
--- a/test/tint/builtins/gen/literal/sinh/7bb598.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sinh/7bb598.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void sinh_7bb598() {
-  float res = 1.175201178f;
+  float res = 1.17520117759704589844f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/sinh/7bb598.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/sinh/7bb598.wgsl.expected.fxc.hlsl
index fc2f01c..f0601ba 100644
--- a/test/tint/builtins/gen/literal/sinh/7bb598.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sinh/7bb598.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void sinh_7bb598() {
-  float res = 1.175201178f;
+  float res = 1.17520117759704589844f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/sinh/7bb598.wgsl.expected.glsl b/test/tint/builtins/gen/literal/sinh/7bb598.wgsl.expected.glsl
index cac34fc..eb31eba 100644
--- a/test/tint/builtins/gen/literal/sinh/7bb598.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/sinh/7bb598.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void sinh_7bb598() {
-  float res = 1.175201178f;
+  float res = 1.17520117759704589844f;
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void sinh_7bb598() {
-  float res = 1.175201178f;
+  float res = 1.17520117759704589844f;
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void sinh_7bb598() {
-  float res = 1.175201178f;
+  float res = 1.17520117759704589844f;
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/sinh/7bb598.wgsl.expected.msl b/test/tint/builtins/gen/literal/sinh/7bb598.wgsl.expected.msl
index d52eeca..c777012 100644
--- a/test/tint/builtins/gen/literal/sinh/7bb598.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/sinh/7bb598.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void sinh_7bb598() {
-  float res = 1.175201178f;
+  float res = 1.17520117759704589844f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/sinh/924f19.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/sinh/924f19.wgsl.expected.dxc.hlsl
index 051609e..6a7fb59 100644
--- a/test/tint/builtins/gen/literal/sinh/924f19.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sinh/924f19.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void sinh_924f19() {
-  vector<float16_t, 2> res = (float16_t(1.174804688h)).xx;
+  vector<float16_t, 2> res = (float16_t(1.1748046875h)).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/sinh/924f19.wgsl.expected.glsl b/test/tint/builtins/gen/literal/sinh/924f19.wgsl.expected.glsl
index c651991..a0d98d8 100644
--- a/test/tint/builtins/gen/literal/sinh/924f19.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/sinh/924f19.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void sinh_924f19() {
-  f16vec2 res = f16vec2(1.174804688hf);
+  f16vec2 res = f16vec2(1.1748046875hf);
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 precision mediump float;
 
 void sinh_924f19() {
-  f16vec2 res = f16vec2(1.174804688hf);
+  f16vec2 res = f16vec2(1.1748046875hf);
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void sinh_924f19() {
-  f16vec2 res = f16vec2(1.174804688hf);
+  f16vec2 res = f16vec2(1.1748046875hf);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/sinh/924f19.wgsl.expected.msl b/test/tint/builtins/gen/literal/sinh/924f19.wgsl.expected.msl
index db1590e..69521ba 100644
--- a/test/tint/builtins/gen/literal/sinh/924f19.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/sinh/924f19.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void sinh_924f19() {
-  half2 res = half2(1.174804688h);
+  half2 res = half2(1.1748046875h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/sinh/9c1092.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/sinh/9c1092.wgsl.expected.dxc.hlsl
index 9aef2e9..f87b31d 100644
--- a/test/tint/builtins/gen/literal/sinh/9c1092.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sinh/9c1092.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void sinh_9c1092() {
-  float2 res = (1.175201178f).xx;
+  float2 res = (1.17520117759704589844f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/sinh/9c1092.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/sinh/9c1092.wgsl.expected.fxc.hlsl
index 9aef2e9..f87b31d 100644
--- a/test/tint/builtins/gen/literal/sinh/9c1092.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sinh/9c1092.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void sinh_9c1092() {
-  float2 res = (1.175201178f).xx;
+  float2 res = (1.17520117759704589844f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/sinh/9c1092.wgsl.expected.glsl b/test/tint/builtins/gen/literal/sinh/9c1092.wgsl.expected.glsl
index f6a45bd..725e252 100644
--- a/test/tint/builtins/gen/literal/sinh/9c1092.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/sinh/9c1092.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void sinh_9c1092() {
-  vec2 res = vec2(1.175201178f);
+  vec2 res = vec2(1.17520117759704589844f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void sinh_9c1092() {
-  vec2 res = vec2(1.175201178f);
+  vec2 res = vec2(1.17520117759704589844f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void sinh_9c1092() {
-  vec2 res = vec2(1.175201178f);
+  vec2 res = vec2(1.17520117759704589844f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/sinh/9c1092.wgsl.expected.msl b/test/tint/builtins/gen/literal/sinh/9c1092.wgsl.expected.msl
index 04d9187..c5abd6e4 100644
--- a/test/tint/builtins/gen/literal/sinh/9c1092.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/sinh/9c1092.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void sinh_9c1092() {
-  float2 res = float2(1.175201178f);
+  float2 res = float2(1.17520117759704589844f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/sinh/a3da7c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/sinh/a3da7c.wgsl.expected.dxc.hlsl
index 32eaad5..432b95d 100644
--- a/test/tint/builtins/gen/literal/sinh/a3da7c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sinh/a3da7c.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void sinh_a3da7c() {
-  float4 res = (1.175201178f).xxxx;
+  float4 res = (1.17520117759704589844f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/sinh/a3da7c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/sinh/a3da7c.wgsl.expected.fxc.hlsl
index 32eaad5..432b95d 100644
--- a/test/tint/builtins/gen/literal/sinh/a3da7c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sinh/a3da7c.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void sinh_a3da7c() {
-  float4 res = (1.175201178f).xxxx;
+  float4 res = (1.17520117759704589844f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/sinh/a3da7c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/sinh/a3da7c.wgsl.expected.glsl
index d0068d8..1a25c28 100644
--- a/test/tint/builtins/gen/literal/sinh/a3da7c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/sinh/a3da7c.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void sinh_a3da7c() {
-  vec4 res = vec4(1.175201178f);
+  vec4 res = vec4(1.17520117759704589844f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void sinh_a3da7c() {
-  vec4 res = vec4(1.175201178f);
+  vec4 res = vec4(1.17520117759704589844f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void sinh_a3da7c() {
-  vec4 res = vec4(1.175201178f);
+  vec4 res = vec4(1.17520117759704589844f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/sinh/a3da7c.wgsl.expected.msl b/test/tint/builtins/gen/literal/sinh/a3da7c.wgsl.expected.msl
index 2e9d194..468ea9c 100644
--- a/test/tint/builtins/gen/literal/sinh/a3da7c.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/sinh/a3da7c.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void sinh_a3da7c() {
-  float4 res = float4(1.175201178f);
+  float4 res = float4(1.17520117759704589844f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/sinh/b9860e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/sinh/b9860e.wgsl.expected.dxc.hlsl
index 2f9bb17..c4c5eef 100644
--- a/test/tint/builtins/gen/literal/sinh/b9860e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sinh/b9860e.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void sinh_b9860e() {
-  float2 res = (1.175201178f).xx;
+  float2 res = (1.17520117759704589844f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/sinh/b9860e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/sinh/b9860e.wgsl.expected.fxc.hlsl
index 2f9bb17..c4c5eef 100644
--- a/test/tint/builtins/gen/literal/sinh/b9860e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sinh/b9860e.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void sinh_b9860e() {
-  float2 res = (1.175201178f).xx;
+  float2 res = (1.17520117759704589844f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/sinh/b9860e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/sinh/b9860e.wgsl.expected.glsl
index b52b933..521ef12 100644
--- a/test/tint/builtins/gen/literal/sinh/b9860e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/sinh/b9860e.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void sinh_b9860e() {
-  vec2 res = vec2(1.175201178f);
+  vec2 res = vec2(1.17520117759704589844f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void sinh_b9860e() {
-  vec2 res = vec2(1.175201178f);
+  vec2 res = vec2(1.17520117759704589844f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void sinh_b9860e() {
-  vec2 res = vec2(1.175201178f);
+  vec2 res = vec2(1.17520117759704589844f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/sinh/b9860e.wgsl.expected.msl b/test/tint/builtins/gen/literal/sinh/b9860e.wgsl.expected.msl
index 3d4fb9b..6a4db89 100644
--- a/test/tint/builtins/gen/literal/sinh/b9860e.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/sinh/b9860e.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void sinh_b9860e() {
-  float2 res = float2(1.175201178f);
+  float2 res = float2(1.17520117759704589844f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/sinh/ba7e25.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/sinh/ba7e25.wgsl.expected.dxc.hlsl
index 3e7ff80..9686bbe 100644
--- a/test/tint/builtins/gen/literal/sinh/ba7e25.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sinh/ba7e25.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void sinh_ba7e25() {
-  vector<float16_t, 4> res = (float16_t(1.174804688h)).xxxx;
+  vector<float16_t, 4> res = (float16_t(1.1748046875h)).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/sinh/ba7e25.wgsl.expected.glsl b/test/tint/builtins/gen/literal/sinh/ba7e25.wgsl.expected.glsl
index 6a9a369..acddf06 100644
--- a/test/tint/builtins/gen/literal/sinh/ba7e25.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/sinh/ba7e25.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void sinh_ba7e25() {
-  f16vec4 res = f16vec4(1.174804688hf);
+  f16vec4 res = f16vec4(1.1748046875hf);
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 precision mediump float;
 
 void sinh_ba7e25() {
-  f16vec4 res = f16vec4(1.174804688hf);
+  f16vec4 res = f16vec4(1.1748046875hf);
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void sinh_ba7e25() {
-  f16vec4 res = f16vec4(1.174804688hf);
+  f16vec4 res = f16vec4(1.1748046875hf);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/sinh/ba7e25.wgsl.expected.msl b/test/tint/builtins/gen/literal/sinh/ba7e25.wgsl.expected.msl
index 897d183..92d4cdc 100644
--- a/test/tint/builtins/gen/literal/sinh/ba7e25.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/sinh/ba7e25.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void sinh_ba7e25() {
-  half4 res = half4(1.174804688h);
+  half4 res = half4(1.1748046875h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/sinh/c4df74.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/sinh/c4df74.wgsl.expected.dxc.hlsl
index 05a1561..493f629 100644
--- a/test/tint/builtins/gen/literal/sinh/c4df74.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sinh/c4df74.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void sinh_c4df74() {
-  float res = 1.175201178f;
+  float res = 1.17520117759704589844f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/sinh/c4df74.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/sinh/c4df74.wgsl.expected.fxc.hlsl
index 05a1561..493f629 100644
--- a/test/tint/builtins/gen/literal/sinh/c4df74.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sinh/c4df74.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void sinh_c4df74() {
-  float res = 1.175201178f;
+  float res = 1.17520117759704589844f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/sinh/c4df74.wgsl.expected.glsl b/test/tint/builtins/gen/literal/sinh/c4df74.wgsl.expected.glsl
index 49d4879..bfe94eae 100644
--- a/test/tint/builtins/gen/literal/sinh/c4df74.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/sinh/c4df74.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void sinh_c4df74() {
-  float res = 1.175201178f;
+  float res = 1.17520117759704589844f;
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void sinh_c4df74() {
-  float res = 1.175201178f;
+  float res = 1.17520117759704589844f;
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void sinh_c4df74() {
-  float res = 1.175201178f;
+  float res = 1.17520117759704589844f;
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/sinh/c4df74.wgsl.expected.msl b/test/tint/builtins/gen/literal/sinh/c4df74.wgsl.expected.msl
index 9cfbeae..cbe42f1 100644
--- a/test/tint/builtins/gen/literal/sinh/c4df74.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/sinh/c4df74.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void sinh_c4df74() {
-  float res = 1.175201178f;
+  float res = 1.17520117759704589844f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/sinh/c9a5eb.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/sinh/c9a5eb.wgsl.expected.dxc.hlsl
index d3d4751..96f66c9 100644
--- a/test/tint/builtins/gen/literal/sinh/c9a5eb.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sinh/c9a5eb.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void sinh_c9a5eb() {
-  float3 res = (1.175201178f).xxx;
+  float3 res = (1.17520117759704589844f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/sinh/c9a5eb.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/sinh/c9a5eb.wgsl.expected.fxc.hlsl
index d3d4751..96f66c9 100644
--- a/test/tint/builtins/gen/literal/sinh/c9a5eb.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sinh/c9a5eb.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void sinh_c9a5eb() {
-  float3 res = (1.175201178f).xxx;
+  float3 res = (1.17520117759704589844f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/sinh/c9a5eb.wgsl.expected.glsl b/test/tint/builtins/gen/literal/sinh/c9a5eb.wgsl.expected.glsl
index f497e71..845e739 100644
--- a/test/tint/builtins/gen/literal/sinh/c9a5eb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/sinh/c9a5eb.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void sinh_c9a5eb() {
-  vec3 res = vec3(1.175201178f);
+  vec3 res = vec3(1.17520117759704589844f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void sinh_c9a5eb() {
-  vec3 res = vec3(1.175201178f);
+  vec3 res = vec3(1.17520117759704589844f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void sinh_c9a5eb() {
-  vec3 res = vec3(1.175201178f);
+  vec3 res = vec3(1.17520117759704589844f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/sinh/c9a5eb.wgsl.expected.msl b/test/tint/builtins/gen/literal/sinh/c9a5eb.wgsl.expected.msl
index 4991e13..9649266 100644
--- a/test/tint/builtins/gen/literal/sinh/c9a5eb.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/sinh/c9a5eb.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void sinh_c9a5eb() {
-  float3 res = float3(1.175201178f);
+  float3 res = float3(1.17520117759704589844f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/tan/244e2a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/tan/244e2a.wgsl.expected.dxc.hlsl
index 5e87d82..de05419 100644
--- a/test/tint/builtins/gen/literal/tan/244e2a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/tan/244e2a.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void tan_244e2a() {
-  float4 res = (1.557407737f).xxxx;
+  float4 res = (1.55740773677825927734f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/tan/244e2a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/tan/244e2a.wgsl.expected.fxc.hlsl
index 5e87d82..de05419 100644
--- a/test/tint/builtins/gen/literal/tan/244e2a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/tan/244e2a.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void tan_244e2a() {
-  float4 res = (1.557407737f).xxxx;
+  float4 res = (1.55740773677825927734f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/tan/244e2a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/tan/244e2a.wgsl.expected.glsl
index c72c1bc..065546b 100644
--- a/test/tint/builtins/gen/literal/tan/244e2a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/tan/244e2a.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void tan_244e2a() {
-  vec4 res = vec4(1.557407737f);
+  vec4 res = vec4(1.55740773677825927734f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void tan_244e2a() {
-  vec4 res = vec4(1.557407737f);
+  vec4 res = vec4(1.55740773677825927734f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void tan_244e2a() {
-  vec4 res = vec4(1.557407737f);
+  vec4 res = vec4(1.55740773677825927734f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/tan/244e2a.wgsl.expected.msl b/test/tint/builtins/gen/literal/tan/244e2a.wgsl.expected.msl
index 89614e3..72269f4 100644
--- a/test/tint/builtins/gen/literal/tan/244e2a.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/tan/244e2a.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void tan_244e2a() {
-  float4 res = float4(1.557407737f);
+  float4 res = float4(1.55740773677825927734f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/tan/2f030e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/tan/2f030e.wgsl.expected.dxc.hlsl
index 29a7537..38e7ef5 100644
--- a/test/tint/builtins/gen/literal/tan/2f030e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/tan/2f030e.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void tan_2f030e() {
-  float res = 1.557407737f;
+  float res = 1.55740773677825927734f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/tan/2f030e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/tan/2f030e.wgsl.expected.fxc.hlsl
index 29a7537..38e7ef5 100644
--- a/test/tint/builtins/gen/literal/tan/2f030e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/tan/2f030e.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void tan_2f030e() {
-  float res = 1.557407737f;
+  float res = 1.55740773677825927734f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/tan/2f030e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/tan/2f030e.wgsl.expected.glsl
index c91a2de..d427fec 100644
--- a/test/tint/builtins/gen/literal/tan/2f030e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/tan/2f030e.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void tan_2f030e() {
-  float res = 1.557407737f;
+  float res = 1.55740773677825927734f;
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void tan_2f030e() {
-  float res = 1.557407737f;
+  float res = 1.55740773677825927734f;
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void tan_2f030e() {
-  float res = 1.557407737f;
+  float res = 1.55740773677825927734f;
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/tan/2f030e.wgsl.expected.msl b/test/tint/builtins/gen/literal/tan/2f030e.wgsl.expected.msl
index 61f231d..44e8f92 100644
--- a/test/tint/builtins/gen/literal/tan/2f030e.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/tan/2f030e.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void tan_2f030e() {
-  float res = 1.557407737f;
+  float res = 1.55740773677825927734f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/tan/311400.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/tan/311400.wgsl.expected.dxc.hlsl
index 0473e41..3401d98 100644
--- a/test/tint/builtins/gen/literal/tan/311400.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/tan/311400.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void tan_311400() {
-  float res = 1.557407737f;
+  float res = 1.55740773677825927734f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/tan/311400.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/tan/311400.wgsl.expected.fxc.hlsl
index 0473e41..3401d98 100644
--- a/test/tint/builtins/gen/literal/tan/311400.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/tan/311400.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void tan_311400() {
-  float res = 1.557407737f;
+  float res = 1.55740773677825927734f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/tan/311400.wgsl.expected.glsl b/test/tint/builtins/gen/literal/tan/311400.wgsl.expected.glsl
index a3a2a8f..fb990ea 100644
--- a/test/tint/builtins/gen/literal/tan/311400.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/tan/311400.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void tan_311400() {
-  float res = 1.557407737f;
+  float res = 1.55740773677825927734f;
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void tan_311400() {
-  float res = 1.557407737f;
+  float res = 1.55740773677825927734f;
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void tan_311400() {
-  float res = 1.557407737f;
+  float res = 1.55740773677825927734f;
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/tan/311400.wgsl.expected.msl b/test/tint/builtins/gen/literal/tan/311400.wgsl.expected.msl
index 91762c3..c8f7db6 100644
--- a/test/tint/builtins/gen/literal/tan/311400.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/tan/311400.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void tan_311400() {
-  float res = 1.557407737f;
+  float res = 1.55740773677825927734f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/tan/7be368.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/tan/7be368.wgsl.expected.dxc.hlsl
index 8e47663..853f844 100644
--- a/test/tint/builtins/gen/literal/tan/7be368.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/tan/7be368.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void tan_7be368() {
-  float2 res = (1.557407737f).xx;
+  float2 res = (1.55740773677825927734f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/tan/7be368.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/tan/7be368.wgsl.expected.fxc.hlsl
index 8e47663..853f844 100644
--- a/test/tint/builtins/gen/literal/tan/7be368.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/tan/7be368.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void tan_7be368() {
-  float2 res = (1.557407737f).xx;
+  float2 res = (1.55740773677825927734f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/tan/7be368.wgsl.expected.glsl b/test/tint/builtins/gen/literal/tan/7be368.wgsl.expected.glsl
index 32f4892..1ac28bd 100644
--- a/test/tint/builtins/gen/literal/tan/7be368.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/tan/7be368.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void tan_7be368() {
-  vec2 res = vec2(1.557407737f);
+  vec2 res = vec2(1.55740773677825927734f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void tan_7be368() {
-  vec2 res = vec2(1.557407737f);
+  vec2 res = vec2(1.55740773677825927734f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void tan_7be368() {
-  vec2 res = vec2(1.557407737f);
+  vec2 res = vec2(1.55740773677825927734f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/tan/7be368.wgsl.expected.msl b/test/tint/builtins/gen/literal/tan/7be368.wgsl.expected.msl
index 106ec06..38be7fd 100644
--- a/test/tint/builtins/gen/literal/tan/7be368.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/tan/7be368.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void tan_7be368() {
-  float2 res = float2(1.557407737f);
+  float2 res = float2(1.55740773677825927734f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/tan/7ea104.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/tan/7ea104.wgsl.expected.dxc.hlsl
index 15be1b3..80c489c 100644
--- a/test/tint/builtins/gen/literal/tan/7ea104.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/tan/7ea104.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void tan_7ea104() {
-  float3 res = (1.557407737f).xxx;
+  float3 res = (1.55740773677825927734f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/tan/7ea104.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/tan/7ea104.wgsl.expected.fxc.hlsl
index 15be1b3..80c489c 100644
--- a/test/tint/builtins/gen/literal/tan/7ea104.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/tan/7ea104.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void tan_7ea104() {
-  float3 res = (1.557407737f).xxx;
+  float3 res = (1.55740773677825927734f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/tan/7ea104.wgsl.expected.glsl b/test/tint/builtins/gen/literal/tan/7ea104.wgsl.expected.glsl
index cc4dcc1..bddb74b 100644
--- a/test/tint/builtins/gen/literal/tan/7ea104.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/tan/7ea104.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void tan_7ea104() {
-  vec3 res = vec3(1.557407737f);
+  vec3 res = vec3(1.55740773677825927734f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void tan_7ea104() {
-  vec3 res = vec3(1.557407737f);
+  vec3 res = vec3(1.55740773677825927734f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void tan_7ea104() {
-  vec3 res = vec3(1.557407737f);
+  vec3 res = vec3(1.55740773677825927734f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/tan/7ea104.wgsl.expected.msl b/test/tint/builtins/gen/literal/tan/7ea104.wgsl.expected.msl
index 8b61237..3de5a44 100644
--- a/test/tint/builtins/gen/literal/tan/7ea104.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/tan/7ea104.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void tan_7ea104() {
-  float3 res = float3(1.557407737f);
+  float3 res = float3(1.55740773677825927734f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/tan/8ce3e9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/tan/8ce3e9.wgsl.expected.dxc.hlsl
index 2ae30e9..1697a91 100644
--- a/test/tint/builtins/gen/literal/tan/8ce3e9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/tan/8ce3e9.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void tan_8ce3e9() {
-  float2 res = (1.557407737f).xx;
+  float2 res = (1.55740773677825927734f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/tan/8ce3e9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/tan/8ce3e9.wgsl.expected.fxc.hlsl
index 2ae30e9..1697a91 100644
--- a/test/tint/builtins/gen/literal/tan/8ce3e9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/tan/8ce3e9.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void tan_8ce3e9() {
-  float2 res = (1.557407737f).xx;
+  float2 res = (1.55740773677825927734f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/tan/8ce3e9.wgsl.expected.glsl b/test/tint/builtins/gen/literal/tan/8ce3e9.wgsl.expected.glsl
index de1d43b..eede9b1 100644
--- a/test/tint/builtins/gen/literal/tan/8ce3e9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/tan/8ce3e9.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void tan_8ce3e9() {
-  vec2 res = vec2(1.557407737f);
+  vec2 res = vec2(1.55740773677825927734f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void tan_8ce3e9() {
-  vec2 res = vec2(1.557407737f);
+  vec2 res = vec2(1.55740773677825927734f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void tan_8ce3e9() {
-  vec2 res = vec2(1.557407737f);
+  vec2 res = vec2(1.55740773677825927734f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/tan/8ce3e9.wgsl.expected.msl b/test/tint/builtins/gen/literal/tan/8ce3e9.wgsl.expected.msl
index f90db0d..6847444 100644
--- a/test/tint/builtins/gen/literal/tan/8ce3e9.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/tan/8ce3e9.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void tan_8ce3e9() {
-  float2 res = float2(1.557407737f);
+  float2 res = float2(1.55740773677825927734f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/tan/a0966f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/tan/a0966f.wgsl.expected.dxc.hlsl
index fcb1fb7..476c35f 100644
--- a/test/tint/builtins/gen/literal/tan/a0966f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/tan/a0966f.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void tan_a0966f() {
-  float4 res = (1.557407737f).xxxx;
+  float4 res = (1.55740773677825927734f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/tan/a0966f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/tan/a0966f.wgsl.expected.fxc.hlsl
index fcb1fb7..476c35f 100644
--- a/test/tint/builtins/gen/literal/tan/a0966f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/tan/a0966f.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void tan_a0966f() {
-  float4 res = (1.557407737f).xxxx;
+  float4 res = (1.55740773677825927734f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/tan/a0966f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/tan/a0966f.wgsl.expected.glsl
index ffdb301..5803b3a 100644
--- a/test/tint/builtins/gen/literal/tan/a0966f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/tan/a0966f.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void tan_a0966f() {
-  vec4 res = vec4(1.557407737f);
+  vec4 res = vec4(1.55740773677825927734f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void tan_a0966f() {
-  vec4 res = vec4(1.557407737f);
+  vec4 res = vec4(1.55740773677825927734f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void tan_a0966f() {
-  vec4 res = vec4(1.557407737f);
+  vec4 res = vec4(1.55740773677825927734f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/tan/a0966f.wgsl.expected.msl b/test/tint/builtins/gen/literal/tan/a0966f.wgsl.expected.msl
index 958b44b..35d33ed 100644
--- a/test/tint/builtins/gen/literal/tan/a0966f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/tan/a0966f.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void tan_a0966f() {
-  float4 res = float4(1.557407737f);
+  float4 res = float4(1.55740773677825927734f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/tan/ae26ae.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/tan/ae26ae.wgsl.expected.dxc.hlsl
index 3b0cc00..281ae97 100644
--- a/test/tint/builtins/gen/literal/tan/ae26ae.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/tan/ae26ae.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void tan_ae26ae() {
-  float3 res = (1.557407737f).xxx;
+  float3 res = (1.55740773677825927734f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/tan/ae26ae.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/tan/ae26ae.wgsl.expected.fxc.hlsl
index 3b0cc00..281ae97 100644
--- a/test/tint/builtins/gen/literal/tan/ae26ae.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/tan/ae26ae.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void tan_ae26ae() {
-  float3 res = (1.557407737f).xxx;
+  float3 res = (1.55740773677825927734f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/tan/ae26ae.wgsl.expected.glsl b/test/tint/builtins/gen/literal/tan/ae26ae.wgsl.expected.glsl
index bebd277..b920c44 100644
--- a/test/tint/builtins/gen/literal/tan/ae26ae.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/tan/ae26ae.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void tan_ae26ae() {
-  vec3 res = vec3(1.557407737f);
+  vec3 res = vec3(1.55740773677825927734f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void tan_ae26ae() {
-  vec3 res = vec3(1.557407737f);
+  vec3 res = vec3(1.55740773677825927734f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void tan_ae26ae() {
-  vec3 res = vec3(1.557407737f);
+  vec3 res = vec3(1.55740773677825927734f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/tan/ae26ae.wgsl.expected.msl b/test/tint/builtins/gen/literal/tan/ae26ae.wgsl.expected.msl
index 6f23097..7bb17f6 100644
--- a/test/tint/builtins/gen/literal/tan/ae26ae.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/tan/ae26ae.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void tan_ae26ae() {
-  float3 res = float3(1.557407737f);
+  float3 res = float3(1.55740773677825927734f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/tanh/06a4fe.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/tanh/06a4fe.wgsl.expected.dxc.hlsl
index d716d36..80169a4 100644
--- a/test/tint/builtins/gen/literal/tanh/06a4fe.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/tanh/06a4fe.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void tanh_06a4fe() {
-  vector<float16_t, 3> res = (float16_t(0.761230469h)).xxx;
+  vector<float16_t, 3> res = (float16_t(0.76123046875h)).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/tanh/06a4fe.wgsl.expected.glsl b/test/tint/builtins/gen/literal/tanh/06a4fe.wgsl.expected.glsl
index 99c867a..ab71629 100644
--- a/test/tint/builtins/gen/literal/tanh/06a4fe.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/tanh/06a4fe.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void tanh_06a4fe() {
-  f16vec3 res = f16vec3(0.761230469hf);
+  f16vec3 res = f16vec3(0.76123046875hf);
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 precision mediump float;
 
 void tanh_06a4fe() {
-  f16vec3 res = f16vec3(0.761230469hf);
+  f16vec3 res = f16vec3(0.76123046875hf);
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void tanh_06a4fe() {
-  f16vec3 res = f16vec3(0.761230469hf);
+  f16vec3 res = f16vec3(0.76123046875hf);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/tanh/06a4fe.wgsl.expected.msl b/test/tint/builtins/gen/literal/tanh/06a4fe.wgsl.expected.msl
index c398ee2..39f6cc3 100644
--- a/test/tint/builtins/gen/literal/tanh/06a4fe.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/tanh/06a4fe.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void tanh_06a4fe() {
-  half3 res = half3(0.761230469h);
+  half3 res = half3(0.76123046875h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/tanh/313aa1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/tanh/313aa1.wgsl.expected.dxc.hlsl
index 531d037..c10b04f 100644
--- a/test/tint/builtins/gen/literal/tanh/313aa1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/tanh/313aa1.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void tanh_313aa1() {
-  float res = 0.761594176f;
+  float res = 0.76159417629241943359f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/tanh/313aa1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/tanh/313aa1.wgsl.expected.fxc.hlsl
index 531d037..c10b04f 100644
--- a/test/tint/builtins/gen/literal/tanh/313aa1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/tanh/313aa1.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void tanh_313aa1() {
-  float res = 0.761594176f;
+  float res = 0.76159417629241943359f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/tanh/313aa1.wgsl.expected.glsl b/test/tint/builtins/gen/literal/tanh/313aa1.wgsl.expected.glsl
index 9a6f7ec..74033cd 100644
--- a/test/tint/builtins/gen/literal/tanh/313aa1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/tanh/313aa1.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void tanh_313aa1() {
-  float res = 0.761594176f;
+  float res = 0.76159417629241943359f;
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void tanh_313aa1() {
-  float res = 0.761594176f;
+  float res = 0.76159417629241943359f;
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void tanh_313aa1() {
-  float res = 0.761594176f;
+  float res = 0.76159417629241943359f;
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/tanh/313aa1.wgsl.expected.msl b/test/tint/builtins/gen/literal/tanh/313aa1.wgsl.expected.msl
index 36f2eb8..bc8a976 100644
--- a/test/tint/builtins/gen/literal/tanh/313aa1.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/tanh/313aa1.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void tanh_313aa1() {
-  float res = 0.761594176f;
+  float res = 0.76159417629241943359f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/tanh/5663c5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/tanh/5663c5.wgsl.expected.dxc.hlsl
index 4bb249b..aa453c1 100644
--- a/test/tint/builtins/gen/literal/tanh/5663c5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/tanh/5663c5.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void tanh_5663c5() {
-  float4 res = (0.761594176f).xxxx;
+  float4 res = (0.76159417629241943359f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/tanh/5663c5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/tanh/5663c5.wgsl.expected.fxc.hlsl
index 4bb249b..aa453c1 100644
--- a/test/tint/builtins/gen/literal/tanh/5663c5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/tanh/5663c5.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void tanh_5663c5() {
-  float4 res = (0.761594176f).xxxx;
+  float4 res = (0.76159417629241943359f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/tanh/5663c5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/tanh/5663c5.wgsl.expected.glsl
index 58f71df..8adbf50 100644
--- a/test/tint/builtins/gen/literal/tanh/5663c5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/tanh/5663c5.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void tanh_5663c5() {
-  vec4 res = vec4(0.761594176f);
+  vec4 res = vec4(0.76159417629241943359f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void tanh_5663c5() {
-  vec4 res = vec4(0.761594176f);
+  vec4 res = vec4(0.76159417629241943359f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void tanh_5663c5() {
-  vec4 res = vec4(0.761594176f);
+  vec4 res = vec4(0.76159417629241943359f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/tanh/5663c5.wgsl.expected.msl b/test/tint/builtins/gen/literal/tanh/5663c5.wgsl.expected.msl
index acc7d70..4b57e77 100644
--- a/test/tint/builtins/gen/literal/tanh/5663c5.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/tanh/5663c5.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void tanh_5663c5() {
-  float4 res = float4(0.761594176f);
+  float4 res = float4(0.76159417629241943359f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/tanh/5724b3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/tanh/5724b3.wgsl.expected.dxc.hlsl
index 8520148..b83cf25 100644
--- a/test/tint/builtins/gen/literal/tanh/5724b3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/tanh/5724b3.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void tanh_5724b3() {
-  float2 res = (0.761594176f).xx;
+  float2 res = (0.76159417629241943359f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/tanh/5724b3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/tanh/5724b3.wgsl.expected.fxc.hlsl
index 8520148..b83cf25 100644
--- a/test/tint/builtins/gen/literal/tanh/5724b3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/tanh/5724b3.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void tanh_5724b3() {
-  float2 res = (0.761594176f).xx;
+  float2 res = (0.76159417629241943359f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/tanh/5724b3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/tanh/5724b3.wgsl.expected.glsl
index 89e4115..506ecf9 100644
--- a/test/tint/builtins/gen/literal/tanh/5724b3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/tanh/5724b3.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void tanh_5724b3() {
-  vec2 res = vec2(0.761594176f);
+  vec2 res = vec2(0.76159417629241943359f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void tanh_5724b3() {
-  vec2 res = vec2(0.761594176f);
+  vec2 res = vec2(0.76159417629241943359f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void tanh_5724b3() {
-  vec2 res = vec2(0.761594176f);
+  vec2 res = vec2(0.76159417629241943359f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/tanh/5724b3.wgsl.expected.msl b/test/tint/builtins/gen/literal/tanh/5724b3.wgsl.expected.msl
index 4467340..bebf870 100644
--- a/test/tint/builtins/gen/literal/tanh/5724b3.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/tanh/5724b3.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void tanh_5724b3() {
-  float2 res = float2(0.761594176f);
+  float2 res = float2(0.76159417629241943359f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/tanh/5b19af.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/tanh/5b19af.wgsl.expected.dxc.hlsl
index 5cb27b6..7572be8 100644
--- a/test/tint/builtins/gen/literal/tanh/5b19af.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/tanh/5b19af.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void tanh_5b19af() {
-  float16_t res = float16_t(0.761230469h);
+  float16_t res = float16_t(0.76123046875h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/tanh/5b19af.wgsl.expected.glsl b/test/tint/builtins/gen/literal/tanh/5b19af.wgsl.expected.glsl
index 75ca685..1aff59f 100644
--- a/test/tint/builtins/gen/literal/tanh/5b19af.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/tanh/5b19af.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void tanh_5b19af() {
-  float16_t res = 0.761230469hf;
+  float16_t res = 0.76123046875hf;
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 precision mediump float;
 
 void tanh_5b19af() {
-  float16_t res = 0.761230469hf;
+  float16_t res = 0.76123046875hf;
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void tanh_5b19af() {
-  float16_t res = 0.761230469hf;
+  float16_t res = 0.76123046875hf;
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/tanh/5b19af.wgsl.expected.msl b/test/tint/builtins/gen/literal/tanh/5b19af.wgsl.expected.msl
index c6bc391..62d8460 100644
--- a/test/tint/builtins/gen/literal/tanh/5b19af.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/tanh/5b19af.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void tanh_5b19af() {
-  half res = 0.761230469h;
+  half res = 0.76123046875h;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/tanh/6289fd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/tanh/6289fd.wgsl.expected.dxc.hlsl
index b804dc3..7269f3f 100644
--- a/test/tint/builtins/gen/literal/tanh/6289fd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/tanh/6289fd.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void tanh_6289fd() {
-  float3 res = (0.761594176f).xxx;
+  float3 res = (0.76159417629241943359f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/tanh/6289fd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/tanh/6289fd.wgsl.expected.fxc.hlsl
index b804dc3..7269f3f 100644
--- a/test/tint/builtins/gen/literal/tanh/6289fd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/tanh/6289fd.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void tanh_6289fd() {
-  float3 res = (0.761594176f).xxx;
+  float3 res = (0.76159417629241943359f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/tanh/6289fd.wgsl.expected.glsl b/test/tint/builtins/gen/literal/tanh/6289fd.wgsl.expected.glsl
index b883e60..de224d7 100644
--- a/test/tint/builtins/gen/literal/tanh/6289fd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/tanh/6289fd.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void tanh_6289fd() {
-  vec3 res = vec3(0.761594176f);
+  vec3 res = vec3(0.76159417629241943359f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void tanh_6289fd() {
-  vec3 res = vec3(0.761594176f);
+  vec3 res = vec3(0.76159417629241943359f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void tanh_6289fd() {
-  vec3 res = vec3(0.761594176f);
+  vec3 res = vec3(0.76159417629241943359f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/tanh/6289fd.wgsl.expected.msl b/test/tint/builtins/gen/literal/tanh/6289fd.wgsl.expected.msl
index 491a4da..d324e64 100644
--- a/test/tint/builtins/gen/literal/tanh/6289fd.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/tanh/6289fd.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void tanh_6289fd() {
-  float3 res = float3(0.761594176f);
+  float3 res = float3(0.76159417629241943359f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/tanh/6d105a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/tanh/6d105a.wgsl.expected.dxc.hlsl
index aae259d..07100ef 100644
--- a/test/tint/builtins/gen/literal/tanh/6d105a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/tanh/6d105a.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void tanh_6d105a() {
-  vector<float16_t, 2> res = (float16_t(0.761230469h)).xx;
+  vector<float16_t, 2> res = (float16_t(0.76123046875h)).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/tanh/6d105a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/tanh/6d105a.wgsl.expected.glsl
index c0a57af..17e12eb 100644
--- a/test/tint/builtins/gen/literal/tanh/6d105a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/tanh/6d105a.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void tanh_6d105a() {
-  f16vec2 res = f16vec2(0.761230469hf);
+  f16vec2 res = f16vec2(0.76123046875hf);
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 precision mediump float;
 
 void tanh_6d105a() {
-  f16vec2 res = f16vec2(0.761230469hf);
+  f16vec2 res = f16vec2(0.76123046875hf);
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void tanh_6d105a() {
-  f16vec2 res = f16vec2(0.761230469hf);
+  f16vec2 res = f16vec2(0.76123046875hf);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/tanh/6d105a.wgsl.expected.msl b/test/tint/builtins/gen/literal/tanh/6d105a.wgsl.expected.msl
index b4c20c4..3a14e28 100644
--- a/test/tint/builtins/gen/literal/tanh/6d105a.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/tanh/6d105a.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void tanh_6d105a() {
-  half2 res = half2(0.761230469h);
+  half2 res = half2(0.76123046875h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/tanh/9f9fb9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/tanh/9f9fb9.wgsl.expected.dxc.hlsl
index 7a66c83..36f827b 100644
--- a/test/tint/builtins/gen/literal/tanh/9f9fb9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/tanh/9f9fb9.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void tanh_9f9fb9() {
-  float3 res = (0.761594176f).xxx;
+  float3 res = (0.76159417629241943359f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/tanh/9f9fb9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/tanh/9f9fb9.wgsl.expected.fxc.hlsl
index 7a66c83..36f827b 100644
--- a/test/tint/builtins/gen/literal/tanh/9f9fb9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/tanh/9f9fb9.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void tanh_9f9fb9() {
-  float3 res = (0.761594176f).xxx;
+  float3 res = (0.76159417629241943359f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/tanh/9f9fb9.wgsl.expected.glsl b/test/tint/builtins/gen/literal/tanh/9f9fb9.wgsl.expected.glsl
index 74d1a8f..33e666e 100644
--- a/test/tint/builtins/gen/literal/tanh/9f9fb9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/tanh/9f9fb9.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void tanh_9f9fb9() {
-  vec3 res = vec3(0.761594176f);
+  vec3 res = vec3(0.76159417629241943359f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void tanh_9f9fb9() {
-  vec3 res = vec3(0.761594176f);
+  vec3 res = vec3(0.76159417629241943359f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void tanh_9f9fb9() {
-  vec3 res = vec3(0.761594176f);
+  vec3 res = vec3(0.76159417629241943359f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/tanh/9f9fb9.wgsl.expected.msl b/test/tint/builtins/gen/literal/tanh/9f9fb9.wgsl.expected.msl
index 7b21791..0023996 100644
--- a/test/tint/builtins/gen/literal/tanh/9f9fb9.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/tanh/9f9fb9.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void tanh_9f9fb9() {
-  float3 res = float3(0.761594176f);
+  float3 res = float3(0.76159417629241943359f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/tanh/ac5d33.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/tanh/ac5d33.wgsl.expected.dxc.hlsl
index 1b0ad28..8f514b0 100644
--- a/test/tint/builtins/gen/literal/tanh/ac5d33.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/tanh/ac5d33.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void tanh_ac5d33() {
-  float4 res = (0.761594176f).xxxx;
+  float4 res = (0.76159417629241943359f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/tanh/ac5d33.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/tanh/ac5d33.wgsl.expected.fxc.hlsl
index 1b0ad28..8f514b0 100644
--- a/test/tint/builtins/gen/literal/tanh/ac5d33.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/tanh/ac5d33.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void tanh_ac5d33() {
-  float4 res = (0.761594176f).xxxx;
+  float4 res = (0.76159417629241943359f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/tanh/ac5d33.wgsl.expected.glsl b/test/tint/builtins/gen/literal/tanh/ac5d33.wgsl.expected.glsl
index 698681d..9687133 100644
--- a/test/tint/builtins/gen/literal/tanh/ac5d33.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/tanh/ac5d33.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void tanh_ac5d33() {
-  vec4 res = vec4(0.761594176f);
+  vec4 res = vec4(0.76159417629241943359f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void tanh_ac5d33() {
-  vec4 res = vec4(0.761594176f);
+  vec4 res = vec4(0.76159417629241943359f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void tanh_ac5d33() {
-  vec4 res = vec4(0.761594176f);
+  vec4 res = vec4(0.76159417629241943359f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/tanh/ac5d33.wgsl.expected.msl b/test/tint/builtins/gen/literal/tanh/ac5d33.wgsl.expected.msl
index a6e681d..385d435 100644
--- a/test/tint/builtins/gen/literal/tanh/ac5d33.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/tanh/ac5d33.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void tanh_ac5d33() {
-  float4 res = float4(0.761594176f);
+  float4 res = float4(0.76159417629241943359f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/tanh/c15fdb.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/tanh/c15fdb.wgsl.expected.dxc.hlsl
index 2d81f93..47810e7 100644
--- a/test/tint/builtins/gen/literal/tanh/c15fdb.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/tanh/c15fdb.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void tanh_c15fdb() {
-  float res = 0.761594176f;
+  float res = 0.76159417629241943359f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/tanh/c15fdb.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/tanh/c15fdb.wgsl.expected.fxc.hlsl
index 2d81f93..47810e7 100644
--- a/test/tint/builtins/gen/literal/tanh/c15fdb.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/tanh/c15fdb.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void tanh_c15fdb() {
-  float res = 0.761594176f;
+  float res = 0.76159417629241943359f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/tanh/c15fdb.wgsl.expected.glsl b/test/tint/builtins/gen/literal/tanh/c15fdb.wgsl.expected.glsl
index e0391d5..8255524 100644
--- a/test/tint/builtins/gen/literal/tanh/c15fdb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/tanh/c15fdb.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void tanh_c15fdb() {
-  float res = 0.761594176f;
+  float res = 0.76159417629241943359f;
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void tanh_c15fdb() {
-  float res = 0.761594176f;
+  float res = 0.76159417629241943359f;
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void tanh_c15fdb() {
-  float res = 0.761594176f;
+  float res = 0.76159417629241943359f;
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/tanh/c15fdb.wgsl.expected.msl b/test/tint/builtins/gen/literal/tanh/c15fdb.wgsl.expected.msl
index c10991e..1666182 100644
--- a/test/tint/builtins/gen/literal/tanh/c15fdb.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/tanh/c15fdb.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void tanh_c15fdb() {
-  float res = 0.761594176f;
+  float res = 0.76159417629241943359f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/tanh/c48aa6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/tanh/c48aa6.wgsl.expected.dxc.hlsl
index 39bb4df..e8c8480 100644
--- a/test/tint/builtins/gen/literal/tanh/c48aa6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/tanh/c48aa6.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void tanh_c48aa6() {
-  float2 res = (0.761594176f).xx;
+  float2 res = (0.76159417629241943359f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/tanh/c48aa6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/tanh/c48aa6.wgsl.expected.fxc.hlsl
index 39bb4df..e8c8480 100644
--- a/test/tint/builtins/gen/literal/tanh/c48aa6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/tanh/c48aa6.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void tanh_c48aa6() {
-  float2 res = (0.761594176f).xx;
+  float2 res = (0.76159417629241943359f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/tanh/c48aa6.wgsl.expected.glsl b/test/tint/builtins/gen/literal/tanh/c48aa6.wgsl.expected.glsl
index fe899fa..767b82c 100644
--- a/test/tint/builtins/gen/literal/tanh/c48aa6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/tanh/c48aa6.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void tanh_c48aa6() {
-  vec2 res = vec2(0.761594176f);
+  vec2 res = vec2(0.76159417629241943359f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void tanh_c48aa6() {
-  vec2 res = vec2(0.761594176f);
+  vec2 res = vec2(0.76159417629241943359f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void tanh_c48aa6() {
-  vec2 res = vec2(0.761594176f);
+  vec2 res = vec2(0.76159417629241943359f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/tanh/c48aa6.wgsl.expected.msl b/test/tint/builtins/gen/literal/tanh/c48aa6.wgsl.expected.msl
index 49ccdba..2826d37 100644
--- a/test/tint/builtins/gen/literal/tanh/c48aa6.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/tanh/c48aa6.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void tanh_c48aa6() {
-  float2 res = float2(0.761594176f);
+  float2 res = float2(0.76159417629241943359f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/tanh/e8efb3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/tanh/e8efb3.wgsl.expected.dxc.hlsl
index 19315cc..9272ad6 100644
--- a/test/tint/builtins/gen/literal/tanh/e8efb3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/tanh/e8efb3.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void tanh_e8efb3() {
-  vector<float16_t, 4> res = (float16_t(0.761230469h)).xxxx;
+  vector<float16_t, 4> res = (float16_t(0.76123046875h)).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/tanh/e8efb3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/tanh/e8efb3.wgsl.expected.glsl
index 53cdc2c..c144c38 100644
--- a/test/tint/builtins/gen/literal/tanh/e8efb3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/tanh/e8efb3.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void tanh_e8efb3() {
-  f16vec4 res = f16vec4(0.761230469hf);
+  f16vec4 res = f16vec4(0.76123046875hf);
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 precision mediump float;
 
 void tanh_e8efb3() {
-  f16vec4 res = f16vec4(0.761230469hf);
+  f16vec4 res = f16vec4(0.76123046875hf);
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void tanh_e8efb3() {
-  f16vec4 res = f16vec4(0.761230469hf);
+  f16vec4 res = f16vec4(0.76123046875hf);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/tanh/e8efb3.wgsl.expected.msl b/test/tint/builtins/gen/literal/tanh/e8efb3.wgsl.expected.msl
index 215aedb..abae79e 100644
--- a/test/tint/builtins/gen/literal/tanh/e8efb3.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/tanh/e8efb3.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void tanh_e8efb3() {
-  half4 res = half4(0.761230469h);
+  half4 res = half4(0.76123046875h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/unpack2x16float/32a5cf.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/unpack2x16float/32a5cf.wgsl.expected.dxc.hlsl
index e93690f..725b54d 100644
--- a/test/tint/builtins/gen/literal/unpack2x16float/32a5cf.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/unpack2x16float/32a5cf.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void unpack2x16float_32a5cf() {
-  float2 res = float2(5.96046448e-08f, 0.0f);
+  float2 res = float2(0.00000005960464477539f, 0.0f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/unpack2x16float/32a5cf.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/unpack2x16float/32a5cf.wgsl.expected.fxc.hlsl
index e93690f..725b54d 100644
--- a/test/tint/builtins/gen/literal/unpack2x16float/32a5cf.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/unpack2x16float/32a5cf.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void unpack2x16float_32a5cf() {
-  float2 res = float2(5.96046448e-08f, 0.0f);
+  float2 res = float2(0.00000005960464477539f, 0.0f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/unpack2x16float/32a5cf.wgsl.expected.glsl b/test/tint/builtins/gen/literal/unpack2x16float/32a5cf.wgsl.expected.glsl
index 0151e43..443a36f 100644
--- a/test/tint/builtins/gen/literal/unpack2x16float/32a5cf.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/unpack2x16float/32a5cf.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void unpack2x16float_32a5cf() {
-  vec2 res = vec2(5.96046448e-08f, 0.0f);
+  vec2 res = vec2(0.00000005960464477539f, 0.0f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void unpack2x16float_32a5cf() {
-  vec2 res = vec2(5.96046448e-08f, 0.0f);
+  vec2 res = vec2(0.00000005960464477539f, 0.0f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void unpack2x16float_32a5cf() {
-  vec2 res = vec2(5.96046448e-08f, 0.0f);
+  vec2 res = vec2(0.00000005960464477539f, 0.0f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/unpack2x16float/32a5cf.wgsl.expected.msl b/test/tint/builtins/gen/literal/unpack2x16float/32a5cf.wgsl.expected.msl
index fae1c5a..f70f80a 100644
--- a/test/tint/builtins/gen/literal/unpack2x16float/32a5cf.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/unpack2x16float/32a5cf.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void unpack2x16float_32a5cf() {
-  float2 res = float2(5.96046448e-08f, 0.0f);
+  float2 res = float2(0.00000005960464477539f, 0.0f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/unpack2x16snorm/b4aea6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/unpack2x16snorm/b4aea6.wgsl.expected.dxc.hlsl
index c19aff6..3e34800 100644
--- a/test/tint/builtins/gen/literal/unpack2x16snorm/b4aea6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/unpack2x16snorm/b4aea6.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void unpack2x16snorm_b4aea6() {
-  float2 res = float2(3.05185094e-05f, 0.0f);
+  float2 res = float2(0.00003051850944757462f, 0.0f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/unpack2x16snorm/b4aea6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/unpack2x16snorm/b4aea6.wgsl.expected.fxc.hlsl
index c19aff6..3e34800 100644
--- a/test/tint/builtins/gen/literal/unpack2x16snorm/b4aea6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/unpack2x16snorm/b4aea6.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void unpack2x16snorm_b4aea6() {
-  float2 res = float2(3.05185094e-05f, 0.0f);
+  float2 res = float2(0.00003051850944757462f, 0.0f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/unpack2x16snorm/b4aea6.wgsl.expected.glsl b/test/tint/builtins/gen/literal/unpack2x16snorm/b4aea6.wgsl.expected.glsl
index 9311736..96060f5 100644
--- a/test/tint/builtins/gen/literal/unpack2x16snorm/b4aea6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/unpack2x16snorm/b4aea6.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void unpack2x16snorm_b4aea6() {
-  vec2 res = vec2(3.05185094e-05f, 0.0f);
+  vec2 res = vec2(0.00003051850944757462f, 0.0f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void unpack2x16snorm_b4aea6() {
-  vec2 res = vec2(3.05185094e-05f, 0.0f);
+  vec2 res = vec2(0.00003051850944757462f, 0.0f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void unpack2x16snorm_b4aea6() {
-  vec2 res = vec2(3.05185094e-05f, 0.0f);
+  vec2 res = vec2(0.00003051850944757462f, 0.0f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/unpack2x16snorm/b4aea6.wgsl.expected.msl b/test/tint/builtins/gen/literal/unpack2x16snorm/b4aea6.wgsl.expected.msl
index 5bf1fc4..6db7776 100644
--- a/test/tint/builtins/gen/literal/unpack2x16snorm/b4aea6.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/unpack2x16snorm/b4aea6.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void unpack2x16snorm_b4aea6() {
-  float2 res = float2(3.05185094e-05f, 0.0f);
+  float2 res = float2(0.00003051850944757462f, 0.0f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/unpack2x16unorm/7699c0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/unpack2x16unorm/7699c0.wgsl.expected.dxc.hlsl
index 77022d5..2933570 100644
--- a/test/tint/builtins/gen/literal/unpack2x16unorm/7699c0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/unpack2x16unorm/7699c0.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void unpack2x16unorm_7699c0() {
-  float2 res = float2(1.52590219e-05f, 0.0f);
+  float2 res = float2(0.00001525902189314365f, 0.0f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/unpack2x16unorm/7699c0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/unpack2x16unorm/7699c0.wgsl.expected.fxc.hlsl
index 77022d5..2933570 100644
--- a/test/tint/builtins/gen/literal/unpack2x16unorm/7699c0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/unpack2x16unorm/7699c0.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void unpack2x16unorm_7699c0() {
-  float2 res = float2(1.52590219e-05f, 0.0f);
+  float2 res = float2(0.00001525902189314365f, 0.0f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/unpack2x16unorm/7699c0.wgsl.expected.glsl b/test/tint/builtins/gen/literal/unpack2x16unorm/7699c0.wgsl.expected.glsl
index d783ce0e..c14494f 100644
--- a/test/tint/builtins/gen/literal/unpack2x16unorm/7699c0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/unpack2x16unorm/7699c0.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void unpack2x16unorm_7699c0() {
-  vec2 res = vec2(1.52590219e-05f, 0.0f);
+  vec2 res = vec2(0.00001525902189314365f, 0.0f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void unpack2x16unorm_7699c0() {
-  vec2 res = vec2(1.52590219e-05f, 0.0f);
+  vec2 res = vec2(0.00001525902189314365f, 0.0f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void unpack2x16unorm_7699c0() {
-  vec2 res = vec2(1.52590219e-05f, 0.0f);
+  vec2 res = vec2(0.00001525902189314365f, 0.0f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/unpack2x16unorm/7699c0.wgsl.expected.msl b/test/tint/builtins/gen/literal/unpack2x16unorm/7699c0.wgsl.expected.msl
index aff4473..2d3303a 100644
--- a/test/tint/builtins/gen/literal/unpack2x16unorm/7699c0.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/unpack2x16unorm/7699c0.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void unpack2x16unorm_7699c0() {
-  float2 res = float2(1.52590219e-05f, 0.0f);
+  float2 res = float2(0.00001525902189314365f, 0.0f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/unpack4x8snorm/523fb3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/unpack4x8snorm/523fb3.wgsl.expected.dxc.hlsl
index f932f45..c4befc5 100644
--- a/test/tint/builtins/gen/literal/unpack4x8snorm/523fb3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/unpack4x8snorm/523fb3.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void unpack4x8snorm_523fb3() {
-  float4 res = float4(0.007874016f, 0.0f, 0.0f, 0.0f);
+  float4 res = float4(0.00787401571869850159f, 0.0f, 0.0f, 0.0f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/unpack4x8snorm/523fb3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/unpack4x8snorm/523fb3.wgsl.expected.fxc.hlsl
index f932f45..c4befc5 100644
--- a/test/tint/builtins/gen/literal/unpack4x8snorm/523fb3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/unpack4x8snorm/523fb3.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void unpack4x8snorm_523fb3() {
-  float4 res = float4(0.007874016f, 0.0f, 0.0f, 0.0f);
+  float4 res = float4(0.00787401571869850159f, 0.0f, 0.0f, 0.0f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/unpack4x8snorm/523fb3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/unpack4x8snorm/523fb3.wgsl.expected.glsl
index 020cd3b..5366556 100644
--- a/test/tint/builtins/gen/literal/unpack4x8snorm/523fb3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/unpack4x8snorm/523fb3.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void unpack4x8snorm_523fb3() {
-  vec4 res = vec4(0.007874016f, 0.0f, 0.0f, 0.0f);
+  vec4 res = vec4(0.00787401571869850159f, 0.0f, 0.0f, 0.0f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void unpack4x8snorm_523fb3() {
-  vec4 res = vec4(0.007874016f, 0.0f, 0.0f, 0.0f);
+  vec4 res = vec4(0.00787401571869850159f, 0.0f, 0.0f, 0.0f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void unpack4x8snorm_523fb3() {
-  vec4 res = vec4(0.007874016f, 0.0f, 0.0f, 0.0f);
+  vec4 res = vec4(0.00787401571869850159f, 0.0f, 0.0f, 0.0f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/unpack4x8snorm/523fb3.wgsl.expected.msl b/test/tint/builtins/gen/literal/unpack4x8snorm/523fb3.wgsl.expected.msl
index 221fb62..2a8dbba 100644
--- a/test/tint/builtins/gen/literal/unpack4x8snorm/523fb3.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/unpack4x8snorm/523fb3.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void unpack4x8snorm_523fb3() {
-  float4 res = float4(0.007874016f, 0.0f, 0.0f, 0.0f);
+  float4 res = float4(0.00787401571869850159f, 0.0f, 0.0f, 0.0f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/unpack4x8unorm/750c74.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/unpack4x8unorm/750c74.wgsl.expected.dxc.hlsl
index a8fe133..17a3f97 100644
--- a/test/tint/builtins/gen/literal/unpack4x8unorm/750c74.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/unpack4x8unorm/750c74.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void unpack4x8unorm_750c74() {
-  float4 res = float4(0.003921569f, 0.0f, 0.0f, 0.0f);
+  float4 res = float4(0.0039215688593685627f, 0.0f, 0.0f, 0.0f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/unpack4x8unorm/750c74.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/unpack4x8unorm/750c74.wgsl.expected.fxc.hlsl
index a8fe133..17a3f97 100644
--- a/test/tint/builtins/gen/literal/unpack4x8unorm/750c74.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/unpack4x8unorm/750c74.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void unpack4x8unorm_750c74() {
-  float4 res = float4(0.003921569f, 0.0f, 0.0f, 0.0f);
+  float4 res = float4(0.0039215688593685627f, 0.0f, 0.0f, 0.0f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/unpack4x8unorm/750c74.wgsl.expected.glsl b/test/tint/builtins/gen/literal/unpack4x8unorm/750c74.wgsl.expected.glsl
index 51a36e5..418b297 100644
--- a/test/tint/builtins/gen/literal/unpack4x8unorm/750c74.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/unpack4x8unorm/750c74.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void unpack4x8unorm_750c74() {
-  vec4 res = vec4(0.003921569f, 0.0f, 0.0f, 0.0f);
+  vec4 res = vec4(0.0039215688593685627f, 0.0f, 0.0f, 0.0f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void unpack4x8unorm_750c74() {
-  vec4 res = vec4(0.003921569f, 0.0f, 0.0f, 0.0f);
+  vec4 res = vec4(0.0039215688593685627f, 0.0f, 0.0f, 0.0f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void unpack4x8unorm_750c74() {
-  vec4 res = vec4(0.003921569f, 0.0f, 0.0f, 0.0f);
+  vec4 res = vec4(0.0039215688593685627f, 0.0f, 0.0f, 0.0f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/unpack4x8unorm/750c74.wgsl.expected.msl b/test/tint/builtins/gen/literal/unpack4x8unorm/750c74.wgsl.expected.msl
index 0b46f34..6127018 100644
--- a/test/tint/builtins/gen/literal/unpack4x8unorm/750c74.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/unpack4x8unorm/750c74.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void unpack4x8unorm_750c74() {
-  float4 res = float4(0.003921569f, 0.0f, 0.0f, 0.0f);
+  float4 res = float4(0.0039215688593685627f, 0.0f, 0.0f, 0.0f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/acos/069188.wgsl.expected.wgsl b/test/tint/builtins/gen/var/acos/069188.wgsl.expected.wgsl
index 3f86871..e3a8162 100644
--- a/test/tint/builtins/gen/var/acos/069188.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/acos/069188.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn acos_069188() {
-  const arg_0 = vec3(0.96891242171000003);
+  const arg_0 = vec3(0.96891242171000002692);
   var res = acos(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/acos/15d35b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/acos/15d35b.wgsl.expected.wgsl
index 35f65c9..fe51140 100644
--- a/test/tint/builtins/gen/var/acos/15d35b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/acos/15d35b.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn acos_15d35b() {
-  const arg_0 = vec2(0.96891242171000003);
+  const arg_0 = vec2(0.96891242171000002692);
   var res = acos(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/acos/489247.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/acos/489247.wgsl.expected.dxc.hlsl
index 6511667..4981ad4 100644
--- a/test/tint/builtins/gen/var/acos/489247.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/acos/489247.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void acos_489247() {
-  float arg_0 = 0.968912423f;
+  float arg_0 = 0.96891242265701293945f;
   float res = acos(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/acos/489247.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/acos/489247.wgsl.expected.fxc.hlsl
index 6511667..4981ad4 100644
--- a/test/tint/builtins/gen/var/acos/489247.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/acos/489247.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void acos_489247() {
-  float arg_0 = 0.968912423f;
+  float arg_0 = 0.96891242265701293945f;
   float res = acos(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/acos/489247.wgsl.expected.glsl b/test/tint/builtins/gen/var/acos/489247.wgsl.expected.glsl
index 97c41de..a3df677 100644
--- a/test/tint/builtins/gen/var/acos/489247.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/acos/489247.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void acos_489247() {
-  float arg_0 = 0.968912423f;
+  float arg_0 = 0.96891242265701293945f;
   float res = acos(arg_0);
 }
 
@@ -22,7 +22,7 @@
 precision mediump float;
 
 void acos_489247() {
-  float arg_0 = 0.968912423f;
+  float arg_0 = 0.96891242265701293945f;
   float res = acos(arg_0);
 }
 
@@ -37,7 +37,7 @@
 #version 310 es
 
 void acos_489247() {
-  float arg_0 = 0.968912423f;
+  float arg_0 = 0.96891242265701293945f;
   float res = acos(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/acos/489247.wgsl.expected.msl b/test/tint/builtins/gen/var/acos/489247.wgsl.expected.msl
index 88a49ef..58bb57f 100644
--- a/test/tint/builtins/gen/var/acos/489247.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/acos/489247.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void acos_489247() {
-  float arg_0 = 0.968912423f;
+  float arg_0 = 0.96891242265701293945f;
   float res = acos(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/acos/489247.wgsl.expected.wgsl b/test/tint/builtins/gen/var/acos/489247.wgsl.expected.wgsl
index fb42815..f24aa65 100644
--- a/test/tint/builtins/gen/var/acos/489247.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/acos/489247.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn acos_489247() {
-  var arg_0 = 0.968912423f;
+  var arg_0 = 0.96891242265701293945f;
   var res : f32 = acos(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/acos/4dac75.wgsl.expected.wgsl b/test/tint/builtins/gen/var/acos/4dac75.wgsl.expected.wgsl
index cfb28b2..cca9d4a 100644
--- a/test/tint/builtins/gen/var/acos/4dac75.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/acos/4dac75.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn acos_4dac75() {
-  const arg_0 = vec4(0.96891242171000003);
+  const arg_0 = vec4(0.96891242171000002692);
   var res = acos(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/acos/5e9ad2.wgsl.expected.wgsl b/test/tint/builtins/gen/var/acos/5e9ad2.wgsl.expected.wgsl
index 46b31ba..63b271c 100644
--- a/test/tint/builtins/gen/var/acos/5e9ad2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/acos/5e9ad2.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn acos_5e9ad2() {
-  const arg_0 = 0.96891242171000003;
+  const arg_0 = 0.96891242171000002692;
   var res = acos(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/acos/8e2acf.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/acos/8e2acf.wgsl.expected.dxc.hlsl
index 377f210..132d051 100644
--- a/test/tint/builtins/gen/var/acos/8e2acf.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/acos/8e2acf.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void acos_8e2acf() {
-  float4 arg_0 = (0.968912423f).xxxx;
+  float4 arg_0 = (0.96891242265701293945f).xxxx;
   float4 res = acos(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/acos/8e2acf.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/acos/8e2acf.wgsl.expected.fxc.hlsl
index 377f210..132d051 100644
--- a/test/tint/builtins/gen/var/acos/8e2acf.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/acos/8e2acf.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void acos_8e2acf() {
-  float4 arg_0 = (0.968912423f).xxxx;
+  float4 arg_0 = (0.96891242265701293945f).xxxx;
   float4 res = acos(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/acos/8e2acf.wgsl.expected.glsl b/test/tint/builtins/gen/var/acos/8e2acf.wgsl.expected.glsl
index a532582..e38ef29 100644
--- a/test/tint/builtins/gen/var/acos/8e2acf.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/acos/8e2acf.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void acos_8e2acf() {
-  vec4 arg_0 = vec4(0.968912423f);
+  vec4 arg_0 = vec4(0.96891242265701293945f);
   vec4 res = acos(arg_0);
 }
 
@@ -22,7 +22,7 @@
 precision mediump float;
 
 void acos_8e2acf() {
-  vec4 arg_0 = vec4(0.968912423f);
+  vec4 arg_0 = vec4(0.96891242265701293945f);
   vec4 res = acos(arg_0);
 }
 
@@ -37,7 +37,7 @@
 #version 310 es
 
 void acos_8e2acf() {
-  vec4 arg_0 = vec4(0.968912423f);
+  vec4 arg_0 = vec4(0.96891242265701293945f);
   vec4 res = acos(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/acos/8e2acf.wgsl.expected.msl b/test/tint/builtins/gen/var/acos/8e2acf.wgsl.expected.msl
index 9948dfe..cb5678b 100644
--- a/test/tint/builtins/gen/var/acos/8e2acf.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/acos/8e2acf.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void acos_8e2acf() {
-  float4 arg_0 = float4(0.968912423f);
+  float4 arg_0 = float4(0.96891242265701293945f);
   float4 res = acos(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/acos/8e2acf.wgsl.expected.wgsl b/test/tint/builtins/gen/var/acos/8e2acf.wgsl.expected.wgsl
index 7b9cd99..382a167 100644
--- a/test/tint/builtins/gen/var/acos/8e2acf.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/acos/8e2acf.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn acos_8e2acf() {
-  var arg_0 = vec4<f32>(0.968912423f);
+  var arg_0 = vec4<f32>(0.96891242265701293945f);
   var res : vec4<f32> = acos(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/acos/a610c4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/acos/a610c4.wgsl.expected.dxc.hlsl
index da06d7c..f58321b 100644
--- a/test/tint/builtins/gen/var/acos/a610c4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/acos/a610c4.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void acos_a610c4() {
-  float3 arg_0 = (0.968912423f).xxx;
+  float3 arg_0 = (0.96891242265701293945f).xxx;
   float3 res = acos(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/acos/a610c4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/acos/a610c4.wgsl.expected.fxc.hlsl
index da06d7c..f58321b 100644
--- a/test/tint/builtins/gen/var/acos/a610c4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/acos/a610c4.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void acos_a610c4() {
-  float3 arg_0 = (0.968912423f).xxx;
+  float3 arg_0 = (0.96891242265701293945f).xxx;
   float3 res = acos(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/acos/a610c4.wgsl.expected.glsl b/test/tint/builtins/gen/var/acos/a610c4.wgsl.expected.glsl
index ccb75ac..8ac0fa0 100644
--- a/test/tint/builtins/gen/var/acos/a610c4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/acos/a610c4.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void acos_a610c4() {
-  vec3 arg_0 = vec3(0.968912423f);
+  vec3 arg_0 = vec3(0.96891242265701293945f);
   vec3 res = acos(arg_0);
 }
 
@@ -22,7 +22,7 @@
 precision mediump float;
 
 void acos_a610c4() {
-  vec3 arg_0 = vec3(0.968912423f);
+  vec3 arg_0 = vec3(0.96891242265701293945f);
   vec3 res = acos(arg_0);
 }
 
@@ -37,7 +37,7 @@
 #version 310 es
 
 void acos_a610c4() {
-  vec3 arg_0 = vec3(0.968912423f);
+  vec3 arg_0 = vec3(0.96891242265701293945f);
   vec3 res = acos(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/acos/a610c4.wgsl.expected.msl b/test/tint/builtins/gen/var/acos/a610c4.wgsl.expected.msl
index fec82f5..1da585a 100644
--- a/test/tint/builtins/gen/var/acos/a610c4.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/acos/a610c4.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void acos_a610c4() {
-  float3 arg_0 = float3(0.968912423f);
+  float3 arg_0 = float3(0.96891242265701293945f);
   float3 res = acos(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/acos/a610c4.wgsl.expected.wgsl b/test/tint/builtins/gen/var/acos/a610c4.wgsl.expected.wgsl
index eaade09..5407c8f 100644
--- a/test/tint/builtins/gen/var/acos/a610c4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/acos/a610c4.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn acos_a610c4() {
-  var arg_0 = vec3<f32>(0.968912423f);
+  var arg_0 = vec3<f32>(0.96891242265701293945f);
   var res : vec3<f32> = acos(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/acos/dfc915.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/acos/dfc915.wgsl.expected.dxc.hlsl
index 38ee5b3..b375306 100644
--- a/test/tint/builtins/gen/var/acos/dfc915.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/acos/dfc915.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void acos_dfc915() {
-  float2 arg_0 = (0.968912423f).xx;
+  float2 arg_0 = (0.96891242265701293945f).xx;
   float2 res = acos(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/acos/dfc915.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/acos/dfc915.wgsl.expected.fxc.hlsl
index 38ee5b3..b375306 100644
--- a/test/tint/builtins/gen/var/acos/dfc915.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/acos/dfc915.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void acos_dfc915() {
-  float2 arg_0 = (0.968912423f).xx;
+  float2 arg_0 = (0.96891242265701293945f).xx;
   float2 res = acos(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/acos/dfc915.wgsl.expected.glsl b/test/tint/builtins/gen/var/acos/dfc915.wgsl.expected.glsl
index 0ae53a7..3cc6415 100644
--- a/test/tint/builtins/gen/var/acos/dfc915.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/acos/dfc915.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void acos_dfc915() {
-  vec2 arg_0 = vec2(0.968912423f);
+  vec2 arg_0 = vec2(0.96891242265701293945f);
   vec2 res = acos(arg_0);
 }
 
@@ -22,7 +22,7 @@
 precision mediump float;
 
 void acos_dfc915() {
-  vec2 arg_0 = vec2(0.968912423f);
+  vec2 arg_0 = vec2(0.96891242265701293945f);
   vec2 res = acos(arg_0);
 }
 
@@ -37,7 +37,7 @@
 #version 310 es
 
 void acos_dfc915() {
-  vec2 arg_0 = vec2(0.968912423f);
+  vec2 arg_0 = vec2(0.96891242265701293945f);
   vec2 res = acos(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/acos/dfc915.wgsl.expected.msl b/test/tint/builtins/gen/var/acos/dfc915.wgsl.expected.msl
index 6992e2e..32e6662 100644
--- a/test/tint/builtins/gen/var/acos/dfc915.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/acos/dfc915.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void acos_dfc915() {
-  float2 arg_0 = float2(0.968912423f);
+  float2 arg_0 = float2(0.96891242265701293945f);
   float2 res = acos(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/acos/dfc915.wgsl.expected.wgsl b/test/tint/builtins/gen/var/acos/dfc915.wgsl.expected.wgsl
index 29d05ac..7af1a8c 100644
--- a/test/tint/builtins/gen/var/acos/dfc915.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/acos/dfc915.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn acos_dfc915() {
-  var arg_0 = vec2<f32>(0.968912423f);
+  var arg_0 = vec2<f32>(0.96891242265701293945f);
   var res : vec2<f32> = acos(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/acosh/17260e.wgsl b/test/tint/builtins/gen/var/acosh/17260e.wgsl
index b08c369..af65dcc 100644
--- a/test/tint/builtins/gen/var/acosh/17260e.wgsl
+++ b/test/tint/builtins/gen/var/acosh/17260e.wgsl
@@ -23,7 +23,7 @@
 
 // fn acosh(vec<2, fa>) -> vec<2, fa>
 fn acosh_17260e() {
-  const arg_0 = vec2(2.);
+  const arg_0 = vec2(1.5430806348);
   var res = acosh(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/acosh/17260e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/acosh/17260e.wgsl.expected.dxc.hlsl
index df4361d..2585c3d 100644
--- a/test/tint/builtins/gen/var/acosh/17260e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/acosh/17260e.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void acosh_17260e() {
-  float2 res = (1.316957951f).xx;
+  float2 res = (1.0f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/acosh/17260e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/acosh/17260e.wgsl.expected.fxc.hlsl
index df4361d..2585c3d 100644
--- a/test/tint/builtins/gen/var/acosh/17260e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/acosh/17260e.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void acosh_17260e() {
-  float2 res = (1.316957951f).xx;
+  float2 res = (1.0f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/acosh/17260e.wgsl.expected.glsl b/test/tint/builtins/gen/var/acosh/17260e.wgsl.expected.glsl
index ccd2b03..cc419fd 100644
--- a/test/tint/builtins/gen/var/acosh/17260e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/acosh/17260e.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void acosh_17260e() {
-  vec2 res = vec2(1.316957951f);
+  vec2 res = vec2(1.0f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void acosh_17260e() {
-  vec2 res = vec2(1.316957951f);
+  vec2 res = vec2(1.0f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void acosh_17260e() {
-  vec2 res = vec2(1.316957951f);
+  vec2 res = vec2(1.0f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/acosh/17260e.wgsl.expected.msl b/test/tint/builtins/gen/var/acosh/17260e.wgsl.expected.msl
index a279c86..1bbb7fd 100644
--- a/test/tint/builtins/gen/var/acosh/17260e.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/acosh/17260e.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void acosh_17260e() {
-  float2 res = float2(1.316957951f);
+  float2 res = float2(1.0f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/acosh/17260e.wgsl.expected.spvasm b/test/tint/builtins/gen/var/acosh/17260e.wgsl.expected.spvasm
index 83ef32a..3604454 100644
--- a/test/tint/builtins/gen/var/acosh/17260e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/acosh/17260e.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 33
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -31,12 +31,11 @@
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-%float_1_31695795 = OpConstant %float 1.31695795
-         %15 = OpConstantComposite %v2float %float_1_31695795 %float_1_31695795
+    %float_1 = OpConstant %float 1
+         %15 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
          %18 = OpConstantNull %v2float
          %19 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
 %acosh_17260e = OpFunction %void None %9
          %12 = OpLabel
         %res = OpVariable %_ptr_Function_v2float Function %18
@@ -56,12 +55,12 @@
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %acosh_17260e
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %acosh_17260e
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %acosh_17260e
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %acosh_17260e
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/acosh/17260e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/acosh/17260e.wgsl.expected.wgsl
index a800387..4d5bc83 100644
--- a/test/tint/builtins/gen/var/acosh/17260e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/acosh/17260e.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn acosh_17260e() {
-  const arg_0 = vec2(2.0);
+  const arg_0 = vec2(1.54308063479999990619);
   var res = acosh(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/acosh/3433e8.wgsl b/test/tint/builtins/gen/var/acosh/3433e8.wgsl
index 3109164..e288842 100644
--- a/test/tint/builtins/gen/var/acosh/3433e8.wgsl
+++ b/test/tint/builtins/gen/var/acosh/3433e8.wgsl
@@ -23,7 +23,7 @@
 
 // fn acosh(fa) -> fa
 fn acosh_3433e8() {
-  const arg_0 = 2.;
+  const arg_0 = 1.5430806348;
   var res = acosh(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/acosh/3433e8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/acosh/3433e8.wgsl.expected.dxc.hlsl
index 4349e35..868a9af 100644
--- a/test/tint/builtins/gen/var/acosh/3433e8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/acosh/3433e8.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void acosh_3433e8() {
-  float res = 1.316957951f;
+  float res = 1.0f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/acosh/3433e8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/acosh/3433e8.wgsl.expected.fxc.hlsl
index 4349e35..868a9af 100644
--- a/test/tint/builtins/gen/var/acosh/3433e8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/acosh/3433e8.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void acosh_3433e8() {
-  float res = 1.316957951f;
+  float res = 1.0f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/acosh/3433e8.wgsl.expected.glsl b/test/tint/builtins/gen/var/acosh/3433e8.wgsl.expected.glsl
index f425b91..b1d4a3a 100644
--- a/test/tint/builtins/gen/var/acosh/3433e8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/acosh/3433e8.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void acosh_3433e8() {
-  float res = 1.316957951f;
+  float res = 1.0f;
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void acosh_3433e8() {
-  float res = 1.316957951f;
+  float res = 1.0f;
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void acosh_3433e8() {
-  float res = 1.316957951f;
+  float res = 1.0f;
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/acosh/3433e8.wgsl.expected.msl b/test/tint/builtins/gen/var/acosh/3433e8.wgsl.expected.msl
index 24bcb7d..edbcc9a 100644
--- a/test/tint/builtins/gen/var/acosh/3433e8.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/acosh/3433e8.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void acosh_3433e8() {
-  float res = 1.316957951f;
+  float res = 1.0f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/acosh/3433e8.wgsl.expected.spvasm b/test/tint/builtins/gen/var/acosh/3433e8.wgsl.expected.spvasm
index 8b4981f..31904ab 100644
--- a/test/tint/builtins/gen/var/acosh/3433e8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/acosh/3433e8.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 30
+; Bound: 29
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -30,14 +30,13 @@
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
-%float_1_31695795 = OpConstant %float 1.31695795
+    %float_1 = OpConstant %float 1
 %_ptr_Function_float = OpTypePointer Function %float
          %16 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
 %acosh_3433e8 = OpFunction %void None %9
          %12 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
-               OpStore %res %float_1_31695795
+               OpStore %res %float_1
                OpReturn
                OpFunctionEnd
 %vertex_main_inner = OpFunction %v4float None %16
@@ -53,12 +52,12 @@
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %25 = OpLabel
-         %26 = OpFunctionCall %void %acosh_3433e8
+         %24 = OpLabel
+         %25 = OpFunctionCall %void %acosh_3433e8
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %acosh_3433e8
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %acosh_3433e8
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/acosh/3433e8.wgsl.expected.wgsl b/test/tint/builtins/gen/var/acosh/3433e8.wgsl.expected.wgsl
index f2ce6f3..aab58ea 100644
--- a/test/tint/builtins/gen/var/acosh/3433e8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/acosh/3433e8.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn acosh_3433e8() {
-  const arg_0 = 2.0;
+  const arg_0 = 1.54308063479999990619;
   var res = acosh(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/acosh/490aae.wgsl b/test/tint/builtins/gen/var/acosh/490aae.wgsl
index 930de7b..5217c72 100644
--- a/test/tint/builtins/gen/var/acosh/490aae.wgsl
+++ b/test/tint/builtins/gen/var/acosh/490aae.wgsl
@@ -23,7 +23,7 @@
 
 // fn acosh(vec<4, fa>) -> vec<4, fa>
 fn acosh_490aae() {
-  const arg_0 = vec4(2.);
+  const arg_0 = vec4(1.5430806348);
   var res = acosh(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/acosh/490aae.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/acosh/490aae.wgsl.expected.dxc.hlsl
index ed15f7d..1799078 100644
--- a/test/tint/builtins/gen/var/acosh/490aae.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/acosh/490aae.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void acosh_490aae() {
-  float4 res = (1.316957951f).xxxx;
+  float4 res = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/acosh/490aae.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/acosh/490aae.wgsl.expected.fxc.hlsl
index ed15f7d..1799078 100644
--- a/test/tint/builtins/gen/var/acosh/490aae.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/acosh/490aae.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void acosh_490aae() {
-  float4 res = (1.316957951f).xxxx;
+  float4 res = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/acosh/490aae.wgsl.expected.glsl b/test/tint/builtins/gen/var/acosh/490aae.wgsl.expected.glsl
index 907f155..b5c0bd3 100644
--- a/test/tint/builtins/gen/var/acosh/490aae.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/acosh/490aae.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void acosh_490aae() {
-  vec4 res = vec4(1.316957951f);
+  vec4 res = vec4(1.0f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void acosh_490aae() {
-  vec4 res = vec4(1.316957951f);
+  vec4 res = vec4(1.0f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void acosh_490aae() {
-  vec4 res = vec4(1.316957951f);
+  vec4 res = vec4(1.0f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/acosh/490aae.wgsl.expected.msl b/test/tint/builtins/gen/var/acosh/490aae.wgsl.expected.msl
index d098c04..61dfb50 100644
--- a/test/tint/builtins/gen/var/acosh/490aae.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/acosh/490aae.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void acosh_490aae() {
-  float4 res = float4(1.316957951f);
+  float4 res = float4(1.0f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/acosh/490aae.wgsl.expected.spvasm b/test/tint/builtins/gen/var/acosh/490aae.wgsl.expected.spvasm
index 914b880..4e0f69b 100644
--- a/test/tint/builtins/gen/var/acosh/490aae.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/acosh/490aae.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 31
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -30,11 +30,10 @@
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
-%float_1_31695795 = OpConstant %float 1.31695795
-         %14 = OpConstantComposite %v4float %float_1_31695795 %float_1_31695795 %float_1_31695795 %float_1_31695795
+    %float_1 = OpConstant %float 1
+         %14 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
          %17 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
 %acosh_490aae = OpFunction %void None %9
          %12 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
@@ -54,12 +53,12 @@
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %acosh_490aae
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %acosh_490aae
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %acosh_490aae
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %acosh_490aae
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/acosh/490aae.wgsl.expected.wgsl b/test/tint/builtins/gen/var/acosh/490aae.wgsl.expected.wgsl
index 11342bd..34a6b89 100644
--- a/test/tint/builtins/gen/var/acosh/490aae.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/acosh/490aae.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn acosh_490aae() {
-  const arg_0 = vec4(2.0);
+  const arg_0 = vec4(1.54308063479999990619);
   var res = acosh(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/acosh/5f49d8.wgsl b/test/tint/builtins/gen/var/acosh/5f49d8.wgsl
index 99a67bc..8d46b27 100644
--- a/test/tint/builtins/gen/var/acosh/5f49d8.wgsl
+++ b/test/tint/builtins/gen/var/acosh/5f49d8.wgsl
@@ -25,7 +25,7 @@
 
 // fn acosh(vec<2, f16>) -> vec<2, f16>
 fn acosh_5f49d8() {
-  var arg_0 = vec2<f16>(2.h);
+  var arg_0 = vec2<f16>(1.5430806348h);
   var res: vec2<f16> = acosh(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/acosh/5f49d8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/acosh/5f49d8.wgsl.expected.dxc.hlsl
index b172fb5b..9969e1b 100644
--- a/test/tint/builtins/gen/var/acosh/5f49d8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/acosh/5f49d8.wgsl.expected.dxc.hlsl
@@ -3,7 +3,7 @@
 }
 
 void acosh_5f49d8() {
-  vector<float16_t, 2> arg_0 = (float16_t(2.0h)).xx;
+  vector<float16_t, 2> arg_0 = (float16_t(1.54296875h)).xx;
   vector<float16_t, 2> res = tint_acosh(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/acosh/5f49d8.wgsl.expected.glsl b/test/tint/builtins/gen/var/acosh/5f49d8.wgsl.expected.glsl
index bed92c5..296064f 100644
--- a/test/tint/builtins/gen/var/acosh/5f49d8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/acosh/5f49d8.wgsl.expected.glsl
@@ -6,7 +6,7 @@
 }
 
 void acosh_5f49d8() {
-  f16vec2 arg_0 = f16vec2(2.0hf);
+  f16vec2 arg_0 = f16vec2(1.54296875hf);
   f16vec2 res = tint_acosh(arg_0);
 }
 
@@ -32,7 +32,7 @@
 }
 
 void acosh_5f49d8() {
-  f16vec2 arg_0 = f16vec2(2.0hf);
+  f16vec2 arg_0 = f16vec2(1.54296875hf);
   f16vec2 res = tint_acosh(arg_0);
 }
 
@@ -52,7 +52,7 @@
 }
 
 void acosh_5f49d8() {
-  f16vec2 arg_0 = f16vec2(2.0hf);
+  f16vec2 arg_0 = f16vec2(1.54296875hf);
   f16vec2 res = tint_acosh(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/acosh/5f49d8.wgsl.expected.msl b/test/tint/builtins/gen/var/acosh/5f49d8.wgsl.expected.msl
index ba419ec..27b4676 100644
--- a/test/tint/builtins/gen/var/acosh/5f49d8.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/acosh/5f49d8.wgsl.expected.msl
@@ -6,7 +6,7 @@
 }
 
 void acosh_5f49d8() {
-  half2 arg_0 = half2(2.0h);
+  half2 arg_0 = half2(1.54296875h);
   half2 res = tint_acosh(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/acosh/5f49d8.wgsl.expected.spvasm b/test/tint/builtins/gen/var/acosh/5f49d8.wgsl.expected.spvasm
index fbe9926..11249cb 100644
--- a/test/tint/builtins/gen/var/acosh/5f49d8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/acosh/5f49d8.wgsl.expected.spvasm
@@ -46,8 +46,8 @@
          %21 = OpConstantNull %v2half
        %void = OpTypeVoid
          %24 = OpTypeFunction %void
-%half_0x1p_1 = OpConstant %half 0x1p+1
-         %29 = OpConstantComposite %v2half %half_0x1p_1 %half_0x1p_1
+%half_0x1_8bp_0 = OpConstant %half 0x1.8bp+0
+         %29 = OpConstantComposite %v2half %half_0x1_8bp_0 %half_0x1_8bp_0
 %_ptr_Function_v2half = OpTypePointer Function %v2half
          %35 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
diff --git a/test/tint/builtins/gen/var/acosh/5f49d8.wgsl.expected.wgsl b/test/tint/builtins/gen/var/acosh/5f49d8.wgsl.expected.wgsl
index 4935a9a..8643906 100644
--- a/test/tint/builtins/gen/var/acosh/5f49d8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/acosh/5f49d8.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 enable f16;
 
 fn acosh_5f49d8() {
-  var arg_0 = vec2<f16>(2.0h);
+  var arg_0 = vec2<f16>(1.54296875h);
   var res : vec2<f16> = acosh(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/acosh/640883.wgsl b/test/tint/builtins/gen/var/acosh/640883.wgsl
index de003ff..8f82ed6 100644
--- a/test/tint/builtins/gen/var/acosh/640883.wgsl
+++ b/test/tint/builtins/gen/var/acosh/640883.wgsl
@@ -23,7 +23,7 @@
 
 // fn acosh(vec<2, f32>) -> vec<2, f32>
 fn acosh_640883() {
-  var arg_0 = vec2<f32>(2.f);
+  var arg_0 = vec2<f32>(1.5430806348f);
   var res: vec2<f32> = acosh(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/acosh/640883.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/acosh/640883.wgsl.expected.dxc.hlsl
index a77b0d7..7cfdb66 100644
--- a/test/tint/builtins/gen/var/acosh/640883.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/acosh/640883.wgsl.expected.dxc.hlsl
@@ -3,7 +3,7 @@
 }
 
 void acosh_640883() {
-  float2 arg_0 = (2.0f).xx;
+  float2 arg_0 = (1.54308068752288818359f).xx;
   float2 res = tint_acosh(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/acosh/640883.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/acosh/640883.wgsl.expected.fxc.hlsl
index a77b0d7..7cfdb66 100644
--- a/test/tint/builtins/gen/var/acosh/640883.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/acosh/640883.wgsl.expected.fxc.hlsl
@@ -3,7 +3,7 @@
 }
 
 void acosh_640883() {
-  float2 arg_0 = (2.0f).xx;
+  float2 arg_0 = (1.54308068752288818359f).xx;
   float2 res = tint_acosh(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/acosh/640883.wgsl.expected.glsl b/test/tint/builtins/gen/var/acosh/640883.wgsl.expected.glsl
index e115249..106661e 100644
--- a/test/tint/builtins/gen/var/acosh/640883.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/acosh/640883.wgsl.expected.glsl
@@ -5,7 +5,7 @@
 }
 
 void acosh_640883() {
-  vec2 arg_0 = vec2(2.0f);
+  vec2 arg_0 = vec2(1.54308068752288818359f);
   vec2 res = tint_acosh(arg_0);
 }
 
@@ -30,7 +30,7 @@
 }
 
 void acosh_640883() {
-  vec2 arg_0 = vec2(2.0f);
+  vec2 arg_0 = vec2(1.54308068752288818359f);
   vec2 res = tint_acosh(arg_0);
 }
 
@@ -49,7 +49,7 @@
 }
 
 void acosh_640883() {
-  vec2 arg_0 = vec2(2.0f);
+  vec2 arg_0 = vec2(1.54308068752288818359f);
   vec2 res = tint_acosh(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/acosh/640883.wgsl.expected.msl b/test/tint/builtins/gen/var/acosh/640883.wgsl.expected.msl
index 93805a6..a91bd46 100644
--- a/test/tint/builtins/gen/var/acosh/640883.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/acosh/640883.wgsl.expected.msl
@@ -6,7 +6,7 @@
 }
 
 void acosh_640883() {
-  float2 arg_0 = float2(2.0f);
+  float2 arg_0 = float2(1.54308068752288818359f);
   float2 res = tint_acosh(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/acosh/640883.wgsl.expected.spvasm b/test/tint/builtins/gen/var/acosh/640883.wgsl.expected.spvasm
index 5d7285b..35311c8 100644
--- a/test/tint/builtins/gen/var/acosh/640883.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/acosh/640883.wgsl.expected.spvasm
@@ -41,8 +41,8 @@
          %20 = OpConstantNull %v2float
        %void = OpTypeVoid
          %23 = OpTypeFunction %void
-    %float_2 = OpConstant %float 2
-         %28 = OpConstantComposite %v2float %float_2 %float_2
+%float_1_54308069 = OpConstant %float 1.54308069
+         %28 = OpConstantComposite %v2float %float_1_54308069 %float_1_54308069
 %_ptr_Function_v2float = OpTypePointer Function %v2float
          %34 = OpTypeFunction %v4float
  %tint_acosh = OpFunction %v2float None %9
diff --git a/test/tint/builtins/gen/var/acosh/640883.wgsl.expected.wgsl b/test/tint/builtins/gen/var/acosh/640883.wgsl.expected.wgsl
index c527a54..78d4db8 100644
--- a/test/tint/builtins/gen/var/acosh/640883.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/acosh/640883.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn acosh_640883() {
-  var arg_0 = vec2<f32>(2.0f);
+  var arg_0 = vec2<f32>(1.54308068752288818359f);
   var res : vec2<f32> = acosh(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/acosh/9f213e.wgsl b/test/tint/builtins/gen/var/acosh/9f213e.wgsl
index befe6e9..c37498c 100644
--- a/test/tint/builtins/gen/var/acosh/9f213e.wgsl
+++ b/test/tint/builtins/gen/var/acosh/9f213e.wgsl
@@ -23,7 +23,7 @@
 
 // fn acosh(vec<3, fa>) -> vec<3, fa>
 fn acosh_9f213e() {
-  const arg_0 = vec3(2.);
+  const arg_0 = vec3(1.5430806348);
   var res = acosh(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/acosh/9f213e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/acosh/9f213e.wgsl.expected.dxc.hlsl
index 15244b5..8f27be1 100644
--- a/test/tint/builtins/gen/var/acosh/9f213e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/acosh/9f213e.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void acosh_9f213e() {
-  float3 res = (1.316957951f).xxx;
+  float3 res = (1.0f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/acosh/9f213e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/acosh/9f213e.wgsl.expected.fxc.hlsl
index 15244b5..8f27be1 100644
--- a/test/tint/builtins/gen/var/acosh/9f213e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/acosh/9f213e.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void acosh_9f213e() {
-  float3 res = (1.316957951f).xxx;
+  float3 res = (1.0f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/acosh/9f213e.wgsl.expected.glsl b/test/tint/builtins/gen/var/acosh/9f213e.wgsl.expected.glsl
index d8b3935..cd02020 100644
--- a/test/tint/builtins/gen/var/acosh/9f213e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/acosh/9f213e.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void acosh_9f213e() {
-  vec3 res = vec3(1.316957951f);
+  vec3 res = vec3(1.0f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void acosh_9f213e() {
-  vec3 res = vec3(1.316957951f);
+  vec3 res = vec3(1.0f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void acosh_9f213e() {
-  vec3 res = vec3(1.316957951f);
+  vec3 res = vec3(1.0f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/acosh/9f213e.wgsl.expected.msl b/test/tint/builtins/gen/var/acosh/9f213e.wgsl.expected.msl
index 4937d28..fa5ea42 100644
--- a/test/tint/builtins/gen/var/acosh/9f213e.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/acosh/9f213e.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void acosh_9f213e() {
-  float3 res = float3(1.316957951f);
+  float3 res = float3(1.0f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/acosh/9f213e.wgsl.expected.spvasm b/test/tint/builtins/gen/var/acosh/9f213e.wgsl.expected.spvasm
index 6b2098f..9ec135e 100644
--- a/test/tint/builtins/gen/var/acosh/9f213e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/acosh/9f213e.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 33
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -31,12 +31,11 @@
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
-%float_1_31695795 = OpConstant %float 1.31695795
-         %15 = OpConstantComposite %v3float %float_1_31695795 %float_1_31695795 %float_1_31695795
+    %float_1 = OpConstant %float 1
+         %15 = OpConstantComposite %v3float %float_1 %float_1 %float_1
 %_ptr_Function_v3float = OpTypePointer Function %v3float
          %18 = OpConstantNull %v3float
          %19 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
 %acosh_9f213e = OpFunction %void None %9
          %12 = OpLabel
         %res = OpVariable %_ptr_Function_v3float Function %18
@@ -56,12 +55,12 @@
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %acosh_9f213e
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %acosh_9f213e
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %acosh_9f213e
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %acosh_9f213e
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/acosh/9f213e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/acosh/9f213e.wgsl.expected.wgsl
index 651c000..9f4ef83 100644
--- a/test/tint/builtins/gen/var/acosh/9f213e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/acosh/9f213e.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn acosh_9f213e() {
-  const arg_0 = vec3(2.0);
+  const arg_0 = vec3(1.54308063479999990619);
   var res = acosh(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/acosh/a37dfe.wgsl b/test/tint/builtins/gen/var/acosh/a37dfe.wgsl
index ede2b12..8c9057b 100644
--- a/test/tint/builtins/gen/var/acosh/a37dfe.wgsl
+++ b/test/tint/builtins/gen/var/acosh/a37dfe.wgsl
@@ -25,7 +25,7 @@
 
 // fn acosh(f16) -> f16
 fn acosh_a37dfe() {
-  var arg_0 = 2.h;
+  var arg_0 = 1.5430806348h;
   var res: f16 = acosh(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/acosh/a37dfe.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/acosh/a37dfe.wgsl.expected.dxc.hlsl
index 0b6b943..ad9ca5b 100644
--- a/test/tint/builtins/gen/var/acosh/a37dfe.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/acosh/a37dfe.wgsl.expected.dxc.hlsl
@@ -3,7 +3,7 @@
 }
 
 void acosh_a37dfe() {
-  float16_t arg_0 = float16_t(2.0h);
+  float16_t arg_0 = float16_t(1.54296875h);
   float16_t res = tint_acosh(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/acosh/a37dfe.wgsl.expected.glsl b/test/tint/builtins/gen/var/acosh/a37dfe.wgsl.expected.glsl
index 2a8d3c9..67bcd2f 100644
--- a/test/tint/builtins/gen/var/acosh/a37dfe.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/acosh/a37dfe.wgsl.expected.glsl
@@ -6,7 +6,7 @@
 }
 
 void acosh_a37dfe() {
-  float16_t arg_0 = 2.0hf;
+  float16_t arg_0 = 1.54296875hf;
   float16_t res = tint_acosh(arg_0);
 }
 
@@ -32,7 +32,7 @@
 }
 
 void acosh_a37dfe() {
-  float16_t arg_0 = 2.0hf;
+  float16_t arg_0 = 1.54296875hf;
   float16_t res = tint_acosh(arg_0);
 }
 
@@ -52,7 +52,7 @@
 }
 
 void acosh_a37dfe() {
-  float16_t arg_0 = 2.0hf;
+  float16_t arg_0 = 1.54296875hf;
   float16_t res = tint_acosh(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/acosh/a37dfe.wgsl.expected.msl b/test/tint/builtins/gen/var/acosh/a37dfe.wgsl.expected.msl
index 08574f0..f1fe88c 100644
--- a/test/tint/builtins/gen/var/acosh/a37dfe.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/acosh/a37dfe.wgsl.expected.msl
@@ -6,7 +6,7 @@
 }
 
 void acosh_a37dfe() {
-  half arg_0 = 2.0h;
+  half arg_0 = 1.54296875h;
   half res = tint_acosh(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/acosh/a37dfe.wgsl.expected.spvasm b/test/tint/builtins/gen/var/acosh/a37dfe.wgsl.expected.spvasm
index 769b3f7..eb82699 100644
--- a/test/tint/builtins/gen/var/acosh/a37dfe.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/acosh/a37dfe.wgsl.expected.spvasm
@@ -43,7 +43,7 @@
          %18 = OpConstantNull %half
        %void = OpTypeVoid
          %21 = OpTypeFunction %void
-%half_0x1p_1 = OpConstant %half 0x1p+1
+%half_0x1_8bp_0 = OpConstant %half 0x1.8bp+0
 %_ptr_Function_half = OpTypePointer Function %half
          %31 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
@@ -59,7 +59,7 @@
          %24 = OpLabel
       %arg_0 = OpVariable %_ptr_Function_half Function %18
         %res = OpVariable %_ptr_Function_half Function %18
-               OpStore %arg_0 %half_0x1p_1
+               OpStore %arg_0 %half_0x1_8bp_0
          %29 = OpLoad %half %arg_0
          %28 = OpFunctionCall %half %tint_acosh %29
                OpStore %res %28
diff --git a/test/tint/builtins/gen/var/acosh/a37dfe.wgsl.expected.wgsl b/test/tint/builtins/gen/var/acosh/a37dfe.wgsl.expected.wgsl
index 7f8bd50..d826a72 100644
--- a/test/tint/builtins/gen/var/acosh/a37dfe.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/acosh/a37dfe.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 enable f16;
 
 fn acosh_a37dfe() {
-  var arg_0 = 2.0h;
+  var arg_0 = 1.54296875h;
   var res : f16 = acosh(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/acosh/d51ccb.wgsl b/test/tint/builtins/gen/var/acosh/d51ccb.wgsl
index a757916..efa3b30 100644
--- a/test/tint/builtins/gen/var/acosh/d51ccb.wgsl
+++ b/test/tint/builtins/gen/var/acosh/d51ccb.wgsl
@@ -23,7 +23,7 @@
 
 // fn acosh(vec<4, f32>) -> vec<4, f32>
 fn acosh_d51ccb() {
-  var arg_0 = vec4<f32>(2.f);
+  var arg_0 = vec4<f32>(1.5430806348f);
   var res: vec4<f32> = acosh(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/acosh/d51ccb.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/acosh/d51ccb.wgsl.expected.dxc.hlsl
index 2282730..ed07389 100644
--- a/test/tint/builtins/gen/var/acosh/d51ccb.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/acosh/d51ccb.wgsl.expected.dxc.hlsl
@@ -3,7 +3,7 @@
 }
 
 void acosh_d51ccb() {
-  float4 arg_0 = (2.0f).xxxx;
+  float4 arg_0 = (1.54308068752288818359f).xxxx;
   float4 res = tint_acosh(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/acosh/d51ccb.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/acosh/d51ccb.wgsl.expected.fxc.hlsl
index 2282730..ed07389 100644
--- a/test/tint/builtins/gen/var/acosh/d51ccb.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/acosh/d51ccb.wgsl.expected.fxc.hlsl
@@ -3,7 +3,7 @@
 }
 
 void acosh_d51ccb() {
-  float4 arg_0 = (2.0f).xxxx;
+  float4 arg_0 = (1.54308068752288818359f).xxxx;
   float4 res = tint_acosh(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/acosh/d51ccb.wgsl.expected.glsl b/test/tint/builtins/gen/var/acosh/d51ccb.wgsl.expected.glsl
index fe7a0a5..c9981d6 100644
--- a/test/tint/builtins/gen/var/acosh/d51ccb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/acosh/d51ccb.wgsl.expected.glsl
@@ -5,7 +5,7 @@
 }
 
 void acosh_d51ccb() {
-  vec4 arg_0 = vec4(2.0f);
+  vec4 arg_0 = vec4(1.54308068752288818359f);
   vec4 res = tint_acosh(arg_0);
 }
 
@@ -30,7 +30,7 @@
 }
 
 void acosh_d51ccb() {
-  vec4 arg_0 = vec4(2.0f);
+  vec4 arg_0 = vec4(1.54308068752288818359f);
   vec4 res = tint_acosh(arg_0);
 }
 
@@ -49,7 +49,7 @@
 }
 
 void acosh_d51ccb() {
-  vec4 arg_0 = vec4(2.0f);
+  vec4 arg_0 = vec4(1.54308068752288818359f);
   vec4 res = tint_acosh(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/acosh/d51ccb.wgsl.expected.msl b/test/tint/builtins/gen/var/acosh/d51ccb.wgsl.expected.msl
index 669a9f2..74fc9cf 100644
--- a/test/tint/builtins/gen/var/acosh/d51ccb.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/acosh/d51ccb.wgsl.expected.msl
@@ -6,7 +6,7 @@
 }
 
 void acosh_d51ccb() {
-  float4 arg_0 = float4(2.0f);
+  float4 arg_0 = float4(1.54308068752288818359f);
   float4 res = tint_acosh(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/acosh/d51ccb.wgsl.expected.spvasm b/test/tint/builtins/gen/var/acosh/d51ccb.wgsl.expected.spvasm
index 63302db..711d3b4 100644
--- a/test/tint/builtins/gen/var/acosh/d51ccb.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/acosh/d51ccb.wgsl.expected.spvasm
@@ -39,8 +39,8 @@
      %v4bool = OpTypeVector %bool 4
        %void = OpTypeVoid
          %21 = OpTypeFunction %void
-    %float_2 = OpConstant %float 2
-         %26 = OpConstantComposite %v4float %float_2 %float_2 %float_2 %float_2
+%float_1_54308069 = OpConstant %float 1.54308069
+         %26 = OpConstantComposite %v4float %float_1_54308069 %float_1_54308069 %float_1_54308069 %float_1_54308069
 %_ptr_Function_v4float = OpTypePointer Function %v4float
          %32 = OpTypeFunction %v4float
  %tint_acosh = OpFunction %v4float None %9
diff --git a/test/tint/builtins/gen/var/acosh/d51ccb.wgsl.expected.wgsl b/test/tint/builtins/gen/var/acosh/d51ccb.wgsl.expected.wgsl
index 8e9b29d..3807b09 100644
--- a/test/tint/builtins/gen/var/acosh/d51ccb.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/acosh/d51ccb.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn acosh_d51ccb() {
-  var arg_0 = vec4<f32>(2.0f);
+  var arg_0 = vec4<f32>(1.54308068752288818359f);
   var res : vec4<f32> = acosh(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/acosh/de60d8.wgsl b/test/tint/builtins/gen/var/acosh/de60d8.wgsl
index 9c20dae..9586527 100644
--- a/test/tint/builtins/gen/var/acosh/de60d8.wgsl
+++ b/test/tint/builtins/gen/var/acosh/de60d8.wgsl
@@ -25,7 +25,7 @@
 
 // fn acosh(vec<4, f16>) -> vec<4, f16>
 fn acosh_de60d8() {
-  var arg_0 = vec4<f16>(2.h);
+  var arg_0 = vec4<f16>(1.5430806348h);
   var res: vec4<f16> = acosh(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/acosh/de60d8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/acosh/de60d8.wgsl.expected.dxc.hlsl
index c35d1fe..4e81214 100644
--- a/test/tint/builtins/gen/var/acosh/de60d8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/acosh/de60d8.wgsl.expected.dxc.hlsl
@@ -3,7 +3,7 @@
 }
 
 void acosh_de60d8() {
-  vector<float16_t, 4> arg_0 = (float16_t(2.0h)).xxxx;
+  vector<float16_t, 4> arg_0 = (float16_t(1.54296875h)).xxxx;
   vector<float16_t, 4> res = tint_acosh(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/acosh/de60d8.wgsl.expected.glsl b/test/tint/builtins/gen/var/acosh/de60d8.wgsl.expected.glsl
index 43dd4fc..51ccc00 100644
--- a/test/tint/builtins/gen/var/acosh/de60d8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/acosh/de60d8.wgsl.expected.glsl
@@ -6,7 +6,7 @@
 }
 
 void acosh_de60d8() {
-  f16vec4 arg_0 = f16vec4(2.0hf);
+  f16vec4 arg_0 = f16vec4(1.54296875hf);
   f16vec4 res = tint_acosh(arg_0);
 }
 
@@ -32,7 +32,7 @@
 }
 
 void acosh_de60d8() {
-  f16vec4 arg_0 = f16vec4(2.0hf);
+  f16vec4 arg_0 = f16vec4(1.54296875hf);
   f16vec4 res = tint_acosh(arg_0);
 }
 
@@ -52,7 +52,7 @@
 }
 
 void acosh_de60d8() {
-  f16vec4 arg_0 = f16vec4(2.0hf);
+  f16vec4 arg_0 = f16vec4(1.54296875hf);
   f16vec4 res = tint_acosh(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/acosh/de60d8.wgsl.expected.msl b/test/tint/builtins/gen/var/acosh/de60d8.wgsl.expected.msl
index 0d01611..175621f 100644
--- a/test/tint/builtins/gen/var/acosh/de60d8.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/acosh/de60d8.wgsl.expected.msl
@@ -6,7 +6,7 @@
 }
 
 void acosh_de60d8() {
-  half4 arg_0 = half4(2.0h);
+  half4 arg_0 = half4(1.54296875h);
   half4 res = tint_acosh(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/acosh/de60d8.wgsl.expected.spvasm b/test/tint/builtins/gen/var/acosh/de60d8.wgsl.expected.spvasm
index 8ca035a..24431be 100644
--- a/test/tint/builtins/gen/var/acosh/de60d8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/acosh/de60d8.wgsl.expected.spvasm
@@ -46,8 +46,8 @@
          %21 = OpConstantNull %v4half
        %void = OpTypeVoid
          %24 = OpTypeFunction %void
-%half_0x1p_1 = OpConstant %half 0x1p+1
-         %29 = OpConstantComposite %v4half %half_0x1p_1 %half_0x1p_1 %half_0x1p_1 %half_0x1p_1
+%half_0x1_8bp_0 = OpConstant %half 0x1.8bp+0
+         %29 = OpConstantComposite %v4half %half_0x1_8bp_0 %half_0x1_8bp_0 %half_0x1_8bp_0 %half_0x1_8bp_0
 %_ptr_Function_v4half = OpTypePointer Function %v4half
          %35 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
diff --git a/test/tint/builtins/gen/var/acosh/de60d8.wgsl.expected.wgsl b/test/tint/builtins/gen/var/acosh/de60d8.wgsl.expected.wgsl
index e58782f..d281060 100644
--- a/test/tint/builtins/gen/var/acosh/de60d8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/acosh/de60d8.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 enable f16;
 
 fn acosh_de60d8() {
-  var arg_0 = vec4<f16>(2.0h);
+  var arg_0 = vec4<f16>(1.54296875h);
   var res : vec4<f16> = acosh(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/acosh/e38f5c.wgsl b/test/tint/builtins/gen/var/acosh/e38f5c.wgsl
index e920594..5f0312e 100644
--- a/test/tint/builtins/gen/var/acosh/e38f5c.wgsl
+++ b/test/tint/builtins/gen/var/acosh/e38f5c.wgsl
@@ -23,7 +23,7 @@
 
 // fn acosh(vec<3, f32>) -> vec<3, f32>
 fn acosh_e38f5c() {
-  var arg_0 = vec3<f32>(2.f);
+  var arg_0 = vec3<f32>(1.5430806348f);
   var res: vec3<f32> = acosh(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/acosh/e38f5c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/acosh/e38f5c.wgsl.expected.dxc.hlsl
index c5917cd..be4b540 100644
--- a/test/tint/builtins/gen/var/acosh/e38f5c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/acosh/e38f5c.wgsl.expected.dxc.hlsl
@@ -3,7 +3,7 @@
 }
 
 void acosh_e38f5c() {
-  float3 arg_0 = (2.0f).xxx;
+  float3 arg_0 = (1.54308068752288818359f).xxx;
   float3 res = tint_acosh(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/acosh/e38f5c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/acosh/e38f5c.wgsl.expected.fxc.hlsl
index c5917cd..be4b540 100644
--- a/test/tint/builtins/gen/var/acosh/e38f5c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/acosh/e38f5c.wgsl.expected.fxc.hlsl
@@ -3,7 +3,7 @@
 }
 
 void acosh_e38f5c() {
-  float3 arg_0 = (2.0f).xxx;
+  float3 arg_0 = (1.54308068752288818359f).xxx;
   float3 res = tint_acosh(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/acosh/e38f5c.wgsl.expected.glsl b/test/tint/builtins/gen/var/acosh/e38f5c.wgsl.expected.glsl
index 12b8b4e..ec99a2d 100644
--- a/test/tint/builtins/gen/var/acosh/e38f5c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/acosh/e38f5c.wgsl.expected.glsl
@@ -5,7 +5,7 @@
 }
 
 void acosh_e38f5c() {
-  vec3 arg_0 = vec3(2.0f);
+  vec3 arg_0 = vec3(1.54308068752288818359f);
   vec3 res = tint_acosh(arg_0);
 }
 
@@ -30,7 +30,7 @@
 }
 
 void acosh_e38f5c() {
-  vec3 arg_0 = vec3(2.0f);
+  vec3 arg_0 = vec3(1.54308068752288818359f);
   vec3 res = tint_acosh(arg_0);
 }
 
@@ -49,7 +49,7 @@
 }
 
 void acosh_e38f5c() {
-  vec3 arg_0 = vec3(2.0f);
+  vec3 arg_0 = vec3(1.54308068752288818359f);
   vec3 res = tint_acosh(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/acosh/e38f5c.wgsl.expected.msl b/test/tint/builtins/gen/var/acosh/e38f5c.wgsl.expected.msl
index 8f1e1af..f31abf1 100644
--- a/test/tint/builtins/gen/var/acosh/e38f5c.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/acosh/e38f5c.wgsl.expected.msl
@@ -6,7 +6,7 @@
 }
 
 void acosh_e38f5c() {
-  float3 arg_0 = float3(2.0f);
+  float3 arg_0 = float3(1.54308068752288818359f);
   float3 res = tint_acosh(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/acosh/e38f5c.wgsl.expected.spvasm b/test/tint/builtins/gen/var/acosh/e38f5c.wgsl.expected.spvasm
index b1aa79b..ece41d9 100644
--- a/test/tint/builtins/gen/var/acosh/e38f5c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/acosh/e38f5c.wgsl.expected.spvasm
@@ -41,8 +41,8 @@
          %20 = OpConstantNull %v3float
        %void = OpTypeVoid
          %23 = OpTypeFunction %void
-    %float_2 = OpConstant %float 2
-         %28 = OpConstantComposite %v3float %float_2 %float_2 %float_2
+%float_1_54308069 = OpConstant %float 1.54308069
+         %28 = OpConstantComposite %v3float %float_1_54308069 %float_1_54308069 %float_1_54308069
 %_ptr_Function_v3float = OpTypePointer Function %v3float
          %34 = OpTypeFunction %v4float
  %tint_acosh = OpFunction %v3float None %9
diff --git a/test/tint/builtins/gen/var/acosh/e38f5c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/acosh/e38f5c.wgsl.expected.wgsl
index 6cdc354..3be489e 100644
--- a/test/tint/builtins/gen/var/acosh/e38f5c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/acosh/e38f5c.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn acosh_e38f5c() {
-  var arg_0 = vec3<f32>(2.0f);
+  var arg_0 = vec3<f32>(1.54308068752288818359f);
   var res : vec3<f32> = acosh(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/acosh/ecf2d1.wgsl b/test/tint/builtins/gen/var/acosh/ecf2d1.wgsl
index 6672ba8..47c2385 100644
--- a/test/tint/builtins/gen/var/acosh/ecf2d1.wgsl
+++ b/test/tint/builtins/gen/var/acosh/ecf2d1.wgsl
@@ -23,7 +23,7 @@
 
 // fn acosh(f32) -> f32
 fn acosh_ecf2d1() {
-  var arg_0 = 2.f;
+  var arg_0 = 1.5430806348f;
   var res: f32 = acosh(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/acosh/ecf2d1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/acosh/ecf2d1.wgsl.expected.dxc.hlsl
index 6e804ef..548d620 100644
--- a/test/tint/builtins/gen/var/acosh/ecf2d1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/acosh/ecf2d1.wgsl.expected.dxc.hlsl
@@ -3,7 +3,7 @@
 }
 
 void acosh_ecf2d1() {
-  float arg_0 = 2.0f;
+  float arg_0 = 1.54308068752288818359f;
   float res = tint_acosh(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/acosh/ecf2d1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/acosh/ecf2d1.wgsl.expected.fxc.hlsl
index 6e804ef..548d620 100644
--- a/test/tint/builtins/gen/var/acosh/ecf2d1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/acosh/ecf2d1.wgsl.expected.fxc.hlsl
@@ -3,7 +3,7 @@
 }
 
 void acosh_ecf2d1() {
-  float arg_0 = 2.0f;
+  float arg_0 = 1.54308068752288818359f;
   float res = tint_acosh(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/acosh/ecf2d1.wgsl.expected.glsl b/test/tint/builtins/gen/var/acosh/ecf2d1.wgsl.expected.glsl
index 75536d3..df6d4ca 100644
--- a/test/tint/builtins/gen/var/acosh/ecf2d1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/acosh/ecf2d1.wgsl.expected.glsl
@@ -5,7 +5,7 @@
 }
 
 void acosh_ecf2d1() {
-  float arg_0 = 2.0f;
+  float arg_0 = 1.54308068752288818359f;
   float res = tint_acosh(arg_0);
 }
 
@@ -30,7 +30,7 @@
 }
 
 void acosh_ecf2d1() {
-  float arg_0 = 2.0f;
+  float arg_0 = 1.54308068752288818359f;
   float res = tint_acosh(arg_0);
 }
 
@@ -49,7 +49,7 @@
 }
 
 void acosh_ecf2d1() {
-  float arg_0 = 2.0f;
+  float arg_0 = 1.54308068752288818359f;
   float res = tint_acosh(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/acosh/ecf2d1.wgsl.expected.msl b/test/tint/builtins/gen/var/acosh/ecf2d1.wgsl.expected.msl
index aa7bb3e..356e2e2 100644
--- a/test/tint/builtins/gen/var/acosh/ecf2d1.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/acosh/ecf2d1.wgsl.expected.msl
@@ -6,7 +6,7 @@
 }
 
 void acosh_ecf2d1() {
-  float arg_0 = 2.0f;
+  float arg_0 = 1.54308068752288818359f;
   float res = tint_acosh(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/acosh/ecf2d1.wgsl.expected.spvasm b/test/tint/builtins/gen/var/acosh/ecf2d1.wgsl.expected.spvasm
index a526d71..fc38b3b 100644
--- a/test/tint/builtins/gen/var/acosh/ecf2d1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/acosh/ecf2d1.wgsl.expected.spvasm
@@ -37,7 +37,7 @@
        %bool = OpTypeBool
        %void = OpTypeVoid
          %19 = OpTypeFunction %void
-    %float_2 = OpConstant %float 2
+%float_1_54308069 = OpConstant %float 1.54308069
 %_ptr_Function_float = OpTypePointer Function %float
          %29 = OpTypeFunction %v4float
  %tint_acosh = OpFunction %float None %9
@@ -52,7 +52,7 @@
          %22 = OpLabel
       %arg_0 = OpVariable %_ptr_Function_float Function %8
         %res = OpVariable %_ptr_Function_float Function %8
-               OpStore %arg_0 %float_2
+               OpStore %arg_0 %float_1_54308069
          %27 = OpLoad %float %arg_0
          %26 = OpFunctionCall %float %tint_acosh %27
                OpStore %res %26
diff --git a/test/tint/builtins/gen/var/acosh/ecf2d1.wgsl.expected.wgsl b/test/tint/builtins/gen/var/acosh/ecf2d1.wgsl.expected.wgsl
index ad405a0..422b069 100644
--- a/test/tint/builtins/gen/var/acosh/ecf2d1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/acosh/ecf2d1.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn acosh_ecf2d1() {
-  var arg_0 = 2.0f;
+  var arg_0 = 1.54308068752288818359f;
   var res : f32 = acosh(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/acosh/f56574.wgsl b/test/tint/builtins/gen/var/acosh/f56574.wgsl
index 374b14f..ad936fa 100644
--- a/test/tint/builtins/gen/var/acosh/f56574.wgsl
+++ b/test/tint/builtins/gen/var/acosh/f56574.wgsl
@@ -25,7 +25,7 @@
 
 // fn acosh(vec<3, f16>) -> vec<3, f16>
 fn acosh_f56574() {
-  var arg_0 = vec3<f16>(2.h);
+  var arg_0 = vec3<f16>(1.5430806348h);
   var res: vec3<f16> = acosh(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/acosh/f56574.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/acosh/f56574.wgsl.expected.dxc.hlsl
index ab9c629..c7f7ea6 100644
--- a/test/tint/builtins/gen/var/acosh/f56574.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/acosh/f56574.wgsl.expected.dxc.hlsl
@@ -3,7 +3,7 @@
 }
 
 void acosh_f56574() {
-  vector<float16_t, 3> arg_0 = (float16_t(2.0h)).xxx;
+  vector<float16_t, 3> arg_0 = (float16_t(1.54296875h)).xxx;
   vector<float16_t, 3> res = tint_acosh(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/acosh/f56574.wgsl.expected.glsl b/test/tint/builtins/gen/var/acosh/f56574.wgsl.expected.glsl
index cf6d5b1..e3b4cec 100644
--- a/test/tint/builtins/gen/var/acosh/f56574.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/acosh/f56574.wgsl.expected.glsl
@@ -6,7 +6,7 @@
 }
 
 void acosh_f56574() {
-  f16vec3 arg_0 = f16vec3(2.0hf);
+  f16vec3 arg_0 = f16vec3(1.54296875hf);
   f16vec3 res = tint_acosh(arg_0);
 }
 
@@ -32,7 +32,7 @@
 }
 
 void acosh_f56574() {
-  f16vec3 arg_0 = f16vec3(2.0hf);
+  f16vec3 arg_0 = f16vec3(1.54296875hf);
   f16vec3 res = tint_acosh(arg_0);
 }
 
@@ -52,7 +52,7 @@
 }
 
 void acosh_f56574() {
-  f16vec3 arg_0 = f16vec3(2.0hf);
+  f16vec3 arg_0 = f16vec3(1.54296875hf);
   f16vec3 res = tint_acosh(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/acosh/f56574.wgsl.expected.msl b/test/tint/builtins/gen/var/acosh/f56574.wgsl.expected.msl
index 4882055..67767ed 100644
--- a/test/tint/builtins/gen/var/acosh/f56574.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/acosh/f56574.wgsl.expected.msl
@@ -6,7 +6,7 @@
 }
 
 void acosh_f56574() {
-  half3 arg_0 = half3(2.0h);
+  half3 arg_0 = half3(1.54296875h);
   half3 res = tint_acosh(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/acosh/f56574.wgsl.expected.spvasm b/test/tint/builtins/gen/var/acosh/f56574.wgsl.expected.spvasm
index 28dd4e4..68a5b3e 100644
--- a/test/tint/builtins/gen/var/acosh/f56574.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/acosh/f56574.wgsl.expected.spvasm
@@ -46,8 +46,8 @@
          %21 = OpConstantNull %v3half
        %void = OpTypeVoid
          %24 = OpTypeFunction %void
-%half_0x1p_1 = OpConstant %half 0x1p+1
-         %29 = OpConstantComposite %v3half %half_0x1p_1 %half_0x1p_1 %half_0x1p_1
+%half_0x1_8bp_0 = OpConstant %half 0x1.8bp+0
+         %29 = OpConstantComposite %v3half %half_0x1_8bp_0 %half_0x1_8bp_0 %half_0x1_8bp_0
 %_ptr_Function_v3half = OpTypePointer Function %v3half
          %35 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
diff --git a/test/tint/builtins/gen/var/acosh/f56574.wgsl.expected.wgsl b/test/tint/builtins/gen/var/acosh/f56574.wgsl.expected.wgsl
index 79fa778..d187d0d 100644
--- a/test/tint/builtins/gen/var/acosh/f56574.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/acosh/f56574.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 enable f16;
 
 fn acosh_f56574() {
-  var arg_0 = vec3<f16>(2.0h);
+  var arg_0 = vec3<f16>(1.54296875h);
   var res : vec3<f16> = acosh(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/asin/064953.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/asin/064953.wgsl.expected.dxc.hlsl
index 67d9bd3..a8e7300 100644
--- a/test/tint/builtins/gen/var/asin/064953.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/asin/064953.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void asin_064953() {
-  float4 arg_0 = (0.47942555f).xxxx;
+  float4 arg_0 = (0.47942554950714111328f).xxxx;
   float4 res = asin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/asin/064953.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/asin/064953.wgsl.expected.fxc.hlsl
index 67d9bd3..a8e7300 100644
--- a/test/tint/builtins/gen/var/asin/064953.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/asin/064953.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void asin_064953() {
-  float4 arg_0 = (0.47942555f).xxxx;
+  float4 arg_0 = (0.47942554950714111328f).xxxx;
   float4 res = asin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/asin/064953.wgsl.expected.glsl b/test/tint/builtins/gen/var/asin/064953.wgsl.expected.glsl
index 68495fb..13fad50 100644
--- a/test/tint/builtins/gen/var/asin/064953.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/asin/064953.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void asin_064953() {
-  vec4 arg_0 = vec4(0.47942555f);
+  vec4 arg_0 = vec4(0.47942554950714111328f);
   vec4 res = asin(arg_0);
 }
 
@@ -22,7 +22,7 @@
 precision mediump float;
 
 void asin_064953() {
-  vec4 arg_0 = vec4(0.47942555f);
+  vec4 arg_0 = vec4(0.47942554950714111328f);
   vec4 res = asin(arg_0);
 }
 
@@ -37,7 +37,7 @@
 #version 310 es
 
 void asin_064953() {
-  vec4 arg_0 = vec4(0.47942555f);
+  vec4 arg_0 = vec4(0.47942554950714111328f);
   vec4 res = asin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/asin/064953.wgsl.expected.msl b/test/tint/builtins/gen/var/asin/064953.wgsl.expected.msl
index 91f3fe3..0d3926d 100644
--- a/test/tint/builtins/gen/var/asin/064953.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/asin/064953.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void asin_064953() {
-  float4 arg_0 = float4(0.47942555f);
+  float4 arg_0 = float4(0.47942554950714111328f);
   float4 res = asin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/asin/064953.wgsl.expected.wgsl b/test/tint/builtins/gen/var/asin/064953.wgsl.expected.wgsl
index 61347d7..daa31fc 100644
--- a/test/tint/builtins/gen/var/asin/064953.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/asin/064953.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn asin_064953() {
-  var arg_0 = vec4<f32>(0.47942555f);
+  var arg_0 = vec4<f32>(0.47942554950714111328f);
   var res : vec4<f32> = asin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/asin/0bac07.wgsl.expected.wgsl b/test/tint/builtins/gen/var/asin/0bac07.wgsl.expected.wgsl
index a90be4a..4afdad3 100644
--- a/test/tint/builtins/gen/var/asin/0bac07.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/asin/0bac07.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn asin_0bac07() {
-  const arg_0 = vec3(0.479425538604);
+  const arg_0 = vec3(0.4794255386040000011);
   var res = asin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/asin/11dfda.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/asin/11dfda.wgsl.expected.dxc.hlsl
index e34b3ab..7910bc3 100644
--- a/test/tint/builtins/gen/var/asin/11dfda.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/asin/11dfda.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void asin_11dfda() {
-  float16_t arg_0 = float16_t(0.479248047h);
+  float16_t arg_0 = float16_t(0.479248046875h);
   float16_t res = asin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/asin/11dfda.wgsl.expected.glsl b/test/tint/builtins/gen/var/asin/11dfda.wgsl.expected.glsl
index 4100486..466612a 100644
--- a/test/tint/builtins/gen/var/asin/11dfda.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/asin/11dfda.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void asin_11dfda() {
-  float16_t arg_0 = 0.479248047hf;
+  float16_t arg_0 = 0.479248046875hf;
   float16_t res = asin(arg_0);
 }
 
@@ -24,7 +24,7 @@
 precision mediump float;
 
 void asin_11dfda() {
-  float16_t arg_0 = 0.479248047hf;
+  float16_t arg_0 = 0.479248046875hf;
   float16_t res = asin(arg_0);
 }
 
@@ -40,7 +40,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void asin_11dfda() {
-  float16_t arg_0 = 0.479248047hf;
+  float16_t arg_0 = 0.479248046875hf;
   float16_t res = asin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/asin/11dfda.wgsl.expected.msl b/test/tint/builtins/gen/var/asin/11dfda.wgsl.expected.msl
index 785eafe..ec03ff2 100644
--- a/test/tint/builtins/gen/var/asin/11dfda.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/asin/11dfda.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void asin_11dfda() {
-  half arg_0 = 0.479248047h;
+  half arg_0 = 0.479248046875h;
   half res = asin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/asin/11dfda.wgsl.expected.wgsl b/test/tint/builtins/gen/var/asin/11dfda.wgsl.expected.wgsl
index 8e37925..4345a07 100644
--- a/test/tint/builtins/gen/var/asin/11dfda.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/asin/11dfda.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 enable f16;
 
 fn asin_11dfda() {
-  var arg_0 = 0.479248047h;
+  var arg_0 = 0.479248046875h;
   var res : f16 = asin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/asin/2d8e29.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/asin/2d8e29.wgsl.expected.dxc.hlsl
index 201463d..d29c74a 100644
--- a/test/tint/builtins/gen/var/asin/2d8e29.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/asin/2d8e29.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void asin_2d8e29() {
-  vector<float16_t, 3> arg_0 = (float16_t(0.479248047h)).xxx;
+  vector<float16_t, 3> arg_0 = (float16_t(0.479248046875h)).xxx;
   vector<float16_t, 3> res = asin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/asin/2d8e29.wgsl.expected.glsl b/test/tint/builtins/gen/var/asin/2d8e29.wgsl.expected.glsl
index e554dff..84c406a 100644
--- a/test/tint/builtins/gen/var/asin/2d8e29.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/asin/2d8e29.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void asin_2d8e29() {
-  f16vec3 arg_0 = f16vec3(0.479248047hf);
+  f16vec3 arg_0 = f16vec3(0.479248046875hf);
   f16vec3 res = asin(arg_0);
 }
 
@@ -24,7 +24,7 @@
 precision mediump float;
 
 void asin_2d8e29() {
-  f16vec3 arg_0 = f16vec3(0.479248047hf);
+  f16vec3 arg_0 = f16vec3(0.479248046875hf);
   f16vec3 res = asin(arg_0);
 }
 
@@ -40,7 +40,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void asin_2d8e29() {
-  f16vec3 arg_0 = f16vec3(0.479248047hf);
+  f16vec3 arg_0 = f16vec3(0.479248046875hf);
   f16vec3 res = asin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/asin/2d8e29.wgsl.expected.msl b/test/tint/builtins/gen/var/asin/2d8e29.wgsl.expected.msl
index d4e5c78..cebd4dc1 100644
--- a/test/tint/builtins/gen/var/asin/2d8e29.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/asin/2d8e29.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void asin_2d8e29() {
-  half3 arg_0 = half3(0.479248047h);
+  half3 arg_0 = half3(0.479248046875h);
   half3 res = asin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/asin/2d8e29.wgsl.expected.wgsl b/test/tint/builtins/gen/var/asin/2d8e29.wgsl.expected.wgsl
index fb3320d..a97b110 100644
--- a/test/tint/builtins/gen/var/asin/2d8e29.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/asin/2d8e29.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 enable f16;
 
 fn asin_2d8e29() {
-  var arg_0 = vec3<f16>(0.479248047h);
+  var arg_0 = vec3<f16>(0.479248046875h);
   var res : vec3<f16> = asin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/asin/3cfbd4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/asin/3cfbd4.wgsl.expected.dxc.hlsl
index 0d3e91c..344fe0f 100644
--- a/test/tint/builtins/gen/var/asin/3cfbd4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/asin/3cfbd4.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void asin_3cfbd4() {
-  vector<float16_t, 4> arg_0 = (float16_t(0.479248047h)).xxxx;
+  vector<float16_t, 4> arg_0 = (float16_t(0.479248046875h)).xxxx;
   vector<float16_t, 4> res = asin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/asin/3cfbd4.wgsl.expected.glsl b/test/tint/builtins/gen/var/asin/3cfbd4.wgsl.expected.glsl
index d479eb7..6d7ce9f 100644
--- a/test/tint/builtins/gen/var/asin/3cfbd4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/asin/3cfbd4.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void asin_3cfbd4() {
-  f16vec4 arg_0 = f16vec4(0.479248047hf);
+  f16vec4 arg_0 = f16vec4(0.479248046875hf);
   f16vec4 res = asin(arg_0);
 }
 
@@ -24,7 +24,7 @@
 precision mediump float;
 
 void asin_3cfbd4() {
-  f16vec4 arg_0 = f16vec4(0.479248047hf);
+  f16vec4 arg_0 = f16vec4(0.479248046875hf);
   f16vec4 res = asin(arg_0);
 }
 
@@ -40,7 +40,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void asin_3cfbd4() {
-  f16vec4 arg_0 = f16vec4(0.479248047hf);
+  f16vec4 arg_0 = f16vec4(0.479248046875hf);
   f16vec4 res = asin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/asin/3cfbd4.wgsl.expected.msl b/test/tint/builtins/gen/var/asin/3cfbd4.wgsl.expected.msl
index c26ade5..2b0e213 100644
--- a/test/tint/builtins/gen/var/asin/3cfbd4.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/asin/3cfbd4.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void asin_3cfbd4() {
-  half4 arg_0 = half4(0.479248047h);
+  half4 arg_0 = half4(0.479248046875h);
   half4 res = asin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/asin/3cfbd4.wgsl.expected.wgsl b/test/tint/builtins/gen/var/asin/3cfbd4.wgsl.expected.wgsl
index 0366545..19fc5a4 100644
--- a/test/tint/builtins/gen/var/asin/3cfbd4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/asin/3cfbd4.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 enable f16;
 
 fn asin_3cfbd4() {
-  var arg_0 = vec4<f16>(0.479248047h);
+  var arg_0 = vec4<f16>(0.479248046875h);
   var res : vec4<f16> = asin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/asin/64bb1f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/asin/64bb1f.wgsl.expected.wgsl
index 1a14db8..dd77591a 100644
--- a/test/tint/builtins/gen/var/asin/64bb1f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/asin/64bb1f.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn asin_64bb1f() {
-  const arg_0 = vec4(0.479425538604);
+  const arg_0 = vec4(0.4794255386040000011);
   var res = asin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/asin/7b6a44.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/asin/7b6a44.wgsl.expected.dxc.hlsl
index ec5dc28..4324a5e 100644
--- a/test/tint/builtins/gen/var/asin/7b6a44.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/asin/7b6a44.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void asin_7b6a44() {
-  float2 arg_0 = (0.47942555f).xx;
+  float2 arg_0 = (0.47942554950714111328f).xx;
   float2 res = asin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/asin/7b6a44.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/asin/7b6a44.wgsl.expected.fxc.hlsl
index ec5dc28..4324a5e 100644
--- a/test/tint/builtins/gen/var/asin/7b6a44.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/asin/7b6a44.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void asin_7b6a44() {
-  float2 arg_0 = (0.47942555f).xx;
+  float2 arg_0 = (0.47942554950714111328f).xx;
   float2 res = asin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/asin/7b6a44.wgsl.expected.glsl b/test/tint/builtins/gen/var/asin/7b6a44.wgsl.expected.glsl
index e98152a..fe7bcd3 100644
--- a/test/tint/builtins/gen/var/asin/7b6a44.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/asin/7b6a44.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void asin_7b6a44() {
-  vec2 arg_0 = vec2(0.47942555f);
+  vec2 arg_0 = vec2(0.47942554950714111328f);
   vec2 res = asin(arg_0);
 }
 
@@ -22,7 +22,7 @@
 precision mediump float;
 
 void asin_7b6a44() {
-  vec2 arg_0 = vec2(0.47942555f);
+  vec2 arg_0 = vec2(0.47942554950714111328f);
   vec2 res = asin(arg_0);
 }
 
@@ -37,7 +37,7 @@
 #version 310 es
 
 void asin_7b6a44() {
-  vec2 arg_0 = vec2(0.47942555f);
+  vec2 arg_0 = vec2(0.47942554950714111328f);
   vec2 res = asin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/asin/7b6a44.wgsl.expected.msl b/test/tint/builtins/gen/var/asin/7b6a44.wgsl.expected.msl
index 8562a86..ff9eb5e 100644
--- a/test/tint/builtins/gen/var/asin/7b6a44.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/asin/7b6a44.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void asin_7b6a44() {
-  float2 arg_0 = float2(0.47942555f);
+  float2 arg_0 = float2(0.47942554950714111328f);
   float2 res = asin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/asin/7b6a44.wgsl.expected.wgsl b/test/tint/builtins/gen/var/asin/7b6a44.wgsl.expected.wgsl
index 8adbc85..aea6a8b 100644
--- a/test/tint/builtins/gen/var/asin/7b6a44.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/asin/7b6a44.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn asin_7b6a44() {
-  var arg_0 = vec2<f32>(0.47942555f);
+  var arg_0 = vec2<f32>(0.47942554950714111328f);
   var res : vec2<f32> = asin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/asin/8cd9c9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/asin/8cd9c9.wgsl.expected.dxc.hlsl
index 6f5cc30..5224b56 100644
--- a/test/tint/builtins/gen/var/asin/8cd9c9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/asin/8cd9c9.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void asin_8cd9c9() {
-  float3 arg_0 = (0.47942555f).xxx;
+  float3 arg_0 = (0.47942554950714111328f).xxx;
   float3 res = asin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/asin/8cd9c9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/asin/8cd9c9.wgsl.expected.fxc.hlsl
index 6f5cc30..5224b56 100644
--- a/test/tint/builtins/gen/var/asin/8cd9c9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/asin/8cd9c9.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void asin_8cd9c9() {
-  float3 arg_0 = (0.47942555f).xxx;
+  float3 arg_0 = (0.47942554950714111328f).xxx;
   float3 res = asin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/asin/8cd9c9.wgsl.expected.glsl b/test/tint/builtins/gen/var/asin/8cd9c9.wgsl.expected.glsl
index 5c76d6d..30d9571 100644
--- a/test/tint/builtins/gen/var/asin/8cd9c9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/asin/8cd9c9.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void asin_8cd9c9() {
-  vec3 arg_0 = vec3(0.47942555f);
+  vec3 arg_0 = vec3(0.47942554950714111328f);
   vec3 res = asin(arg_0);
 }
 
@@ -22,7 +22,7 @@
 precision mediump float;
 
 void asin_8cd9c9() {
-  vec3 arg_0 = vec3(0.47942555f);
+  vec3 arg_0 = vec3(0.47942554950714111328f);
   vec3 res = asin(arg_0);
 }
 
@@ -37,7 +37,7 @@
 #version 310 es
 
 void asin_8cd9c9() {
-  vec3 arg_0 = vec3(0.47942555f);
+  vec3 arg_0 = vec3(0.47942554950714111328f);
   vec3 res = asin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/asin/8cd9c9.wgsl.expected.msl b/test/tint/builtins/gen/var/asin/8cd9c9.wgsl.expected.msl
index 33a3914..4c4ee11 100644
--- a/test/tint/builtins/gen/var/asin/8cd9c9.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/asin/8cd9c9.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void asin_8cd9c9() {
-  float3 arg_0 = float3(0.47942555f);
+  float3 arg_0 = float3(0.47942554950714111328f);
   float3 res = asin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/asin/8cd9c9.wgsl.expected.wgsl b/test/tint/builtins/gen/var/asin/8cd9c9.wgsl.expected.wgsl
index a63fc5c..7616b9a 100644
--- a/test/tint/builtins/gen/var/asin/8cd9c9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/asin/8cd9c9.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn asin_8cd9c9() {
-  var arg_0 = vec3<f32>(0.47942555f);
+  var arg_0 = vec3<f32>(0.47942554950714111328f);
   var res : vec3<f32> = asin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/asin/a5dd88.wgsl.expected.wgsl b/test/tint/builtins/gen/var/asin/a5dd88.wgsl.expected.wgsl
index c6040e9..d266636 100644
--- a/test/tint/builtins/gen/var/asin/a5dd88.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/asin/a5dd88.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn asin_a5dd88() {
-  const arg_0 = vec2(0.479425538604);
+  const arg_0 = vec2(0.4794255386040000011);
   var res = asin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/asin/a6d73a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/asin/a6d73a.wgsl.expected.wgsl
index c26749c..60bc71c 100644
--- a/test/tint/builtins/gen/var/asin/a6d73a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/asin/a6d73a.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn asin_a6d73a() {
-  const arg_0 = 0.479425538604;
+  const arg_0 = 0.4794255386040000011;
   var res = asin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/asin/b4aced.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/asin/b4aced.wgsl.expected.dxc.hlsl
index 0613a31..e15455e 100644
--- a/test/tint/builtins/gen/var/asin/b4aced.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/asin/b4aced.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void asin_b4aced() {
-  vector<float16_t, 2> arg_0 = (float16_t(0.479248047h)).xx;
+  vector<float16_t, 2> arg_0 = (float16_t(0.479248046875h)).xx;
   vector<float16_t, 2> res = asin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/asin/b4aced.wgsl.expected.glsl b/test/tint/builtins/gen/var/asin/b4aced.wgsl.expected.glsl
index bb6ffad..3886825 100644
--- a/test/tint/builtins/gen/var/asin/b4aced.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/asin/b4aced.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void asin_b4aced() {
-  f16vec2 arg_0 = f16vec2(0.479248047hf);
+  f16vec2 arg_0 = f16vec2(0.479248046875hf);
   f16vec2 res = asin(arg_0);
 }
 
@@ -24,7 +24,7 @@
 precision mediump float;
 
 void asin_b4aced() {
-  f16vec2 arg_0 = f16vec2(0.479248047hf);
+  f16vec2 arg_0 = f16vec2(0.479248046875hf);
   f16vec2 res = asin(arg_0);
 }
 
@@ -40,7 +40,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void asin_b4aced() {
-  f16vec2 arg_0 = f16vec2(0.479248047hf);
+  f16vec2 arg_0 = f16vec2(0.479248046875hf);
   f16vec2 res = asin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/asin/b4aced.wgsl.expected.msl b/test/tint/builtins/gen/var/asin/b4aced.wgsl.expected.msl
index cdb23f6..9557b78 100644
--- a/test/tint/builtins/gen/var/asin/b4aced.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/asin/b4aced.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void asin_b4aced() {
-  half2 arg_0 = half2(0.479248047h);
+  half2 arg_0 = half2(0.479248046875h);
   half2 res = asin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/asin/b4aced.wgsl.expected.wgsl b/test/tint/builtins/gen/var/asin/b4aced.wgsl.expected.wgsl
index f493af6..437847a 100644
--- a/test/tint/builtins/gen/var/asin/b4aced.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/asin/b4aced.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 enable f16;
 
 fn asin_b4aced() {
-  var arg_0 = vec2<f16>(0.479248047h);
+  var arg_0 = vec2<f16>(0.479248046875h);
   var res : vec2<f16> = asin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/asin/c0c272.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/asin/c0c272.wgsl.expected.dxc.hlsl
index ce1128b..e89c04c 100644
--- a/test/tint/builtins/gen/var/asin/c0c272.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/asin/c0c272.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void asin_c0c272() {
-  float arg_0 = 0.47942555f;
+  float arg_0 = 0.47942554950714111328f;
   float res = asin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/asin/c0c272.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/asin/c0c272.wgsl.expected.fxc.hlsl
index ce1128b..e89c04c 100644
--- a/test/tint/builtins/gen/var/asin/c0c272.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/asin/c0c272.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void asin_c0c272() {
-  float arg_0 = 0.47942555f;
+  float arg_0 = 0.47942554950714111328f;
   float res = asin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/asin/c0c272.wgsl.expected.glsl b/test/tint/builtins/gen/var/asin/c0c272.wgsl.expected.glsl
index 8b7c97e..c1a3702 100644
--- a/test/tint/builtins/gen/var/asin/c0c272.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/asin/c0c272.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void asin_c0c272() {
-  float arg_0 = 0.47942555f;
+  float arg_0 = 0.47942554950714111328f;
   float res = asin(arg_0);
 }
 
@@ -22,7 +22,7 @@
 precision mediump float;
 
 void asin_c0c272() {
-  float arg_0 = 0.47942555f;
+  float arg_0 = 0.47942554950714111328f;
   float res = asin(arg_0);
 }
 
@@ -37,7 +37,7 @@
 #version 310 es
 
 void asin_c0c272() {
-  float arg_0 = 0.47942555f;
+  float arg_0 = 0.47942554950714111328f;
   float res = asin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/asin/c0c272.wgsl.expected.msl b/test/tint/builtins/gen/var/asin/c0c272.wgsl.expected.msl
index c907ded..2c7a891 100644
--- a/test/tint/builtins/gen/var/asin/c0c272.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/asin/c0c272.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void asin_c0c272() {
-  float arg_0 = 0.47942555f;
+  float arg_0 = 0.47942554950714111328f;
   float res = asin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/asin/c0c272.wgsl.expected.wgsl b/test/tint/builtins/gen/var/asin/c0c272.wgsl.expected.wgsl
index e31ccd9..1cb253d 100644
--- a/test/tint/builtins/gen/var/asin/c0c272.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/asin/c0c272.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn asin_c0c272() {
-  var arg_0 = 0.47942555f;
+  var arg_0 = 0.47942554950714111328f;
   var res : f32 = asin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/asinh/16b543.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/asinh/16b543.wgsl.expected.dxc.hlsl
index aa8bcb9..01a4bd5 100644
--- a/test/tint/builtins/gen/var/asinh/16b543.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/asinh/16b543.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void asinh_16b543() {
-  float2 res = (0.881373584f).xx;
+  float2 res = (0.88137358427047729492f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/asinh/16b543.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/asinh/16b543.wgsl.expected.fxc.hlsl
index aa8bcb9..01a4bd5 100644
--- a/test/tint/builtins/gen/var/asinh/16b543.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/asinh/16b543.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void asinh_16b543() {
-  float2 res = (0.881373584f).xx;
+  float2 res = (0.88137358427047729492f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/asinh/16b543.wgsl.expected.glsl b/test/tint/builtins/gen/var/asinh/16b543.wgsl.expected.glsl
index bccd4b5..f714432 100644
--- a/test/tint/builtins/gen/var/asinh/16b543.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/asinh/16b543.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void asinh_16b543() {
-  vec2 res = vec2(0.881373584f);
+  vec2 res = vec2(0.88137358427047729492f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void asinh_16b543() {
-  vec2 res = vec2(0.881373584f);
+  vec2 res = vec2(0.88137358427047729492f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void asinh_16b543() {
-  vec2 res = vec2(0.881373584f);
+  vec2 res = vec2(0.88137358427047729492f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/asinh/16b543.wgsl.expected.msl b/test/tint/builtins/gen/var/asinh/16b543.wgsl.expected.msl
index f4b3d6a..4a5e1a7 100644
--- a/test/tint/builtins/gen/var/asinh/16b543.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/asinh/16b543.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void asinh_16b543() {
-  float2 res = float2(0.881373584f);
+  float2 res = float2(0.88137358427047729492f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/asinh/180015.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/asinh/180015.wgsl.expected.dxc.hlsl
index 8b08b8c..10d6034 100644
--- a/test/tint/builtins/gen/var/asinh/180015.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/asinh/180015.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void asinh_180015() {
-  float res = 0.881373584f;
+  float res = 0.88137358427047729492f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/asinh/180015.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/asinh/180015.wgsl.expected.fxc.hlsl
index 8b08b8c..10d6034 100644
--- a/test/tint/builtins/gen/var/asinh/180015.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/asinh/180015.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void asinh_180015() {
-  float res = 0.881373584f;
+  float res = 0.88137358427047729492f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/asinh/180015.wgsl.expected.glsl b/test/tint/builtins/gen/var/asinh/180015.wgsl.expected.glsl
index dd4be60..e2e9a76 100644
--- a/test/tint/builtins/gen/var/asinh/180015.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/asinh/180015.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void asinh_180015() {
-  float res = 0.881373584f;
+  float res = 0.88137358427047729492f;
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void asinh_180015() {
-  float res = 0.881373584f;
+  float res = 0.88137358427047729492f;
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void asinh_180015() {
-  float res = 0.881373584f;
+  float res = 0.88137358427047729492f;
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/asinh/180015.wgsl.expected.msl b/test/tint/builtins/gen/var/asinh/180015.wgsl.expected.msl
index a391e66..f2634fd 100644
--- a/test/tint/builtins/gen/var/asinh/180015.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/asinh/180015.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void asinh_180015() {
-  float res = 0.881373584f;
+  float res = 0.88137358427047729492f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/asinh/51079e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/asinh/51079e.wgsl.expected.dxc.hlsl
index 7352b92..1a8827f 100644
--- a/test/tint/builtins/gen/var/asinh/51079e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/asinh/51079e.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void asinh_51079e() {
-  float3 res = (0.881373584f).xxx;
+  float3 res = (0.88137358427047729492f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/asinh/51079e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/asinh/51079e.wgsl.expected.fxc.hlsl
index 7352b92..1a8827f 100644
--- a/test/tint/builtins/gen/var/asinh/51079e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/asinh/51079e.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void asinh_51079e() {
-  float3 res = (0.881373584f).xxx;
+  float3 res = (0.88137358427047729492f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/asinh/51079e.wgsl.expected.glsl b/test/tint/builtins/gen/var/asinh/51079e.wgsl.expected.glsl
index 00b7fd0..7af712f 100644
--- a/test/tint/builtins/gen/var/asinh/51079e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/asinh/51079e.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void asinh_51079e() {
-  vec3 res = vec3(0.881373584f);
+  vec3 res = vec3(0.88137358427047729492f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void asinh_51079e() {
-  vec3 res = vec3(0.881373584f);
+  vec3 res = vec3(0.88137358427047729492f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void asinh_51079e() {
-  vec3 res = vec3(0.881373584f);
+  vec3 res = vec3(0.88137358427047729492f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/asinh/51079e.wgsl.expected.msl b/test/tint/builtins/gen/var/asinh/51079e.wgsl.expected.msl
index 94fd3a3..3df4a6b 100644
--- a/test/tint/builtins/gen/var/asinh/51079e.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/asinh/51079e.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void asinh_51079e() {
-  float3 res = float3(0.881373584f);
+  float3 res = float3(0.88137358427047729492f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/asinh/cf8603.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/asinh/cf8603.wgsl.expected.dxc.hlsl
index b15efcd..dbf7249 100644
--- a/test/tint/builtins/gen/var/asinh/cf8603.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/asinh/cf8603.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void asinh_cf8603() {
-  float4 res = (0.881373584f).xxxx;
+  float4 res = (0.88137358427047729492f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/asinh/cf8603.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/asinh/cf8603.wgsl.expected.fxc.hlsl
index b15efcd..dbf7249 100644
--- a/test/tint/builtins/gen/var/asinh/cf8603.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/asinh/cf8603.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void asinh_cf8603() {
-  float4 res = (0.881373584f).xxxx;
+  float4 res = (0.88137358427047729492f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/asinh/cf8603.wgsl.expected.glsl b/test/tint/builtins/gen/var/asinh/cf8603.wgsl.expected.glsl
index 11087b2..e60d6d8 100644
--- a/test/tint/builtins/gen/var/asinh/cf8603.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/asinh/cf8603.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void asinh_cf8603() {
-  vec4 res = vec4(0.881373584f);
+  vec4 res = vec4(0.88137358427047729492f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void asinh_cf8603() {
-  vec4 res = vec4(0.881373584f);
+  vec4 res = vec4(0.88137358427047729492f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void asinh_cf8603() {
-  vec4 res = vec4(0.881373584f);
+  vec4 res = vec4(0.88137358427047729492f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/asinh/cf8603.wgsl.expected.msl b/test/tint/builtins/gen/var/asinh/cf8603.wgsl.expected.msl
index 61a56b9..e1a1d53 100644
--- a/test/tint/builtins/gen/var/asinh/cf8603.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/asinh/cf8603.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void asinh_cf8603() {
-  float4 res = float4(0.881373584f);
+  float4 res = float4(0.88137358427047729492f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/atan/5ca7b8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/atan/5ca7b8.wgsl.expected.dxc.hlsl
index bea5d88..a7298c6 100644
--- a/test/tint/builtins/gen/var/atan/5ca7b8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atan/5ca7b8.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void atan_5ca7b8() {
-  float2 res = (0.785398185f).xx;
+  float2 res = (0.78539818525314331055f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/atan/5ca7b8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/atan/5ca7b8.wgsl.expected.fxc.hlsl
index bea5d88..a7298c6 100644
--- a/test/tint/builtins/gen/var/atan/5ca7b8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atan/5ca7b8.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void atan_5ca7b8() {
-  float2 res = (0.785398185f).xx;
+  float2 res = (0.78539818525314331055f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/atan/5ca7b8.wgsl.expected.glsl b/test/tint/builtins/gen/var/atan/5ca7b8.wgsl.expected.glsl
index e816df0..c79c72f 100644
--- a/test/tint/builtins/gen/var/atan/5ca7b8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atan/5ca7b8.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void atan_5ca7b8() {
-  vec2 res = vec2(0.785398185f);
+  vec2 res = vec2(0.78539818525314331055f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void atan_5ca7b8() {
-  vec2 res = vec2(0.785398185f);
+  vec2 res = vec2(0.78539818525314331055f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void atan_5ca7b8() {
-  vec2 res = vec2(0.785398185f);
+  vec2 res = vec2(0.78539818525314331055f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/atan/5ca7b8.wgsl.expected.msl b/test/tint/builtins/gen/var/atan/5ca7b8.wgsl.expected.msl
index d2a1cc8..8629789 100644
--- a/test/tint/builtins/gen/var/atan/5ca7b8.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/atan/5ca7b8.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void atan_5ca7b8() {
-  float2 res = float2(0.785398185f);
+  float2 res = float2(0.78539818525314331055f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/atan/749e1b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/atan/749e1b.wgsl.expected.dxc.hlsl
index f7c75ea..2db8ef0 100644
--- a/test/tint/builtins/gen/var/atan/749e1b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atan/749e1b.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void atan_749e1b() {
-  float3 res = (0.785398185f).xxx;
+  float3 res = (0.78539818525314331055f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/atan/749e1b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/atan/749e1b.wgsl.expected.fxc.hlsl
index f7c75ea..2db8ef0 100644
--- a/test/tint/builtins/gen/var/atan/749e1b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atan/749e1b.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void atan_749e1b() {
-  float3 res = (0.785398185f).xxx;
+  float3 res = (0.78539818525314331055f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/atan/749e1b.wgsl.expected.glsl b/test/tint/builtins/gen/var/atan/749e1b.wgsl.expected.glsl
index e596e37..049397c 100644
--- a/test/tint/builtins/gen/var/atan/749e1b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atan/749e1b.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void atan_749e1b() {
-  vec3 res = vec3(0.785398185f);
+  vec3 res = vec3(0.78539818525314331055f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void atan_749e1b() {
-  vec3 res = vec3(0.785398185f);
+  vec3 res = vec3(0.78539818525314331055f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void atan_749e1b() {
-  vec3 res = vec3(0.785398185f);
+  vec3 res = vec3(0.78539818525314331055f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/atan/749e1b.wgsl.expected.msl b/test/tint/builtins/gen/var/atan/749e1b.wgsl.expected.msl
index 4ee66a7..0a495f1 100644
--- a/test/tint/builtins/gen/var/atan/749e1b.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/atan/749e1b.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void atan_749e1b() {
-  float3 res = float3(0.785398185f);
+  float3 res = float3(0.78539818525314331055f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/atan/7a2a75.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/atan/7a2a75.wgsl.expected.dxc.hlsl
index 173246a..e193179 100644
--- a/test/tint/builtins/gen/var/atan/7a2a75.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atan/7a2a75.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void atan_7a2a75() {
-  float res = 0.785398185f;
+  float res = 0.78539818525314331055f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/atan/7a2a75.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/atan/7a2a75.wgsl.expected.fxc.hlsl
index 173246a..e193179 100644
--- a/test/tint/builtins/gen/var/atan/7a2a75.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atan/7a2a75.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void atan_7a2a75() {
-  float res = 0.785398185f;
+  float res = 0.78539818525314331055f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/atan/7a2a75.wgsl.expected.glsl b/test/tint/builtins/gen/var/atan/7a2a75.wgsl.expected.glsl
index 952e56b..3cc4ed2 100644
--- a/test/tint/builtins/gen/var/atan/7a2a75.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atan/7a2a75.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void atan_7a2a75() {
-  float res = 0.785398185f;
+  float res = 0.78539818525314331055f;
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void atan_7a2a75() {
-  float res = 0.785398185f;
+  float res = 0.78539818525314331055f;
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void atan_7a2a75() {
-  float res = 0.785398185f;
+  float res = 0.78539818525314331055f;
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/atan/7a2a75.wgsl.expected.msl b/test/tint/builtins/gen/var/atan/7a2a75.wgsl.expected.msl
index 12934a2..f007b24 100644
--- a/test/tint/builtins/gen/var/atan/7a2a75.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/atan/7a2a75.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void atan_7a2a75() {
-  float res = 0.785398185f;
+  float res = 0.78539818525314331055f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/atan/d17fb2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/atan/d17fb2.wgsl.expected.dxc.hlsl
index 96e0256..e6dfad9 100644
--- a/test/tint/builtins/gen/var/atan/d17fb2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atan/d17fb2.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void atan_d17fb2() {
-  float4 res = (0.785398185f).xxxx;
+  float4 res = (0.78539818525314331055f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/atan/d17fb2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/atan/d17fb2.wgsl.expected.fxc.hlsl
index 96e0256..e6dfad9 100644
--- a/test/tint/builtins/gen/var/atan/d17fb2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atan/d17fb2.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void atan_d17fb2() {
-  float4 res = (0.785398185f).xxxx;
+  float4 res = (0.78539818525314331055f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/atan/d17fb2.wgsl.expected.glsl b/test/tint/builtins/gen/var/atan/d17fb2.wgsl.expected.glsl
index 93ead11..3ea638e 100644
--- a/test/tint/builtins/gen/var/atan/d17fb2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atan/d17fb2.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void atan_d17fb2() {
-  vec4 res = vec4(0.785398185f);
+  vec4 res = vec4(0.78539818525314331055f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void atan_d17fb2() {
-  vec4 res = vec4(0.785398185f);
+  vec4 res = vec4(0.78539818525314331055f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void atan_d17fb2() {
-  vec4 res = vec4(0.785398185f);
+  vec4 res = vec4(0.78539818525314331055f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/atan/d17fb2.wgsl.expected.msl b/test/tint/builtins/gen/var/atan/d17fb2.wgsl.expected.msl
index d74bfda..b0029f9 100644
--- a/test/tint/builtins/gen/var/atan/d17fb2.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/atan/d17fb2.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void atan_d17fb2() {
-  float4 res = float4(0.785398185f);
+  float4 res = float4(0.78539818525314331055f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/atan2/034ace.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/atan2/034ace.wgsl.expected.dxc.hlsl
index dce0209..5af1f00 100644
--- a/test/tint/builtins/gen/var/atan2/034ace.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atan2/034ace.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void atan2_034ace() {
-  float res = 0.785398185f;
+  float res = 0.78539818525314331055f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/atan2/034ace.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/atan2/034ace.wgsl.expected.fxc.hlsl
index dce0209..5af1f00 100644
--- a/test/tint/builtins/gen/var/atan2/034ace.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atan2/034ace.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void atan2_034ace() {
-  float res = 0.785398185f;
+  float res = 0.78539818525314331055f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/atan2/034ace.wgsl.expected.glsl b/test/tint/builtins/gen/var/atan2/034ace.wgsl.expected.glsl
index 4919787..b4afab7 100644
--- a/test/tint/builtins/gen/var/atan2/034ace.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atan2/034ace.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void atan2_034ace() {
-  float res = 0.785398185f;
+  float res = 0.78539818525314331055f;
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void atan2_034ace() {
-  float res = 0.785398185f;
+  float res = 0.78539818525314331055f;
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void atan2_034ace() {
-  float res = 0.785398185f;
+  float res = 0.78539818525314331055f;
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/atan2/034ace.wgsl.expected.msl b/test/tint/builtins/gen/var/atan2/034ace.wgsl.expected.msl
index fb91e8d..5d601c5 100644
--- a/test/tint/builtins/gen/var/atan2/034ace.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/atan2/034ace.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void atan2_034ace() {
-  float res = 0.785398185f;
+  float res = 0.78539818525314331055f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/atan2/3c2865.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/atan2/3c2865.wgsl.expected.dxc.hlsl
index 71f64a4..6251bb1 100644
--- a/test/tint/builtins/gen/var/atan2/3c2865.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atan2/3c2865.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void atan2_3c2865() {
-  float3 res = (0.785398185f).xxx;
+  float3 res = (0.78539818525314331055f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/atan2/3c2865.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/atan2/3c2865.wgsl.expected.fxc.hlsl
index 71f64a4..6251bb1 100644
--- a/test/tint/builtins/gen/var/atan2/3c2865.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atan2/3c2865.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void atan2_3c2865() {
-  float3 res = (0.785398185f).xxx;
+  float3 res = (0.78539818525314331055f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/atan2/3c2865.wgsl.expected.glsl b/test/tint/builtins/gen/var/atan2/3c2865.wgsl.expected.glsl
index b2ebe38..40e2aaa 100644
--- a/test/tint/builtins/gen/var/atan2/3c2865.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atan2/3c2865.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void atan2_3c2865() {
-  vec3 res = vec3(0.785398185f);
+  vec3 res = vec3(0.78539818525314331055f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void atan2_3c2865() {
-  vec3 res = vec3(0.785398185f);
+  vec3 res = vec3(0.78539818525314331055f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void atan2_3c2865() {
-  vec3 res = vec3(0.785398185f);
+  vec3 res = vec3(0.78539818525314331055f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/atan2/3c2865.wgsl.expected.msl b/test/tint/builtins/gen/var/atan2/3c2865.wgsl.expected.msl
index 867108a..c6528f6 100644
--- a/test/tint/builtins/gen/var/atan2/3c2865.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/atan2/3c2865.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void atan2_3c2865() {
-  float3 res = float3(0.785398185f);
+  float3 res = float3(0.78539818525314331055f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/atan2/c19683.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/atan2/c19683.wgsl.expected.dxc.hlsl
index 93f2273..2401e58 100644
--- a/test/tint/builtins/gen/var/atan2/c19683.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atan2/c19683.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void atan2_c19683() {
-  float2 res = (0.785398185f).xx;
+  float2 res = (0.78539818525314331055f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/atan2/c19683.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/atan2/c19683.wgsl.expected.fxc.hlsl
index 93f2273..2401e58 100644
--- a/test/tint/builtins/gen/var/atan2/c19683.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atan2/c19683.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void atan2_c19683() {
-  float2 res = (0.785398185f).xx;
+  float2 res = (0.78539818525314331055f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/atan2/c19683.wgsl.expected.glsl b/test/tint/builtins/gen/var/atan2/c19683.wgsl.expected.glsl
index d823d61..dc495d7 100644
--- a/test/tint/builtins/gen/var/atan2/c19683.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atan2/c19683.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void atan2_c19683() {
-  vec2 res = vec2(0.785398185f);
+  vec2 res = vec2(0.78539818525314331055f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void atan2_c19683() {
-  vec2 res = vec2(0.785398185f);
+  vec2 res = vec2(0.78539818525314331055f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void atan2_c19683() {
-  vec2 res = vec2(0.785398185f);
+  vec2 res = vec2(0.78539818525314331055f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/atan2/c19683.wgsl.expected.msl b/test/tint/builtins/gen/var/atan2/c19683.wgsl.expected.msl
index 3af76c7..82ea445 100644
--- a/test/tint/builtins/gen/var/atan2/c19683.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/atan2/c19683.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void atan2_c19683() {
-  float2 res = float2(0.785398185f);
+  float2 res = float2(0.78539818525314331055f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/atan2/c4be45.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/atan2/c4be45.wgsl.expected.dxc.hlsl
index c666d69..63f0862 100644
--- a/test/tint/builtins/gen/var/atan2/c4be45.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atan2/c4be45.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void atan2_c4be45() {
-  float4 res = (0.785398185f).xxxx;
+  float4 res = (0.78539818525314331055f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/atan2/c4be45.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/atan2/c4be45.wgsl.expected.fxc.hlsl
index c666d69..63f0862 100644
--- a/test/tint/builtins/gen/var/atan2/c4be45.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atan2/c4be45.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void atan2_c4be45() {
-  float4 res = (0.785398185f).xxxx;
+  float4 res = (0.78539818525314331055f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/atan2/c4be45.wgsl.expected.glsl b/test/tint/builtins/gen/var/atan2/c4be45.wgsl.expected.glsl
index 2d65f82..427f0a0 100644
--- a/test/tint/builtins/gen/var/atan2/c4be45.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atan2/c4be45.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void atan2_c4be45() {
-  vec4 res = vec4(0.785398185f);
+  vec4 res = vec4(0.78539818525314331055f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void atan2_c4be45() {
-  vec4 res = vec4(0.785398185f);
+  vec4 res = vec4(0.78539818525314331055f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void atan2_c4be45() {
-  vec4 res = vec4(0.785398185f);
+  vec4 res = vec4(0.78539818525314331055f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/atan2/c4be45.wgsl.expected.msl b/test/tint/builtins/gen/var/atan2/c4be45.wgsl.expected.msl
index 89fe4fa..8f638ca 100644
--- a/test/tint/builtins/gen/var/atan2/c4be45.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/atan2/c4be45.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void atan2_c4be45() {
-  float4 res = float4(0.785398185f);
+  float4 res = float4(0.78539818525314331055f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/atanh/70d5bd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/atanh/70d5bd.wgsl.expected.dxc.hlsl
index c309e30..bf921e0 100644
--- a/test/tint/builtins/gen/var/atanh/70d5bd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atanh/70d5bd.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void atanh_70d5bd() {
-  float2 res = (0.549306154f).xx;
+  float2 res = (0.54930615425109863281f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/atanh/70d5bd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/atanh/70d5bd.wgsl.expected.fxc.hlsl
index c309e30..bf921e0 100644
--- a/test/tint/builtins/gen/var/atanh/70d5bd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atanh/70d5bd.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void atanh_70d5bd() {
-  float2 res = (0.549306154f).xx;
+  float2 res = (0.54930615425109863281f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/atanh/70d5bd.wgsl.expected.glsl b/test/tint/builtins/gen/var/atanh/70d5bd.wgsl.expected.glsl
index 4810f62..2fce2e4 100644
--- a/test/tint/builtins/gen/var/atanh/70d5bd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atanh/70d5bd.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void atanh_70d5bd() {
-  vec2 res = vec2(0.549306154f);
+  vec2 res = vec2(0.54930615425109863281f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void atanh_70d5bd() {
-  vec2 res = vec2(0.549306154f);
+  vec2 res = vec2(0.54930615425109863281f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void atanh_70d5bd() {
-  vec2 res = vec2(0.549306154f);
+  vec2 res = vec2(0.54930615425109863281f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/atanh/70d5bd.wgsl.expected.msl b/test/tint/builtins/gen/var/atanh/70d5bd.wgsl.expected.msl
index 57452f4..811ff35 100644
--- a/test/tint/builtins/gen/var/atanh/70d5bd.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/atanh/70d5bd.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void atanh_70d5bd() {
-  float2 res = float2(0.549306154f);
+  float2 res = float2(0.54930615425109863281f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/atanh/7f2874.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/atanh/7f2874.wgsl.expected.dxc.hlsl
index 001e7db..9493ebf 100644
--- a/test/tint/builtins/gen/var/atanh/7f2874.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atanh/7f2874.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void atanh_7f2874() {
-  float3 res = (0.549306154f).xxx;
+  float3 res = (0.54930615425109863281f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/atanh/7f2874.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/atanh/7f2874.wgsl.expected.fxc.hlsl
index 001e7db..9493ebf 100644
--- a/test/tint/builtins/gen/var/atanh/7f2874.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atanh/7f2874.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void atanh_7f2874() {
-  float3 res = (0.549306154f).xxx;
+  float3 res = (0.54930615425109863281f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/atanh/7f2874.wgsl.expected.glsl b/test/tint/builtins/gen/var/atanh/7f2874.wgsl.expected.glsl
index 1de983e..a28b2e9 100644
--- a/test/tint/builtins/gen/var/atanh/7f2874.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atanh/7f2874.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void atanh_7f2874() {
-  vec3 res = vec3(0.549306154f);
+  vec3 res = vec3(0.54930615425109863281f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void atanh_7f2874() {
-  vec3 res = vec3(0.549306154f);
+  vec3 res = vec3(0.54930615425109863281f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void atanh_7f2874() {
-  vec3 res = vec3(0.549306154f);
+  vec3 res = vec3(0.54930615425109863281f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/atanh/7f2874.wgsl.expected.msl b/test/tint/builtins/gen/var/atanh/7f2874.wgsl.expected.msl
index e93df5b..f4dcc17 100644
--- a/test/tint/builtins/gen/var/atanh/7f2874.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/atanh/7f2874.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void atanh_7f2874() {
-  float3 res = float3(0.549306154f);
+  float3 res = float3(0.54930615425109863281f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/atanh/c5dc32.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/atanh/c5dc32.wgsl.expected.dxc.hlsl
index 8f168ec..39101cd 100644
--- a/test/tint/builtins/gen/var/atanh/c5dc32.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atanh/c5dc32.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void atanh_c5dc32() {
-  float res = 0.549306154f;
+  float res = 0.54930615425109863281f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/atanh/c5dc32.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/atanh/c5dc32.wgsl.expected.fxc.hlsl
index 8f168ec..39101cd 100644
--- a/test/tint/builtins/gen/var/atanh/c5dc32.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atanh/c5dc32.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void atanh_c5dc32() {
-  float res = 0.549306154f;
+  float res = 0.54930615425109863281f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/atanh/c5dc32.wgsl.expected.glsl b/test/tint/builtins/gen/var/atanh/c5dc32.wgsl.expected.glsl
index 0ce5962..86ca443 100644
--- a/test/tint/builtins/gen/var/atanh/c5dc32.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atanh/c5dc32.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void atanh_c5dc32() {
-  float res = 0.549306154f;
+  float res = 0.54930615425109863281f;
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void atanh_c5dc32() {
-  float res = 0.549306154f;
+  float res = 0.54930615425109863281f;
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void atanh_c5dc32() {
-  float res = 0.549306154f;
+  float res = 0.54930615425109863281f;
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/atanh/c5dc32.wgsl.expected.msl b/test/tint/builtins/gen/var/atanh/c5dc32.wgsl.expected.msl
index 966c056..5d78f52 100644
--- a/test/tint/builtins/gen/var/atanh/c5dc32.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/atanh/c5dc32.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void atanh_c5dc32() {
-  float res = 0.549306154f;
+  float res = 0.54930615425109863281f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/atanh/e431bb.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/atanh/e431bb.wgsl.expected.dxc.hlsl
index a1d65a3..dbd3c2d 100644
--- a/test/tint/builtins/gen/var/atanh/e431bb.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atanh/e431bb.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void atanh_e431bb() {
-  float4 res = (0.549306154f).xxxx;
+  float4 res = (0.54930615425109863281f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/atanh/e431bb.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/atanh/e431bb.wgsl.expected.fxc.hlsl
index a1d65a3..dbd3c2d 100644
--- a/test/tint/builtins/gen/var/atanh/e431bb.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atanh/e431bb.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void atanh_e431bb() {
-  float4 res = (0.549306154f).xxxx;
+  float4 res = (0.54930615425109863281f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/atanh/e431bb.wgsl.expected.glsl b/test/tint/builtins/gen/var/atanh/e431bb.wgsl.expected.glsl
index 240bd01..28ea06f 100644
--- a/test/tint/builtins/gen/var/atanh/e431bb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atanh/e431bb.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void atanh_e431bb() {
-  vec4 res = vec4(0.549306154f);
+  vec4 res = vec4(0.54930615425109863281f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void atanh_e431bb() {
-  vec4 res = vec4(0.549306154f);
+  vec4 res = vec4(0.54930615425109863281f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void atanh_e431bb() {
-  vec4 res = vec4(0.549306154f);
+  vec4 res = vec4(0.54930615425109863281f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/atanh/e431bb.wgsl.expected.msl b/test/tint/builtins/gen/var/atanh/e431bb.wgsl.expected.msl
index caa1898..f13663a 100644
--- a/test/tint/builtins/gen/var/atanh/e431bb.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/atanh/e431bb.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void atanh_e431bb() {
-  float4 res = float4(0.549306154f);
+  float4 res = float4(0.54930615425109863281f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/degrees/0d170c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/degrees/0d170c.wgsl.expected.dxc.hlsl
index a434094..83247a1 100644
--- a/test/tint/builtins/gen/var/degrees/0d170c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/degrees/0d170c.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 float4 tint_degrees(float4 param_0) {
-  return param_0 * 57.295779513082323;
+  return param_0 * 57.29577951308232286465;
 }
 
 void degrees_0d170c() {
diff --git a/test/tint/builtins/gen/var/degrees/0d170c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/degrees/0d170c.wgsl.expected.fxc.hlsl
index a434094..83247a1 100644
--- a/test/tint/builtins/gen/var/degrees/0d170c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/degrees/0d170c.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 float4 tint_degrees(float4 param_0) {
-  return param_0 * 57.295779513082323;
+  return param_0 * 57.29577951308232286465;
 }
 
 void degrees_0d170c() {
diff --git a/test/tint/builtins/gen/var/degrees/0d170c.wgsl.expected.glsl b/test/tint/builtins/gen/var/degrees/0d170c.wgsl.expected.glsl
index eaf2c76..157c71b 100644
--- a/test/tint/builtins/gen/var/degrees/0d170c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/degrees/0d170c.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 vec4 tint_degrees(vec4 param_0) {
-  return param_0 * 57.295779513082323f;
+  return param_0 * 57.29577951308232286465f;
 }
 
 
@@ -27,7 +27,7 @@
 precision mediump float;
 
 vec4 tint_degrees(vec4 param_0) {
-  return param_0 * 57.295779513082323f;
+  return param_0 * 57.29577951308232286465f;
 }
 
 
@@ -47,7 +47,7 @@
 #version 310 es
 
 vec4 tint_degrees(vec4 param_0) {
-  return param_0 * 57.295779513082323f;
+  return param_0 * 57.29577951308232286465f;
 }
 
 
diff --git a/test/tint/builtins/gen/var/degrees/0d170c.wgsl.expected.msl b/test/tint/builtins/gen/var/degrees/0d170c.wgsl.expected.msl
index a43d3dd..7b84a39 100644
--- a/test/tint/builtins/gen/var/degrees/0d170c.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/degrees/0d170c.wgsl.expected.msl
@@ -3,7 +3,7 @@
 using namespace metal;
 
 float4 tint_degrees(float4 param_0) {
-  return param_0 * 57.295779513082323;
+  return param_0 * 57.29577951308232286465;
 }
 
 void degrees_0d170c() {
diff --git a/test/tint/builtins/gen/var/degrees/1ad5df.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/degrees/1ad5df.wgsl.expected.dxc.hlsl
index d4345b0..efc3f4b 100644
--- a/test/tint/builtins/gen/var/degrees/1ad5df.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/degrees/1ad5df.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 float2 tint_degrees(float2 param_0) {
-  return param_0 * 57.295779513082323;
+  return param_0 * 57.29577951308232286465;
 }
 
 void degrees_1ad5df() {
diff --git a/test/tint/builtins/gen/var/degrees/1ad5df.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/degrees/1ad5df.wgsl.expected.fxc.hlsl
index d4345b0..efc3f4b 100644
--- a/test/tint/builtins/gen/var/degrees/1ad5df.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/degrees/1ad5df.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 float2 tint_degrees(float2 param_0) {
-  return param_0 * 57.295779513082323;
+  return param_0 * 57.29577951308232286465;
 }
 
 void degrees_1ad5df() {
diff --git a/test/tint/builtins/gen/var/degrees/1ad5df.wgsl.expected.glsl b/test/tint/builtins/gen/var/degrees/1ad5df.wgsl.expected.glsl
index d4a56ed..223d36b 100644
--- a/test/tint/builtins/gen/var/degrees/1ad5df.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/degrees/1ad5df.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 vec2 tint_degrees(vec2 param_0) {
-  return param_0 * 57.295779513082323f;
+  return param_0 * 57.29577951308232286465f;
 }
 
 
@@ -27,7 +27,7 @@
 precision mediump float;
 
 vec2 tint_degrees(vec2 param_0) {
-  return param_0 * 57.295779513082323f;
+  return param_0 * 57.29577951308232286465f;
 }
 
 
@@ -47,7 +47,7 @@
 #version 310 es
 
 vec2 tint_degrees(vec2 param_0) {
-  return param_0 * 57.295779513082323f;
+  return param_0 * 57.29577951308232286465f;
 }
 
 
diff --git a/test/tint/builtins/gen/var/degrees/1ad5df.wgsl.expected.msl b/test/tint/builtins/gen/var/degrees/1ad5df.wgsl.expected.msl
index 22bdbb2..3aed1e1 100644
--- a/test/tint/builtins/gen/var/degrees/1ad5df.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/degrees/1ad5df.wgsl.expected.msl
@@ -3,7 +3,7 @@
 using namespace metal;
 
 float2 tint_degrees(float2 param_0) {
-  return param_0 * 57.295779513082323;
+  return param_0 * 57.29577951308232286465;
 }
 
 void degrees_1ad5df() {
diff --git a/test/tint/builtins/gen/var/degrees/2af623.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/degrees/2af623.wgsl.expected.dxc.hlsl
index c32b82b..44e1d00 100644
--- a/test/tint/builtins/gen/var/degrees/2af623.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/degrees/2af623.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 float3 tint_degrees(float3 param_0) {
-  return param_0 * 57.295779513082323;
+  return param_0 * 57.29577951308232286465;
 }
 
 void degrees_2af623() {
diff --git a/test/tint/builtins/gen/var/degrees/2af623.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/degrees/2af623.wgsl.expected.fxc.hlsl
index c32b82b..44e1d00 100644
--- a/test/tint/builtins/gen/var/degrees/2af623.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/degrees/2af623.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 float3 tint_degrees(float3 param_0) {
-  return param_0 * 57.295779513082323;
+  return param_0 * 57.29577951308232286465;
 }
 
 void degrees_2af623() {
diff --git a/test/tint/builtins/gen/var/degrees/2af623.wgsl.expected.glsl b/test/tint/builtins/gen/var/degrees/2af623.wgsl.expected.glsl
index 41f8cc4..f8f8766 100644
--- a/test/tint/builtins/gen/var/degrees/2af623.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/degrees/2af623.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 vec3 tint_degrees(vec3 param_0) {
-  return param_0 * 57.295779513082323f;
+  return param_0 * 57.29577951308232286465f;
 }
 
 
@@ -27,7 +27,7 @@
 precision mediump float;
 
 vec3 tint_degrees(vec3 param_0) {
-  return param_0 * 57.295779513082323f;
+  return param_0 * 57.29577951308232286465f;
 }
 
 
@@ -47,7 +47,7 @@
 #version 310 es
 
 vec3 tint_degrees(vec3 param_0) {
-  return param_0 * 57.295779513082323f;
+  return param_0 * 57.29577951308232286465f;
 }
 
 
diff --git a/test/tint/builtins/gen/var/degrees/2af623.wgsl.expected.msl b/test/tint/builtins/gen/var/degrees/2af623.wgsl.expected.msl
index befd29a..1b34ae4 100644
--- a/test/tint/builtins/gen/var/degrees/2af623.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/degrees/2af623.wgsl.expected.msl
@@ -3,7 +3,7 @@
 using namespace metal;
 
 float3 tint_degrees(float3 param_0) {
-  return param_0 * 57.295779513082323;
+  return param_0 * 57.29577951308232286465;
 }
 
 void degrees_2af623() {
diff --git a/test/tint/builtins/gen/var/degrees/3055d3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/degrees/3055d3.wgsl.expected.dxc.hlsl
index 5fddbd7..d11272f 100644
--- a/test/tint/builtins/gen/var/degrees/3055d3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/degrees/3055d3.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 vector<float16_t, 4> tint_degrees(vector<float16_t, 4> param_0) {
-  return param_0 * 57.295779513082323;
+  return param_0 * 57.29577951308232286465;
 }
 
 void degrees_3055d3() {
diff --git a/test/tint/builtins/gen/var/degrees/3055d3.wgsl.expected.glsl b/test/tint/builtins/gen/var/degrees/3055d3.wgsl.expected.glsl
index 9268aac..c510a02 100644
--- a/test/tint/builtins/gen/var/degrees/3055d3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/degrees/3055d3.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 f16vec4 tint_degrees(f16vec4 param_0) {
-  return param_0 * 57.295779513082323hf;
+  return param_0 * 57.29577951308232286465hf;
 }
 
 
@@ -29,7 +29,7 @@
 precision mediump float;
 
 f16vec4 tint_degrees(f16vec4 param_0) {
-  return param_0 * 57.295779513082323hf;
+  return param_0 * 57.29577951308232286465hf;
 }
 
 
@@ -50,7 +50,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 f16vec4 tint_degrees(f16vec4 param_0) {
-  return param_0 * 57.295779513082323hf;
+  return param_0 * 57.29577951308232286465hf;
 }
 
 
diff --git a/test/tint/builtins/gen/var/degrees/3055d3.wgsl.expected.msl b/test/tint/builtins/gen/var/degrees/3055d3.wgsl.expected.msl
index c1f4067..8fdf025 100644
--- a/test/tint/builtins/gen/var/degrees/3055d3.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/degrees/3055d3.wgsl.expected.msl
@@ -3,7 +3,7 @@
 using namespace metal;
 
 half4 tint_degrees(half4 param_0) {
-  return param_0 * 57.295779513082323;
+  return param_0 * 57.29577951308232286465;
 }
 
 void degrees_3055d3() {
diff --git a/test/tint/builtins/gen/var/degrees/51f705.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/degrees/51f705.wgsl.expected.dxc.hlsl
index 7482ab6..dc451cc 100644
--- a/test/tint/builtins/gen/var/degrees/51f705.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/degrees/51f705.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 float tint_degrees(float param_0) {
-  return param_0 * 57.295779513082323;
+  return param_0 * 57.29577951308232286465;
 }
 
 void degrees_51f705() {
diff --git a/test/tint/builtins/gen/var/degrees/51f705.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/degrees/51f705.wgsl.expected.fxc.hlsl
index 7482ab6..dc451cc 100644
--- a/test/tint/builtins/gen/var/degrees/51f705.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/degrees/51f705.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 float tint_degrees(float param_0) {
-  return param_0 * 57.295779513082323;
+  return param_0 * 57.29577951308232286465;
 }
 
 void degrees_51f705() {
diff --git a/test/tint/builtins/gen/var/degrees/51f705.wgsl.expected.glsl b/test/tint/builtins/gen/var/degrees/51f705.wgsl.expected.glsl
index 26c1436..accb07d 100644
--- a/test/tint/builtins/gen/var/degrees/51f705.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/degrees/51f705.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 float tint_degrees(float param_0) {
-  return param_0 * 57.295779513082323f;
+  return param_0 * 57.29577951308232286465f;
 }
 
 
@@ -27,7 +27,7 @@
 precision mediump float;
 
 float tint_degrees(float param_0) {
-  return param_0 * 57.295779513082323f;
+  return param_0 * 57.29577951308232286465f;
 }
 
 
@@ -47,7 +47,7 @@
 #version 310 es
 
 float tint_degrees(float param_0) {
-  return param_0 * 57.295779513082323f;
+  return param_0 * 57.29577951308232286465f;
 }
 
 
diff --git a/test/tint/builtins/gen/var/degrees/51f705.wgsl.expected.msl b/test/tint/builtins/gen/var/degrees/51f705.wgsl.expected.msl
index c46fd92..ede7730 100644
--- a/test/tint/builtins/gen/var/degrees/51f705.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/degrees/51f705.wgsl.expected.msl
@@ -3,7 +3,7 @@
 using namespace metal;
 
 float tint_degrees(float param_0) {
-  return param_0 * 57.295779513082323;
+  return param_0 * 57.29577951308232286465;
 }
 
 void degrees_51f705() {
diff --git a/test/tint/builtins/gen/var/degrees/5e9805.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/degrees/5e9805.wgsl.expected.dxc.hlsl
index 650bf8d..36c3263 100644
--- a/test/tint/builtins/gen/var/degrees/5e9805.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/degrees/5e9805.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 float16_t tint_degrees(float16_t param_0) {
-  return param_0 * 57.295779513082323;
+  return param_0 * 57.29577951308232286465;
 }
 
 void degrees_5e9805() {
diff --git a/test/tint/builtins/gen/var/degrees/5e9805.wgsl.expected.glsl b/test/tint/builtins/gen/var/degrees/5e9805.wgsl.expected.glsl
index 1eded00..fd062d1 100644
--- a/test/tint/builtins/gen/var/degrees/5e9805.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/degrees/5e9805.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 float16_t tint_degrees(float16_t param_0) {
-  return param_0 * 57.295779513082323hf;
+  return param_0 * 57.29577951308232286465hf;
 }
 
 
@@ -29,7 +29,7 @@
 precision mediump float;
 
 float16_t tint_degrees(float16_t param_0) {
-  return param_0 * 57.295779513082323hf;
+  return param_0 * 57.29577951308232286465hf;
 }
 
 
@@ -50,7 +50,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 float16_t tint_degrees(float16_t param_0) {
-  return param_0 * 57.295779513082323hf;
+  return param_0 * 57.29577951308232286465hf;
 }
 
 
diff --git a/test/tint/builtins/gen/var/degrees/5e9805.wgsl.expected.msl b/test/tint/builtins/gen/var/degrees/5e9805.wgsl.expected.msl
index ddee167..266913a 100644
--- a/test/tint/builtins/gen/var/degrees/5e9805.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/degrees/5e9805.wgsl.expected.msl
@@ -3,7 +3,7 @@
 using namespace metal;
 
 half tint_degrees(half param_0) {
-  return param_0 * 57.295779513082323;
+  return param_0 * 57.29577951308232286465;
 }
 
 void degrees_5e9805() {
diff --git a/test/tint/builtins/gen/var/degrees/810467.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/degrees/810467.wgsl.expected.dxc.hlsl
index eb0415d..7092c04 100644
--- a/test/tint/builtins/gen/var/degrees/810467.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/degrees/810467.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void degrees_810467() {
-  float2 res = (57.295780182f).xx;
+  float2 res = (57.295780181884765625f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/degrees/810467.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/degrees/810467.wgsl.expected.fxc.hlsl
index eb0415d..7092c04 100644
--- a/test/tint/builtins/gen/var/degrees/810467.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/degrees/810467.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void degrees_810467() {
-  float2 res = (57.295780182f).xx;
+  float2 res = (57.295780181884765625f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/degrees/810467.wgsl.expected.glsl b/test/tint/builtins/gen/var/degrees/810467.wgsl.expected.glsl
index cee6770..9d96588 100644
--- a/test/tint/builtins/gen/var/degrees/810467.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/degrees/810467.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void degrees_810467() {
-  vec2 res = vec2(57.295780182f);
+  vec2 res = vec2(57.295780181884765625f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void degrees_810467() {
-  vec2 res = vec2(57.295780182f);
+  vec2 res = vec2(57.295780181884765625f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void degrees_810467() {
-  vec2 res = vec2(57.295780182f);
+  vec2 res = vec2(57.295780181884765625f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/degrees/810467.wgsl.expected.msl b/test/tint/builtins/gen/var/degrees/810467.wgsl.expected.msl
index 26fdf6d..60430771 100644
--- a/test/tint/builtins/gen/var/degrees/810467.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/degrees/810467.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void degrees_810467() {
-  float2 res = float2(57.295780182f);
+  float2 res = float2(57.295780181884765625f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/degrees/c0880c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/degrees/c0880c.wgsl.expected.dxc.hlsl
index 78013a9..1b755ad 100644
--- a/test/tint/builtins/gen/var/degrees/c0880c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/degrees/c0880c.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void degrees_c0880c() {
-  float3 res = (57.295780182f).xxx;
+  float3 res = (57.295780181884765625f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/degrees/c0880c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/degrees/c0880c.wgsl.expected.fxc.hlsl
index 78013a9..1b755ad 100644
--- a/test/tint/builtins/gen/var/degrees/c0880c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/degrees/c0880c.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void degrees_c0880c() {
-  float3 res = (57.295780182f).xxx;
+  float3 res = (57.295780181884765625f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/degrees/c0880c.wgsl.expected.glsl b/test/tint/builtins/gen/var/degrees/c0880c.wgsl.expected.glsl
index ad03188..d5946bf 100644
--- a/test/tint/builtins/gen/var/degrees/c0880c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/degrees/c0880c.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void degrees_c0880c() {
-  vec3 res = vec3(57.295780182f);
+  vec3 res = vec3(57.295780181884765625f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void degrees_c0880c() {
-  vec3 res = vec3(57.295780182f);
+  vec3 res = vec3(57.295780181884765625f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void degrees_c0880c() {
-  vec3 res = vec3(57.295780182f);
+  vec3 res = vec3(57.295780181884765625f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/degrees/c0880c.wgsl.expected.msl b/test/tint/builtins/gen/var/degrees/c0880c.wgsl.expected.msl
index 4b019e9..9047e09 100644
--- a/test/tint/builtins/gen/var/degrees/c0880c.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/degrees/c0880c.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void degrees_c0880c() {
-  float3 res = float3(57.295780182f);
+  float3 res = float3(57.295780181884765625f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/degrees/d43a49.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/degrees/d43a49.wgsl.expected.dxc.hlsl
index 0ea5685..5d5f6b3 100644
--- a/test/tint/builtins/gen/var/degrees/d43a49.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/degrees/d43a49.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void degrees_d43a49() {
-  float4 res = (57.295780182f).xxxx;
+  float4 res = (57.295780181884765625f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/degrees/d43a49.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/degrees/d43a49.wgsl.expected.fxc.hlsl
index 0ea5685..5d5f6b3 100644
--- a/test/tint/builtins/gen/var/degrees/d43a49.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/degrees/d43a49.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void degrees_d43a49() {
-  float4 res = (57.295780182f).xxxx;
+  float4 res = (57.295780181884765625f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/degrees/d43a49.wgsl.expected.glsl b/test/tint/builtins/gen/var/degrees/d43a49.wgsl.expected.glsl
index 893f790..b599bb7 100644
--- a/test/tint/builtins/gen/var/degrees/d43a49.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/degrees/d43a49.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void degrees_d43a49() {
-  vec4 res = vec4(57.295780182f);
+  vec4 res = vec4(57.295780181884765625f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void degrees_d43a49() {
-  vec4 res = vec4(57.295780182f);
+  vec4 res = vec4(57.295780181884765625f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void degrees_d43a49() {
-  vec4 res = vec4(57.295780182f);
+  vec4 res = vec4(57.295780181884765625f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/degrees/d43a49.wgsl.expected.msl b/test/tint/builtins/gen/var/degrees/d43a49.wgsl.expected.msl
index adddeb0..623900a 100644
--- a/test/tint/builtins/gen/var/degrees/d43a49.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/degrees/d43a49.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void degrees_d43a49() {
-  float4 res = float4(57.295780182f);
+  float4 res = float4(57.295780181884765625f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/degrees/dfe8f4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/degrees/dfe8f4.wgsl.expected.dxc.hlsl
index 3d9d88c..179583d 100644
--- a/test/tint/builtins/gen/var/degrees/dfe8f4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/degrees/dfe8f4.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 vector<float16_t, 3> tint_degrees(vector<float16_t, 3> param_0) {
-  return param_0 * 57.295779513082323;
+  return param_0 * 57.29577951308232286465;
 }
 
 void degrees_dfe8f4() {
diff --git a/test/tint/builtins/gen/var/degrees/dfe8f4.wgsl.expected.glsl b/test/tint/builtins/gen/var/degrees/dfe8f4.wgsl.expected.glsl
index b4de681..8b1e365 100644
--- a/test/tint/builtins/gen/var/degrees/dfe8f4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/degrees/dfe8f4.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 f16vec3 tint_degrees(f16vec3 param_0) {
-  return param_0 * 57.295779513082323hf;
+  return param_0 * 57.29577951308232286465hf;
 }
 
 
@@ -29,7 +29,7 @@
 precision mediump float;
 
 f16vec3 tint_degrees(f16vec3 param_0) {
-  return param_0 * 57.295779513082323hf;
+  return param_0 * 57.29577951308232286465hf;
 }
 
 
@@ -50,7 +50,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 f16vec3 tint_degrees(f16vec3 param_0) {
-  return param_0 * 57.295779513082323hf;
+  return param_0 * 57.29577951308232286465hf;
 }
 
 
diff --git a/test/tint/builtins/gen/var/degrees/dfe8f4.wgsl.expected.msl b/test/tint/builtins/gen/var/degrees/dfe8f4.wgsl.expected.msl
index d226ae3..6bffc90 100644
--- a/test/tint/builtins/gen/var/degrees/dfe8f4.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/degrees/dfe8f4.wgsl.expected.msl
@@ -3,7 +3,7 @@
 using namespace metal;
 
 half3 tint_degrees(half3 param_0) {
-  return param_0 * 57.295779513082323;
+  return param_0 * 57.29577951308232286465;
 }
 
 void degrees_dfe8f4() {
diff --git a/test/tint/builtins/gen/var/degrees/f59715.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/degrees/f59715.wgsl.expected.dxc.hlsl
index 5107ffa..2a22fda 100644
--- a/test/tint/builtins/gen/var/degrees/f59715.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/degrees/f59715.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 vector<float16_t, 2> tint_degrees(vector<float16_t, 2> param_0) {
-  return param_0 * 57.295779513082323;
+  return param_0 * 57.29577951308232286465;
 }
 
 void degrees_f59715() {
diff --git a/test/tint/builtins/gen/var/degrees/f59715.wgsl.expected.glsl b/test/tint/builtins/gen/var/degrees/f59715.wgsl.expected.glsl
index 9af36b8..b481d7f 100644
--- a/test/tint/builtins/gen/var/degrees/f59715.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/degrees/f59715.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 f16vec2 tint_degrees(f16vec2 param_0) {
-  return param_0 * 57.295779513082323hf;
+  return param_0 * 57.29577951308232286465hf;
 }
 
 
@@ -29,7 +29,7 @@
 precision mediump float;
 
 f16vec2 tint_degrees(f16vec2 param_0) {
-  return param_0 * 57.295779513082323hf;
+  return param_0 * 57.29577951308232286465hf;
 }
 
 
@@ -50,7 +50,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 f16vec2 tint_degrees(f16vec2 param_0) {
-  return param_0 * 57.295779513082323hf;
+  return param_0 * 57.29577951308232286465hf;
 }
 
 
diff --git a/test/tint/builtins/gen/var/degrees/f59715.wgsl.expected.msl b/test/tint/builtins/gen/var/degrees/f59715.wgsl.expected.msl
index 02992fc..b9ad03f 100644
--- a/test/tint/builtins/gen/var/degrees/f59715.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/degrees/f59715.wgsl.expected.msl
@@ -3,7 +3,7 @@
 using namespace metal;
 
 half2 tint_degrees(half2 param_0) {
-  return param_0 * 57.295779513082323;
+  return param_0 * 57.29577951308232286465;
 }
 
 void degrees_f59715() {
diff --git a/test/tint/builtins/gen/var/degrees/fafa7e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/degrees/fafa7e.wgsl.expected.dxc.hlsl
index a11be10..574781e6 100644
--- a/test/tint/builtins/gen/var/degrees/fafa7e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/degrees/fafa7e.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void degrees_fafa7e() {
-  float res = 57.295780182f;
+  float res = 57.295780181884765625f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/degrees/fafa7e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/degrees/fafa7e.wgsl.expected.fxc.hlsl
index a11be10..574781e6 100644
--- a/test/tint/builtins/gen/var/degrees/fafa7e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/degrees/fafa7e.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void degrees_fafa7e() {
-  float res = 57.295780182f;
+  float res = 57.295780181884765625f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/degrees/fafa7e.wgsl.expected.glsl b/test/tint/builtins/gen/var/degrees/fafa7e.wgsl.expected.glsl
index 4572eb3..3017003 100644
--- a/test/tint/builtins/gen/var/degrees/fafa7e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/degrees/fafa7e.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void degrees_fafa7e() {
-  float res = 57.295780182f;
+  float res = 57.295780181884765625f;
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void degrees_fafa7e() {
-  float res = 57.295780182f;
+  float res = 57.295780181884765625f;
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void degrees_fafa7e() {
-  float res = 57.295780182f;
+  float res = 57.295780181884765625f;
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/degrees/fafa7e.wgsl.expected.msl b/test/tint/builtins/gen/var/degrees/fafa7e.wgsl.expected.msl
index 770b0ab..ff426d2 100644
--- a/test/tint/builtins/gen/var/degrees/fafa7e.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/degrees/fafa7e.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void degrees_fafa7e() {
-  float res = 57.295780182f;
+  float res = 57.295780181884765625f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/exp/49e4c5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/exp/49e4c5.wgsl.expected.dxc.hlsl
index a370f26..28dfe2e 100644
--- a/test/tint/builtins/gen/var/exp/49e4c5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/exp/49e4c5.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void exp_49e4c5() {
-  float res = 2.718281746f;
+  float res = 2.71828174591064453125f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/exp/49e4c5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/exp/49e4c5.wgsl.expected.fxc.hlsl
index a370f26..28dfe2e 100644
--- a/test/tint/builtins/gen/var/exp/49e4c5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/exp/49e4c5.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void exp_49e4c5() {
-  float res = 2.718281746f;
+  float res = 2.71828174591064453125f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/exp/49e4c5.wgsl.expected.glsl b/test/tint/builtins/gen/var/exp/49e4c5.wgsl.expected.glsl
index 304cb4d..2b7644c 100644
--- a/test/tint/builtins/gen/var/exp/49e4c5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/exp/49e4c5.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void exp_49e4c5() {
-  float res = 2.718281746f;
+  float res = 2.71828174591064453125f;
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void exp_49e4c5() {
-  float res = 2.718281746f;
+  float res = 2.71828174591064453125f;
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void exp_49e4c5() {
-  float res = 2.718281746f;
+  float res = 2.71828174591064453125f;
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/exp/49e4c5.wgsl.expected.msl b/test/tint/builtins/gen/var/exp/49e4c5.wgsl.expected.msl
index 94c050b..8a3790c 100644
--- a/test/tint/builtins/gen/var/exp/49e4c5.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/exp/49e4c5.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void exp_49e4c5() {
-  float res = 2.718281746f;
+  float res = 2.71828174591064453125f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/exp/699629.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/exp/699629.wgsl.expected.dxc.hlsl
index f19809c..03894d3 100644
--- a/test/tint/builtins/gen/var/exp/699629.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/exp/699629.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void exp_699629() {
-  float2 res = (2.718281746f).xx;
+  float2 res = (2.71828174591064453125f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/exp/699629.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/exp/699629.wgsl.expected.fxc.hlsl
index f19809c..03894d3 100644
--- a/test/tint/builtins/gen/var/exp/699629.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/exp/699629.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void exp_699629() {
-  float2 res = (2.718281746f).xx;
+  float2 res = (2.71828174591064453125f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/exp/699629.wgsl.expected.glsl b/test/tint/builtins/gen/var/exp/699629.wgsl.expected.glsl
index 93856b5..6a619c6 100644
--- a/test/tint/builtins/gen/var/exp/699629.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/exp/699629.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void exp_699629() {
-  vec2 res = vec2(2.718281746f);
+  vec2 res = vec2(2.71828174591064453125f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void exp_699629() {
-  vec2 res = vec2(2.718281746f);
+  vec2 res = vec2(2.71828174591064453125f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void exp_699629() {
-  vec2 res = vec2(2.718281746f);
+  vec2 res = vec2(2.71828174591064453125f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/exp/699629.wgsl.expected.msl b/test/tint/builtins/gen/var/exp/699629.wgsl.expected.msl
index e68e3dd..0520bd3 100644
--- a/test/tint/builtins/gen/var/exp/699629.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/exp/699629.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void exp_699629() {
-  float2 res = float2(2.718281746f);
+  float2 res = float2(2.71828174591064453125f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/exp/bda5bb.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/exp/bda5bb.wgsl.expected.dxc.hlsl
index ea132ce..439cbe2 100644
--- a/test/tint/builtins/gen/var/exp/bda5bb.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/exp/bda5bb.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void exp_bda5bb() {
-  float3 res = (2.718281746f).xxx;
+  float3 res = (2.71828174591064453125f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/exp/bda5bb.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/exp/bda5bb.wgsl.expected.fxc.hlsl
index ea132ce..439cbe2 100644
--- a/test/tint/builtins/gen/var/exp/bda5bb.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/exp/bda5bb.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void exp_bda5bb() {
-  float3 res = (2.718281746f).xxx;
+  float3 res = (2.71828174591064453125f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/exp/bda5bb.wgsl.expected.glsl b/test/tint/builtins/gen/var/exp/bda5bb.wgsl.expected.glsl
index 65cb0f6..71a9995 100644
--- a/test/tint/builtins/gen/var/exp/bda5bb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/exp/bda5bb.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void exp_bda5bb() {
-  vec3 res = vec3(2.718281746f);
+  vec3 res = vec3(2.71828174591064453125f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void exp_bda5bb() {
-  vec3 res = vec3(2.718281746f);
+  vec3 res = vec3(2.71828174591064453125f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void exp_bda5bb() {
-  vec3 res = vec3(2.718281746f);
+  vec3 res = vec3(2.71828174591064453125f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/exp/bda5bb.wgsl.expected.msl b/test/tint/builtins/gen/var/exp/bda5bb.wgsl.expected.msl
index 46be400..e43a8a9 100644
--- a/test/tint/builtins/gen/var/exp/bda5bb.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/exp/bda5bb.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void exp_bda5bb() {
-  float3 res = float3(2.718281746f);
+  float3 res = float3(2.71828174591064453125f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/exp/dad791.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/exp/dad791.wgsl.expected.dxc.hlsl
index b4228d0..7d907a4 100644
--- a/test/tint/builtins/gen/var/exp/dad791.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/exp/dad791.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void exp_dad791() {
-  float4 res = (2.718281746f).xxxx;
+  float4 res = (2.71828174591064453125f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/exp/dad791.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/exp/dad791.wgsl.expected.fxc.hlsl
index b4228d0..7d907a4 100644
--- a/test/tint/builtins/gen/var/exp/dad791.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/exp/dad791.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void exp_dad791() {
-  float4 res = (2.718281746f).xxxx;
+  float4 res = (2.71828174591064453125f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/exp/dad791.wgsl.expected.glsl b/test/tint/builtins/gen/var/exp/dad791.wgsl.expected.glsl
index 1adc457..756089e 100644
--- a/test/tint/builtins/gen/var/exp/dad791.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/exp/dad791.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void exp_dad791() {
-  vec4 res = vec4(2.718281746f);
+  vec4 res = vec4(2.71828174591064453125f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void exp_dad791() {
-  vec4 res = vec4(2.718281746f);
+  vec4 res = vec4(2.71828174591064453125f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void exp_dad791() {
-  vec4 res = vec4(2.718281746f);
+  vec4 res = vec4(2.71828174591064453125f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/exp/dad791.wgsl.expected.msl b/test/tint/builtins/gen/var/exp/dad791.wgsl.expected.msl
index c445389..76c438c 100644
--- a/test/tint/builtins/gen/var/exp/dad791.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/exp/dad791.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void exp_dad791() {
-  float4 res = float4(2.718281746f);
+  float4 res = float4(2.71828174591064453125f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/normalize/584e47.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/normalize/584e47.wgsl.expected.dxc.hlsl
index 7ecf609..19d529f 100644
--- a/test/tint/builtins/gen/var/normalize/584e47.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/normalize/584e47.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void normalize_584e47() {
-  float2 res = (0.707106769f).xx;
+  float2 res = (0.70710676908493041992f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/normalize/584e47.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/normalize/584e47.wgsl.expected.fxc.hlsl
index 7ecf609..19d529f 100644
--- a/test/tint/builtins/gen/var/normalize/584e47.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/normalize/584e47.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void normalize_584e47() {
-  float2 res = (0.707106769f).xx;
+  float2 res = (0.70710676908493041992f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/normalize/584e47.wgsl.expected.glsl b/test/tint/builtins/gen/var/normalize/584e47.wgsl.expected.glsl
index bc0e2ee..8d56c8c 100644
--- a/test/tint/builtins/gen/var/normalize/584e47.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/normalize/584e47.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void normalize_584e47() {
-  vec2 res = vec2(0.707106769f);
+  vec2 res = vec2(0.70710676908493041992f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void normalize_584e47() {
-  vec2 res = vec2(0.707106769f);
+  vec2 res = vec2(0.70710676908493041992f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void normalize_584e47() {
-  vec2 res = vec2(0.707106769f);
+  vec2 res = vec2(0.70710676908493041992f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/normalize/584e47.wgsl.expected.msl b/test/tint/builtins/gen/var/normalize/584e47.wgsl.expected.msl
index 37095b8..53b3295 100644
--- a/test/tint/builtins/gen/var/normalize/584e47.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/normalize/584e47.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void normalize_584e47() {
-  float2 res = float2(0.707106769f);
+  float2 res = float2(0.70710676908493041992f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/normalize/e7def8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/normalize/e7def8.wgsl.expected.dxc.hlsl
index 257e626..0112f14 100644
--- a/test/tint/builtins/gen/var/normalize/e7def8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/normalize/e7def8.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void normalize_e7def8() {
-  float3 res = (0.577350259f).xxx;
+  float3 res = (0.57735025882720947266f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/normalize/e7def8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/normalize/e7def8.wgsl.expected.fxc.hlsl
index 257e626..0112f14 100644
--- a/test/tint/builtins/gen/var/normalize/e7def8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/normalize/e7def8.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void normalize_e7def8() {
-  float3 res = (0.577350259f).xxx;
+  float3 res = (0.57735025882720947266f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/normalize/e7def8.wgsl.expected.glsl b/test/tint/builtins/gen/var/normalize/e7def8.wgsl.expected.glsl
index b29cf51..053a255 100644
--- a/test/tint/builtins/gen/var/normalize/e7def8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/normalize/e7def8.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void normalize_e7def8() {
-  vec3 res = vec3(0.577350259f);
+  vec3 res = vec3(0.57735025882720947266f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void normalize_e7def8() {
-  vec3 res = vec3(0.577350259f);
+  vec3 res = vec3(0.57735025882720947266f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void normalize_e7def8() {
-  vec3 res = vec3(0.577350259f);
+  vec3 res = vec3(0.57735025882720947266f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/normalize/e7def8.wgsl.expected.msl b/test/tint/builtins/gen/var/normalize/e7def8.wgsl.expected.msl
index b07b880..a931001 100644
--- a/test/tint/builtins/gen/var/normalize/e7def8.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/normalize/e7def8.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void normalize_e7def8() {
-  float3 res = float3(0.577350259f);
+  float3 res = float3(0.57735025882720947266f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/radians/09b7fc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/radians/09b7fc.wgsl.expected.dxc.hlsl
index b369725..ff0a882 100644
--- a/test/tint/builtins/gen/var/radians/09b7fc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/radians/09b7fc.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 float4 tint_radians(float4 param_0) {
-  return param_0 * 0.017453292519943295;
+  return param_0 * 0.01745329251994329547;
 }
 
 void radians_09b7fc() {
diff --git a/test/tint/builtins/gen/var/radians/09b7fc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/radians/09b7fc.wgsl.expected.fxc.hlsl
index b369725..ff0a882 100644
--- a/test/tint/builtins/gen/var/radians/09b7fc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/radians/09b7fc.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 float4 tint_radians(float4 param_0) {
-  return param_0 * 0.017453292519943295;
+  return param_0 * 0.01745329251994329547;
 }
 
 void radians_09b7fc() {
diff --git a/test/tint/builtins/gen/var/radians/09b7fc.wgsl.expected.glsl b/test/tint/builtins/gen/var/radians/09b7fc.wgsl.expected.glsl
index e5a3c60..7ffb9aa 100644
--- a/test/tint/builtins/gen/var/radians/09b7fc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/radians/09b7fc.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 vec4 tint_radians(vec4 param_0) {
-  return param_0 * 0.017453292519943295f;
+  return param_0 * 0.01745329251994329547f;
 }
 
 
@@ -27,7 +27,7 @@
 precision mediump float;
 
 vec4 tint_radians(vec4 param_0) {
-  return param_0 * 0.017453292519943295f;
+  return param_0 * 0.01745329251994329547f;
 }
 
 
@@ -47,7 +47,7 @@
 #version 310 es
 
 vec4 tint_radians(vec4 param_0) {
-  return param_0 * 0.017453292519943295f;
+  return param_0 * 0.01745329251994329547f;
 }
 
 
diff --git a/test/tint/builtins/gen/var/radians/09b7fc.wgsl.expected.msl b/test/tint/builtins/gen/var/radians/09b7fc.wgsl.expected.msl
index b841867..9ac1d95 100644
--- a/test/tint/builtins/gen/var/radians/09b7fc.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/radians/09b7fc.wgsl.expected.msl
@@ -3,7 +3,7 @@
 using namespace metal;
 
 float4 tint_radians(float4 param_0) {
-  return param_0 * 0.017453292519943295;
+  return param_0 * 0.01745329251994329547;
 }
 
 void radians_09b7fc() {
diff --git a/test/tint/builtins/gen/var/radians/208fd9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/radians/208fd9.wgsl.expected.dxc.hlsl
index c4c934c..a593ba0 100644
--- a/test/tint/builtins/gen/var/radians/208fd9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/radians/208fd9.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 float16_t tint_radians(float16_t param_0) {
-  return param_0 * 0.017453292519943295;
+  return param_0 * 0.01745329251994329547;
 }
 
 void radians_208fd9() {
diff --git a/test/tint/builtins/gen/var/radians/208fd9.wgsl.expected.glsl b/test/tint/builtins/gen/var/radians/208fd9.wgsl.expected.glsl
index 35dfd17..4dacc28 100644
--- a/test/tint/builtins/gen/var/radians/208fd9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/radians/208fd9.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 float16_t tint_radians(float16_t param_0) {
-  return param_0 * 0.017453292519943295hf;
+  return param_0 * 0.01745329251994329547hf;
 }
 
 
@@ -29,7 +29,7 @@
 precision mediump float;
 
 float16_t tint_radians(float16_t param_0) {
-  return param_0 * 0.017453292519943295hf;
+  return param_0 * 0.01745329251994329547hf;
 }
 
 
@@ -50,7 +50,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 float16_t tint_radians(float16_t param_0) {
-  return param_0 * 0.017453292519943295hf;
+  return param_0 * 0.01745329251994329547hf;
 }
 
 
diff --git a/test/tint/builtins/gen/var/radians/208fd9.wgsl.expected.msl b/test/tint/builtins/gen/var/radians/208fd9.wgsl.expected.msl
index ede8949..b217676 100644
--- a/test/tint/builtins/gen/var/radians/208fd9.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/radians/208fd9.wgsl.expected.msl
@@ -3,7 +3,7 @@
 using namespace metal;
 
 half tint_radians(half param_0) {
-  return param_0 * 0.017453292519943295;
+  return param_0 * 0.01745329251994329547;
 }
 
 void radians_208fd9() {
diff --git a/test/tint/builtins/gen/var/radians/379214.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/radians/379214.wgsl.expected.dxc.hlsl
index 247db1d..9250050 100644
--- a/test/tint/builtins/gen/var/radians/379214.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/radians/379214.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void radians_379214() {
-  float3 res = (0.017453292f).xxx;
+  float3 res = (0.01745329238474369049f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/radians/379214.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/radians/379214.wgsl.expected.fxc.hlsl
index 247db1d..9250050 100644
--- a/test/tint/builtins/gen/var/radians/379214.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/radians/379214.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void radians_379214() {
-  float3 res = (0.017453292f).xxx;
+  float3 res = (0.01745329238474369049f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/radians/379214.wgsl.expected.glsl b/test/tint/builtins/gen/var/radians/379214.wgsl.expected.glsl
index 5593c1d..750b043 100644
--- a/test/tint/builtins/gen/var/radians/379214.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/radians/379214.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void radians_379214() {
-  vec3 res = vec3(0.017453292f);
+  vec3 res = vec3(0.01745329238474369049f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void radians_379214() {
-  vec3 res = vec3(0.017453292f);
+  vec3 res = vec3(0.01745329238474369049f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void radians_379214() {
-  vec3 res = vec3(0.017453292f);
+  vec3 res = vec3(0.01745329238474369049f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/radians/379214.wgsl.expected.msl b/test/tint/builtins/gen/var/radians/379214.wgsl.expected.msl
index 638763a..a5472a1 100644
--- a/test/tint/builtins/gen/var/radians/379214.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/radians/379214.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void radians_379214() {
-  float3 res = float3(0.017453292f);
+  float3 res = float3(0.01745329238474369049f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/radians/44a9f8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/radians/44a9f8.wgsl.expected.dxc.hlsl
index cb67c5d9..495afb9 100644
--- a/test/tint/builtins/gen/var/radians/44a9f8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/radians/44a9f8.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void radians_44a9f8() {
-  float2 res = (0.017453292f).xx;
+  float2 res = (0.01745329238474369049f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/radians/44a9f8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/radians/44a9f8.wgsl.expected.fxc.hlsl
index cb67c5d9..495afb9 100644
--- a/test/tint/builtins/gen/var/radians/44a9f8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/radians/44a9f8.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void radians_44a9f8() {
-  float2 res = (0.017453292f).xx;
+  float2 res = (0.01745329238474369049f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/radians/44a9f8.wgsl.expected.glsl b/test/tint/builtins/gen/var/radians/44a9f8.wgsl.expected.glsl
index 6caa601..201150e 100644
--- a/test/tint/builtins/gen/var/radians/44a9f8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/radians/44a9f8.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void radians_44a9f8() {
-  vec2 res = vec2(0.017453292f);
+  vec2 res = vec2(0.01745329238474369049f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void radians_44a9f8() {
-  vec2 res = vec2(0.017453292f);
+  vec2 res = vec2(0.01745329238474369049f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void radians_44a9f8() {
-  vec2 res = vec2(0.017453292f);
+  vec2 res = vec2(0.01745329238474369049f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/radians/44a9f8.wgsl.expected.msl b/test/tint/builtins/gen/var/radians/44a9f8.wgsl.expected.msl
index fea0149..c6b2951 100644
--- a/test/tint/builtins/gen/var/radians/44a9f8.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/radians/44a9f8.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void radians_44a9f8() {
-  float2 res = float2(0.017453292f);
+  float2 res = float2(0.01745329238474369049f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/radians/44f20b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/radians/44f20b.wgsl.expected.dxc.hlsl
index e3dff23..ee81bfa 100644
--- a/test/tint/builtins/gen/var/radians/44f20b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/radians/44f20b.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 vector<float16_t, 4> tint_radians(vector<float16_t, 4> param_0) {
-  return param_0 * 0.017453292519943295;
+  return param_0 * 0.01745329251994329547;
 }
 
 void radians_44f20b() {
diff --git a/test/tint/builtins/gen/var/radians/44f20b.wgsl.expected.glsl b/test/tint/builtins/gen/var/radians/44f20b.wgsl.expected.glsl
index a9de4a8..1918fac 100644
--- a/test/tint/builtins/gen/var/radians/44f20b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/radians/44f20b.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 f16vec4 tint_radians(f16vec4 param_0) {
-  return param_0 * 0.017453292519943295hf;
+  return param_0 * 0.01745329251994329547hf;
 }
 
 
@@ -29,7 +29,7 @@
 precision mediump float;
 
 f16vec4 tint_radians(f16vec4 param_0) {
-  return param_0 * 0.017453292519943295hf;
+  return param_0 * 0.01745329251994329547hf;
 }
 
 
@@ -50,7 +50,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 f16vec4 tint_radians(f16vec4 param_0) {
-  return param_0 * 0.017453292519943295hf;
+  return param_0 * 0.01745329251994329547hf;
 }
 
 
diff --git a/test/tint/builtins/gen/var/radians/44f20b.wgsl.expected.msl b/test/tint/builtins/gen/var/radians/44f20b.wgsl.expected.msl
index 565d93c..77b4d1f 100644
--- a/test/tint/builtins/gen/var/radians/44f20b.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/radians/44f20b.wgsl.expected.msl
@@ -3,7 +3,7 @@
 using namespace metal;
 
 half4 tint_radians(half4 param_0) {
-  return param_0 * 0.017453292519943295;
+  return param_0 * 0.01745329251994329547;
 }
 
 void radians_44f20b() {
diff --git a/test/tint/builtins/gen/var/radians/524a91.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/radians/524a91.wgsl.expected.dxc.hlsl
index b3e2192..a633d34 100644
--- a/test/tint/builtins/gen/var/radians/524a91.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/radians/524a91.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void radians_524a91() {
-  float4 res = (0.017453292f).xxxx;
+  float4 res = (0.01745329238474369049f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/radians/524a91.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/radians/524a91.wgsl.expected.fxc.hlsl
index b3e2192..a633d34 100644
--- a/test/tint/builtins/gen/var/radians/524a91.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/radians/524a91.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void radians_524a91() {
-  float4 res = (0.017453292f).xxxx;
+  float4 res = (0.01745329238474369049f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/radians/524a91.wgsl.expected.glsl b/test/tint/builtins/gen/var/radians/524a91.wgsl.expected.glsl
index fd1508e..1f61586 100644
--- a/test/tint/builtins/gen/var/radians/524a91.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/radians/524a91.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void radians_524a91() {
-  vec4 res = vec4(0.017453292f);
+  vec4 res = vec4(0.01745329238474369049f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void radians_524a91() {
-  vec4 res = vec4(0.017453292f);
+  vec4 res = vec4(0.01745329238474369049f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void radians_524a91() {
-  vec4 res = vec4(0.017453292f);
+  vec4 res = vec4(0.01745329238474369049f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/radians/524a91.wgsl.expected.msl b/test/tint/builtins/gen/var/radians/524a91.wgsl.expected.msl
index fa539e0..dd19a42 100644
--- a/test/tint/builtins/gen/var/radians/524a91.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/radians/524a91.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void radians_524a91() {
-  float4 res = float4(0.017453292f);
+  float4 res = float4(0.01745329238474369049f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/radians/61687a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/radians/61687a.wgsl.expected.dxc.hlsl
index b76179f..af6889b 100644
--- a/test/tint/builtins/gen/var/radians/61687a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/radians/61687a.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 float2 tint_radians(float2 param_0) {
-  return param_0 * 0.017453292519943295;
+  return param_0 * 0.01745329251994329547;
 }
 
 void radians_61687a() {
diff --git a/test/tint/builtins/gen/var/radians/61687a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/radians/61687a.wgsl.expected.fxc.hlsl
index b76179f..af6889b 100644
--- a/test/tint/builtins/gen/var/radians/61687a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/radians/61687a.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 float2 tint_radians(float2 param_0) {
-  return param_0 * 0.017453292519943295;
+  return param_0 * 0.01745329251994329547;
 }
 
 void radians_61687a() {
diff --git a/test/tint/builtins/gen/var/radians/61687a.wgsl.expected.glsl b/test/tint/builtins/gen/var/radians/61687a.wgsl.expected.glsl
index c1bef7a..b768136 100644
--- a/test/tint/builtins/gen/var/radians/61687a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/radians/61687a.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 vec2 tint_radians(vec2 param_0) {
-  return param_0 * 0.017453292519943295f;
+  return param_0 * 0.01745329251994329547f;
 }
 
 
@@ -27,7 +27,7 @@
 precision mediump float;
 
 vec2 tint_radians(vec2 param_0) {
-  return param_0 * 0.017453292519943295f;
+  return param_0 * 0.01745329251994329547f;
 }
 
 
@@ -47,7 +47,7 @@
 #version 310 es
 
 vec2 tint_radians(vec2 param_0) {
-  return param_0 * 0.017453292519943295f;
+  return param_0 * 0.01745329251994329547f;
 }
 
 
diff --git a/test/tint/builtins/gen/var/radians/61687a.wgsl.expected.msl b/test/tint/builtins/gen/var/radians/61687a.wgsl.expected.msl
index e9de7f1..36afee9 100644
--- a/test/tint/builtins/gen/var/radians/61687a.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/radians/61687a.wgsl.expected.msl
@@ -3,7 +3,7 @@
 using namespace metal;
 
 float2 tint_radians(float2 param_0) {
-  return param_0 * 0.017453292519943295;
+  return param_0 * 0.01745329251994329547;
 }
 
 void radians_61687a() {
diff --git a/test/tint/builtins/gen/var/radians/6b0ff2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/radians/6b0ff2.wgsl.expected.dxc.hlsl
index 8385da9..6d6b9c4 100644
--- a/test/tint/builtins/gen/var/radians/6b0ff2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/radians/6b0ff2.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 float tint_radians(float param_0) {
-  return param_0 * 0.017453292519943295;
+  return param_0 * 0.01745329251994329547;
 }
 
 void radians_6b0ff2() {
diff --git a/test/tint/builtins/gen/var/radians/6b0ff2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/radians/6b0ff2.wgsl.expected.fxc.hlsl
index 8385da9..6d6b9c4 100644
--- a/test/tint/builtins/gen/var/radians/6b0ff2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/radians/6b0ff2.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 float tint_radians(float param_0) {
-  return param_0 * 0.017453292519943295;
+  return param_0 * 0.01745329251994329547;
 }
 
 void radians_6b0ff2() {
diff --git a/test/tint/builtins/gen/var/radians/6b0ff2.wgsl.expected.glsl b/test/tint/builtins/gen/var/radians/6b0ff2.wgsl.expected.glsl
index d51bdf3..23092e3 100644
--- a/test/tint/builtins/gen/var/radians/6b0ff2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/radians/6b0ff2.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 float tint_radians(float param_0) {
-  return param_0 * 0.017453292519943295f;
+  return param_0 * 0.01745329251994329547f;
 }
 
 
@@ -27,7 +27,7 @@
 precision mediump float;
 
 float tint_radians(float param_0) {
-  return param_0 * 0.017453292519943295f;
+  return param_0 * 0.01745329251994329547f;
 }
 
 
@@ -47,7 +47,7 @@
 #version 310 es
 
 float tint_radians(float param_0) {
-  return param_0 * 0.017453292519943295f;
+  return param_0 * 0.01745329251994329547f;
 }
 
 
diff --git a/test/tint/builtins/gen/var/radians/6b0ff2.wgsl.expected.msl b/test/tint/builtins/gen/var/radians/6b0ff2.wgsl.expected.msl
index 43391ed..4a87200 100644
--- a/test/tint/builtins/gen/var/radians/6b0ff2.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/radians/6b0ff2.wgsl.expected.msl
@@ -3,7 +3,7 @@
 using namespace metal;
 
 float tint_radians(float param_0) {
-  return param_0 * 0.017453292519943295;
+  return param_0 * 0.01745329251994329547;
 }
 
 void radians_6b0ff2() {
diff --git a/test/tint/builtins/gen/var/radians/7ea4c7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/radians/7ea4c7.wgsl.expected.dxc.hlsl
index 84a7b19..4380e09 100644
--- a/test/tint/builtins/gen/var/radians/7ea4c7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/radians/7ea4c7.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 vector<float16_t, 3> tint_radians(vector<float16_t, 3> param_0) {
-  return param_0 * 0.017453292519943295;
+  return param_0 * 0.01745329251994329547;
 }
 
 void radians_7ea4c7() {
diff --git a/test/tint/builtins/gen/var/radians/7ea4c7.wgsl.expected.glsl b/test/tint/builtins/gen/var/radians/7ea4c7.wgsl.expected.glsl
index 5524a7d..9115110 100644
--- a/test/tint/builtins/gen/var/radians/7ea4c7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/radians/7ea4c7.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 f16vec3 tint_radians(f16vec3 param_0) {
-  return param_0 * 0.017453292519943295hf;
+  return param_0 * 0.01745329251994329547hf;
 }
 
 
@@ -29,7 +29,7 @@
 precision mediump float;
 
 f16vec3 tint_radians(f16vec3 param_0) {
-  return param_0 * 0.017453292519943295hf;
+  return param_0 * 0.01745329251994329547hf;
 }
 
 
@@ -50,7 +50,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 f16vec3 tint_radians(f16vec3 param_0) {
-  return param_0 * 0.017453292519943295hf;
+  return param_0 * 0.01745329251994329547hf;
 }
 
 
diff --git a/test/tint/builtins/gen/var/radians/7ea4c7.wgsl.expected.msl b/test/tint/builtins/gen/var/radians/7ea4c7.wgsl.expected.msl
index e6ebb854..6ff5c2d 100644
--- a/test/tint/builtins/gen/var/radians/7ea4c7.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/radians/7ea4c7.wgsl.expected.msl
@@ -3,7 +3,7 @@
 using namespace metal;
 
 half3 tint_radians(half3 param_0) {
-  return param_0 * 0.017453292519943295;
+  return param_0 * 0.01745329251994329547;
 }
 
 void radians_7ea4c7() {
diff --git a/test/tint/builtins/gen/var/radians/bff231.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/radians/bff231.wgsl.expected.dxc.hlsl
index cde7b14..a8182f5 100644
--- a/test/tint/builtins/gen/var/radians/bff231.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/radians/bff231.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void radians_bff231() {
-  float res = 0.017453292f;
+  float res = 0.01745329238474369049f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/radians/bff231.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/radians/bff231.wgsl.expected.fxc.hlsl
index cde7b14..a8182f5 100644
--- a/test/tint/builtins/gen/var/radians/bff231.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/radians/bff231.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void radians_bff231() {
-  float res = 0.017453292f;
+  float res = 0.01745329238474369049f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/radians/bff231.wgsl.expected.glsl b/test/tint/builtins/gen/var/radians/bff231.wgsl.expected.glsl
index a445da1..c25f8c4 100644
--- a/test/tint/builtins/gen/var/radians/bff231.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/radians/bff231.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void radians_bff231() {
-  float res = 0.017453292f;
+  float res = 0.01745329238474369049f;
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void radians_bff231() {
-  float res = 0.017453292f;
+  float res = 0.01745329238474369049f;
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void radians_bff231() {
-  float res = 0.017453292f;
+  float res = 0.01745329238474369049f;
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/radians/bff231.wgsl.expected.msl b/test/tint/builtins/gen/var/radians/bff231.wgsl.expected.msl
index ddd3b6e..82e4244 100644
--- a/test/tint/builtins/gen/var/radians/bff231.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/radians/bff231.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void radians_bff231() {
-  float res = 0.017453292f;
+  float res = 0.01745329238474369049f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/radians/f96258.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/radians/f96258.wgsl.expected.dxc.hlsl
index 386bc10..b91cd1f 100644
--- a/test/tint/builtins/gen/var/radians/f96258.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/radians/f96258.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 float3 tint_radians(float3 param_0) {
-  return param_0 * 0.017453292519943295;
+  return param_0 * 0.01745329251994329547;
 }
 
 void radians_f96258() {
diff --git a/test/tint/builtins/gen/var/radians/f96258.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/radians/f96258.wgsl.expected.fxc.hlsl
index 386bc10..b91cd1f 100644
--- a/test/tint/builtins/gen/var/radians/f96258.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/radians/f96258.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 float3 tint_radians(float3 param_0) {
-  return param_0 * 0.017453292519943295;
+  return param_0 * 0.01745329251994329547;
 }
 
 void radians_f96258() {
diff --git a/test/tint/builtins/gen/var/radians/f96258.wgsl.expected.glsl b/test/tint/builtins/gen/var/radians/f96258.wgsl.expected.glsl
index 02c349a..ed858c2 100644
--- a/test/tint/builtins/gen/var/radians/f96258.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/radians/f96258.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 vec3 tint_radians(vec3 param_0) {
-  return param_0 * 0.017453292519943295f;
+  return param_0 * 0.01745329251994329547f;
 }
 
 
@@ -27,7 +27,7 @@
 precision mediump float;
 
 vec3 tint_radians(vec3 param_0) {
-  return param_0 * 0.017453292519943295f;
+  return param_0 * 0.01745329251994329547f;
 }
 
 
@@ -47,7 +47,7 @@
 #version 310 es
 
 vec3 tint_radians(vec3 param_0) {
-  return param_0 * 0.017453292519943295f;
+  return param_0 * 0.01745329251994329547f;
 }
 
 
diff --git a/test/tint/builtins/gen/var/radians/f96258.wgsl.expected.msl b/test/tint/builtins/gen/var/radians/f96258.wgsl.expected.msl
index 3b7652a..3bb960b 100644
--- a/test/tint/builtins/gen/var/radians/f96258.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/radians/f96258.wgsl.expected.msl
@@ -3,7 +3,7 @@
 using namespace metal;
 
 float3 tint_radians(float3 param_0) {
-  return param_0 * 0.017453292519943295;
+  return param_0 * 0.01745329251994329547;
 }
 
 void radians_f96258() {
diff --git a/test/tint/builtins/gen/var/radians/fbacf0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/radians/fbacf0.wgsl.expected.dxc.hlsl
index f0c7eeb..398353d 100644
--- a/test/tint/builtins/gen/var/radians/fbacf0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/radians/fbacf0.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 vector<float16_t, 2> tint_radians(vector<float16_t, 2> param_0) {
-  return param_0 * 0.017453292519943295;
+  return param_0 * 0.01745329251994329547;
 }
 
 void radians_fbacf0() {
diff --git a/test/tint/builtins/gen/var/radians/fbacf0.wgsl.expected.glsl b/test/tint/builtins/gen/var/radians/fbacf0.wgsl.expected.glsl
index fe5da30..ec4e4ca 100644
--- a/test/tint/builtins/gen/var/radians/fbacf0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/radians/fbacf0.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 f16vec2 tint_radians(f16vec2 param_0) {
-  return param_0 * 0.017453292519943295hf;
+  return param_0 * 0.01745329251994329547hf;
 }
 
 
@@ -29,7 +29,7 @@
 precision mediump float;
 
 f16vec2 tint_radians(f16vec2 param_0) {
-  return param_0 * 0.017453292519943295hf;
+  return param_0 * 0.01745329251994329547hf;
 }
 
 
@@ -50,7 +50,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 f16vec2 tint_radians(f16vec2 param_0) {
-  return param_0 * 0.017453292519943295hf;
+  return param_0 * 0.01745329251994329547hf;
 }
 
 
diff --git a/test/tint/builtins/gen/var/radians/fbacf0.wgsl.expected.msl b/test/tint/builtins/gen/var/radians/fbacf0.wgsl.expected.msl
index 533774b..ebf5567 100644
--- a/test/tint/builtins/gen/var/radians/fbacf0.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/radians/fbacf0.wgsl.expected.msl
@@ -3,7 +3,7 @@
 using namespace metal;
 
 half2 tint_radians(half2 param_0) {
-  return param_0 * 0.017453292519943295;
+  return param_0 * 0.01745329251994329547;
 }
 
 void radians_fbacf0() {
diff --git a/test/tint/builtins/gen/var/round/106c0b.wgsl b/test/tint/builtins/gen/var/round/106c0b.wgsl
index 961d709..7c77f82 100644
--- a/test/tint/builtins/gen/var/round/106c0b.wgsl
+++ b/test/tint/builtins/gen/var/round/106c0b.wgsl
@@ -23,7 +23,7 @@
 
 // fn round(vec<4, f32>) -> vec<4, f32>
 fn round_106c0b() {
-  var arg_0 = vec4<f32>(3.4f);
+  var arg_0 = vec4<f32>(3.5f);
   var res: vec4<f32> = round(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/round/106c0b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/round/106c0b.wgsl.expected.dxc.hlsl
index 943dbcc..c0d5f98 100644
--- a/test/tint/builtins/gen/var/round/106c0b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/round/106c0b.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void round_106c0b() {
-  float4 arg_0 = (3.400000095f).xxxx;
+  float4 arg_0 = (3.5f).xxxx;
   float4 res = round(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/round/106c0b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/round/106c0b.wgsl.expected.fxc.hlsl
index 943dbcc..c0d5f98 100644
--- a/test/tint/builtins/gen/var/round/106c0b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/round/106c0b.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void round_106c0b() {
-  float4 arg_0 = (3.400000095f).xxxx;
+  float4 arg_0 = (3.5f).xxxx;
   float4 res = round(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/round/106c0b.wgsl.expected.glsl b/test/tint/builtins/gen/var/round/106c0b.wgsl.expected.glsl
index 8d05096..84edebf 100644
--- a/test/tint/builtins/gen/var/round/106c0b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/round/106c0b.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void round_106c0b() {
-  vec4 arg_0 = vec4(3.400000095f);
+  vec4 arg_0 = vec4(3.5f);
   vec4 res = round(arg_0);
 }
 
@@ -22,7 +22,7 @@
 precision mediump float;
 
 void round_106c0b() {
-  vec4 arg_0 = vec4(3.400000095f);
+  vec4 arg_0 = vec4(3.5f);
   vec4 res = round(arg_0);
 }
 
@@ -37,7 +37,7 @@
 #version 310 es
 
 void round_106c0b() {
-  vec4 arg_0 = vec4(3.400000095f);
+  vec4 arg_0 = vec4(3.5f);
   vec4 res = round(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/round/106c0b.wgsl.expected.msl b/test/tint/builtins/gen/var/round/106c0b.wgsl.expected.msl
index d08ef75..e35922e 100644
--- a/test/tint/builtins/gen/var/round/106c0b.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/round/106c0b.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void round_106c0b() {
-  float4 arg_0 = float4(3.400000095f);
+  float4 arg_0 = float4(3.5f);
   float4 res = rint(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/round/106c0b.wgsl.expected.spvasm b/test/tint/builtins/gen/var/round/106c0b.wgsl.expected.spvasm
index d10298f..ce01c78 100644
--- a/test/tint/builtins/gen/var/round/106c0b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/round/106c0b.wgsl.expected.spvasm
@@ -32,8 +32,8 @@
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
-%float_3_4000001 = OpConstant %float 3.4000001
-         %14 = OpConstantComposite %v4float %float_3_4000001 %float_3_4000001 %float_3_4000001 %float_3_4000001
+  %float_3_5 = OpConstant %float 3.5
+         %14 = OpConstantComposite %v4float %float_3_5 %float_3_5 %float_3_5 %float_3_5
 %_ptr_Function_v4float = OpTypePointer Function %v4float
          %21 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
diff --git a/test/tint/builtins/gen/var/round/106c0b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/round/106c0b.wgsl.expected.wgsl
index b6ef0fa..129028b 100644
--- a/test/tint/builtins/gen/var/round/106c0b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/round/106c0b.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn round_106c0b() {
-  var arg_0 = vec4<f32>(3.400000095f);
+  var arg_0 = vec4<f32>(3.5f);
   var res : vec4<f32> = round(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/round/184d5a.wgsl b/test/tint/builtins/gen/var/round/184d5a.wgsl
index a99e108..175eca3 100644
--- a/test/tint/builtins/gen/var/round/184d5a.wgsl
+++ b/test/tint/builtins/gen/var/round/184d5a.wgsl
@@ -23,7 +23,7 @@
 
 // fn round(vec<4, fa>) -> vec<4, fa>
 fn round_184d5a() {
-  const arg_0 = vec4(3.4);
+  const arg_0 = vec4(3.5);
   var res = round(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/round/184d5a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/round/184d5a.wgsl.expected.dxc.hlsl
index 278152a..f7bdfca 100644
--- a/test/tint/builtins/gen/var/round/184d5a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/round/184d5a.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void round_184d5a() {
-  float4 res = (3.0f).xxxx;
+  float4 res = (4.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/round/184d5a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/round/184d5a.wgsl.expected.fxc.hlsl
index 278152a..f7bdfca 100644
--- a/test/tint/builtins/gen/var/round/184d5a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/round/184d5a.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void round_184d5a() {
-  float4 res = (3.0f).xxxx;
+  float4 res = (4.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/round/184d5a.wgsl.expected.glsl b/test/tint/builtins/gen/var/round/184d5a.wgsl.expected.glsl
index d27ab94..a18114c 100644
--- a/test/tint/builtins/gen/var/round/184d5a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/round/184d5a.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void round_184d5a() {
-  vec4 res = vec4(3.0f);
+  vec4 res = vec4(4.0f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void round_184d5a() {
-  vec4 res = vec4(3.0f);
+  vec4 res = vec4(4.0f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void round_184d5a() {
-  vec4 res = vec4(3.0f);
+  vec4 res = vec4(4.0f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/round/184d5a.wgsl.expected.msl b/test/tint/builtins/gen/var/round/184d5a.wgsl.expected.msl
index e592f73..318e048 100644
--- a/test/tint/builtins/gen/var/round/184d5a.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/round/184d5a.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void round_184d5a() {
-  float4 res = float4(3.0f);
+  float4 res = float4(4.0f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/round/184d5a.wgsl.expected.spvasm b/test/tint/builtins/gen/var/round/184d5a.wgsl.expected.spvasm
index 67a91d3..dedbfa1c 100644
--- a/test/tint/builtins/gen/var/round/184d5a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/round/184d5a.wgsl.expected.spvasm
@@ -30,8 +30,8 @@
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
-    %float_3 = OpConstant %float 3
-         %14 = OpConstantComposite %v4float %float_3 %float_3 %float_3 %float_3
+    %float_4 = OpConstant %float 4
+         %14 = OpConstantComposite %v4float %float_4 %float_4 %float_4 %float_4
 %_ptr_Function_v4float = OpTypePointer Function %v4float
          %17 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
diff --git a/test/tint/builtins/gen/var/round/184d5a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/round/184d5a.wgsl.expected.wgsl
index d4ffb6d..eac62bb 100644
--- a/test/tint/builtins/gen/var/round/184d5a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/round/184d5a.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn round_184d5a() {
-  const arg_0 = vec4(3.4);
+  const arg_0 = vec4(3.5);
   var res = round(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/round/1c7897.wgsl b/test/tint/builtins/gen/var/round/1c7897.wgsl
index 2a023b4..9eac08e 100644
--- a/test/tint/builtins/gen/var/round/1c7897.wgsl
+++ b/test/tint/builtins/gen/var/round/1c7897.wgsl
@@ -23,7 +23,7 @@
 
 // fn round(vec<3, f32>) -> vec<3, f32>
 fn round_1c7897() {
-  var arg_0 = vec3<f32>(3.4f);
+  var arg_0 = vec3<f32>(3.5f);
   var res: vec3<f32> = round(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/round/1c7897.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/round/1c7897.wgsl.expected.dxc.hlsl
index f11ae75..b41ad5d 100644
--- a/test/tint/builtins/gen/var/round/1c7897.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/round/1c7897.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void round_1c7897() {
-  float3 arg_0 = (3.400000095f).xxx;
+  float3 arg_0 = (3.5f).xxx;
   float3 res = round(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/round/1c7897.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/round/1c7897.wgsl.expected.fxc.hlsl
index f11ae75..b41ad5d 100644
--- a/test/tint/builtins/gen/var/round/1c7897.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/round/1c7897.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void round_1c7897() {
-  float3 arg_0 = (3.400000095f).xxx;
+  float3 arg_0 = (3.5f).xxx;
   float3 res = round(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/round/1c7897.wgsl.expected.glsl b/test/tint/builtins/gen/var/round/1c7897.wgsl.expected.glsl
index ed195d6..1a4453d 100644
--- a/test/tint/builtins/gen/var/round/1c7897.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/round/1c7897.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void round_1c7897() {
-  vec3 arg_0 = vec3(3.400000095f);
+  vec3 arg_0 = vec3(3.5f);
   vec3 res = round(arg_0);
 }
 
@@ -22,7 +22,7 @@
 precision mediump float;
 
 void round_1c7897() {
-  vec3 arg_0 = vec3(3.400000095f);
+  vec3 arg_0 = vec3(3.5f);
   vec3 res = round(arg_0);
 }
 
@@ -37,7 +37,7 @@
 #version 310 es
 
 void round_1c7897() {
-  vec3 arg_0 = vec3(3.400000095f);
+  vec3 arg_0 = vec3(3.5f);
   vec3 res = round(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/round/1c7897.wgsl.expected.msl b/test/tint/builtins/gen/var/round/1c7897.wgsl.expected.msl
index bd44954..f7efbda 100644
--- a/test/tint/builtins/gen/var/round/1c7897.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/round/1c7897.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void round_1c7897() {
-  float3 arg_0 = float3(3.400000095f);
+  float3 arg_0 = float3(3.5f);
   float3 res = rint(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/round/1c7897.wgsl.expected.spvasm b/test/tint/builtins/gen/var/round/1c7897.wgsl.expected.spvasm
index 6f0e5d3..02c1b23 100644
--- a/test/tint/builtins/gen/var/round/1c7897.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/round/1c7897.wgsl.expected.spvasm
@@ -33,8 +33,8 @@
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
-%float_3_4000001 = OpConstant %float 3.4000001
-         %15 = OpConstantComposite %v3float %float_3_4000001 %float_3_4000001 %float_3_4000001
+  %float_3_5 = OpConstant %float 3.5
+         %15 = OpConstantComposite %v3float %float_3_5 %float_3_5 %float_3_5
 %_ptr_Function_v3float = OpTypePointer Function %v3float
          %18 = OpConstantNull %v3float
          %23 = OpTypeFunction %v4float
diff --git a/test/tint/builtins/gen/var/round/1c7897.wgsl.expected.wgsl b/test/tint/builtins/gen/var/round/1c7897.wgsl.expected.wgsl
index 1a23c8b..e644d19 100644
--- a/test/tint/builtins/gen/var/round/1c7897.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/round/1c7897.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn round_1c7897() {
-  var arg_0 = vec3<f32>(3.400000095f);
+  var arg_0 = vec3<f32>(3.5f);
   var res : vec3<f32> = round(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/round/52c84d.wgsl b/test/tint/builtins/gen/var/round/52c84d.wgsl
index 9578c82..1bef0ea 100644
--- a/test/tint/builtins/gen/var/round/52c84d.wgsl
+++ b/test/tint/builtins/gen/var/round/52c84d.wgsl
@@ -23,7 +23,7 @@
 
 // fn round(vec<2, f32>) -> vec<2, f32>
 fn round_52c84d() {
-  var arg_0 = vec2<f32>(3.4f);
+  var arg_0 = vec2<f32>(3.5f);
   var res: vec2<f32> = round(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/round/52c84d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/round/52c84d.wgsl.expected.dxc.hlsl
index 0190de3..45e93bb 100644
--- a/test/tint/builtins/gen/var/round/52c84d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/round/52c84d.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void round_52c84d() {
-  float2 arg_0 = (3.400000095f).xx;
+  float2 arg_0 = (3.5f).xx;
   float2 res = round(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/round/52c84d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/round/52c84d.wgsl.expected.fxc.hlsl
index 0190de3..45e93bb 100644
--- a/test/tint/builtins/gen/var/round/52c84d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/round/52c84d.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void round_52c84d() {
-  float2 arg_0 = (3.400000095f).xx;
+  float2 arg_0 = (3.5f).xx;
   float2 res = round(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/round/52c84d.wgsl.expected.glsl b/test/tint/builtins/gen/var/round/52c84d.wgsl.expected.glsl
index 922bbfc..0d66f20 100644
--- a/test/tint/builtins/gen/var/round/52c84d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/round/52c84d.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void round_52c84d() {
-  vec2 arg_0 = vec2(3.400000095f);
+  vec2 arg_0 = vec2(3.5f);
   vec2 res = round(arg_0);
 }
 
@@ -22,7 +22,7 @@
 precision mediump float;
 
 void round_52c84d() {
-  vec2 arg_0 = vec2(3.400000095f);
+  vec2 arg_0 = vec2(3.5f);
   vec2 res = round(arg_0);
 }
 
@@ -37,7 +37,7 @@
 #version 310 es
 
 void round_52c84d() {
-  vec2 arg_0 = vec2(3.400000095f);
+  vec2 arg_0 = vec2(3.5f);
   vec2 res = round(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/round/52c84d.wgsl.expected.msl b/test/tint/builtins/gen/var/round/52c84d.wgsl.expected.msl
index 2efb971..3b5b707 100644
--- a/test/tint/builtins/gen/var/round/52c84d.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/round/52c84d.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void round_52c84d() {
-  float2 arg_0 = float2(3.400000095f);
+  float2 arg_0 = float2(3.5f);
   float2 res = rint(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/round/52c84d.wgsl.expected.spvasm b/test/tint/builtins/gen/var/round/52c84d.wgsl.expected.spvasm
index 30c39e5..9abdd19 100644
--- a/test/tint/builtins/gen/var/round/52c84d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/round/52c84d.wgsl.expected.spvasm
@@ -33,8 +33,8 @@
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-%float_3_4000001 = OpConstant %float 3.4000001
-         %15 = OpConstantComposite %v2float %float_3_4000001 %float_3_4000001
+  %float_3_5 = OpConstant %float 3.5
+         %15 = OpConstantComposite %v2float %float_3_5 %float_3_5
 %_ptr_Function_v2float = OpTypePointer Function %v2float
          %18 = OpConstantNull %v2float
          %23 = OpTypeFunction %v4float
diff --git a/test/tint/builtins/gen/var/round/52c84d.wgsl.expected.wgsl b/test/tint/builtins/gen/var/round/52c84d.wgsl.expected.wgsl
index 989c7e9..c017b09 100644
--- a/test/tint/builtins/gen/var/round/52c84d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/round/52c84d.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn round_52c84d() {
-  var arg_0 = vec2<f32>(3.400000095f);
+  var arg_0 = vec2<f32>(3.5f);
   var res : vec2<f32> = round(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/round/773a8f.wgsl b/test/tint/builtins/gen/var/round/773a8f.wgsl
index 556dd8f..e5c9393 100644
--- a/test/tint/builtins/gen/var/round/773a8f.wgsl
+++ b/test/tint/builtins/gen/var/round/773a8f.wgsl
@@ -23,7 +23,7 @@
 
 // fn round(fa) -> fa
 fn round_773a8f() {
-  const arg_0 = 3.4;
+  const arg_0 = 3.5;
   var res = round(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/round/773a8f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/round/773a8f.wgsl.expected.dxc.hlsl
index dc329d8..f8e0f12 100644
--- a/test/tint/builtins/gen/var/round/773a8f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/round/773a8f.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void round_773a8f() {
-  float res = 3.0f;
+  float res = 4.0f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/round/773a8f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/round/773a8f.wgsl.expected.fxc.hlsl
index dc329d8..f8e0f12 100644
--- a/test/tint/builtins/gen/var/round/773a8f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/round/773a8f.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void round_773a8f() {
-  float res = 3.0f;
+  float res = 4.0f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/round/773a8f.wgsl.expected.glsl b/test/tint/builtins/gen/var/round/773a8f.wgsl.expected.glsl
index f7e71c8..0d7b0a4 100644
--- a/test/tint/builtins/gen/var/round/773a8f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/round/773a8f.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void round_773a8f() {
-  float res = 3.0f;
+  float res = 4.0f;
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void round_773a8f() {
-  float res = 3.0f;
+  float res = 4.0f;
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void round_773a8f() {
-  float res = 3.0f;
+  float res = 4.0f;
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/round/773a8f.wgsl.expected.msl b/test/tint/builtins/gen/var/round/773a8f.wgsl.expected.msl
index 4b27365..c9f83f8 100644
--- a/test/tint/builtins/gen/var/round/773a8f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/round/773a8f.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void round_773a8f() {
-  float res = 3.0f;
+  float res = 4.0f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/round/773a8f.wgsl.expected.spvasm b/test/tint/builtins/gen/var/round/773a8f.wgsl.expected.spvasm
index b97daa9..d784d9a 100644
--- a/test/tint/builtins/gen/var/round/773a8f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/round/773a8f.wgsl.expected.spvasm
@@ -30,14 +30,14 @@
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
-    %float_3 = OpConstant %float 3
+    %float_4 = OpConstant %float 4
 %_ptr_Function_float = OpTypePointer Function %float
          %16 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %round_773a8f = OpFunction %void None %9
          %12 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
-               OpStore %res %float_3
+               OpStore %res %float_4
                OpReturn
                OpFunctionEnd
 %vertex_main_inner = OpFunction %v4float None %16
diff --git a/test/tint/builtins/gen/var/round/773a8f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/round/773a8f.wgsl.expected.wgsl
index 3cd1f31..d00bb0a 100644
--- a/test/tint/builtins/gen/var/round/773a8f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/round/773a8f.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn round_773a8f() {
-  const arg_0 = 3.4;
+  const arg_0 = 3.5;
   var res = round(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/round/8fdca3.wgsl b/test/tint/builtins/gen/var/round/8fdca3.wgsl
index 9a56641..07c3c24 100644
--- a/test/tint/builtins/gen/var/round/8fdca3.wgsl
+++ b/test/tint/builtins/gen/var/round/8fdca3.wgsl
@@ -23,7 +23,7 @@
 
 // fn round(vec<2, fa>) -> vec<2, fa>
 fn round_8fdca3() {
-  const arg_0 = vec2(3.4);
+  const arg_0 = vec2(3.5);
   var res = round(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/round/8fdca3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/round/8fdca3.wgsl.expected.dxc.hlsl
index 5e441a3..3f822c5 100644
--- a/test/tint/builtins/gen/var/round/8fdca3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/round/8fdca3.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void round_8fdca3() {
-  float2 res = (3.0f).xx;
+  float2 res = (4.0f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/round/8fdca3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/round/8fdca3.wgsl.expected.fxc.hlsl
index 5e441a3..3f822c5 100644
--- a/test/tint/builtins/gen/var/round/8fdca3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/round/8fdca3.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void round_8fdca3() {
-  float2 res = (3.0f).xx;
+  float2 res = (4.0f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/round/8fdca3.wgsl.expected.glsl b/test/tint/builtins/gen/var/round/8fdca3.wgsl.expected.glsl
index ef15129..14cbb3b 100644
--- a/test/tint/builtins/gen/var/round/8fdca3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/round/8fdca3.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void round_8fdca3() {
-  vec2 res = vec2(3.0f);
+  vec2 res = vec2(4.0f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void round_8fdca3() {
-  vec2 res = vec2(3.0f);
+  vec2 res = vec2(4.0f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void round_8fdca3() {
-  vec2 res = vec2(3.0f);
+  vec2 res = vec2(4.0f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/round/8fdca3.wgsl.expected.msl b/test/tint/builtins/gen/var/round/8fdca3.wgsl.expected.msl
index dbffaee..0ff475e 100644
--- a/test/tint/builtins/gen/var/round/8fdca3.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/round/8fdca3.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void round_8fdca3() {
-  float2 res = float2(3.0f);
+  float2 res = float2(4.0f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/round/8fdca3.wgsl.expected.spvasm b/test/tint/builtins/gen/var/round/8fdca3.wgsl.expected.spvasm
index 40ce4a2..f24efe9 100644
--- a/test/tint/builtins/gen/var/round/8fdca3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/round/8fdca3.wgsl.expected.spvasm
@@ -31,8 +31,8 @@
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-    %float_3 = OpConstant %float 3
-         %15 = OpConstantComposite %v2float %float_3 %float_3
+    %float_4 = OpConstant %float 4
+         %15 = OpConstantComposite %v2float %float_4 %float_4
 %_ptr_Function_v2float = OpTypePointer Function %v2float
          %18 = OpConstantNull %v2float
          %19 = OpTypeFunction %v4float
diff --git a/test/tint/builtins/gen/var/round/8fdca3.wgsl.expected.wgsl b/test/tint/builtins/gen/var/round/8fdca3.wgsl.expected.wgsl
index fbf69dc..b8c324c 100644
--- a/test/tint/builtins/gen/var/round/8fdca3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/round/8fdca3.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn round_8fdca3() {
-  const arg_0 = vec2(3.4);
+  const arg_0 = vec2(3.5);
   var res = round(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/round/9078ef.wgsl b/test/tint/builtins/gen/var/round/9078ef.wgsl
index 2b11845..ec8ec54 100644
--- a/test/tint/builtins/gen/var/round/9078ef.wgsl
+++ b/test/tint/builtins/gen/var/round/9078ef.wgsl
@@ -25,7 +25,7 @@
 
 // fn round(f16) -> f16
 fn round_9078ef() {
-  var arg_0 = 3.4h;
+  var arg_0 = 3.5h;
   var res: f16 = round(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/round/9078ef.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/round/9078ef.wgsl.expected.dxc.hlsl
index b6e47ac..3f465c9 100644
--- a/test/tint/builtins/gen/var/round/9078ef.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/round/9078ef.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void round_9078ef() {
-  float16_t arg_0 = float16_t(3.3984375h);
+  float16_t arg_0 = float16_t(3.5h);
   float16_t res = round(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/round/9078ef.wgsl.expected.glsl b/test/tint/builtins/gen/var/round/9078ef.wgsl.expected.glsl
index cfcc156..5fe11aa 100644
--- a/test/tint/builtins/gen/var/round/9078ef.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/round/9078ef.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void round_9078ef() {
-  float16_t arg_0 = 3.3984375hf;
+  float16_t arg_0 = 3.5hf;
   float16_t res = round(arg_0);
 }
 
@@ -24,7 +24,7 @@
 precision mediump float;
 
 void round_9078ef() {
-  float16_t arg_0 = 3.3984375hf;
+  float16_t arg_0 = 3.5hf;
   float16_t res = round(arg_0);
 }
 
@@ -40,7 +40,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void round_9078ef() {
-  float16_t arg_0 = 3.3984375hf;
+  float16_t arg_0 = 3.5hf;
   float16_t res = round(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/round/9078ef.wgsl.expected.msl b/test/tint/builtins/gen/var/round/9078ef.wgsl.expected.msl
index 83a58d2..14da505 100644
--- a/test/tint/builtins/gen/var/round/9078ef.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/round/9078ef.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void round_9078ef() {
-  half arg_0 = 3.3984375h;
+  half arg_0 = 3.5h;
   half res = rint(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/round/9078ef.wgsl.expected.spvasm b/test/tint/builtins/gen/var/round/9078ef.wgsl.expected.spvasm
index a27be47..1b3b587 100644
--- a/test/tint/builtins/gen/var/round/9078ef.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/round/9078ef.wgsl.expected.spvasm
@@ -37,7 +37,7 @@
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
        %half = OpTypeFloat 16
-%half_0x1_b3p_1 = OpConstant %half 0x1.b3p+1
+%half_0x1_cp_1 = OpConstant %half 0x1.cp+1
 %_ptr_Function_half = OpTypePointer Function %half
          %17 = OpConstantNull %half
          %22 = OpTypeFunction %v4float
@@ -46,7 +46,7 @@
          %12 = OpLabel
       %arg_0 = OpVariable %_ptr_Function_half Function %17
         %res = OpVariable %_ptr_Function_half Function %17
-               OpStore %arg_0 %half_0x1_b3p_1
+               OpStore %arg_0 %half_0x1_cp_1
          %20 = OpLoad %half %arg_0
          %18 = OpExtInst %half %19 RoundEven %20
                OpStore %res %18
diff --git a/test/tint/builtins/gen/var/round/9078ef.wgsl.expected.wgsl b/test/tint/builtins/gen/var/round/9078ef.wgsl.expected.wgsl
index 56559c6..4ba193e 100644
--- a/test/tint/builtins/gen/var/round/9078ef.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/round/9078ef.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 enable f16;
 
 fn round_9078ef() {
-  var arg_0 = 3.3984375h;
+  var arg_0 = 3.5h;
   var res : f16 = round(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/round/9edc38.wgsl b/test/tint/builtins/gen/var/round/9edc38.wgsl
index f47bea9..39ea9fd 100644
--- a/test/tint/builtins/gen/var/round/9edc38.wgsl
+++ b/test/tint/builtins/gen/var/round/9edc38.wgsl
@@ -23,7 +23,7 @@
 
 // fn round(f32) -> f32
 fn round_9edc38() {
-  var arg_0 = 3.4f;
+  var arg_0 = 3.5f;
   var res: f32 = round(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/round/9edc38.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/round/9edc38.wgsl.expected.dxc.hlsl
index b496960..6c6d0e5 100644
--- a/test/tint/builtins/gen/var/round/9edc38.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/round/9edc38.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void round_9edc38() {
-  float arg_0 = 3.400000095f;
+  float arg_0 = 3.5f;
   float res = round(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/round/9edc38.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/round/9edc38.wgsl.expected.fxc.hlsl
index b496960..6c6d0e5 100644
--- a/test/tint/builtins/gen/var/round/9edc38.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/round/9edc38.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void round_9edc38() {
-  float arg_0 = 3.400000095f;
+  float arg_0 = 3.5f;
   float res = round(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/round/9edc38.wgsl.expected.glsl b/test/tint/builtins/gen/var/round/9edc38.wgsl.expected.glsl
index a149ca8..84da2d8 100644
--- a/test/tint/builtins/gen/var/round/9edc38.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/round/9edc38.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void round_9edc38() {
-  float arg_0 = 3.400000095f;
+  float arg_0 = 3.5f;
   float res = round(arg_0);
 }
 
@@ -22,7 +22,7 @@
 precision mediump float;
 
 void round_9edc38() {
-  float arg_0 = 3.400000095f;
+  float arg_0 = 3.5f;
   float res = round(arg_0);
 }
 
@@ -37,7 +37,7 @@
 #version 310 es
 
 void round_9edc38() {
-  float arg_0 = 3.400000095f;
+  float arg_0 = 3.5f;
   float res = round(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/round/9edc38.wgsl.expected.msl b/test/tint/builtins/gen/var/round/9edc38.wgsl.expected.msl
index 4d1f271..d64a376 100644
--- a/test/tint/builtins/gen/var/round/9edc38.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/round/9edc38.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void round_9edc38() {
-  float arg_0 = 3.400000095f;
+  float arg_0 = 3.5f;
   float res = rint(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/round/9edc38.wgsl.expected.spvasm b/test/tint/builtins/gen/var/round/9edc38.wgsl.expected.spvasm
index ae3f38d..d817cdb 100644
--- a/test/tint/builtins/gen/var/round/9edc38.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/round/9edc38.wgsl.expected.spvasm
@@ -32,7 +32,7 @@
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
-%float_3_4000001 = OpConstant %float 3.4000001
+  %float_3_5 = OpConstant %float 3.5
 %_ptr_Function_float = OpTypePointer Function %float
          %20 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
@@ -40,7 +40,7 @@
          %12 = OpLabel
       %arg_0 = OpVariable %_ptr_Function_float Function %8
         %res = OpVariable %_ptr_Function_float Function %8
-               OpStore %arg_0 %float_3_4000001
+               OpStore %arg_0 %float_3_5
          %18 = OpLoad %float %arg_0
          %16 = OpExtInst %float %17 RoundEven %18
                OpStore %res %16
diff --git a/test/tint/builtins/gen/var/round/9edc38.wgsl.expected.wgsl b/test/tint/builtins/gen/var/round/9edc38.wgsl.expected.wgsl
index 3141c24..a2f0a1f 100644
--- a/test/tint/builtins/gen/var/round/9edc38.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/round/9edc38.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn round_9edc38() {
-  var arg_0 = 3.400000095f;
+  var arg_0 = 3.5f;
   var res : f32 = round(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/round/a1673d.wgsl b/test/tint/builtins/gen/var/round/a1673d.wgsl
index 03a7407..09b3094 100644
--- a/test/tint/builtins/gen/var/round/a1673d.wgsl
+++ b/test/tint/builtins/gen/var/round/a1673d.wgsl
@@ -23,7 +23,7 @@
 
 // fn round(vec<3, fa>) -> vec<3, fa>
 fn round_a1673d() {
-  const arg_0 = vec3(3.4);
+  const arg_0 = vec3(3.5);
   var res = round(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/round/a1673d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/round/a1673d.wgsl.expected.dxc.hlsl
index 4032312..df8181f 100644
--- a/test/tint/builtins/gen/var/round/a1673d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/round/a1673d.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void round_a1673d() {
-  float3 res = (3.0f).xxx;
+  float3 res = (4.0f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/round/a1673d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/round/a1673d.wgsl.expected.fxc.hlsl
index 4032312..df8181f 100644
--- a/test/tint/builtins/gen/var/round/a1673d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/round/a1673d.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void round_a1673d() {
-  float3 res = (3.0f).xxx;
+  float3 res = (4.0f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/round/a1673d.wgsl.expected.glsl b/test/tint/builtins/gen/var/round/a1673d.wgsl.expected.glsl
index 0a8db5f..dd390a7 100644
--- a/test/tint/builtins/gen/var/round/a1673d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/round/a1673d.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void round_a1673d() {
-  vec3 res = vec3(3.0f);
+  vec3 res = vec3(4.0f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void round_a1673d() {
-  vec3 res = vec3(3.0f);
+  vec3 res = vec3(4.0f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void round_a1673d() {
-  vec3 res = vec3(3.0f);
+  vec3 res = vec3(4.0f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/round/a1673d.wgsl.expected.msl b/test/tint/builtins/gen/var/round/a1673d.wgsl.expected.msl
index e9b35bb..7303f72 100644
--- a/test/tint/builtins/gen/var/round/a1673d.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/round/a1673d.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void round_a1673d() {
-  float3 res = float3(3.0f);
+  float3 res = float3(4.0f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/round/a1673d.wgsl.expected.spvasm b/test/tint/builtins/gen/var/round/a1673d.wgsl.expected.spvasm
index e9bbf2e..f0a7e42 100644
--- a/test/tint/builtins/gen/var/round/a1673d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/round/a1673d.wgsl.expected.spvasm
@@ -31,8 +31,8 @@
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
-    %float_3 = OpConstant %float 3
-         %15 = OpConstantComposite %v3float %float_3 %float_3 %float_3
+    %float_4 = OpConstant %float 4
+         %15 = OpConstantComposite %v3float %float_4 %float_4 %float_4
 %_ptr_Function_v3float = OpTypePointer Function %v3float
          %18 = OpConstantNull %v3float
          %19 = OpTypeFunction %v4float
diff --git a/test/tint/builtins/gen/var/round/a1673d.wgsl.expected.wgsl b/test/tint/builtins/gen/var/round/a1673d.wgsl.expected.wgsl
index 4adb295..0a45d86 100644
--- a/test/tint/builtins/gen/var/round/a1673d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/round/a1673d.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn round_a1673d() {
-  const arg_0 = vec3(3.4);
+  const arg_0 = vec3(3.5);
   var res = round(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/round/d87e84.wgsl b/test/tint/builtins/gen/var/round/d87e84.wgsl
index b7459b8..8b11473 100644
--- a/test/tint/builtins/gen/var/round/d87e84.wgsl
+++ b/test/tint/builtins/gen/var/round/d87e84.wgsl
@@ -25,7 +25,7 @@
 
 // fn round(vec<2, f16>) -> vec<2, f16>
 fn round_d87e84() {
-  var arg_0 = vec2<f16>(3.4h);
+  var arg_0 = vec2<f16>(3.5h);
   var res: vec2<f16> = round(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/round/d87e84.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/round/d87e84.wgsl.expected.dxc.hlsl
index 38e6732..9895f74b 100644
--- a/test/tint/builtins/gen/var/round/d87e84.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/round/d87e84.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void round_d87e84() {
-  vector<float16_t, 2> arg_0 = (float16_t(3.3984375h)).xx;
+  vector<float16_t, 2> arg_0 = (float16_t(3.5h)).xx;
   vector<float16_t, 2> res = round(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/round/d87e84.wgsl.expected.glsl b/test/tint/builtins/gen/var/round/d87e84.wgsl.expected.glsl
index 7b7d705..2d6d5a8 100644
--- a/test/tint/builtins/gen/var/round/d87e84.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/round/d87e84.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void round_d87e84() {
-  f16vec2 arg_0 = f16vec2(3.3984375hf);
+  f16vec2 arg_0 = f16vec2(3.5hf);
   f16vec2 res = round(arg_0);
 }
 
@@ -24,7 +24,7 @@
 precision mediump float;
 
 void round_d87e84() {
-  f16vec2 arg_0 = f16vec2(3.3984375hf);
+  f16vec2 arg_0 = f16vec2(3.5hf);
   f16vec2 res = round(arg_0);
 }
 
@@ -40,7 +40,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void round_d87e84() {
-  f16vec2 arg_0 = f16vec2(3.3984375hf);
+  f16vec2 arg_0 = f16vec2(3.5hf);
   f16vec2 res = round(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/round/d87e84.wgsl.expected.msl b/test/tint/builtins/gen/var/round/d87e84.wgsl.expected.msl
index 45fbfa2..2a9ee39 100644
--- a/test/tint/builtins/gen/var/round/d87e84.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/round/d87e84.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void round_d87e84() {
-  half2 arg_0 = half2(3.3984375h);
+  half2 arg_0 = half2(3.5h);
   half2 res = rint(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/round/d87e84.wgsl.expected.spvasm b/test/tint/builtins/gen/var/round/d87e84.wgsl.expected.spvasm
index 691319f..1696b37 100644
--- a/test/tint/builtins/gen/var/round/d87e84.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/round/d87e84.wgsl.expected.spvasm
@@ -38,8 +38,8 @@
           %9 = OpTypeFunction %void
        %half = OpTypeFloat 16
      %v2half = OpTypeVector %half 2
-%half_0x1_b3p_1 = OpConstant %half 0x1.b3p+1
-         %16 = OpConstantComposite %v2half %half_0x1_b3p_1 %half_0x1_b3p_1
+%half_0x1_cp_1 = OpConstant %half 0x1.cp+1
+         %16 = OpConstantComposite %v2half %half_0x1_cp_1 %half_0x1_cp_1
 %_ptr_Function_v2half = OpTypePointer Function %v2half
          %19 = OpConstantNull %v2half
          %24 = OpTypeFunction %v4float
diff --git a/test/tint/builtins/gen/var/round/d87e84.wgsl.expected.wgsl b/test/tint/builtins/gen/var/round/d87e84.wgsl.expected.wgsl
index 3732bd7..f91e883 100644
--- a/test/tint/builtins/gen/var/round/d87e84.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/round/d87e84.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 enable f16;
 
 fn round_d87e84() {
-  var arg_0 = vec2<f16>(3.3984375h);
+  var arg_0 = vec2<f16>(3.5h);
   var res : vec2<f16> = round(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/round/e1bba2.wgsl b/test/tint/builtins/gen/var/round/e1bba2.wgsl
index 5c666ae..a4fbeab 100644
--- a/test/tint/builtins/gen/var/round/e1bba2.wgsl
+++ b/test/tint/builtins/gen/var/round/e1bba2.wgsl
@@ -25,7 +25,7 @@
 
 // fn round(vec<3, f16>) -> vec<3, f16>
 fn round_e1bba2() {
-  var arg_0 = vec3<f16>(3.4h);
+  var arg_0 = vec3<f16>(3.5h);
   var res: vec3<f16> = round(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/round/e1bba2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/round/e1bba2.wgsl.expected.dxc.hlsl
index 2c1a7e7..a92457e 100644
--- a/test/tint/builtins/gen/var/round/e1bba2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/round/e1bba2.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void round_e1bba2() {
-  vector<float16_t, 3> arg_0 = (float16_t(3.3984375h)).xxx;
+  vector<float16_t, 3> arg_0 = (float16_t(3.5h)).xxx;
   vector<float16_t, 3> res = round(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/round/e1bba2.wgsl.expected.glsl b/test/tint/builtins/gen/var/round/e1bba2.wgsl.expected.glsl
index 79a642b..8d58b62 100644
--- a/test/tint/builtins/gen/var/round/e1bba2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/round/e1bba2.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void round_e1bba2() {
-  f16vec3 arg_0 = f16vec3(3.3984375hf);
+  f16vec3 arg_0 = f16vec3(3.5hf);
   f16vec3 res = round(arg_0);
 }
 
@@ -24,7 +24,7 @@
 precision mediump float;
 
 void round_e1bba2() {
-  f16vec3 arg_0 = f16vec3(3.3984375hf);
+  f16vec3 arg_0 = f16vec3(3.5hf);
   f16vec3 res = round(arg_0);
 }
 
@@ -40,7 +40,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void round_e1bba2() {
-  f16vec3 arg_0 = f16vec3(3.3984375hf);
+  f16vec3 arg_0 = f16vec3(3.5hf);
   f16vec3 res = round(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/round/e1bba2.wgsl.expected.msl b/test/tint/builtins/gen/var/round/e1bba2.wgsl.expected.msl
index d67c97b..cc62ca3 100644
--- a/test/tint/builtins/gen/var/round/e1bba2.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/round/e1bba2.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void round_e1bba2() {
-  half3 arg_0 = half3(3.3984375h);
+  half3 arg_0 = half3(3.5h);
   half3 res = rint(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/round/e1bba2.wgsl.expected.spvasm b/test/tint/builtins/gen/var/round/e1bba2.wgsl.expected.spvasm
index ecba2f9..e23c3a1 100644
--- a/test/tint/builtins/gen/var/round/e1bba2.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/round/e1bba2.wgsl.expected.spvasm
@@ -38,8 +38,8 @@
           %9 = OpTypeFunction %void
        %half = OpTypeFloat 16
      %v3half = OpTypeVector %half 3
-%half_0x1_b3p_1 = OpConstant %half 0x1.b3p+1
-         %16 = OpConstantComposite %v3half %half_0x1_b3p_1 %half_0x1_b3p_1 %half_0x1_b3p_1
+%half_0x1_cp_1 = OpConstant %half 0x1.cp+1
+         %16 = OpConstantComposite %v3half %half_0x1_cp_1 %half_0x1_cp_1 %half_0x1_cp_1
 %_ptr_Function_v3half = OpTypePointer Function %v3half
          %19 = OpConstantNull %v3half
          %24 = OpTypeFunction %v4float
diff --git a/test/tint/builtins/gen/var/round/e1bba2.wgsl.expected.wgsl b/test/tint/builtins/gen/var/round/e1bba2.wgsl.expected.wgsl
index a4bc2f2..7cce6c4 100644
--- a/test/tint/builtins/gen/var/round/e1bba2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/round/e1bba2.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 enable f16;
 
 fn round_e1bba2() {
-  var arg_0 = vec3<f16>(3.3984375h);
+  var arg_0 = vec3<f16>(3.5h);
   var res : vec3<f16> = round(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/round/f665b5.wgsl b/test/tint/builtins/gen/var/round/f665b5.wgsl
index 34ce7cc..3b7fd3a 100644
--- a/test/tint/builtins/gen/var/round/f665b5.wgsl
+++ b/test/tint/builtins/gen/var/round/f665b5.wgsl
@@ -25,7 +25,7 @@
 
 // fn round(vec<4, f16>) -> vec<4, f16>
 fn round_f665b5() {
-  var arg_0 = vec4<f16>(3.4h);
+  var arg_0 = vec4<f16>(3.5h);
   var res: vec4<f16> = round(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/round/f665b5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/round/f665b5.wgsl.expected.dxc.hlsl
index 1bcedeb..f789e47 100644
--- a/test/tint/builtins/gen/var/round/f665b5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/round/f665b5.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void round_f665b5() {
-  vector<float16_t, 4> arg_0 = (float16_t(3.3984375h)).xxxx;
+  vector<float16_t, 4> arg_0 = (float16_t(3.5h)).xxxx;
   vector<float16_t, 4> res = round(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/round/f665b5.wgsl.expected.glsl b/test/tint/builtins/gen/var/round/f665b5.wgsl.expected.glsl
index 853570f..344164d 100644
--- a/test/tint/builtins/gen/var/round/f665b5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/round/f665b5.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void round_f665b5() {
-  f16vec4 arg_0 = f16vec4(3.3984375hf);
+  f16vec4 arg_0 = f16vec4(3.5hf);
   f16vec4 res = round(arg_0);
 }
 
@@ -24,7 +24,7 @@
 precision mediump float;
 
 void round_f665b5() {
-  f16vec4 arg_0 = f16vec4(3.3984375hf);
+  f16vec4 arg_0 = f16vec4(3.5hf);
   f16vec4 res = round(arg_0);
 }
 
@@ -40,7 +40,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void round_f665b5() {
-  f16vec4 arg_0 = f16vec4(3.3984375hf);
+  f16vec4 arg_0 = f16vec4(3.5hf);
   f16vec4 res = round(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/round/f665b5.wgsl.expected.msl b/test/tint/builtins/gen/var/round/f665b5.wgsl.expected.msl
index dafb10b..1e6e527 100644
--- a/test/tint/builtins/gen/var/round/f665b5.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/round/f665b5.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void round_f665b5() {
-  half4 arg_0 = half4(3.3984375h);
+  half4 arg_0 = half4(3.5h);
   half4 res = rint(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/round/f665b5.wgsl.expected.spvasm b/test/tint/builtins/gen/var/round/f665b5.wgsl.expected.spvasm
index 4e352ff..aee30a5 100644
--- a/test/tint/builtins/gen/var/round/f665b5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/round/f665b5.wgsl.expected.spvasm
@@ -38,8 +38,8 @@
           %9 = OpTypeFunction %void
        %half = OpTypeFloat 16
      %v4half = OpTypeVector %half 4
-%half_0x1_b3p_1 = OpConstant %half 0x1.b3p+1
-         %16 = OpConstantComposite %v4half %half_0x1_b3p_1 %half_0x1_b3p_1 %half_0x1_b3p_1 %half_0x1_b3p_1
+%half_0x1_cp_1 = OpConstant %half 0x1.cp+1
+         %16 = OpConstantComposite %v4half %half_0x1_cp_1 %half_0x1_cp_1 %half_0x1_cp_1 %half_0x1_cp_1
 %_ptr_Function_v4half = OpTypePointer Function %v4half
          %19 = OpConstantNull %v4half
          %24 = OpTypeFunction %v4float
diff --git a/test/tint/builtins/gen/var/round/f665b5.wgsl.expected.wgsl b/test/tint/builtins/gen/var/round/f665b5.wgsl.expected.wgsl
index 89020d0..4773a82 100644
--- a/test/tint/builtins/gen/var/round/f665b5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/round/f665b5.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 enable f16;
 
 fn round_f665b5() {
-  var arg_0 = vec4<f16>(3.3984375h);
+  var arg_0 = vec4<f16>(3.5h);
   var res : vec4<f16> = round(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/sin/01f241.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/sin/01f241.wgsl.expected.dxc.hlsl
index 17f3c9b..4051809 100644
--- a/test/tint/builtins/gen/var/sin/01f241.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sin/01f241.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void sin_01f241() {
-  float3 arg_0 = (1.570796371f).xxx;
+  float3 arg_0 = (1.57079637050628662109f).xxx;
   float3 res = sin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/sin/01f241.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/sin/01f241.wgsl.expected.fxc.hlsl
index 17f3c9b..4051809 100644
--- a/test/tint/builtins/gen/var/sin/01f241.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sin/01f241.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void sin_01f241() {
-  float3 arg_0 = (1.570796371f).xxx;
+  float3 arg_0 = (1.57079637050628662109f).xxx;
   float3 res = sin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/sin/01f241.wgsl.expected.glsl b/test/tint/builtins/gen/var/sin/01f241.wgsl.expected.glsl
index 8ef7f1c..29acf4c 100644
--- a/test/tint/builtins/gen/var/sin/01f241.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/sin/01f241.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void sin_01f241() {
-  vec3 arg_0 = vec3(1.570796371f);
+  vec3 arg_0 = vec3(1.57079637050628662109f);
   vec3 res = sin(arg_0);
 }
 
@@ -22,7 +22,7 @@
 precision mediump float;
 
 void sin_01f241() {
-  vec3 arg_0 = vec3(1.570796371f);
+  vec3 arg_0 = vec3(1.57079637050628662109f);
   vec3 res = sin(arg_0);
 }
 
@@ -37,7 +37,7 @@
 #version 310 es
 
 void sin_01f241() {
-  vec3 arg_0 = vec3(1.570796371f);
+  vec3 arg_0 = vec3(1.57079637050628662109f);
   vec3 res = sin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/sin/01f241.wgsl.expected.msl b/test/tint/builtins/gen/var/sin/01f241.wgsl.expected.msl
index f5b43ae..da49e30 100644
--- a/test/tint/builtins/gen/var/sin/01f241.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/sin/01f241.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void sin_01f241() {
-  float3 arg_0 = float3(1.570796371f);
+  float3 arg_0 = float3(1.57079637050628662109f);
   float3 res = sin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/sin/01f241.wgsl.expected.wgsl b/test/tint/builtins/gen/var/sin/01f241.wgsl.expected.wgsl
index edf3cbe..b51abc7 100644
--- a/test/tint/builtins/gen/var/sin/01f241.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/sin/01f241.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn sin_01f241() {
-  var arg_0 = vec3<f32>(1.570796371f);
+  var arg_0 = vec3<f32>(1.57079637050628662109f);
   var res : vec3<f32> = sin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/sin/15b2c6.wgsl.expected.wgsl b/test/tint/builtins/gen/var/sin/15b2c6.wgsl.expected.wgsl
index e4e6453..4c788f2 100644
--- a/test/tint/builtins/gen/var/sin/15b2c6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/sin/15b2c6.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn sin_15b2c6() {
-  const arg_0 = vec4(1.57079632679);
+  const arg_0 = vec4(1.57079632679000003037);
   var res = sin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/sin/4e3979.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/sin/4e3979.wgsl.expected.dxc.hlsl
index 035f41d..1f709f1 100644
--- a/test/tint/builtins/gen/var/sin/4e3979.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sin/4e3979.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void sin_4e3979() {
-  float4 arg_0 = (1.570796371f).xxxx;
+  float4 arg_0 = (1.57079637050628662109f).xxxx;
   float4 res = sin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/sin/4e3979.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/sin/4e3979.wgsl.expected.fxc.hlsl
index 035f41d..1f709f1 100644
--- a/test/tint/builtins/gen/var/sin/4e3979.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sin/4e3979.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void sin_4e3979() {
-  float4 arg_0 = (1.570796371f).xxxx;
+  float4 arg_0 = (1.57079637050628662109f).xxxx;
   float4 res = sin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/sin/4e3979.wgsl.expected.glsl b/test/tint/builtins/gen/var/sin/4e3979.wgsl.expected.glsl
index 788ed7e..ea55bca 100644
--- a/test/tint/builtins/gen/var/sin/4e3979.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/sin/4e3979.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void sin_4e3979() {
-  vec4 arg_0 = vec4(1.570796371f);
+  vec4 arg_0 = vec4(1.57079637050628662109f);
   vec4 res = sin(arg_0);
 }
 
@@ -22,7 +22,7 @@
 precision mediump float;
 
 void sin_4e3979() {
-  vec4 arg_0 = vec4(1.570796371f);
+  vec4 arg_0 = vec4(1.57079637050628662109f);
   vec4 res = sin(arg_0);
 }
 
@@ -37,7 +37,7 @@
 #version 310 es
 
 void sin_4e3979() {
-  vec4 arg_0 = vec4(1.570796371f);
+  vec4 arg_0 = vec4(1.57079637050628662109f);
   vec4 res = sin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/sin/4e3979.wgsl.expected.msl b/test/tint/builtins/gen/var/sin/4e3979.wgsl.expected.msl
index 90fe227..aa887b4 100644
--- a/test/tint/builtins/gen/var/sin/4e3979.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/sin/4e3979.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void sin_4e3979() {
-  float4 arg_0 = float4(1.570796371f);
+  float4 arg_0 = float4(1.57079637050628662109f);
   float4 res = sin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/sin/4e3979.wgsl.expected.wgsl b/test/tint/builtins/gen/var/sin/4e3979.wgsl.expected.wgsl
index ce0867c..f8b7622 100644
--- a/test/tint/builtins/gen/var/sin/4e3979.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/sin/4e3979.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn sin_4e3979() {
-  var arg_0 = vec4<f32>(1.570796371f);
+  var arg_0 = vec4<f32>(1.57079637050628662109f);
   var res : vec4<f32> = sin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/sin/67b03c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/sin/67b03c.wgsl.expected.wgsl
index 90a5999..c996290 100644
--- a/test/tint/builtins/gen/var/sin/67b03c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/sin/67b03c.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn sin_67b03c() {
-  const arg_0 = vec3(1.57079632679);
+  const arg_0 = vec3(1.57079632679000003037);
   var res = sin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/sin/68d3ab.wgsl.expected.wgsl b/test/tint/builtins/gen/var/sin/68d3ab.wgsl.expected.wgsl
index 3c50c9c..4dcc0ec 100644
--- a/test/tint/builtins/gen/var/sin/68d3ab.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/sin/68d3ab.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn sin_68d3ab() {
-  const arg_0 = vec2(1.57079632679);
+  const arg_0 = vec2(1.57079632679000003037);
   var res = sin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/sin/a9ab19.wgsl.expected.wgsl b/test/tint/builtins/gen/var/sin/a9ab19.wgsl.expected.wgsl
index 7082312..fea5b8f 100644
--- a/test/tint/builtins/gen/var/sin/a9ab19.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/sin/a9ab19.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn sin_a9ab19() {
-  const arg_0 = 1.57079632679;
+  const arg_0 = 1.57079632679000003037;
   var res = sin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/sin/b78c91.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/sin/b78c91.wgsl.expected.dxc.hlsl
index 3e57eae..7071862 100644
--- a/test/tint/builtins/gen/var/sin/b78c91.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sin/b78c91.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void sin_b78c91() {
-  float arg_0 = 1.570796371f;
+  float arg_0 = 1.57079637050628662109f;
   float res = sin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/sin/b78c91.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/sin/b78c91.wgsl.expected.fxc.hlsl
index 3e57eae..7071862 100644
--- a/test/tint/builtins/gen/var/sin/b78c91.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sin/b78c91.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void sin_b78c91() {
-  float arg_0 = 1.570796371f;
+  float arg_0 = 1.57079637050628662109f;
   float res = sin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/sin/b78c91.wgsl.expected.glsl b/test/tint/builtins/gen/var/sin/b78c91.wgsl.expected.glsl
index 6ee0d9d..5f36b7a 100644
--- a/test/tint/builtins/gen/var/sin/b78c91.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/sin/b78c91.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void sin_b78c91() {
-  float arg_0 = 1.570796371f;
+  float arg_0 = 1.57079637050628662109f;
   float res = sin(arg_0);
 }
 
@@ -22,7 +22,7 @@
 precision mediump float;
 
 void sin_b78c91() {
-  float arg_0 = 1.570796371f;
+  float arg_0 = 1.57079637050628662109f;
   float res = sin(arg_0);
 }
 
@@ -37,7 +37,7 @@
 #version 310 es
 
 void sin_b78c91() {
-  float arg_0 = 1.570796371f;
+  float arg_0 = 1.57079637050628662109f;
   float res = sin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/sin/b78c91.wgsl.expected.msl b/test/tint/builtins/gen/var/sin/b78c91.wgsl.expected.msl
index 7080b14..7480724 100644
--- a/test/tint/builtins/gen/var/sin/b78c91.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/sin/b78c91.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void sin_b78c91() {
-  float arg_0 = 1.570796371f;
+  float arg_0 = 1.57079637050628662109f;
   float res = sin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/sin/b78c91.wgsl.expected.wgsl b/test/tint/builtins/gen/var/sin/b78c91.wgsl.expected.wgsl
index 10619d1..adea4dd 100644
--- a/test/tint/builtins/gen/var/sin/b78c91.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/sin/b78c91.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn sin_b78c91() {
-  var arg_0 = 1.570796371f;
+  var arg_0 = 1.57079637050628662109f;
   var res : f32 = sin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/sin/fc8bc4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/sin/fc8bc4.wgsl.expected.dxc.hlsl
index 1bb1b57..1bc8dd5 100644
--- a/test/tint/builtins/gen/var/sin/fc8bc4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sin/fc8bc4.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void sin_fc8bc4() {
-  float2 arg_0 = (1.570796371f).xx;
+  float2 arg_0 = (1.57079637050628662109f).xx;
   float2 res = sin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/sin/fc8bc4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/sin/fc8bc4.wgsl.expected.fxc.hlsl
index 1bb1b57..1bc8dd5 100644
--- a/test/tint/builtins/gen/var/sin/fc8bc4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sin/fc8bc4.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void sin_fc8bc4() {
-  float2 arg_0 = (1.570796371f).xx;
+  float2 arg_0 = (1.57079637050628662109f).xx;
   float2 res = sin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/sin/fc8bc4.wgsl.expected.glsl b/test/tint/builtins/gen/var/sin/fc8bc4.wgsl.expected.glsl
index e7c0817..042f423 100644
--- a/test/tint/builtins/gen/var/sin/fc8bc4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/sin/fc8bc4.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void sin_fc8bc4() {
-  vec2 arg_0 = vec2(1.570796371f);
+  vec2 arg_0 = vec2(1.57079637050628662109f);
   vec2 res = sin(arg_0);
 }
 
@@ -22,7 +22,7 @@
 precision mediump float;
 
 void sin_fc8bc4() {
-  vec2 arg_0 = vec2(1.570796371f);
+  vec2 arg_0 = vec2(1.57079637050628662109f);
   vec2 res = sin(arg_0);
 }
 
@@ -37,7 +37,7 @@
 #version 310 es
 
 void sin_fc8bc4() {
-  vec2 arg_0 = vec2(1.570796371f);
+  vec2 arg_0 = vec2(1.57079637050628662109f);
   vec2 res = sin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/sin/fc8bc4.wgsl.expected.msl b/test/tint/builtins/gen/var/sin/fc8bc4.wgsl.expected.msl
index 4371a51..588e37c 100644
--- a/test/tint/builtins/gen/var/sin/fc8bc4.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/sin/fc8bc4.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void sin_fc8bc4() {
-  float2 arg_0 = float2(1.570796371f);
+  float2 arg_0 = float2(1.57079637050628662109f);
   float2 res = sin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/sin/fc8bc4.wgsl.expected.wgsl b/test/tint/builtins/gen/var/sin/fc8bc4.wgsl.expected.wgsl
index 8cfef1d..b14487d 100644
--- a/test/tint/builtins/gen/var/sin/fc8bc4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/sin/fc8bc4.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn sin_fc8bc4() {
-  var arg_0 = vec2<f32>(1.570796371f);
+  var arg_0 = vec2<f32>(1.57079637050628662109f);
   var res : vec2<f32> = sin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/sinh/77a2a3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/sinh/77a2a3.wgsl.expected.dxc.hlsl
index cc0e402..e630d7f 100644
--- a/test/tint/builtins/gen/var/sinh/77a2a3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sinh/77a2a3.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void sinh_77a2a3() {
-  float3 res = (1.175201178f).xxx;
+  float3 res = (1.17520117759704589844f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/sinh/77a2a3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/sinh/77a2a3.wgsl.expected.fxc.hlsl
index cc0e402..e630d7f 100644
--- a/test/tint/builtins/gen/var/sinh/77a2a3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sinh/77a2a3.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void sinh_77a2a3() {
-  float3 res = (1.175201178f).xxx;
+  float3 res = (1.17520117759704589844f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/sinh/77a2a3.wgsl.expected.glsl b/test/tint/builtins/gen/var/sinh/77a2a3.wgsl.expected.glsl
index 4853046..da0114b 100644
--- a/test/tint/builtins/gen/var/sinh/77a2a3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/sinh/77a2a3.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void sinh_77a2a3() {
-  vec3 res = vec3(1.175201178f);
+  vec3 res = vec3(1.17520117759704589844f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void sinh_77a2a3() {
-  vec3 res = vec3(1.175201178f);
+  vec3 res = vec3(1.17520117759704589844f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void sinh_77a2a3() {
-  vec3 res = vec3(1.175201178f);
+  vec3 res = vec3(1.17520117759704589844f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/sinh/77a2a3.wgsl.expected.msl b/test/tint/builtins/gen/var/sinh/77a2a3.wgsl.expected.msl
index 2370cd2..c9d3493 100644
--- a/test/tint/builtins/gen/var/sinh/77a2a3.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/sinh/77a2a3.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void sinh_77a2a3() {
-  float3 res = float3(1.175201178f);
+  float3 res = float3(1.17520117759704589844f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/sinh/9c1092.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/sinh/9c1092.wgsl.expected.dxc.hlsl
index 9aef2e9..f87b31d 100644
--- a/test/tint/builtins/gen/var/sinh/9c1092.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sinh/9c1092.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void sinh_9c1092() {
-  float2 res = (1.175201178f).xx;
+  float2 res = (1.17520117759704589844f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/sinh/9c1092.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/sinh/9c1092.wgsl.expected.fxc.hlsl
index 9aef2e9..f87b31d 100644
--- a/test/tint/builtins/gen/var/sinh/9c1092.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sinh/9c1092.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void sinh_9c1092() {
-  float2 res = (1.175201178f).xx;
+  float2 res = (1.17520117759704589844f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/sinh/9c1092.wgsl.expected.glsl b/test/tint/builtins/gen/var/sinh/9c1092.wgsl.expected.glsl
index f6a45bd..725e252 100644
--- a/test/tint/builtins/gen/var/sinh/9c1092.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/sinh/9c1092.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void sinh_9c1092() {
-  vec2 res = vec2(1.175201178f);
+  vec2 res = vec2(1.17520117759704589844f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void sinh_9c1092() {
-  vec2 res = vec2(1.175201178f);
+  vec2 res = vec2(1.17520117759704589844f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void sinh_9c1092() {
-  vec2 res = vec2(1.175201178f);
+  vec2 res = vec2(1.17520117759704589844f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/sinh/9c1092.wgsl.expected.msl b/test/tint/builtins/gen/var/sinh/9c1092.wgsl.expected.msl
index 04d9187..c5abd6e4 100644
--- a/test/tint/builtins/gen/var/sinh/9c1092.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/sinh/9c1092.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void sinh_9c1092() {
-  float2 res = float2(1.175201178f);
+  float2 res = float2(1.17520117759704589844f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/sinh/a3da7c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/sinh/a3da7c.wgsl.expected.dxc.hlsl
index 32eaad5..432b95d 100644
--- a/test/tint/builtins/gen/var/sinh/a3da7c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sinh/a3da7c.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void sinh_a3da7c() {
-  float4 res = (1.175201178f).xxxx;
+  float4 res = (1.17520117759704589844f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/sinh/a3da7c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/sinh/a3da7c.wgsl.expected.fxc.hlsl
index 32eaad5..432b95d 100644
--- a/test/tint/builtins/gen/var/sinh/a3da7c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sinh/a3da7c.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void sinh_a3da7c() {
-  float4 res = (1.175201178f).xxxx;
+  float4 res = (1.17520117759704589844f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/sinh/a3da7c.wgsl.expected.glsl b/test/tint/builtins/gen/var/sinh/a3da7c.wgsl.expected.glsl
index d0068d8..1a25c28 100644
--- a/test/tint/builtins/gen/var/sinh/a3da7c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/sinh/a3da7c.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void sinh_a3da7c() {
-  vec4 res = vec4(1.175201178f);
+  vec4 res = vec4(1.17520117759704589844f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void sinh_a3da7c() {
-  vec4 res = vec4(1.175201178f);
+  vec4 res = vec4(1.17520117759704589844f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void sinh_a3da7c() {
-  vec4 res = vec4(1.175201178f);
+  vec4 res = vec4(1.17520117759704589844f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/sinh/a3da7c.wgsl.expected.msl b/test/tint/builtins/gen/var/sinh/a3da7c.wgsl.expected.msl
index 2e9d194..468ea9c 100644
--- a/test/tint/builtins/gen/var/sinh/a3da7c.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/sinh/a3da7c.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void sinh_a3da7c() {
-  float4 res = float4(1.175201178f);
+  float4 res = float4(1.17520117759704589844f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/sinh/c4df74.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/sinh/c4df74.wgsl.expected.dxc.hlsl
index 05a1561..493f629 100644
--- a/test/tint/builtins/gen/var/sinh/c4df74.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sinh/c4df74.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void sinh_c4df74() {
-  float res = 1.175201178f;
+  float res = 1.17520117759704589844f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/sinh/c4df74.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/sinh/c4df74.wgsl.expected.fxc.hlsl
index 05a1561..493f629 100644
--- a/test/tint/builtins/gen/var/sinh/c4df74.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sinh/c4df74.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void sinh_c4df74() {
-  float res = 1.175201178f;
+  float res = 1.17520117759704589844f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/sinh/c4df74.wgsl.expected.glsl b/test/tint/builtins/gen/var/sinh/c4df74.wgsl.expected.glsl
index 49d4879..bfe94eae 100644
--- a/test/tint/builtins/gen/var/sinh/c4df74.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/sinh/c4df74.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void sinh_c4df74() {
-  float res = 1.175201178f;
+  float res = 1.17520117759704589844f;
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void sinh_c4df74() {
-  float res = 1.175201178f;
+  float res = 1.17520117759704589844f;
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void sinh_c4df74() {
-  float res = 1.175201178f;
+  float res = 1.17520117759704589844f;
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/sinh/c4df74.wgsl.expected.msl b/test/tint/builtins/gen/var/sinh/c4df74.wgsl.expected.msl
index 9cfbeae..cbe42f1 100644
--- a/test/tint/builtins/gen/var/sinh/c4df74.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/sinh/c4df74.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void sinh_c4df74() {
-  float res = 1.175201178f;
+  float res = 1.17520117759704589844f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/tan/311400.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/tan/311400.wgsl.expected.dxc.hlsl
index 0473e41..3401d98 100644
--- a/test/tint/builtins/gen/var/tan/311400.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/tan/311400.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void tan_311400() {
-  float res = 1.557407737f;
+  float res = 1.55740773677825927734f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/tan/311400.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/tan/311400.wgsl.expected.fxc.hlsl
index 0473e41..3401d98 100644
--- a/test/tint/builtins/gen/var/tan/311400.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/tan/311400.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void tan_311400() {
-  float res = 1.557407737f;
+  float res = 1.55740773677825927734f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/tan/311400.wgsl.expected.glsl b/test/tint/builtins/gen/var/tan/311400.wgsl.expected.glsl
index a3a2a8f..fb990ea 100644
--- a/test/tint/builtins/gen/var/tan/311400.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/tan/311400.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void tan_311400() {
-  float res = 1.557407737f;
+  float res = 1.55740773677825927734f;
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void tan_311400() {
-  float res = 1.557407737f;
+  float res = 1.55740773677825927734f;
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void tan_311400() {
-  float res = 1.557407737f;
+  float res = 1.55740773677825927734f;
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/tan/311400.wgsl.expected.msl b/test/tint/builtins/gen/var/tan/311400.wgsl.expected.msl
index 91762c3..c8f7db6 100644
--- a/test/tint/builtins/gen/var/tan/311400.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/tan/311400.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void tan_311400() {
-  float res = 1.557407737f;
+  float res = 1.55740773677825927734f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/tan/7be368.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/tan/7be368.wgsl.expected.dxc.hlsl
index 8e47663..853f844 100644
--- a/test/tint/builtins/gen/var/tan/7be368.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/tan/7be368.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void tan_7be368() {
-  float2 res = (1.557407737f).xx;
+  float2 res = (1.55740773677825927734f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/tan/7be368.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/tan/7be368.wgsl.expected.fxc.hlsl
index 8e47663..853f844 100644
--- a/test/tint/builtins/gen/var/tan/7be368.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/tan/7be368.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void tan_7be368() {
-  float2 res = (1.557407737f).xx;
+  float2 res = (1.55740773677825927734f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/tan/7be368.wgsl.expected.glsl b/test/tint/builtins/gen/var/tan/7be368.wgsl.expected.glsl
index 32f4892..1ac28bd 100644
--- a/test/tint/builtins/gen/var/tan/7be368.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/tan/7be368.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void tan_7be368() {
-  vec2 res = vec2(1.557407737f);
+  vec2 res = vec2(1.55740773677825927734f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void tan_7be368() {
-  vec2 res = vec2(1.557407737f);
+  vec2 res = vec2(1.55740773677825927734f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void tan_7be368() {
-  vec2 res = vec2(1.557407737f);
+  vec2 res = vec2(1.55740773677825927734f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/tan/7be368.wgsl.expected.msl b/test/tint/builtins/gen/var/tan/7be368.wgsl.expected.msl
index 106ec06..38be7fd 100644
--- a/test/tint/builtins/gen/var/tan/7be368.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/tan/7be368.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void tan_7be368() {
-  float2 res = float2(1.557407737f);
+  float2 res = float2(1.55740773677825927734f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/tan/a0966f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/tan/a0966f.wgsl.expected.dxc.hlsl
index fcb1fb7..476c35f 100644
--- a/test/tint/builtins/gen/var/tan/a0966f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/tan/a0966f.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void tan_a0966f() {
-  float4 res = (1.557407737f).xxxx;
+  float4 res = (1.55740773677825927734f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/tan/a0966f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/tan/a0966f.wgsl.expected.fxc.hlsl
index fcb1fb7..476c35f 100644
--- a/test/tint/builtins/gen/var/tan/a0966f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/tan/a0966f.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void tan_a0966f() {
-  float4 res = (1.557407737f).xxxx;
+  float4 res = (1.55740773677825927734f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/tan/a0966f.wgsl.expected.glsl b/test/tint/builtins/gen/var/tan/a0966f.wgsl.expected.glsl
index ffdb301..5803b3a 100644
--- a/test/tint/builtins/gen/var/tan/a0966f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/tan/a0966f.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void tan_a0966f() {
-  vec4 res = vec4(1.557407737f);
+  vec4 res = vec4(1.55740773677825927734f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void tan_a0966f() {
-  vec4 res = vec4(1.557407737f);
+  vec4 res = vec4(1.55740773677825927734f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void tan_a0966f() {
-  vec4 res = vec4(1.557407737f);
+  vec4 res = vec4(1.55740773677825927734f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/tan/a0966f.wgsl.expected.msl b/test/tint/builtins/gen/var/tan/a0966f.wgsl.expected.msl
index 958b44b..35d33ed 100644
--- a/test/tint/builtins/gen/var/tan/a0966f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/tan/a0966f.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void tan_a0966f() {
-  float4 res = float4(1.557407737f);
+  float4 res = float4(1.55740773677825927734f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/tan/ae26ae.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/tan/ae26ae.wgsl.expected.dxc.hlsl
index 3b0cc00..281ae97 100644
--- a/test/tint/builtins/gen/var/tan/ae26ae.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/tan/ae26ae.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void tan_ae26ae() {
-  float3 res = (1.557407737f).xxx;
+  float3 res = (1.55740773677825927734f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/tan/ae26ae.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/tan/ae26ae.wgsl.expected.fxc.hlsl
index 3b0cc00..281ae97 100644
--- a/test/tint/builtins/gen/var/tan/ae26ae.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/tan/ae26ae.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void tan_ae26ae() {
-  float3 res = (1.557407737f).xxx;
+  float3 res = (1.55740773677825927734f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/tan/ae26ae.wgsl.expected.glsl b/test/tint/builtins/gen/var/tan/ae26ae.wgsl.expected.glsl
index bebd277..b920c44 100644
--- a/test/tint/builtins/gen/var/tan/ae26ae.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/tan/ae26ae.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void tan_ae26ae() {
-  vec3 res = vec3(1.557407737f);
+  vec3 res = vec3(1.55740773677825927734f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void tan_ae26ae() {
-  vec3 res = vec3(1.557407737f);
+  vec3 res = vec3(1.55740773677825927734f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void tan_ae26ae() {
-  vec3 res = vec3(1.557407737f);
+  vec3 res = vec3(1.55740773677825927734f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/tan/ae26ae.wgsl.expected.msl b/test/tint/builtins/gen/var/tan/ae26ae.wgsl.expected.msl
index 6f23097..7bb17f6 100644
--- a/test/tint/builtins/gen/var/tan/ae26ae.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/tan/ae26ae.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void tan_ae26ae() {
-  float3 res = float3(1.557407737f);
+  float3 res = float3(1.55740773677825927734f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/tanh/313aa1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/tanh/313aa1.wgsl.expected.dxc.hlsl
index 531d037..c10b04f 100644
--- a/test/tint/builtins/gen/var/tanh/313aa1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/tanh/313aa1.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void tanh_313aa1() {
-  float res = 0.761594176f;
+  float res = 0.76159417629241943359f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/tanh/313aa1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/tanh/313aa1.wgsl.expected.fxc.hlsl
index 531d037..c10b04f 100644
--- a/test/tint/builtins/gen/var/tanh/313aa1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/tanh/313aa1.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void tanh_313aa1() {
-  float res = 0.761594176f;
+  float res = 0.76159417629241943359f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/tanh/313aa1.wgsl.expected.glsl b/test/tint/builtins/gen/var/tanh/313aa1.wgsl.expected.glsl
index 9a6f7ec..74033cd 100644
--- a/test/tint/builtins/gen/var/tanh/313aa1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/tanh/313aa1.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void tanh_313aa1() {
-  float res = 0.761594176f;
+  float res = 0.76159417629241943359f;
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void tanh_313aa1() {
-  float res = 0.761594176f;
+  float res = 0.76159417629241943359f;
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void tanh_313aa1() {
-  float res = 0.761594176f;
+  float res = 0.76159417629241943359f;
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/tanh/313aa1.wgsl.expected.msl b/test/tint/builtins/gen/var/tanh/313aa1.wgsl.expected.msl
index 36f2eb8..bc8a976 100644
--- a/test/tint/builtins/gen/var/tanh/313aa1.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/tanh/313aa1.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void tanh_313aa1() {
-  float res = 0.761594176f;
+  float res = 0.76159417629241943359f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/tanh/6289fd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/tanh/6289fd.wgsl.expected.dxc.hlsl
index b804dc3..7269f3f 100644
--- a/test/tint/builtins/gen/var/tanh/6289fd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/tanh/6289fd.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void tanh_6289fd() {
-  float3 res = (0.761594176f).xxx;
+  float3 res = (0.76159417629241943359f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/tanh/6289fd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/tanh/6289fd.wgsl.expected.fxc.hlsl
index b804dc3..7269f3f 100644
--- a/test/tint/builtins/gen/var/tanh/6289fd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/tanh/6289fd.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void tanh_6289fd() {
-  float3 res = (0.761594176f).xxx;
+  float3 res = (0.76159417629241943359f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/tanh/6289fd.wgsl.expected.glsl b/test/tint/builtins/gen/var/tanh/6289fd.wgsl.expected.glsl
index b883e60..de224d7 100644
--- a/test/tint/builtins/gen/var/tanh/6289fd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/tanh/6289fd.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void tanh_6289fd() {
-  vec3 res = vec3(0.761594176f);
+  vec3 res = vec3(0.76159417629241943359f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void tanh_6289fd() {
-  vec3 res = vec3(0.761594176f);
+  vec3 res = vec3(0.76159417629241943359f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void tanh_6289fd() {
-  vec3 res = vec3(0.761594176f);
+  vec3 res = vec3(0.76159417629241943359f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/tanh/6289fd.wgsl.expected.msl b/test/tint/builtins/gen/var/tanh/6289fd.wgsl.expected.msl
index 491a4da..d324e64 100644
--- a/test/tint/builtins/gen/var/tanh/6289fd.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/tanh/6289fd.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void tanh_6289fd() {
-  float3 res = float3(0.761594176f);
+  float3 res = float3(0.76159417629241943359f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/tanh/ac5d33.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/tanh/ac5d33.wgsl.expected.dxc.hlsl
index 1b0ad28..8f514b0 100644
--- a/test/tint/builtins/gen/var/tanh/ac5d33.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/tanh/ac5d33.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void tanh_ac5d33() {
-  float4 res = (0.761594176f).xxxx;
+  float4 res = (0.76159417629241943359f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/tanh/ac5d33.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/tanh/ac5d33.wgsl.expected.fxc.hlsl
index 1b0ad28..8f514b0 100644
--- a/test/tint/builtins/gen/var/tanh/ac5d33.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/tanh/ac5d33.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void tanh_ac5d33() {
-  float4 res = (0.761594176f).xxxx;
+  float4 res = (0.76159417629241943359f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/tanh/ac5d33.wgsl.expected.glsl b/test/tint/builtins/gen/var/tanh/ac5d33.wgsl.expected.glsl
index 698681d..9687133 100644
--- a/test/tint/builtins/gen/var/tanh/ac5d33.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/tanh/ac5d33.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void tanh_ac5d33() {
-  vec4 res = vec4(0.761594176f);
+  vec4 res = vec4(0.76159417629241943359f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void tanh_ac5d33() {
-  vec4 res = vec4(0.761594176f);
+  vec4 res = vec4(0.76159417629241943359f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void tanh_ac5d33() {
-  vec4 res = vec4(0.761594176f);
+  vec4 res = vec4(0.76159417629241943359f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/tanh/ac5d33.wgsl.expected.msl b/test/tint/builtins/gen/var/tanh/ac5d33.wgsl.expected.msl
index a6e681d..385d435 100644
--- a/test/tint/builtins/gen/var/tanh/ac5d33.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/tanh/ac5d33.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void tanh_ac5d33() {
-  float4 res = float4(0.761594176f);
+  float4 res = float4(0.76159417629241943359f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/tanh/c48aa6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/tanh/c48aa6.wgsl.expected.dxc.hlsl
index 39bb4df..e8c8480 100644
--- a/test/tint/builtins/gen/var/tanh/c48aa6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/tanh/c48aa6.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void tanh_c48aa6() {
-  float2 res = (0.761594176f).xx;
+  float2 res = (0.76159417629241943359f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/tanh/c48aa6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/tanh/c48aa6.wgsl.expected.fxc.hlsl
index 39bb4df..e8c8480 100644
--- a/test/tint/builtins/gen/var/tanh/c48aa6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/tanh/c48aa6.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void tanh_c48aa6() {
-  float2 res = (0.761594176f).xx;
+  float2 res = (0.76159417629241943359f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/tanh/c48aa6.wgsl.expected.glsl b/test/tint/builtins/gen/var/tanh/c48aa6.wgsl.expected.glsl
index fe899fa..767b82c 100644
--- a/test/tint/builtins/gen/var/tanh/c48aa6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/tanh/c48aa6.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void tanh_c48aa6() {
-  vec2 res = vec2(0.761594176f);
+  vec2 res = vec2(0.76159417629241943359f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void tanh_c48aa6() {
-  vec2 res = vec2(0.761594176f);
+  vec2 res = vec2(0.76159417629241943359f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void tanh_c48aa6() {
-  vec2 res = vec2(0.761594176f);
+  vec2 res = vec2(0.76159417629241943359f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/tanh/c48aa6.wgsl.expected.msl b/test/tint/builtins/gen/var/tanh/c48aa6.wgsl.expected.msl
index 49ccdba..2826d37 100644
--- a/test/tint/builtins/gen/var/tanh/c48aa6.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/tanh/c48aa6.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void tanh_c48aa6() {
-  float2 res = float2(0.761594176f);
+  float2 res = float2(0.76159417629241943359f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/radians.spvasm.expected.dxc.hlsl b/test/tint/builtins/radians.spvasm.expected.dxc.hlsl
index 2303412..8bd11bf 100644
--- a/test/tint/builtins/radians.spvasm.expected.dxc.hlsl
+++ b/test/tint/builtins/radians.spvasm.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 float tint_radians(float param_0) {
-  return param_0 * 0.017453292519943295;
+  return param_0 * 0.01745329251994329547;
 }
 
 void main_1() {
diff --git a/test/tint/builtins/radians.spvasm.expected.fxc.hlsl b/test/tint/builtins/radians.spvasm.expected.fxc.hlsl
index 2303412..8bd11bf 100644
--- a/test/tint/builtins/radians.spvasm.expected.fxc.hlsl
+++ b/test/tint/builtins/radians.spvasm.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 float tint_radians(float param_0) {
-  return param_0 * 0.017453292519943295;
+  return param_0 * 0.01745329251994329547;
 }
 
 void main_1() {
diff --git a/test/tint/builtins/radians.spvasm.expected.glsl b/test/tint/builtins/radians.spvasm.expected.glsl
index 9081931..9db3554 100644
--- a/test/tint/builtins/radians.spvasm.expected.glsl
+++ b/test/tint/builtins/radians.spvasm.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 float tint_radians(float param_0) {
-  return param_0 * 0.017453292519943295f;
+  return param_0 * 0.01745329251994329547f;
 }
 
 
diff --git a/test/tint/builtins/radians.spvasm.expected.msl b/test/tint/builtins/radians.spvasm.expected.msl
index fa65e53..5aafdd3 100644
--- a/test/tint/builtins/radians.spvasm.expected.msl
+++ b/test/tint/builtins/radians.spvasm.expected.msl
@@ -3,7 +3,7 @@
 using namespace metal;
 
 float tint_radians(float param_0) {
-  return param_0 * 0.017453292519943295;
+  return param_0 * 0.01745329251994329547;
 }
 
 void main_1() {
diff --git a/test/tint/builtins/repeated_use.wgsl.expected.dxc.hlsl b/test/tint/builtins/repeated_use.wgsl.expected.dxc.hlsl
index f17d098..241b7e1 100644
--- a/test/tint/builtins/repeated_use.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/repeated_use.wgsl.expected.dxc.hlsl
@@ -1,17 +1,17 @@
 float4 tint_degrees(float4 param_0) {
-  return param_0 * 57.295779513082323;
+  return param_0 * 57.29577951308232286465;
 }
 
 float3 tint_degrees_1(float3 param_0) {
-  return param_0 * 57.295779513082323;
+  return param_0 * 57.29577951308232286465;
 }
 
 float2 tint_degrees_2(float2 param_0) {
-  return param_0 * 57.295779513082323;
+  return param_0 * 57.29577951308232286465;
 }
 
 float tint_degrees_3(float param_0) {
-  return param_0 * 57.295779513082323;
+  return param_0 * 57.29577951308232286465;
 }
 
 [numthreads(1, 1, 1)]
diff --git a/test/tint/builtins/repeated_use.wgsl.expected.fxc.hlsl b/test/tint/builtins/repeated_use.wgsl.expected.fxc.hlsl
index f17d098..241b7e1 100644
--- a/test/tint/builtins/repeated_use.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/repeated_use.wgsl.expected.fxc.hlsl
@@ -1,17 +1,17 @@
 float4 tint_degrees(float4 param_0) {
-  return param_0 * 57.295779513082323;
+  return param_0 * 57.29577951308232286465;
 }
 
 float3 tint_degrees_1(float3 param_0) {
-  return param_0 * 57.295779513082323;
+  return param_0 * 57.29577951308232286465;
 }
 
 float2 tint_degrees_2(float2 param_0) {
-  return param_0 * 57.295779513082323;
+  return param_0 * 57.29577951308232286465;
 }
 
 float tint_degrees_3(float param_0) {
-  return param_0 * 57.295779513082323;
+  return param_0 * 57.29577951308232286465;
 }
 
 [numthreads(1, 1, 1)]
diff --git a/test/tint/builtins/repeated_use.wgsl.expected.glsl b/test/tint/builtins/repeated_use.wgsl.expected.glsl
index bcb62f2..65dc980 100644
--- a/test/tint/builtins/repeated_use.wgsl.expected.glsl
+++ b/test/tint/builtins/repeated_use.wgsl.expected.glsl
@@ -1,19 +1,19 @@
 #version 310 es
 
 vec4 tint_degrees(vec4 param_0) {
-  return param_0 * 57.295779513082323f;
+  return param_0 * 57.29577951308232286465f;
 }
 
 vec3 tint_degrees_1(vec3 param_0) {
-  return param_0 * 57.295779513082323f;
+  return param_0 * 57.29577951308232286465f;
 }
 
 vec2 tint_degrees_2(vec2 param_0) {
-  return param_0 * 57.295779513082323f;
+  return param_0 * 57.29577951308232286465f;
 }
 
 float tint_degrees_3(float param_0) {
-  return param_0 * 57.295779513082323f;
+  return param_0 * 57.29577951308232286465f;
 }
 
 
diff --git a/test/tint/builtins/repeated_use.wgsl.expected.msl b/test/tint/builtins/repeated_use.wgsl.expected.msl
index 34f83f3..d1375b7 100644
--- a/test/tint/builtins/repeated_use.wgsl.expected.msl
+++ b/test/tint/builtins/repeated_use.wgsl.expected.msl
@@ -3,19 +3,19 @@
 using namespace metal;
 
 float4 tint_degrees(float4 param_0) {
-  return param_0 * 57.295779513082323;
+  return param_0 * 57.29577951308232286465;
 }
 
 float3 tint_degrees_1(float3 param_0) {
-  return param_0 * 57.295779513082323;
+  return param_0 * 57.29577951308232286465;
 }
 
 float2 tint_degrees_2(float2 param_0) {
-  return param_0 * 57.295779513082323;
+  return param_0 * 57.29577951308232286465;
 }
 
 float tint_degrees_3(float param_0) {
-  return param_0 * 57.295779513082323;
+  return param_0 * 57.29577951308232286465;
 }
 
 kernel void tint_symbol() {
diff --git a/test/tint/extensions/parsing/basic.wgsl.expected.dxc.hlsl b/test/tint/extensions/parsing/basic.wgsl.expected.dxc.hlsl
index 1af441a..02332f3 100644
--- a/test/tint/extensions/parsing/basic.wgsl.expected.dxc.hlsl
+++ b/test/tint/extensions/parsing/basic.wgsl.expected.dxc.hlsl
@@ -3,7 +3,7 @@
 };
 
 float4 main_inner() {
-  return float4(0.100000001f, 0.200000003f, 0.300000012f, 0.400000006f);
+  return float4(0.10000000149011611938f, 0.20000000298023223877f, 0.30000001192092895508f, 0.40000000596046447754f);
 }
 
 tint_symbol main() {
diff --git a/test/tint/extensions/parsing/basic.wgsl.expected.fxc.hlsl b/test/tint/extensions/parsing/basic.wgsl.expected.fxc.hlsl
index 1af441a..02332f3 100644
--- a/test/tint/extensions/parsing/basic.wgsl.expected.fxc.hlsl
+++ b/test/tint/extensions/parsing/basic.wgsl.expected.fxc.hlsl
@@ -3,7 +3,7 @@
 };
 
 float4 main_inner() {
-  return float4(0.100000001f, 0.200000003f, 0.300000012f, 0.400000006f);
+  return float4(0.10000000149011611938f, 0.20000000298023223877f, 0.30000001192092895508f, 0.40000000596046447754f);
 }
 
 tint_symbol main() {
diff --git a/test/tint/extensions/parsing/basic.wgsl.expected.glsl b/test/tint/extensions/parsing/basic.wgsl.expected.glsl
index c4ffd0e..c1a28e1 100644
--- a/test/tint/extensions/parsing/basic.wgsl.expected.glsl
+++ b/test/tint/extensions/parsing/basic.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 
 layout(location = 0) out vec4 value;
 vec4 tint_symbol() {
-  return vec4(0.100000001f, 0.200000003f, 0.300000012f, 0.400000006f);
+  return vec4(0.10000000149011611938f, 0.20000000298023223877f, 0.30000001192092895508f, 0.40000000596046447754f);
 }
 
 void main() {
diff --git a/test/tint/extensions/parsing/basic.wgsl.expected.msl b/test/tint/extensions/parsing/basic.wgsl.expected.msl
index dc91926..8eb15e9 100644
--- a/test/tint/extensions/parsing/basic.wgsl.expected.msl
+++ b/test/tint/extensions/parsing/basic.wgsl.expected.msl
@@ -6,7 +6,7 @@
 };
 
 float4 tint_symbol_inner() {
-  return float4(0.100000001f, 0.200000003f, 0.300000012f, 0.400000006f);
+  return float4(0.10000000149011611938f, 0.20000000298023223877f, 0.30000001192092895508f, 0.40000000596046447754f);
 }
 
 fragment tint_symbol_1 tint_symbol() {
diff --git a/test/tint/extensions/parsing/basic.wgsl.expected.wgsl b/test/tint/extensions/parsing/basic.wgsl.expected.wgsl
index 0cbd662..5e60abe 100644
--- a/test/tint/extensions/parsing/basic.wgsl.expected.wgsl
+++ b/test/tint/extensions/parsing/basic.wgsl.expected.wgsl
@@ -2,5 +2,5 @@
 
 @fragment
 fn main() -> @location(0) vec4<f32> {
-  return vec4<f32>(0.1, 0.2, 0.3, 0.4);
+  return vec4<f32>(0.10000000000000000555, 0.2000000000000000111, 0.2999999999999999889, 0.4000000000000000222);
 }
diff --git a/test/tint/extensions/parsing/duplicated_extensions.wgsl.expected.dxc.hlsl b/test/tint/extensions/parsing/duplicated_extensions.wgsl.expected.dxc.hlsl
index 1af441a..02332f3 100644
--- a/test/tint/extensions/parsing/duplicated_extensions.wgsl.expected.dxc.hlsl
+++ b/test/tint/extensions/parsing/duplicated_extensions.wgsl.expected.dxc.hlsl
@@ -3,7 +3,7 @@
 };
 
 float4 main_inner() {
-  return float4(0.100000001f, 0.200000003f, 0.300000012f, 0.400000006f);
+  return float4(0.10000000149011611938f, 0.20000000298023223877f, 0.30000001192092895508f, 0.40000000596046447754f);
 }
 
 tint_symbol main() {
diff --git a/test/tint/extensions/parsing/duplicated_extensions.wgsl.expected.fxc.hlsl b/test/tint/extensions/parsing/duplicated_extensions.wgsl.expected.fxc.hlsl
index 1af441a..02332f3 100644
--- a/test/tint/extensions/parsing/duplicated_extensions.wgsl.expected.fxc.hlsl
+++ b/test/tint/extensions/parsing/duplicated_extensions.wgsl.expected.fxc.hlsl
@@ -3,7 +3,7 @@
 };
 
 float4 main_inner() {
-  return float4(0.100000001f, 0.200000003f, 0.300000012f, 0.400000006f);
+  return float4(0.10000000149011611938f, 0.20000000298023223877f, 0.30000001192092895508f, 0.40000000596046447754f);
 }
 
 tint_symbol main() {
diff --git a/test/tint/extensions/parsing/duplicated_extensions.wgsl.expected.glsl b/test/tint/extensions/parsing/duplicated_extensions.wgsl.expected.glsl
index c4ffd0e..c1a28e1 100644
--- a/test/tint/extensions/parsing/duplicated_extensions.wgsl.expected.glsl
+++ b/test/tint/extensions/parsing/duplicated_extensions.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 
 layout(location = 0) out vec4 value;
 vec4 tint_symbol() {
-  return vec4(0.100000001f, 0.200000003f, 0.300000012f, 0.400000006f);
+  return vec4(0.10000000149011611938f, 0.20000000298023223877f, 0.30000001192092895508f, 0.40000000596046447754f);
 }
 
 void main() {
diff --git a/test/tint/extensions/parsing/duplicated_extensions.wgsl.expected.msl b/test/tint/extensions/parsing/duplicated_extensions.wgsl.expected.msl
index dc91926..8eb15e9 100644
--- a/test/tint/extensions/parsing/duplicated_extensions.wgsl.expected.msl
+++ b/test/tint/extensions/parsing/duplicated_extensions.wgsl.expected.msl
@@ -6,7 +6,7 @@
 };
 
 float4 tint_symbol_inner() {
-  return float4(0.100000001f, 0.200000003f, 0.300000012f, 0.400000006f);
+  return float4(0.10000000149011611938f, 0.20000000298023223877f, 0.30000001192092895508f, 0.40000000596046447754f);
 }
 
 fragment tint_symbol_1 tint_symbol() {
diff --git a/test/tint/extensions/parsing/duplicated_extensions.wgsl.expected.wgsl b/test/tint/extensions/parsing/duplicated_extensions.wgsl.expected.wgsl
index c0c6259..751775e 100644
--- a/test/tint/extensions/parsing/duplicated_extensions.wgsl.expected.wgsl
+++ b/test/tint/extensions/parsing/duplicated_extensions.wgsl.expected.wgsl
@@ -4,5 +4,5 @@
 
 @fragment
 fn main() -> @location(0) vec4<f32> {
-  return vec4<f32>(0.1, 0.2, 0.3, 0.4);
+  return vec4<f32>(0.10000000000000000555, 0.2000000000000000111, 0.2999999999999999889, 0.4000000000000000222);
 }
diff --git a/test/tint/samples/compute_boids.wgsl.expected.dxc.hlsl b/test/tint/samples/compute_boids.wgsl.expected.dxc.hlsl
index e4d736d..5c07332 100644
--- a/test/tint/samples/compute_boids.wgsl.expected.dxc.hlsl
+++ b/test/tint/samples/compute_boids.wgsl.expected.dxc.hlsl
@@ -86,7 +86,7 @@
     cVel = (cVel / float2(float(cVelCount), float(cVelCount)));
   }
   vVel = (((vVel + (cMass * asfloat(params[1].x))) + (colVel * asfloat(params[1].y))) + (cVel * asfloat(params[1].z)));
-  vVel = (normalize(vVel) * clamp(length(vVel), 0.0f, 0.100000001f));
+  vVel = (normalize(vVel) * clamp(length(vVel), 0.0f, 0.10000000149011611938f));
   vPos = (vPos + (vVel * asfloat(params[0].x)));
   if ((vPos.x < -1.0f)) {
     vPos.x = 1.0f;
diff --git a/test/tint/samples/compute_boids.wgsl.expected.fxc.hlsl b/test/tint/samples/compute_boids.wgsl.expected.fxc.hlsl
index e4d736d..5c07332 100644
--- a/test/tint/samples/compute_boids.wgsl.expected.fxc.hlsl
+++ b/test/tint/samples/compute_boids.wgsl.expected.fxc.hlsl
@@ -86,7 +86,7 @@
     cVel = (cVel / float2(float(cVelCount), float(cVelCount)));
   }
   vVel = (((vVel + (cMass * asfloat(params[1].x))) + (colVel * asfloat(params[1].y))) + (cVel * asfloat(params[1].z)));
-  vVel = (normalize(vVel) * clamp(length(vVel), 0.0f, 0.100000001f));
+  vVel = (normalize(vVel) * clamp(length(vVel), 0.0f, 0.10000000149011611938f));
   vPos = (vPos + (vVel * asfloat(params[0].x)));
   if ((vPos.x < -1.0f)) {
     vPos.x = 1.0f;
diff --git a/test/tint/samples/compute_boids.wgsl.expected.glsl b/test/tint/samples/compute_boids.wgsl.expected.glsl
index 9cc783d..5ce44e5 100644
--- a/test/tint/samples/compute_boids.wgsl.expected.glsl
+++ b/test/tint/samples/compute_boids.wgsl.expected.glsl
@@ -143,7 +143,7 @@
     cVel = (cVel / vec2(float(cVelCount), float(cVelCount)));
   }
   vVel = (((vVel + (cMass * params.inner.rule1Scale)) + (colVel * params.inner.rule2Scale)) + (cVel * params.inner.rule3Scale));
-  vVel = (normalize(vVel) * clamp(length(vVel), 0.0f, 0.100000001f));
+  vVel = (normalize(vVel) * clamp(length(vVel), 0.0f, 0.10000000149011611938f));
   vPos = (vPos + (vVel * params.inner.deltaT));
   if ((vPos.x < -1.0f)) {
     vPos.x = 1.0f;
diff --git a/test/tint/samples/compute_boids.wgsl.expected.msl b/test/tint/samples/compute_boids.wgsl.expected.msl
index 3a8d9cc..dd67382 100644
--- a/test/tint/samples/compute_boids.wgsl.expected.msl
+++ b/test/tint/samples/compute_boids.wgsl.expected.msl
@@ -110,7 +110,7 @@
     cVel = (cVel / float2(float(cVelCount), float(cVelCount)));
   }
   vVel = (((vVel + (cMass * (*(tint_symbol_5)).rule1Scale)) + (colVel * (*(tint_symbol_5)).rule2Scale)) + (cVel * (*(tint_symbol_5)).rule3Scale));
-  vVel = (normalize(vVel) * clamp(length(vVel), 0.0f, 0.100000001f));
+  vVel = (normalize(vVel) * clamp(length(vVel), 0.0f, 0.10000000149011611938f));
   vPos = (vPos + (vVel * (*(tint_symbol_5)).deltaT));
   if ((vPos[0] < -1.0f)) {
     vPos[0] = 1.0f;
diff --git a/test/tint/samples/compute_boids.wgsl.expected.wgsl b/test/tint/samples/compute_boids.wgsl.expected.wgsl
index fd43650..e7e3d62 100644
--- a/test/tint/samples/compute_boids.wgsl.expected.wgsl
+++ b/test/tint/samples/compute_boids.wgsl.expected.wgsl
@@ -75,7 +75,7 @@
     cVel = (cVel / vec2<f32>(f32(cVelCount), f32(cVelCount)));
   }
   vVel = (((vVel + (cMass * params.rule1Scale)) + (colVel * params.rule2Scale)) + (cVel * params.rule3Scale));
-  vVel = (normalize(vVel) * clamp(length(vVel), 0.0, 0.1));
+  vVel = (normalize(vVel) * clamp(length(vVel), 0.0, 0.10000000000000000555));
   vPos = (vPos + (vVel * params.deltaT));
   if ((vPos.x < -(1.0))) {
     vPos.x = 1.0;
diff --git a/test/tint/samples/function.wgsl.expected.dxc.hlsl b/test/tint/samples/function.wgsl.expected.dxc.hlsl
index 8073117..f8dc23c 100644
--- a/test/tint/samples/function.wgsl.expected.dxc.hlsl
+++ b/test/tint/samples/function.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 float main() {
-  return 0.400000006f;
+  return 0.40000000596046447754f;
 }
 
 [numthreads(2, 1, 1)]
diff --git a/test/tint/samples/function.wgsl.expected.fxc.hlsl b/test/tint/samples/function.wgsl.expected.fxc.hlsl
index 8073117..f8dc23c 100644
--- a/test/tint/samples/function.wgsl.expected.fxc.hlsl
+++ b/test/tint/samples/function.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 float main() {
-  return 0.400000006f;
+  return 0.40000000596046447754f;
 }
 
 [numthreads(2, 1, 1)]
diff --git a/test/tint/samples/function.wgsl.expected.msl b/test/tint/samples/function.wgsl.expected.msl
index 6c3ffad..43d2a28 100644
--- a/test/tint/samples/function.wgsl.expected.msl
+++ b/test/tint/samples/function.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 float tint_symbol() {
-  return 0.400000006f;
+  return 0.40000000596046447754f;
 }
 
 kernel void ep() {
diff --git a/test/tint/samples/simple.wgsl.expected.dxc.hlsl b/test/tint/samples/simple.wgsl.expected.dxc.hlsl
index f47bf23..5259446 100644
--- a/test/tint/samples/simple.wgsl.expected.dxc.hlsl
+++ b/test/tint/samples/simple.wgsl.expected.dxc.hlsl
@@ -8,7 +8,7 @@
 float4 main_inner() {
   float2 a = (0.0f).xx;
   bar();
-  return float4(0.400000006f, 0.400000006f, 0.800000012f, 1.0f);
+  return float4(0.40000000596046447754f, 0.40000000596046447754f, 0.80000001192092895508f, 1.0f);
 }
 
 tint_symbol main() {
diff --git a/test/tint/samples/simple.wgsl.expected.fxc.hlsl b/test/tint/samples/simple.wgsl.expected.fxc.hlsl
index f47bf23..5259446 100644
--- a/test/tint/samples/simple.wgsl.expected.fxc.hlsl
+++ b/test/tint/samples/simple.wgsl.expected.fxc.hlsl
@@ -8,7 +8,7 @@
 float4 main_inner() {
   float2 a = (0.0f).xx;
   bar();
-  return float4(0.400000006f, 0.400000006f, 0.800000012f, 1.0f);
+  return float4(0.40000000596046447754f, 0.40000000596046447754f, 0.80000001192092895508f, 1.0f);
 }
 
 tint_symbol main() {
diff --git a/test/tint/samples/simple.wgsl.expected.glsl b/test/tint/samples/simple.wgsl.expected.glsl
index 3e4dabe..744aeba 100644
--- a/test/tint/samples/simple.wgsl.expected.glsl
+++ b/test/tint/samples/simple.wgsl.expected.glsl
@@ -8,7 +8,7 @@
 vec4 tint_symbol() {
   vec2 a = vec2(0.0f);
   bar();
-  return vec4(0.400000006f, 0.400000006f, 0.800000012f, 1.0f);
+  return vec4(0.40000000596046447754f, 0.40000000596046447754f, 0.80000001192092895508f, 1.0f);
 }
 
 void main() {
diff --git a/test/tint/samples/simple.wgsl.expected.msl b/test/tint/samples/simple.wgsl.expected.msl
index d84f872..5527033 100644
--- a/test/tint/samples/simple.wgsl.expected.msl
+++ b/test/tint/samples/simple.wgsl.expected.msl
@@ -11,7 +11,7 @@
 float4 tint_symbol_inner() {
   float2 a = float2(0.0f);
   bar();
-  return float4(0.400000006f, 0.400000006f, 0.800000012f, 1.0f);
+  return float4(0.40000000596046447754f, 0.40000000596046447754f, 0.80000001192092895508f, 1.0f);
 }
 
 fragment tint_symbol_1 tint_symbol() {
diff --git a/test/tint/samples/simple.wgsl.expected.wgsl b/test/tint/samples/simple.wgsl.expected.wgsl
index cf8998d..b5993e6 100644
--- a/test/tint/samples/simple.wgsl.expected.wgsl
+++ b/test/tint/samples/simple.wgsl.expected.wgsl
@@ -5,5 +5,5 @@
 fn main() -> @location(0) vec4<f32> {
   var a : vec2<f32> = vec2<f32>();
   bar();
-  return vec4<f32>(0.4, 0.4, 0.8, 1.0);
+  return vec4<f32>(0.4000000000000000222, 0.4000000000000000222, 0.80000000000000004441, 1.0);
 }
diff --git a/test/tint/shader_io/shared_struct_different_stages.wgsl.expected.dxc.hlsl b/test/tint/shader_io/shared_struct_different_stages.wgsl.expected.dxc.hlsl
index da8ae77..d3fa32c 100644
--- a/test/tint/shader_io/shared_struct_different_stages.wgsl.expected.dxc.hlsl
+++ b/test/tint/shader_io/shared_struct_different_stages.wgsl.expected.dxc.hlsl
@@ -10,7 +10,7 @@
 };
 
 Interface vert_main_inner() {
-  const Interface tint_symbol_3 = {0.400000006f, 0.600000024f, (0.0f).xxxx};
+  const Interface tint_symbol_3 = {0.40000000596046447754f, 0.60000002384185791016f, (0.0f).xxxx};
   return tint_symbol_3;
 }
 
diff --git a/test/tint/shader_io/shared_struct_different_stages.wgsl.expected.fxc.hlsl b/test/tint/shader_io/shared_struct_different_stages.wgsl.expected.fxc.hlsl
index da8ae77..d3fa32c 100644
--- a/test/tint/shader_io/shared_struct_different_stages.wgsl.expected.fxc.hlsl
+++ b/test/tint/shader_io/shared_struct_different_stages.wgsl.expected.fxc.hlsl
@@ -10,7 +10,7 @@
 };
 
 Interface vert_main_inner() {
-  const Interface tint_symbol_3 = {0.400000006f, 0.600000024f, (0.0f).xxxx};
+  const Interface tint_symbol_3 = {0.40000000596046447754f, 0.60000002384185791016f, (0.0f).xxxx};
   return tint_symbol_3;
 }
 
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 5e359e2..07f9a1a 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));
+  Interface tint_symbol = Interface(0.40000000596046447754f, 0.60000002384185791016f, vec4(0.0f));
   return tint_symbol;
 }
 
diff --git a/test/tint/shader_io/shared_struct_different_stages.wgsl.expected.msl b/test/tint/shader_io/shared_struct_different_stages.wgsl.expected.msl
index 123f2d1..60742fa 100644
--- a/test/tint/shader_io/shared_struct_different_stages.wgsl.expected.msl
+++ b/test/tint/shader_io/shared_struct_different_stages.wgsl.expected.msl
@@ -14,7 +14,7 @@
 };
 
 Interface vert_main_inner() {
-  Interface const tint_symbol_3 = Interface{.col1=0.400000006f, .col2=0.600000024f, .pos=float4(0.0f)};
+  Interface const tint_symbol_3 = Interface{.col1=0.40000000596046447754f, .col2=0.60000002384185791016f, .pos=float4(0.0f)};
   return tint_symbol_3;
 }
 
diff --git a/test/tint/shader_io/shared_struct_different_stages.wgsl.expected.wgsl b/test/tint/shader_io/shared_struct_different_stages.wgsl.expected.wgsl
index ddd459f..ee3a870 100644
--- a/test/tint/shader_io/shared_struct_different_stages.wgsl.expected.wgsl
+++ b/test/tint/shader_io/shared_struct_different_stages.wgsl.expected.wgsl
@@ -9,7 +9,7 @@
 
 @vertex
 fn vert_main() -> Interface {
-  return Interface(0.4, 0.6, vec4<f32>());
+  return Interface(0.4000000000000000222, 0.5999999999999999778, vec4<f32>());
 }
 
 @fragment
diff --git a/test/tint/shader_io/shared_struct_different_stages_f16.wgsl.expected.dxc.hlsl b/test/tint/shader_io/shared_struct_different_stages_f16.wgsl.expected.dxc.hlsl
index d33f3d2..a05bfee 100644
--- a/test/tint/shader_io/shared_struct_different_stages_f16.wgsl.expected.dxc.hlsl
+++ b/test/tint/shader_io/shared_struct_different_stages_f16.wgsl.expected.dxc.hlsl
@@ -10,7 +10,7 @@
 };
 
 Interface vert_main_inner() {
-  const Interface tint_symbol_3 = {0.400000006f, float16_t(0.599609375h), (0.0f).xxxx};
+  const Interface tint_symbol_3 = {0.40000000596046447754f, float16_t(0.599609375h), (0.0f).xxxx};
   return tint_symbol_3;
 }
 
diff --git a/test/tint/shader_io/shared_struct_different_stages_f16.wgsl.expected.glsl b/test/tint/shader_io/shared_struct_different_stages_f16.wgsl.expected.glsl
index 2386543..d9987d0 100644
--- a/test/tint/shader_io/shared_struct_different_stages_f16.wgsl.expected.glsl
+++ b/test/tint/shader_io/shared_struct_different_stages_f16.wgsl.expected.glsl
@@ -10,7 +10,7 @@
 };
 
 Interface vert_main() {
-  Interface tint_symbol = Interface(0.400000006f, 0.599609375hf, vec4(0.0f));
+  Interface tint_symbol = Interface(0.40000000596046447754f, 0.599609375hf, vec4(0.0f));
   return tint_symbol;
 }
 
diff --git a/test/tint/shader_io/shared_struct_different_stages_f16.wgsl.expected.msl b/test/tint/shader_io/shared_struct_different_stages_f16.wgsl.expected.msl
index 5bccb63..b68cc0b 100644
--- a/test/tint/shader_io/shared_struct_different_stages_f16.wgsl.expected.msl
+++ b/test/tint/shader_io/shared_struct_different_stages_f16.wgsl.expected.msl
@@ -14,7 +14,7 @@
 };
 
 Interface vert_main_inner() {
-  Interface const tint_symbol_3 = Interface{.col1=0.400000006f, .col2=0.599609375h, .pos=float4(0.0f)};
+  Interface const tint_symbol_3 = Interface{.col1=0.40000000596046447754f, .col2=0.599609375h, .pos=float4(0.0f)};
   return tint_symbol_3;
 }
 
diff --git a/test/tint/shader_io/shared_struct_different_stages_f16.wgsl.expected.wgsl b/test/tint/shader_io/shared_struct_different_stages_f16.wgsl.expected.wgsl
index 44c3dc6..9292969 100644
--- a/test/tint/shader_io/shared_struct_different_stages_f16.wgsl.expected.wgsl
+++ b/test/tint/shader_io/shared_struct_different_stages_f16.wgsl.expected.wgsl
@@ -11,7 +11,7 @@
 
 @vertex
 fn vert_main() -> Interface {
-  return Interface(0.4, 0.599609375h, vec4<f32>());
+  return Interface(0.4000000000000000222, 0.599609375h, vec4<f32>());
 }
 
 @fragment