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
