tint: Use PI/2 as the input value for sin tests

This makes the output value consistent between different platforms.

Change-Id: I4f94da4deac6998c4b809b03ed3b8f58d32bb1b0
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/121501
Commit-Queue: James Price <jrprice@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
diff --git a/src/tint/intrinsics.def b/src/tint/intrinsics.def
index a89eab5..826a667 100644
--- a/src/tint/intrinsics.def
+++ b/src/tint/intrinsics.def
@@ -661,8 +661,8 @@
 @must_use @const("select_boolvec") fn select<N: num, T: scalar>(vec<N, T>, vec<N, T>, vec<N, bool>) -> vec<N, T>
 @must_use @const fn sign<T: fia_fi32_f16>(T) -> T
 @must_use @const fn sign<N: num, T: fia_fi32_f16>(vec<N, T>) -> vec<N, T>
-@must_use @const fn sin<T: fa_f32_f16>(T) -> T
-@must_use @const fn sin<N: num, T: fa_f32_f16>(vec<N, T>) -> vec<N, T>
+@must_use @const fn sin<T: fa_f32_f16>(@test_value(1.57079632679) T) -> T
+@must_use @const fn sin<N: num, T: fa_f32_f16>(@test_value(1.57079632679) vec<N, T>) -> vec<N, T>
 @must_use @const fn sinh<T: fa_f32_f16>(T) -> T
 @must_use @const fn sinh<N: num, T: fa_f32_f16>(vec<N, T>) -> vec<N, T>
 @must_use @const fn smoothstep<T: fa_f32_f16>(@test_value(2) T, @test_value(4) T, @test_value(3) T) -> T
diff --git a/src/tint/resolver/intrinsic_table.inl b/src/tint/resolver/intrinsic_table.inl
index 3d15e1f..a4b5e14 100644
--- a/src/tint/resolver/intrinsic_table.inl
+++ b/src/tint/resolver/intrinsic_table.inl
@@ -14502,8 +14502,8 @@
   },
   {
     /* [70] */
-    /* fn sin<T : fa_f32_f16>(T) -> T */
-    /* fn sin<N : num, T : fa_f32_f16>(vec<N, T>) -> vec<N, T> */
+    /* fn sin<T : fa_f32_f16>(@test_value(1.57079632679) T) -> T */
+    /* fn sin<N : num, T : fa_f32_f16>(@test_value(1.57079632679) vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
     /* overloads */ &kOverloads[389],
   },
diff --git a/test/tint/builtins/gen/literal/sin/01f241.wgsl b/test/tint/builtins/gen/literal/sin/01f241.wgsl
index 3c1c150..3b6816f 100644
--- a/test/tint/builtins/gen/literal/sin/01f241.wgsl
+++ b/test/tint/builtins/gen/literal/sin/01f241.wgsl
@@ -23,7 +23,7 @@
 
 // fn sin(vec<3, f32>) -> vec<3, f32>
 fn sin_01f241() {
-  var res: vec3<f32> = sin(vec3<f32>(1.f));
+  var res: vec3<f32> = sin(vec3<f32>(1.57079632679f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/sin/01f241.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/sin/01f241.wgsl.expected.dxc.hlsl
index 399d934..d5f4b44 100644
--- a/test/tint/builtins/gen/literal/sin/01f241.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sin/01f241.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void sin_01f241() {
-  float3 res = (0.841470957f).xxx;
+  float3 res = (1.0f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/sin/01f241.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/sin/01f241.wgsl.expected.fxc.hlsl
index 399d934..d5f4b44 100644
--- a/test/tint/builtins/gen/literal/sin/01f241.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sin/01f241.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void sin_01f241() {
-  float3 res = (0.841470957f).xxx;
+  float3 res = (1.0f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/sin/01f241.wgsl.expected.glsl b/test/tint/builtins/gen/literal/sin/01f241.wgsl.expected.glsl
index 56aae66..fc446ee 100644
--- a/test/tint/builtins/gen/literal/sin/01f241.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/sin/01f241.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void sin_01f241() {
-  vec3 res = vec3(0.841470957f);
+  vec3 res = vec3(1.0f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void sin_01f241() {
-  vec3 res = vec3(0.841470957f);
+  vec3 res = vec3(1.0f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void sin_01f241() {
-  vec3 res = vec3(0.841470957f);
+  vec3 res = vec3(1.0f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/sin/01f241.wgsl.expected.msl b/test/tint/builtins/gen/literal/sin/01f241.wgsl.expected.msl
index ac708b6..762d763 100644
--- a/test/tint/builtins/gen/literal/sin/01f241.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/sin/01f241.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void sin_01f241() {
-  float3 res = float3(0.841470957f);
+  float3 res = float3(1.0f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/sin/01f241.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/sin/01f241.wgsl.expected.spvasm
index 403f714..eb8f71e 100644
--- a/test/tint/builtins/gen/literal/sin/01f241.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/sin/01f241.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_0_841470957 = OpConstant %float 0.841470957
-         %15 = OpConstantComposite %v3float %float_0_841470957 %float_0_841470957 %float_0_841470957
+    %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
  %sin_01f241 = 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 %sin_01f241
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %sin_01f241
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %sin_01f241
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %sin_01f241
                OpReturn
                OpFunctionEnd
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 cbbca22..21eef61 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.0f));
+  var res : vec3<f32> = sin(vec3<f32>(1.570796371f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/sin/15b2c6.wgsl b/test/tint/builtins/gen/literal/sin/15b2c6.wgsl
index 999bfaa..eee9561 100644
--- a/test/tint/builtins/gen/literal/sin/15b2c6.wgsl
+++ b/test/tint/builtins/gen/literal/sin/15b2c6.wgsl
@@ -23,7 +23,7 @@
 
 // fn sin(vec<4, fa>) -> vec<4, fa>
 fn sin_15b2c6() {
-  var res = sin(vec4(1.));
+  var res = sin(vec4(1.57079632679));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/sin/15b2c6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/sin/15b2c6.wgsl.expected.dxc.hlsl
index 8b97a9d..ecc1d7f 100644
--- a/test/tint/builtins/gen/literal/sin/15b2c6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sin/15b2c6.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void sin_15b2c6() {
-  float4 res = (0.841470957f).xxxx;
+  float4 res = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/sin/15b2c6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/sin/15b2c6.wgsl.expected.fxc.hlsl
index 8b97a9d..ecc1d7f 100644
--- a/test/tint/builtins/gen/literal/sin/15b2c6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sin/15b2c6.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void sin_15b2c6() {
-  float4 res = (0.841470957f).xxxx;
+  float4 res = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/sin/15b2c6.wgsl.expected.glsl b/test/tint/builtins/gen/literal/sin/15b2c6.wgsl.expected.glsl
index 2ba8b10..0010c80 100644
--- a/test/tint/builtins/gen/literal/sin/15b2c6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/sin/15b2c6.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void sin_15b2c6() {
-  vec4 res = vec4(0.841470957f);
+  vec4 res = vec4(1.0f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void sin_15b2c6() {
-  vec4 res = vec4(0.841470957f);
+  vec4 res = vec4(1.0f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void sin_15b2c6() {
-  vec4 res = vec4(0.841470957f);
+  vec4 res = vec4(1.0f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/sin/15b2c6.wgsl.expected.msl b/test/tint/builtins/gen/literal/sin/15b2c6.wgsl.expected.msl
index 4f69b5b..7783cbb 100644
--- a/test/tint/builtins/gen/literal/sin/15b2c6.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/sin/15b2c6.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void sin_15b2c6() {
-  float4 res = float4(0.841470957f);
+  float4 res = float4(1.0f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/sin/15b2c6.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/sin/15b2c6.wgsl.expected.spvasm
index 7e73f04..0fdaae6 100644
--- a/test/tint/builtins/gen/literal/sin/15b2c6.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/sin/15b2c6.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_0_841470957 = OpConstant %float 0.841470957
-         %14 = OpConstantComposite %v4float %float_0_841470957 %float_0_841470957 %float_0_841470957 %float_0_841470957
+    %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
  %sin_15b2c6 = 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 %sin_15b2c6
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %sin_15b2c6
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %sin_15b2c6
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %sin_15b2c6
                OpReturn
                OpFunctionEnd
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 813a579..ac0d7a3 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.0));
+  var res = sin(vec4(1.57079632679));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/sin/2c903b.wgsl b/test/tint/builtins/gen/literal/sin/2c903b.wgsl
index 6b14910..88a85dc 100644
--- a/test/tint/builtins/gen/literal/sin/2c903b.wgsl
+++ b/test/tint/builtins/gen/literal/sin/2c903b.wgsl
@@ -25,7 +25,7 @@
 
 // fn sin(vec<3, f16>) -> vec<3, f16>
 fn sin_2c903b() {
-  var res: vec3<f16> = sin(vec3<f16>(1.h));
+  var res: vec3<f16> = sin(vec3<f16>(1.57079632679h));
 }
 
 @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 7992f1d..f1f2665 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.841308594h)).xxx;
+  vector<float16_t, 3> res = (float16_t(0.999511719h)).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 88e3bc9..dafd096 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.841308594hf);
+  f16vec3 res = f16vec3(0.999511719hf);
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 precision mediump float;
 
 void sin_2c903b() {
-  f16vec3 res = f16vec3(0.841308594hf);
+  f16vec3 res = f16vec3(0.999511719hf);
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void sin_2c903b() {
-  f16vec3 res = f16vec3(0.841308594hf);
+  f16vec3 res = f16vec3(0.999511719hf);
 }
 
 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 ee6759b..48e1f49 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.841308594h);
+  half3 res = half3(0.999511719h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/sin/2c903b.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/sin/2c903b.wgsl.expected.spvasm
index b33742a..e88aa02 100644
--- a/test/tint/builtins/gen/literal/sin/2c903b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/sin/2c903b.wgsl.expected.spvasm
@@ -36,8 +36,8 @@
           %9 = OpTypeFunction %void
        %half = OpTypeFloat 16
      %v3half = OpTypeVector %half 3
-%half_0x1_aecpn1 = OpConstant %half 0x1.aecp-1
-         %16 = OpConstantComposite %v3half %half_0x1_aecpn1 %half_0x1_aecpn1 %half_0x1_aecpn1
+%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/sin/2c903b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/sin/2c903b.wgsl.expected.wgsl
index 9eaacf0..77e5c4a 100644
--- a/test/tint/builtins/gen/literal/sin/2c903b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/sin/2c903b.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 enable f16;
 
 fn sin_2c903b() {
-  var res : vec3<f16> = sin(vec3<f16>(1.0h));
+  var res : vec3<f16> = sin(vec3<f16>(1.5703125h));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/sin/3cca11.wgsl b/test/tint/builtins/gen/literal/sin/3cca11.wgsl
index edc4cf4..7c83bbc 100644
--- a/test/tint/builtins/gen/literal/sin/3cca11.wgsl
+++ b/test/tint/builtins/gen/literal/sin/3cca11.wgsl
@@ -25,7 +25,7 @@
 
 // fn sin(vec<2, f16>) -> vec<2, f16>
 fn sin_3cca11() {
-  var res: vec2<f16> = sin(vec2<f16>(1.h));
+  var res: vec2<f16> = sin(vec2<f16>(1.57079632679h));
 }
 
 @vertex
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 f203c72..54efd94 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.841308594h)).xx;
+  vector<float16_t, 2> res = (float16_t(0.999511719h)).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 b76cc11..1fb265d 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.841308594hf);
+  f16vec2 res = f16vec2(0.999511719hf);
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 precision mediump float;
 
 void sin_3cca11() {
-  f16vec2 res = f16vec2(0.841308594hf);
+  f16vec2 res = f16vec2(0.999511719hf);
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void sin_3cca11() {
-  f16vec2 res = f16vec2(0.841308594hf);
+  f16vec2 res = f16vec2(0.999511719hf);
 }
 
 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 ea8f224..f4e66e7 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.841308594h);
+  half2 res = half2(0.999511719h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/sin/3cca11.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/sin/3cca11.wgsl.expected.spvasm
index d048b86..6fd2e30 100644
--- a/test/tint/builtins/gen/literal/sin/3cca11.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/sin/3cca11.wgsl.expected.spvasm
@@ -36,8 +36,8 @@
           %9 = OpTypeFunction %void
        %half = OpTypeFloat 16
      %v2half = OpTypeVector %half 2
-%half_0x1_aecpn1 = OpConstant %half 0x1.aecp-1
-         %16 = OpConstantComposite %v2half %half_0x1_aecpn1 %half_0x1_aecpn1
+%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/sin/3cca11.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/sin/3cca11.wgsl.expected.wgsl
index 4f84e03..053b198 100644
--- a/test/tint/builtins/gen/literal/sin/3cca11.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/sin/3cca11.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 enable f16;
 
 fn sin_3cca11() {
-  var res : vec2<f16> = sin(vec2<f16>(1.0h));
+  var res : vec2<f16> = sin(vec2<f16>(1.5703125h));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/sin/4e3979.wgsl b/test/tint/builtins/gen/literal/sin/4e3979.wgsl
index aa9d887..3ec5efb 100644
--- a/test/tint/builtins/gen/literal/sin/4e3979.wgsl
+++ b/test/tint/builtins/gen/literal/sin/4e3979.wgsl
@@ -23,7 +23,7 @@
 
 // fn sin(vec<4, f32>) -> vec<4, f32>
 fn sin_4e3979() {
-  var res: vec4<f32> = sin(vec4<f32>(1.f));
+  var res: vec4<f32> = sin(vec4<f32>(1.57079632679f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/sin/4e3979.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/sin/4e3979.wgsl.expected.dxc.hlsl
index a047b7e..0212c7c 100644
--- a/test/tint/builtins/gen/literal/sin/4e3979.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sin/4e3979.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void sin_4e3979() {
-  float4 res = (0.841470957f).xxxx;
+  float4 res = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/sin/4e3979.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/sin/4e3979.wgsl.expected.fxc.hlsl
index a047b7e..0212c7c 100644
--- a/test/tint/builtins/gen/literal/sin/4e3979.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sin/4e3979.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void sin_4e3979() {
-  float4 res = (0.841470957f).xxxx;
+  float4 res = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/sin/4e3979.wgsl.expected.glsl b/test/tint/builtins/gen/literal/sin/4e3979.wgsl.expected.glsl
index 18cdaba..34173b0 100644
--- a/test/tint/builtins/gen/literal/sin/4e3979.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/sin/4e3979.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void sin_4e3979() {
-  vec4 res = vec4(0.841470957f);
+  vec4 res = vec4(1.0f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void sin_4e3979() {
-  vec4 res = vec4(0.841470957f);
+  vec4 res = vec4(1.0f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void sin_4e3979() {
-  vec4 res = vec4(0.841470957f);
+  vec4 res = vec4(1.0f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/sin/4e3979.wgsl.expected.msl b/test/tint/builtins/gen/literal/sin/4e3979.wgsl.expected.msl
index 49514f3..c95d9a7 100644
--- a/test/tint/builtins/gen/literal/sin/4e3979.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/sin/4e3979.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void sin_4e3979() {
-  float4 res = float4(0.841470957f);
+  float4 res = float4(1.0f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/sin/4e3979.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/sin/4e3979.wgsl.expected.spvasm
index dbb70fb..c8791d9 100644
--- a/test/tint/builtins/gen/literal/sin/4e3979.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/sin/4e3979.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_0_841470957 = OpConstant %float 0.841470957
-         %14 = OpConstantComposite %v4float %float_0_841470957 %float_0_841470957 %float_0_841470957 %float_0_841470957
+    %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
  %sin_4e3979 = 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 %sin_4e3979
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %sin_4e3979
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %sin_4e3979
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %sin_4e3979
                OpReturn
                OpFunctionEnd
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 de88311..b34cd50 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.0f));
+  var res : vec4<f32> = sin(vec4<f32>(1.570796371f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/sin/5c0712.wgsl b/test/tint/builtins/gen/literal/sin/5c0712.wgsl
index 5c11b08..63b0abc 100644
--- a/test/tint/builtins/gen/literal/sin/5c0712.wgsl
+++ b/test/tint/builtins/gen/literal/sin/5c0712.wgsl
@@ -25,7 +25,7 @@
 
 // fn sin(vec<4, f16>) -> vec<4, f16>
 fn sin_5c0712() {
-  var res: vec4<f16> = sin(vec4<f16>(1.h));
+  var res: vec4<f16> = sin(vec4<f16>(1.57079632679h));
 }
 
 @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 157c610..3bc3e1a 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.841308594h)).xxxx;
+  vector<float16_t, 4> res = (float16_t(0.999511719h)).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 f62212d..7062bc7 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.841308594hf);
+  f16vec4 res = f16vec4(0.999511719hf);
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 precision mediump float;
 
 void sin_5c0712() {
-  f16vec4 res = f16vec4(0.841308594hf);
+  f16vec4 res = f16vec4(0.999511719hf);
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void sin_5c0712() {
-  f16vec4 res = f16vec4(0.841308594hf);
+  f16vec4 res = f16vec4(0.999511719hf);
 }
 
 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 5ba7f1e..d391468 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.841308594h);
+  half4 res = half4(0.999511719h);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/sin/5c0712.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/sin/5c0712.wgsl.expected.spvasm
index c0f21df..98d07ed 100644
--- a/test/tint/builtins/gen/literal/sin/5c0712.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/sin/5c0712.wgsl.expected.spvasm
@@ -36,8 +36,8 @@
           %9 = OpTypeFunction %void
        %half = OpTypeFloat 16
      %v4half = OpTypeVector %half 4
-%half_0x1_aecpn1 = OpConstant %half 0x1.aecp-1
-         %16 = OpConstantComposite %v4half %half_0x1_aecpn1 %half_0x1_aecpn1 %half_0x1_aecpn1 %half_0x1_aecpn1
+%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/sin/5c0712.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/sin/5c0712.wgsl.expected.wgsl
index 43fc5bc..5f1ec6f 100644
--- a/test/tint/builtins/gen/literal/sin/5c0712.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/sin/5c0712.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 enable f16;
 
 fn sin_5c0712() {
-  var res : vec4<f16> = sin(vec4<f16>(1.0h));
+  var res : vec4<f16> = sin(vec4<f16>(1.5703125h));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/sin/66a59f.wgsl b/test/tint/builtins/gen/literal/sin/66a59f.wgsl
index 874c051..3e3af8a 100644
--- a/test/tint/builtins/gen/literal/sin/66a59f.wgsl
+++ b/test/tint/builtins/gen/literal/sin/66a59f.wgsl
@@ -25,7 +25,7 @@
 
 // fn sin(f16) -> f16
 fn sin_66a59f() {
-  var res: f16 = sin(1.h);
+  var res: f16 = sin(1.57079632679h);
 }
 
 @vertex
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 4309c66..2b4a486 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.841308594h);
+  float16_t res = float16_t(0.999511719h);
 }
 
 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 ab2032d..7f38b05 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.841308594hf;
+  float16_t res = 0.999511719hf;
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 precision mediump float;
 
 void sin_66a59f() {
-  float16_t res = 0.841308594hf;
+  float16_t res = 0.999511719hf;
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void sin_66a59f() {
-  float16_t res = 0.841308594hf;
+  float16_t res = 0.999511719hf;
 }
 
 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 0eb26eb..25b572f 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.841308594h;
+  half res = 0.999511719h;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/sin/66a59f.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/sin/66a59f.wgsl.expected.spvasm
index 3084682..5b659b5 100644
--- a/test/tint/builtins/gen/literal/sin/66a59f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/sin/66a59f.wgsl.expected.spvasm
@@ -35,7 +35,7 @@
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
        %half = OpTypeFloat 16
-%half_0x1_aecpn1 = OpConstant %half 0x1.aecp-1
+%half_0x1_ffcpn1 = OpConstant %half 0x1.ffcp-1
 %_ptr_Function_half = OpTypePointer Function %half
          %17 = OpConstantNull %half
          %18 = OpTypeFunction %v4float
@@ -43,7 +43,7 @@
  %sin_66a59f = OpFunction %void None %9
          %12 = OpLabel
         %res = OpVariable %_ptr_Function_half Function %17
-               OpStore %res %half_0x1_aecpn1
+               OpStore %res %half_0x1_ffcpn1
                OpReturn
                OpFunctionEnd
 %vertex_main_inner = OpFunction %v4float None %18
diff --git a/test/tint/builtins/gen/literal/sin/66a59f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/sin/66a59f.wgsl.expected.wgsl
index 78e2085..c3681d9 100644
--- a/test/tint/builtins/gen/literal/sin/66a59f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/sin/66a59f.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 enable f16;
 
 fn sin_66a59f() {
-  var res : f16 = sin(1.0h);
+  var res : f16 = sin(1.5703125h);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/sin/67b03c.wgsl b/test/tint/builtins/gen/literal/sin/67b03c.wgsl
index 7d7a15a..a576cad 100644
--- a/test/tint/builtins/gen/literal/sin/67b03c.wgsl
+++ b/test/tint/builtins/gen/literal/sin/67b03c.wgsl
@@ -23,7 +23,7 @@
 
 // fn sin(vec<3, fa>) -> vec<3, fa>
 fn sin_67b03c() {
-  var res = sin(vec3(1.));
+  var res = sin(vec3(1.57079632679));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/sin/67b03c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/sin/67b03c.wgsl.expected.dxc.hlsl
index 90603d1..bf66046 100644
--- a/test/tint/builtins/gen/literal/sin/67b03c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sin/67b03c.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void sin_67b03c() {
-  float3 res = (0.841470957f).xxx;
+  float3 res = (1.0f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/sin/67b03c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/sin/67b03c.wgsl.expected.fxc.hlsl
index 90603d1..bf66046 100644
--- a/test/tint/builtins/gen/literal/sin/67b03c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sin/67b03c.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void sin_67b03c() {
-  float3 res = (0.841470957f).xxx;
+  float3 res = (1.0f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/sin/67b03c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/sin/67b03c.wgsl.expected.glsl
index aa3e311..efc102b 100644
--- a/test/tint/builtins/gen/literal/sin/67b03c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/sin/67b03c.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void sin_67b03c() {
-  vec3 res = vec3(0.841470957f);
+  vec3 res = vec3(1.0f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void sin_67b03c() {
-  vec3 res = vec3(0.841470957f);
+  vec3 res = vec3(1.0f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void sin_67b03c() {
-  vec3 res = vec3(0.841470957f);
+  vec3 res = vec3(1.0f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/sin/67b03c.wgsl.expected.msl b/test/tint/builtins/gen/literal/sin/67b03c.wgsl.expected.msl
index 8b83077..4259105 100644
--- a/test/tint/builtins/gen/literal/sin/67b03c.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/sin/67b03c.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void sin_67b03c() {
-  float3 res = float3(0.841470957f);
+  float3 res = float3(1.0f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/sin/67b03c.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/sin/67b03c.wgsl.expected.spvasm
index 78483fe..92f2307 100644
--- a/test/tint/builtins/gen/literal/sin/67b03c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/sin/67b03c.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_0_841470957 = OpConstant %float 0.841470957
-         %15 = OpConstantComposite %v3float %float_0_841470957 %float_0_841470957 %float_0_841470957
+    %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
  %sin_67b03c = 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 %sin_67b03c
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %sin_67b03c
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %sin_67b03c
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %sin_67b03c
                OpReturn
                OpFunctionEnd
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 16abcc6..66c7133 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.0));
+  var res = sin(vec3(1.57079632679));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/sin/68d3ab.wgsl b/test/tint/builtins/gen/literal/sin/68d3ab.wgsl
index 365edfe..d99efea 100644
--- a/test/tint/builtins/gen/literal/sin/68d3ab.wgsl
+++ b/test/tint/builtins/gen/literal/sin/68d3ab.wgsl
@@ -23,7 +23,7 @@
 
 // fn sin(vec<2, fa>) -> vec<2, fa>
 fn sin_68d3ab() {
-  var res = sin(vec2(1.));
+  var res = sin(vec2(1.57079632679));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/sin/68d3ab.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/sin/68d3ab.wgsl.expected.dxc.hlsl
index e6a7d5a..0d3ff42 100644
--- a/test/tint/builtins/gen/literal/sin/68d3ab.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sin/68d3ab.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void sin_68d3ab() {
-  float2 res = (0.841470957f).xx;
+  float2 res = (1.0f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/sin/68d3ab.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/sin/68d3ab.wgsl.expected.fxc.hlsl
index e6a7d5a..0d3ff42 100644
--- a/test/tint/builtins/gen/literal/sin/68d3ab.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sin/68d3ab.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void sin_68d3ab() {
-  float2 res = (0.841470957f).xx;
+  float2 res = (1.0f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/sin/68d3ab.wgsl.expected.glsl b/test/tint/builtins/gen/literal/sin/68d3ab.wgsl.expected.glsl
index 6735f51..497f2b9 100644
--- a/test/tint/builtins/gen/literal/sin/68d3ab.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/sin/68d3ab.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void sin_68d3ab() {
-  vec2 res = vec2(0.841470957f);
+  vec2 res = vec2(1.0f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void sin_68d3ab() {
-  vec2 res = vec2(0.841470957f);
+  vec2 res = vec2(1.0f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void sin_68d3ab() {
-  vec2 res = vec2(0.841470957f);
+  vec2 res = vec2(1.0f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/sin/68d3ab.wgsl.expected.msl b/test/tint/builtins/gen/literal/sin/68d3ab.wgsl.expected.msl
index e10514f..09e83ba 100644
--- a/test/tint/builtins/gen/literal/sin/68d3ab.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/sin/68d3ab.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void sin_68d3ab() {
-  float2 res = float2(0.841470957f);
+  float2 res = float2(1.0f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/sin/68d3ab.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/sin/68d3ab.wgsl.expected.spvasm
index 32dd535..3570bbb 100644
--- a/test/tint/builtins/gen/literal/sin/68d3ab.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/sin/68d3ab.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_0_841470957 = OpConstant %float 0.841470957
-         %15 = OpConstantComposite %v2float %float_0_841470957 %float_0_841470957
+    %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
  %sin_68d3ab = 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 %sin_68d3ab
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %sin_68d3ab
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %sin_68d3ab
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %sin_68d3ab
                OpReturn
                OpFunctionEnd
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 2411b26..c5dc6fb 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.0));
+  var res = sin(vec2(1.57079632679));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/sin/a9ab19.wgsl b/test/tint/builtins/gen/literal/sin/a9ab19.wgsl
index 029bb48..ae6110a 100644
--- a/test/tint/builtins/gen/literal/sin/a9ab19.wgsl
+++ b/test/tint/builtins/gen/literal/sin/a9ab19.wgsl
@@ -23,7 +23,7 @@
 
 // fn sin(fa) -> fa
 fn sin_a9ab19() {
-  var res = sin(1.);
+  var res = sin(1.57079632679);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/sin/a9ab19.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/sin/a9ab19.wgsl.expected.dxc.hlsl
index f36fe78..1565ebc 100644
--- a/test/tint/builtins/gen/literal/sin/a9ab19.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sin/a9ab19.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void sin_a9ab19() {
-  float res = 0.841470957f;
+  float res = 1.0f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/sin/a9ab19.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/sin/a9ab19.wgsl.expected.fxc.hlsl
index f36fe78..1565ebc 100644
--- a/test/tint/builtins/gen/literal/sin/a9ab19.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sin/a9ab19.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void sin_a9ab19() {
-  float res = 0.841470957f;
+  float res = 1.0f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/sin/a9ab19.wgsl.expected.glsl b/test/tint/builtins/gen/literal/sin/a9ab19.wgsl.expected.glsl
index f6a5e5a..1a38190 100644
--- a/test/tint/builtins/gen/literal/sin/a9ab19.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/sin/a9ab19.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void sin_a9ab19() {
-  float res = 0.841470957f;
+  float res = 1.0f;
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void sin_a9ab19() {
-  float res = 0.841470957f;
+  float res = 1.0f;
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void sin_a9ab19() {
-  float res = 0.841470957f;
+  float res = 1.0f;
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/sin/a9ab19.wgsl.expected.msl b/test/tint/builtins/gen/literal/sin/a9ab19.wgsl.expected.msl
index 3c5cb44..0e408a0 100644
--- a/test/tint/builtins/gen/literal/sin/a9ab19.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/sin/a9ab19.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void sin_a9ab19() {
-  float res = 0.841470957f;
+  float res = 1.0f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/sin/a9ab19.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/sin/a9ab19.wgsl.expected.spvasm
index f340597..ccf3764 100644
--- a/test/tint/builtins/gen/literal/sin/a9ab19.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/sin/a9ab19.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_0_841470957 = OpConstant %float 0.841470957
+    %float_1 = OpConstant %float 1
 %_ptr_Function_float = OpTypePointer Function %float
          %16 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
  %sin_a9ab19 = OpFunction %void None %9
          %12 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
-               OpStore %res %float_0_841470957
+               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 %sin_a9ab19
+         %24 = OpLabel
+         %25 = OpFunctionCall %void %sin_a9ab19
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %sin_a9ab19
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %sin_a9ab19
                OpReturn
                OpFunctionEnd
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 5e8b038..ee62525 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.0);
+  var res = sin(1.57079632679);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/sin/b78c91.wgsl b/test/tint/builtins/gen/literal/sin/b78c91.wgsl
index 590c6da..e14a7c4 100644
--- a/test/tint/builtins/gen/literal/sin/b78c91.wgsl
+++ b/test/tint/builtins/gen/literal/sin/b78c91.wgsl
@@ -23,7 +23,7 @@
 
 // fn sin(f32) -> f32
 fn sin_b78c91() {
-  var res: f32 = sin(1.f);
+  var res: f32 = sin(1.57079632679f);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/sin/b78c91.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/sin/b78c91.wgsl.expected.dxc.hlsl
index e7d7d5b..fd1ee0d 100644
--- a/test/tint/builtins/gen/literal/sin/b78c91.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sin/b78c91.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void sin_b78c91() {
-  float res = 0.841470957f;
+  float res = 1.0f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/sin/b78c91.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/sin/b78c91.wgsl.expected.fxc.hlsl
index e7d7d5b..fd1ee0d 100644
--- a/test/tint/builtins/gen/literal/sin/b78c91.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sin/b78c91.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void sin_b78c91() {
-  float res = 0.841470957f;
+  float res = 1.0f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/sin/b78c91.wgsl.expected.glsl b/test/tint/builtins/gen/literal/sin/b78c91.wgsl.expected.glsl
index f4b82c9..21a146c 100644
--- a/test/tint/builtins/gen/literal/sin/b78c91.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/sin/b78c91.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void sin_b78c91() {
-  float res = 0.841470957f;
+  float res = 1.0f;
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void sin_b78c91() {
-  float res = 0.841470957f;
+  float res = 1.0f;
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void sin_b78c91() {
-  float res = 0.841470957f;
+  float res = 1.0f;
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/sin/b78c91.wgsl.expected.msl b/test/tint/builtins/gen/literal/sin/b78c91.wgsl.expected.msl
index 6bfccd0..502aa67 100644
--- a/test/tint/builtins/gen/literal/sin/b78c91.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/sin/b78c91.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void sin_b78c91() {
-  float res = 0.841470957f;
+  float res = 1.0f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/sin/b78c91.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/sin/b78c91.wgsl.expected.spvasm
index 354c0be..09685b2 100644
--- a/test/tint/builtins/gen/literal/sin/b78c91.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/sin/b78c91.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_0_841470957 = OpConstant %float 0.841470957
+    %float_1 = OpConstant %float 1
 %_ptr_Function_float = OpTypePointer Function %float
          %16 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
  %sin_b78c91 = OpFunction %void None %9
          %12 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
-               OpStore %res %float_0_841470957
+               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 %sin_b78c91
+         %24 = OpLabel
+         %25 = OpFunctionCall %void %sin_b78c91
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %sin_b78c91
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %sin_b78c91
                OpReturn
                OpFunctionEnd
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 ed5914c..e2ee40d 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.0f);
+  var res : f32 = sin(1.570796371f);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/sin/fc8bc4.wgsl b/test/tint/builtins/gen/literal/sin/fc8bc4.wgsl
index 8c14832..4f40970 100644
--- a/test/tint/builtins/gen/literal/sin/fc8bc4.wgsl
+++ b/test/tint/builtins/gen/literal/sin/fc8bc4.wgsl
@@ -23,7 +23,7 @@
 
 // fn sin(vec<2, f32>) -> vec<2, f32>
 fn sin_fc8bc4() {
-  var res: vec2<f32> = sin(vec2<f32>(1.f));
+  var res: vec2<f32> = sin(vec2<f32>(1.57079632679f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/sin/fc8bc4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/sin/fc8bc4.wgsl.expected.dxc.hlsl
index f3522fa..a3f5f5e 100644
--- a/test/tint/builtins/gen/literal/sin/fc8bc4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sin/fc8bc4.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void sin_fc8bc4() {
-  float2 res = (0.841470957f).xx;
+  float2 res = (1.0f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/sin/fc8bc4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/sin/fc8bc4.wgsl.expected.fxc.hlsl
index f3522fa..a3f5f5e 100644
--- a/test/tint/builtins/gen/literal/sin/fc8bc4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sin/fc8bc4.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void sin_fc8bc4() {
-  float2 res = (0.841470957f).xx;
+  float2 res = (1.0f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/sin/fc8bc4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/sin/fc8bc4.wgsl.expected.glsl
index 07a0e81..ea6ce7a 100644
--- a/test/tint/builtins/gen/literal/sin/fc8bc4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/sin/fc8bc4.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void sin_fc8bc4() {
-  vec2 res = vec2(0.841470957f);
+  vec2 res = vec2(1.0f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void sin_fc8bc4() {
-  vec2 res = vec2(0.841470957f);
+  vec2 res = vec2(1.0f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void sin_fc8bc4() {
-  vec2 res = vec2(0.841470957f);
+  vec2 res = vec2(1.0f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/sin/fc8bc4.wgsl.expected.msl b/test/tint/builtins/gen/literal/sin/fc8bc4.wgsl.expected.msl
index 20e905e..3e6d8b6 100644
--- a/test/tint/builtins/gen/literal/sin/fc8bc4.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/sin/fc8bc4.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void sin_fc8bc4() {
-  float2 res = float2(0.841470957f);
+  float2 res = float2(1.0f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/sin/fc8bc4.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/sin/fc8bc4.wgsl.expected.spvasm
index abba398..d4d1dd0 100644
--- a/test/tint/builtins/gen/literal/sin/fc8bc4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/sin/fc8bc4.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_0_841470957 = OpConstant %float 0.841470957
-         %15 = OpConstantComposite %v2float %float_0_841470957 %float_0_841470957
+    %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
  %sin_fc8bc4 = 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 %sin_fc8bc4
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %sin_fc8bc4
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %sin_fc8bc4
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %sin_fc8bc4
                OpReturn
                OpFunctionEnd
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 62f5f13..f51b852 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.0f));
+  var res : vec2<f32> = sin(vec2<f32>(1.570796371f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/var/sin/01f241.wgsl b/test/tint/builtins/gen/var/sin/01f241.wgsl
index 01345bd..b20e8a6 100644
--- a/test/tint/builtins/gen/var/sin/01f241.wgsl
+++ b/test/tint/builtins/gen/var/sin/01f241.wgsl
@@ -23,7 +23,7 @@
 
 // fn sin(vec<3, f32>) -> vec<3, f32>
 fn sin_01f241() {
-  var arg_0 = vec3<f32>(1.f);
+  var arg_0 = vec3<f32>(1.57079632679f);
   var res: vec3<f32> = sin(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 e8ff0a8..17f3c9b 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.0f).xxx;
+  float3 arg_0 = (1.570796371f).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 e8ff0a8..17f3c9b 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.0f).xxx;
+  float3 arg_0 = (1.570796371f).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 9f99f43..8ef7f1c 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.0f);
+  vec3 arg_0 = vec3(1.570796371f);
   vec3 res = sin(arg_0);
 }
 
@@ -22,7 +22,7 @@
 precision mediump float;
 
 void sin_01f241() {
-  vec3 arg_0 = vec3(1.0f);
+  vec3 arg_0 = vec3(1.570796371f);
   vec3 res = sin(arg_0);
 }
 
@@ -37,7 +37,7 @@
 #version 310 es
 
 void sin_01f241() {
-  vec3 arg_0 = vec3(1.0f);
+  vec3 arg_0 = vec3(1.570796371f);
   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 d36e8b0..f5b43ae 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.0f);
+  float3 arg_0 = float3(1.570796371f);
   float3 res = sin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/sin/01f241.wgsl.expected.spvasm b/test/tint/builtins/gen/var/sin/01f241.wgsl.expected.spvasm
index 14c4afc..851e12c 100644
--- a/test/tint/builtins/gen/var/sin/01f241.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/sin/01f241.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 36
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
          %20 = OpExtInstImport "GLSL.std.450"
@@ -33,11 +33,12 @@
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
-    %float_1 = OpConstant %float 1
-         %15 = OpConstantComposite %v3float %float_1 %float_1 %float_1
+%float_1_57079637 = OpConstant %float 1.57079637
+         %15 = OpConstantComposite %v3float %float_1_57079637 %float_1_57079637 %float_1_57079637
 %_ptr_Function_v3float = OpTypePointer Function %v3float
          %18 = OpConstantNull %v3float
          %23 = OpTypeFunction %v4float
+    %float_1 = OpConstant %float 1
  %sin_01f241 = OpFunction %void None %9
          %12 = OpLabel
       %arg_0 = OpVariable %_ptr_Function_v3float Function %18
@@ -61,12 +62,12 @@
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %sin_01f241
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %sin_01f241
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %sin_01f241
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %sin_01f241
                OpReturn
                OpFunctionEnd
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 41822a4..edf3cbe 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.0f);
+  var arg_0 = vec3<f32>(1.570796371f);
   var res : vec3<f32> = sin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/sin/15b2c6.wgsl b/test/tint/builtins/gen/var/sin/15b2c6.wgsl
index 8d53440..dffbdc1 100644
--- a/test/tint/builtins/gen/var/sin/15b2c6.wgsl
+++ b/test/tint/builtins/gen/var/sin/15b2c6.wgsl
@@ -23,7 +23,7 @@
 
 // fn sin(vec<4, fa>) -> vec<4, fa>
 fn sin_15b2c6() {
-  const arg_0 = vec4(1.);
+  const arg_0 = vec4(1.57079632679);
   var res = sin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/sin/15b2c6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/sin/15b2c6.wgsl.expected.dxc.hlsl
index 8b97a9d..ecc1d7f 100644
--- a/test/tint/builtins/gen/var/sin/15b2c6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sin/15b2c6.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void sin_15b2c6() {
-  float4 res = (0.841470957f).xxxx;
+  float4 res = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/sin/15b2c6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/sin/15b2c6.wgsl.expected.fxc.hlsl
index 8b97a9d..ecc1d7f 100644
--- a/test/tint/builtins/gen/var/sin/15b2c6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sin/15b2c6.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void sin_15b2c6() {
-  float4 res = (0.841470957f).xxxx;
+  float4 res = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/sin/15b2c6.wgsl.expected.glsl b/test/tint/builtins/gen/var/sin/15b2c6.wgsl.expected.glsl
index 2ba8b10..0010c80 100644
--- a/test/tint/builtins/gen/var/sin/15b2c6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/sin/15b2c6.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void sin_15b2c6() {
-  vec4 res = vec4(0.841470957f);
+  vec4 res = vec4(1.0f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void sin_15b2c6() {
-  vec4 res = vec4(0.841470957f);
+  vec4 res = vec4(1.0f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void sin_15b2c6() {
-  vec4 res = vec4(0.841470957f);
+  vec4 res = vec4(1.0f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/sin/15b2c6.wgsl.expected.msl b/test/tint/builtins/gen/var/sin/15b2c6.wgsl.expected.msl
index 4f69b5b..7783cbb 100644
--- a/test/tint/builtins/gen/var/sin/15b2c6.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/sin/15b2c6.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void sin_15b2c6() {
-  float4 res = float4(0.841470957f);
+  float4 res = float4(1.0f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/sin/15b2c6.wgsl.expected.spvasm b/test/tint/builtins/gen/var/sin/15b2c6.wgsl.expected.spvasm
index 7e73f04..0fdaae6 100644
--- a/test/tint/builtins/gen/var/sin/15b2c6.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/sin/15b2c6.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_0_841470957 = OpConstant %float 0.841470957
-         %14 = OpConstantComposite %v4float %float_0_841470957 %float_0_841470957 %float_0_841470957 %float_0_841470957
+    %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
  %sin_15b2c6 = 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 %sin_15b2c6
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %sin_15b2c6
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %sin_15b2c6
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %sin_15b2c6
                OpReturn
                OpFunctionEnd
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 bf5e782..e4e6453 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.0);
+  const arg_0 = vec4(1.57079632679);
   var res = sin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/sin/2c903b.wgsl b/test/tint/builtins/gen/var/sin/2c903b.wgsl
index 5524188..29c7c1b 100644
--- a/test/tint/builtins/gen/var/sin/2c903b.wgsl
+++ b/test/tint/builtins/gen/var/sin/2c903b.wgsl
@@ -25,7 +25,7 @@
 
 // fn sin(vec<3, f16>) -> vec<3, f16>
 fn sin_2c903b() {
-  var arg_0 = vec3<f16>(1.h);
+  var arg_0 = vec3<f16>(1.57079632679h);
   var res: vec3<f16> = sin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/sin/2c903b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/sin/2c903b.wgsl.expected.dxc.hlsl
index 7e377b0..685aeb2 100644
--- a/test/tint/builtins/gen/var/sin/2c903b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sin/2c903b.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void sin_2c903b() {
-  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> arg_0 = (float16_t(1.5703125h)).xxx;
   vector<float16_t, 3> res = sin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/sin/2c903b.wgsl.expected.glsl b/test/tint/builtins/gen/var/sin/2c903b.wgsl.expected.glsl
index 4e80fbf..243c457 100644
--- a/test/tint/builtins/gen/var/sin/2c903b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/sin/2c903b.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void sin_2c903b() {
-  f16vec3 arg_0 = f16vec3(1.0hf);
+  f16vec3 arg_0 = f16vec3(1.5703125hf);
   f16vec3 res = sin(arg_0);
 }
 
@@ -24,7 +24,7 @@
 precision mediump float;
 
 void sin_2c903b() {
-  f16vec3 arg_0 = f16vec3(1.0hf);
+  f16vec3 arg_0 = f16vec3(1.5703125hf);
   f16vec3 res = sin(arg_0);
 }
 
@@ -40,7 +40,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void sin_2c903b() {
-  f16vec3 arg_0 = f16vec3(1.0hf);
+  f16vec3 arg_0 = f16vec3(1.5703125hf);
   f16vec3 res = sin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/sin/2c903b.wgsl.expected.msl b/test/tint/builtins/gen/var/sin/2c903b.wgsl.expected.msl
index 04bcb86..22dc935 100644
--- a/test/tint/builtins/gen/var/sin/2c903b.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/sin/2c903b.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void sin_2c903b() {
-  half3 arg_0 = half3(1.0h);
+  half3 arg_0 = half3(1.5703125h);
   half3 res = sin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/sin/2c903b.wgsl.expected.spvasm b/test/tint/builtins/gen/var/sin/2c903b.wgsl.expected.spvasm
index 696db23..4623cee 100644
--- a/test/tint/builtins/gen/var/sin/2c903b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/sin/2c903b.wgsl.expected.spvasm
@@ -38,8 +38,8 @@
           %9 = OpTypeFunction %void
        %half = OpTypeFloat 16
      %v3half = OpTypeVector %half 3
-%half_0x1p_0 = OpConstant %half 0x1p+0
-         %16 = OpConstantComposite %v3half %half_0x1p_0 %half_0x1p_0 %half_0x1p_0
+%half_0x1_92p_0 = OpConstant %half 0x1.92p+0
+         %16 = OpConstantComposite %v3half %half_0x1_92p_0 %half_0x1_92p_0 %half_0x1_92p_0
 %_ptr_Function_v3half = OpTypePointer Function %v3half
          %19 = OpConstantNull %v3half
          %24 = OpTypeFunction %v4float
diff --git a/test/tint/builtins/gen/var/sin/2c903b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/sin/2c903b.wgsl.expected.wgsl
index 381278f..3481568 100644
--- a/test/tint/builtins/gen/var/sin/2c903b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/sin/2c903b.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 enable f16;
 
 fn sin_2c903b() {
-  var arg_0 = vec3<f16>(1.0h);
+  var arg_0 = vec3<f16>(1.5703125h);
   var res : vec3<f16> = sin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/sin/3cca11.wgsl b/test/tint/builtins/gen/var/sin/3cca11.wgsl
index 80b7c53..c84fa1e 100644
--- a/test/tint/builtins/gen/var/sin/3cca11.wgsl
+++ b/test/tint/builtins/gen/var/sin/3cca11.wgsl
@@ -25,7 +25,7 @@
 
 // fn sin(vec<2, f16>) -> vec<2, f16>
 fn sin_3cca11() {
-  var arg_0 = vec2<f16>(1.h);
+  var arg_0 = vec2<f16>(1.57079632679h);
   var res: vec2<f16> = sin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/sin/3cca11.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/sin/3cca11.wgsl.expected.dxc.hlsl
index d3d875a..747798b 100644
--- a/test/tint/builtins/gen/var/sin/3cca11.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sin/3cca11.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void sin_3cca11() {
-  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> arg_0 = (float16_t(1.5703125h)).xx;
   vector<float16_t, 2> res = sin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/sin/3cca11.wgsl.expected.glsl b/test/tint/builtins/gen/var/sin/3cca11.wgsl.expected.glsl
index ab019e2..9b71f4f 100644
--- a/test/tint/builtins/gen/var/sin/3cca11.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/sin/3cca11.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void sin_3cca11() {
-  f16vec2 arg_0 = f16vec2(1.0hf);
+  f16vec2 arg_0 = f16vec2(1.5703125hf);
   f16vec2 res = sin(arg_0);
 }
 
@@ -24,7 +24,7 @@
 precision mediump float;
 
 void sin_3cca11() {
-  f16vec2 arg_0 = f16vec2(1.0hf);
+  f16vec2 arg_0 = f16vec2(1.5703125hf);
   f16vec2 res = sin(arg_0);
 }
 
@@ -40,7 +40,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void sin_3cca11() {
-  f16vec2 arg_0 = f16vec2(1.0hf);
+  f16vec2 arg_0 = f16vec2(1.5703125hf);
   f16vec2 res = sin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/sin/3cca11.wgsl.expected.msl b/test/tint/builtins/gen/var/sin/3cca11.wgsl.expected.msl
index afa9a38..9f37112 100644
--- a/test/tint/builtins/gen/var/sin/3cca11.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/sin/3cca11.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void sin_3cca11() {
-  half2 arg_0 = half2(1.0h);
+  half2 arg_0 = half2(1.5703125h);
   half2 res = sin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/sin/3cca11.wgsl.expected.spvasm b/test/tint/builtins/gen/var/sin/3cca11.wgsl.expected.spvasm
index b227acb..db3abd2 100644
--- a/test/tint/builtins/gen/var/sin/3cca11.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/sin/3cca11.wgsl.expected.spvasm
@@ -38,8 +38,8 @@
           %9 = OpTypeFunction %void
        %half = OpTypeFloat 16
      %v2half = OpTypeVector %half 2
-%half_0x1p_0 = OpConstant %half 0x1p+0
-         %16 = OpConstantComposite %v2half %half_0x1p_0 %half_0x1p_0
+%half_0x1_92p_0 = OpConstant %half 0x1.92p+0
+         %16 = OpConstantComposite %v2half %half_0x1_92p_0 %half_0x1_92p_0
 %_ptr_Function_v2half = OpTypePointer Function %v2half
          %19 = OpConstantNull %v2half
          %24 = OpTypeFunction %v4float
diff --git a/test/tint/builtins/gen/var/sin/3cca11.wgsl.expected.wgsl b/test/tint/builtins/gen/var/sin/3cca11.wgsl.expected.wgsl
index e5f5ea8..29c6f7d 100644
--- a/test/tint/builtins/gen/var/sin/3cca11.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/sin/3cca11.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 enable f16;
 
 fn sin_3cca11() {
-  var arg_0 = vec2<f16>(1.0h);
+  var arg_0 = vec2<f16>(1.5703125h);
   var res : vec2<f16> = sin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/sin/4e3979.wgsl b/test/tint/builtins/gen/var/sin/4e3979.wgsl
index d4ef501..74f0723 100644
--- a/test/tint/builtins/gen/var/sin/4e3979.wgsl
+++ b/test/tint/builtins/gen/var/sin/4e3979.wgsl
@@ -23,7 +23,7 @@
 
 // fn sin(vec<4, f32>) -> vec<4, f32>
 fn sin_4e3979() {
-  var arg_0 = vec4<f32>(1.f);
+  var arg_0 = vec4<f32>(1.57079632679f);
   var res: vec4<f32> = 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 32993b4..035f41d 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.0f).xxxx;
+  float4 arg_0 = (1.570796371f).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 32993b4..035f41d 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.0f).xxxx;
+  float4 arg_0 = (1.570796371f).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 0134e30..788ed7e 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.0f);
+  vec4 arg_0 = vec4(1.570796371f);
   vec4 res = sin(arg_0);
 }
 
@@ -22,7 +22,7 @@
 precision mediump float;
 
 void sin_4e3979() {
-  vec4 arg_0 = vec4(1.0f);
+  vec4 arg_0 = vec4(1.570796371f);
   vec4 res = sin(arg_0);
 }
 
@@ -37,7 +37,7 @@
 #version 310 es
 
 void sin_4e3979() {
-  vec4 arg_0 = vec4(1.0f);
+  vec4 arg_0 = vec4(1.570796371f);
   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 5ea6144..90fe227 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.0f);
+  float4 arg_0 = float4(1.570796371f);
   float4 res = sin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/sin/4e3979.wgsl.expected.spvasm b/test/tint/builtins/gen/var/sin/4e3979.wgsl.expected.spvasm
index cb3457f..13aab5b 100644
--- a/test/tint/builtins/gen/var/sin/4e3979.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/sin/4e3979.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 35
 ; Schema: 0
                OpCapability Shader
          %18 = OpExtInstImport "GLSL.std.450"
@@ -32,10 +32,11 @@
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
-    %float_1 = OpConstant %float 1
-         %14 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%float_1_57079637 = OpConstant %float 1.57079637
+         %14 = OpConstantComposite %v4float %float_1_57079637 %float_1_57079637 %float_1_57079637 %float_1_57079637
 %_ptr_Function_v4float = OpTypePointer Function %v4float
          %21 = OpTypeFunction %v4float
+    %float_1 = OpConstant %float 1
  %sin_4e3979 = OpFunction %void None %9
          %12 = OpLabel
       %arg_0 = OpVariable %_ptr_Function_v4float Function %5
@@ -59,12 +60,12 @@
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %sin_4e3979
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %sin_4e3979
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %sin_4e3979
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %sin_4e3979
                OpReturn
                OpFunctionEnd
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 d94d8d2..ce0867c 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.0f);
+  var arg_0 = vec4<f32>(1.570796371f);
   var res : vec4<f32> = sin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/sin/5c0712.wgsl b/test/tint/builtins/gen/var/sin/5c0712.wgsl
index 8c273d4..8d1fa31 100644
--- a/test/tint/builtins/gen/var/sin/5c0712.wgsl
+++ b/test/tint/builtins/gen/var/sin/5c0712.wgsl
@@ -25,7 +25,7 @@
 
 // fn sin(vec<4, f16>) -> vec<4, f16>
 fn sin_5c0712() {
-  var arg_0 = vec4<f16>(1.h);
+  var arg_0 = vec4<f16>(1.57079632679h);
   var res: vec4<f16> = sin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/sin/5c0712.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/sin/5c0712.wgsl.expected.dxc.hlsl
index 2693475..3d2eb53 100644
--- a/test/tint/builtins/gen/var/sin/5c0712.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sin/5c0712.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void sin_5c0712() {
-  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> arg_0 = (float16_t(1.5703125h)).xxxx;
   vector<float16_t, 4> res = sin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/sin/5c0712.wgsl.expected.glsl b/test/tint/builtins/gen/var/sin/5c0712.wgsl.expected.glsl
index 1fc85ff..d959716 100644
--- a/test/tint/builtins/gen/var/sin/5c0712.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/sin/5c0712.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void sin_5c0712() {
-  f16vec4 arg_0 = f16vec4(1.0hf);
+  f16vec4 arg_0 = f16vec4(1.5703125hf);
   f16vec4 res = sin(arg_0);
 }
 
@@ -24,7 +24,7 @@
 precision mediump float;
 
 void sin_5c0712() {
-  f16vec4 arg_0 = f16vec4(1.0hf);
+  f16vec4 arg_0 = f16vec4(1.5703125hf);
   f16vec4 res = sin(arg_0);
 }
 
@@ -40,7 +40,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void sin_5c0712() {
-  f16vec4 arg_0 = f16vec4(1.0hf);
+  f16vec4 arg_0 = f16vec4(1.5703125hf);
   f16vec4 res = sin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/sin/5c0712.wgsl.expected.msl b/test/tint/builtins/gen/var/sin/5c0712.wgsl.expected.msl
index aa6f22d..46e55c2 100644
--- a/test/tint/builtins/gen/var/sin/5c0712.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/sin/5c0712.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void sin_5c0712() {
-  half4 arg_0 = half4(1.0h);
+  half4 arg_0 = half4(1.5703125h);
   half4 res = sin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/sin/5c0712.wgsl.expected.spvasm b/test/tint/builtins/gen/var/sin/5c0712.wgsl.expected.spvasm
index 9a01bfe..239747a 100644
--- a/test/tint/builtins/gen/var/sin/5c0712.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/sin/5c0712.wgsl.expected.spvasm
@@ -38,8 +38,8 @@
           %9 = OpTypeFunction %void
        %half = OpTypeFloat 16
      %v4half = OpTypeVector %half 4
-%half_0x1p_0 = OpConstant %half 0x1p+0
-         %16 = OpConstantComposite %v4half %half_0x1p_0 %half_0x1p_0 %half_0x1p_0 %half_0x1p_0
+%half_0x1_92p_0 = OpConstant %half 0x1.92p+0
+         %16 = OpConstantComposite %v4half %half_0x1_92p_0 %half_0x1_92p_0 %half_0x1_92p_0 %half_0x1_92p_0
 %_ptr_Function_v4half = OpTypePointer Function %v4half
          %19 = OpConstantNull %v4half
          %24 = OpTypeFunction %v4float
diff --git a/test/tint/builtins/gen/var/sin/5c0712.wgsl.expected.wgsl b/test/tint/builtins/gen/var/sin/5c0712.wgsl.expected.wgsl
index 065cba4..a4cc20f 100644
--- a/test/tint/builtins/gen/var/sin/5c0712.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/sin/5c0712.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 enable f16;
 
 fn sin_5c0712() {
-  var arg_0 = vec4<f16>(1.0h);
+  var arg_0 = vec4<f16>(1.5703125h);
   var res : vec4<f16> = sin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/sin/66a59f.wgsl b/test/tint/builtins/gen/var/sin/66a59f.wgsl
index 85c7466..fb9be73 100644
--- a/test/tint/builtins/gen/var/sin/66a59f.wgsl
+++ b/test/tint/builtins/gen/var/sin/66a59f.wgsl
@@ -25,7 +25,7 @@
 
 // fn sin(f16) -> f16
 fn sin_66a59f() {
-  var arg_0 = 1.h;
+  var arg_0 = 1.57079632679h;
   var res: f16 = sin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/sin/66a59f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/sin/66a59f.wgsl.expected.dxc.hlsl
index 9de611f..b91b449 100644
--- a/test/tint/builtins/gen/var/sin/66a59f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sin/66a59f.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void sin_66a59f() {
-  float16_t arg_0 = float16_t(1.0h);
+  float16_t arg_0 = float16_t(1.5703125h);
   float16_t res = sin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/sin/66a59f.wgsl.expected.glsl b/test/tint/builtins/gen/var/sin/66a59f.wgsl.expected.glsl
index 4806e5f..8d25998 100644
--- a/test/tint/builtins/gen/var/sin/66a59f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/sin/66a59f.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void sin_66a59f() {
-  float16_t arg_0 = 1.0hf;
+  float16_t arg_0 = 1.5703125hf;
   float16_t res = sin(arg_0);
 }
 
@@ -24,7 +24,7 @@
 precision mediump float;
 
 void sin_66a59f() {
-  float16_t arg_0 = 1.0hf;
+  float16_t arg_0 = 1.5703125hf;
   float16_t res = sin(arg_0);
 }
 
@@ -40,7 +40,7 @@
 #extension GL_AMD_gpu_shader_half_float : require
 
 void sin_66a59f() {
-  float16_t arg_0 = 1.0hf;
+  float16_t arg_0 = 1.5703125hf;
   float16_t res = sin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/sin/66a59f.wgsl.expected.msl b/test/tint/builtins/gen/var/sin/66a59f.wgsl.expected.msl
index b82b559..e3c6ff4 100644
--- a/test/tint/builtins/gen/var/sin/66a59f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/sin/66a59f.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void sin_66a59f() {
-  half arg_0 = 1.0h;
+  half arg_0 = 1.5703125h;
   half res = sin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/sin/66a59f.wgsl.expected.spvasm b/test/tint/builtins/gen/var/sin/66a59f.wgsl.expected.spvasm
index c3a5f15..89dc7a4 100644
--- a/test/tint/builtins/gen/var/sin/66a59f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/sin/66a59f.wgsl.expected.spvasm
@@ -37,7 +37,7 @@
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
        %half = OpTypeFloat 16
-%half_0x1p_0 = OpConstant %half 0x1p+0
+%half_0x1_92p_0 = OpConstant %half 0x1.92p+0
 %_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_0x1p_0
+               OpStore %arg_0 %half_0x1_92p_0
          %20 = OpLoad %half %arg_0
          %18 = OpExtInst %half %19 Sin %20
                OpStore %res %18
diff --git a/test/tint/builtins/gen/var/sin/66a59f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/sin/66a59f.wgsl.expected.wgsl
index 1a0c77e..41a2b0c 100644
--- a/test/tint/builtins/gen/var/sin/66a59f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/sin/66a59f.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 enable f16;
 
 fn sin_66a59f() {
-  var arg_0 = 1.0h;
+  var arg_0 = 1.5703125h;
   var res : f16 = sin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/sin/67b03c.wgsl b/test/tint/builtins/gen/var/sin/67b03c.wgsl
index da705d3..f1699d3 100644
--- a/test/tint/builtins/gen/var/sin/67b03c.wgsl
+++ b/test/tint/builtins/gen/var/sin/67b03c.wgsl
@@ -23,7 +23,7 @@
 
 // fn sin(vec<3, fa>) -> vec<3, fa>
 fn sin_67b03c() {
-  const arg_0 = vec3(1.);
+  const arg_0 = vec3(1.57079632679);
   var res = sin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/sin/67b03c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/sin/67b03c.wgsl.expected.dxc.hlsl
index 90603d1..bf66046 100644
--- a/test/tint/builtins/gen/var/sin/67b03c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sin/67b03c.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void sin_67b03c() {
-  float3 res = (0.841470957f).xxx;
+  float3 res = (1.0f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/sin/67b03c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/sin/67b03c.wgsl.expected.fxc.hlsl
index 90603d1..bf66046 100644
--- a/test/tint/builtins/gen/var/sin/67b03c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sin/67b03c.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void sin_67b03c() {
-  float3 res = (0.841470957f).xxx;
+  float3 res = (1.0f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/sin/67b03c.wgsl.expected.glsl b/test/tint/builtins/gen/var/sin/67b03c.wgsl.expected.glsl
index aa3e311..efc102b 100644
--- a/test/tint/builtins/gen/var/sin/67b03c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/sin/67b03c.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void sin_67b03c() {
-  vec3 res = vec3(0.841470957f);
+  vec3 res = vec3(1.0f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void sin_67b03c() {
-  vec3 res = vec3(0.841470957f);
+  vec3 res = vec3(1.0f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void sin_67b03c() {
-  vec3 res = vec3(0.841470957f);
+  vec3 res = vec3(1.0f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/sin/67b03c.wgsl.expected.msl b/test/tint/builtins/gen/var/sin/67b03c.wgsl.expected.msl
index 8b83077..4259105 100644
--- a/test/tint/builtins/gen/var/sin/67b03c.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/sin/67b03c.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void sin_67b03c() {
-  float3 res = float3(0.841470957f);
+  float3 res = float3(1.0f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/sin/67b03c.wgsl.expected.spvasm b/test/tint/builtins/gen/var/sin/67b03c.wgsl.expected.spvasm
index 78483fe..92f2307 100644
--- a/test/tint/builtins/gen/var/sin/67b03c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/sin/67b03c.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_0_841470957 = OpConstant %float 0.841470957
-         %15 = OpConstantComposite %v3float %float_0_841470957 %float_0_841470957 %float_0_841470957
+    %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
  %sin_67b03c = 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 %sin_67b03c
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %sin_67b03c
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %sin_67b03c
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %sin_67b03c
                OpReturn
                OpFunctionEnd
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 a7c2a90..90a5999 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.0);
+  const arg_0 = vec3(1.57079632679);
   var res = sin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/sin/68d3ab.wgsl b/test/tint/builtins/gen/var/sin/68d3ab.wgsl
index 4c1ee6b..c7dfb7e 100644
--- a/test/tint/builtins/gen/var/sin/68d3ab.wgsl
+++ b/test/tint/builtins/gen/var/sin/68d3ab.wgsl
@@ -23,7 +23,7 @@
 
 // fn sin(vec<2, fa>) -> vec<2, fa>
 fn sin_68d3ab() {
-  const arg_0 = vec2(1.);
+  const arg_0 = vec2(1.57079632679);
   var res = sin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/sin/68d3ab.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/sin/68d3ab.wgsl.expected.dxc.hlsl
index e6a7d5a..0d3ff42 100644
--- a/test/tint/builtins/gen/var/sin/68d3ab.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sin/68d3ab.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void sin_68d3ab() {
-  float2 res = (0.841470957f).xx;
+  float2 res = (1.0f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/sin/68d3ab.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/sin/68d3ab.wgsl.expected.fxc.hlsl
index e6a7d5a..0d3ff42 100644
--- a/test/tint/builtins/gen/var/sin/68d3ab.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sin/68d3ab.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void sin_68d3ab() {
-  float2 res = (0.841470957f).xx;
+  float2 res = (1.0f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/sin/68d3ab.wgsl.expected.glsl b/test/tint/builtins/gen/var/sin/68d3ab.wgsl.expected.glsl
index 6735f51..497f2b9 100644
--- a/test/tint/builtins/gen/var/sin/68d3ab.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/sin/68d3ab.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void sin_68d3ab() {
-  vec2 res = vec2(0.841470957f);
+  vec2 res = vec2(1.0f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void sin_68d3ab() {
-  vec2 res = vec2(0.841470957f);
+  vec2 res = vec2(1.0f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void sin_68d3ab() {
-  vec2 res = vec2(0.841470957f);
+  vec2 res = vec2(1.0f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/sin/68d3ab.wgsl.expected.msl b/test/tint/builtins/gen/var/sin/68d3ab.wgsl.expected.msl
index e10514f..09e83ba 100644
--- a/test/tint/builtins/gen/var/sin/68d3ab.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/sin/68d3ab.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void sin_68d3ab() {
-  float2 res = float2(0.841470957f);
+  float2 res = float2(1.0f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/sin/68d3ab.wgsl.expected.spvasm b/test/tint/builtins/gen/var/sin/68d3ab.wgsl.expected.spvasm
index 32dd535..3570bbb 100644
--- a/test/tint/builtins/gen/var/sin/68d3ab.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/sin/68d3ab.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_0_841470957 = OpConstant %float 0.841470957
-         %15 = OpConstantComposite %v2float %float_0_841470957 %float_0_841470957
+    %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
  %sin_68d3ab = 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 %sin_68d3ab
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %sin_68d3ab
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %sin_68d3ab
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %sin_68d3ab
                OpReturn
                OpFunctionEnd
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 26fc3f9..3c50c9c 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.0);
+  const arg_0 = vec2(1.57079632679);
   var res = sin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/sin/a9ab19.wgsl b/test/tint/builtins/gen/var/sin/a9ab19.wgsl
index 88e9aad..ce2e908 100644
--- a/test/tint/builtins/gen/var/sin/a9ab19.wgsl
+++ b/test/tint/builtins/gen/var/sin/a9ab19.wgsl
@@ -23,7 +23,7 @@
 
 // fn sin(fa) -> fa
 fn sin_a9ab19() {
-  const arg_0 = 1.;
+  const arg_0 = 1.57079632679;
   var res = sin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/sin/a9ab19.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/sin/a9ab19.wgsl.expected.dxc.hlsl
index f36fe78..1565ebc 100644
--- a/test/tint/builtins/gen/var/sin/a9ab19.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sin/a9ab19.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void sin_a9ab19() {
-  float res = 0.841470957f;
+  float res = 1.0f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/sin/a9ab19.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/sin/a9ab19.wgsl.expected.fxc.hlsl
index f36fe78..1565ebc 100644
--- a/test/tint/builtins/gen/var/sin/a9ab19.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sin/a9ab19.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void sin_a9ab19() {
-  float res = 0.841470957f;
+  float res = 1.0f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/sin/a9ab19.wgsl.expected.glsl b/test/tint/builtins/gen/var/sin/a9ab19.wgsl.expected.glsl
index f6a5e5a..1a38190 100644
--- a/test/tint/builtins/gen/var/sin/a9ab19.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/sin/a9ab19.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void sin_a9ab19() {
-  float res = 0.841470957f;
+  float res = 1.0f;
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void sin_a9ab19() {
-  float res = 0.841470957f;
+  float res = 1.0f;
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void sin_a9ab19() {
-  float res = 0.841470957f;
+  float res = 1.0f;
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/sin/a9ab19.wgsl.expected.msl b/test/tint/builtins/gen/var/sin/a9ab19.wgsl.expected.msl
index 3c5cb44..0e408a0 100644
--- a/test/tint/builtins/gen/var/sin/a9ab19.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/sin/a9ab19.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void sin_a9ab19() {
-  float res = 0.841470957f;
+  float res = 1.0f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/sin/a9ab19.wgsl.expected.spvasm b/test/tint/builtins/gen/var/sin/a9ab19.wgsl.expected.spvasm
index f340597..ccf3764 100644
--- a/test/tint/builtins/gen/var/sin/a9ab19.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/sin/a9ab19.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_0_841470957 = OpConstant %float 0.841470957
+    %float_1 = OpConstant %float 1
 %_ptr_Function_float = OpTypePointer Function %float
          %16 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
  %sin_a9ab19 = OpFunction %void None %9
          %12 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
-               OpStore %res %float_0_841470957
+               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 %sin_a9ab19
+         %24 = OpLabel
+         %25 = OpFunctionCall %void %sin_a9ab19
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %sin_a9ab19
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %sin_a9ab19
                OpReturn
                OpFunctionEnd
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 1bcc280..7082312 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.0;
+  const arg_0 = 1.57079632679;
   var res = sin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/sin/b78c91.wgsl b/test/tint/builtins/gen/var/sin/b78c91.wgsl
index f33be14..1818cb0 100644
--- a/test/tint/builtins/gen/var/sin/b78c91.wgsl
+++ b/test/tint/builtins/gen/var/sin/b78c91.wgsl
@@ -23,7 +23,7 @@
 
 // fn sin(f32) -> f32
 fn sin_b78c91() {
-  var arg_0 = 1.f;
+  var arg_0 = 1.57079632679f;
   var res: f32 = 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 001dc1b..3e57eae 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.0f;
+  float arg_0 = 1.570796371f;
   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 001dc1b..3e57eae 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.0f;
+  float arg_0 = 1.570796371f;
   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 97f9d76..6ee0d9d 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.0f;
+  float arg_0 = 1.570796371f;
   float res = sin(arg_0);
 }
 
@@ -22,7 +22,7 @@
 precision mediump float;
 
 void sin_b78c91() {
-  float arg_0 = 1.0f;
+  float arg_0 = 1.570796371f;
   float res = sin(arg_0);
 }
 
@@ -37,7 +37,7 @@
 #version 310 es
 
 void sin_b78c91() {
-  float arg_0 = 1.0f;
+  float arg_0 = 1.570796371f;
   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 8aaa9f7..7080b14 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.0f;
+  float arg_0 = 1.570796371f;
   float res = sin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/sin/b78c91.wgsl.expected.spvasm b/test/tint/builtins/gen/var/sin/b78c91.wgsl.expected.spvasm
index 4b31113..2dfccb7 100644
--- a/test/tint/builtins/gen/var/sin/b78c91.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/sin/b78c91.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 33
+; Bound: 34
 ; Schema: 0
                OpCapability Shader
          %17 = OpExtInstImport "GLSL.std.450"
@@ -32,14 +32,15 @@
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
-    %float_1 = OpConstant %float 1
+%float_1_57079637 = OpConstant %float 1.57079637
 %_ptr_Function_float = OpTypePointer Function %float
          %20 = OpTypeFunction %v4float
+    %float_1 = OpConstant %float 1
  %sin_b78c91 = OpFunction %void None %9
          %12 = OpLabel
       %arg_0 = OpVariable %_ptr_Function_float Function %8
         %res = OpVariable %_ptr_Function_float Function %8
-               OpStore %arg_0 %float_1
+               OpStore %arg_0 %float_1_57079637
          %18 = OpLoad %float %arg_0
          %16 = OpExtInst %float %17 Sin %18
                OpStore %res %16
@@ -58,12 +59,12 @@
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %sin_b78c91
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %sin_b78c91
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %sin_b78c91
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %sin_b78c91
                OpReturn
                OpFunctionEnd
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 ea62dd3..10619d1 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.0f;
+  var arg_0 = 1.570796371f;
   var res : f32 = sin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/sin/fc8bc4.wgsl b/test/tint/builtins/gen/var/sin/fc8bc4.wgsl
index fa779cc..b04e5d7 100644
--- a/test/tint/builtins/gen/var/sin/fc8bc4.wgsl
+++ b/test/tint/builtins/gen/var/sin/fc8bc4.wgsl
@@ -23,7 +23,7 @@
 
 // fn sin(vec<2, f32>) -> vec<2, f32>
 fn sin_fc8bc4() {
-  var arg_0 = vec2<f32>(1.f);
+  var arg_0 = vec2<f32>(1.57079632679f);
   var res: vec2<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 abef57b..1bb1b57 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.0f).xx;
+  float2 arg_0 = (1.570796371f).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 abef57b..1bb1b57 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.0f).xx;
+  float2 arg_0 = (1.570796371f).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 e1341c0..e7c0817 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.0f);
+  vec2 arg_0 = vec2(1.570796371f);
   vec2 res = sin(arg_0);
 }
 
@@ -22,7 +22,7 @@
 precision mediump float;
 
 void sin_fc8bc4() {
-  vec2 arg_0 = vec2(1.0f);
+  vec2 arg_0 = vec2(1.570796371f);
   vec2 res = sin(arg_0);
 }
 
@@ -37,7 +37,7 @@
 #version 310 es
 
 void sin_fc8bc4() {
-  vec2 arg_0 = vec2(1.0f);
+  vec2 arg_0 = vec2(1.570796371f);
   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 d303ffe..4371a51 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.0f);
+  float2 arg_0 = float2(1.570796371f);
   float2 res = sin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/sin/fc8bc4.wgsl.expected.spvasm b/test/tint/builtins/gen/var/sin/fc8bc4.wgsl.expected.spvasm
index add6aea..68801e7 100644
--- a/test/tint/builtins/gen/var/sin/fc8bc4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/sin/fc8bc4.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 36
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
          %20 = OpExtInstImport "GLSL.std.450"
@@ -33,11 +33,12 @@
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-    %float_1 = OpConstant %float 1
-         %15 = OpConstantComposite %v2float %float_1 %float_1
+%float_1_57079637 = OpConstant %float 1.57079637
+         %15 = OpConstantComposite %v2float %float_1_57079637 %float_1_57079637
 %_ptr_Function_v2float = OpTypePointer Function %v2float
          %18 = OpConstantNull %v2float
          %23 = OpTypeFunction %v4float
+    %float_1 = OpConstant %float 1
  %sin_fc8bc4 = OpFunction %void None %9
          %12 = OpLabel
       %arg_0 = OpVariable %_ptr_Function_v2float Function %18
@@ -61,12 +62,12 @@
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %sin_fc8bc4
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %sin_fc8bc4
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %sin_fc8bc4
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %sin_fc8bc4
                OpReturn
                OpFunctionEnd
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 ada8019..8cfef1d 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.0f);
+  var arg_0 = vec2<f32>(1.570796371f);
   var res : vec2<f32> = sin(arg_0);
 }