diff --git a/src/tint/intrinsics.def b/src/tint/intrinsics.def
index 90766cc..45e7186 100644
--- a/src/tint/intrinsics.def
+++ b/src/tint/intrinsics.def
@@ -415,8 +415,8 @@
 fn any(bool) -> bool
 fn any<N: num>(vec<N, bool>) -> bool
 fn arrayLength<T, A: access>(ptr<storage, array<T>, A>) -> u32
-@const fn asin<T: fa_f32_f16>(T) -> T
-@const fn asin<N: num, T: fa_f32_f16>(vec<N, T>) -> vec<N, T>
+@const fn asin<T: fa_f32_f16>(@test_value(0.479425538604) T) -> T
+@const fn asin<N: num, T: fa_f32_f16>(@test_value(0.479425538604) vec<N, T>) -> vec<N, T>
 @const fn asinh<T: fa_f32_f16>(T) -> T
 @const fn asinh<N: num, T: fa_f32_f16>(vec<N, T>) -> vec<N, T>
 @const fn atan<T: fa_f32_f16>(T) -> T
diff --git a/src/tint/resolver/intrinsic_table.inl b/src/tint/resolver/intrinsic_table.inl
index 826307d..f2c9bdf 100644
--- a/src/tint/resolver/intrinsic_table.inl
+++ b/src/tint/resolver/intrinsic_table.inl
@@ -14020,8 +14020,8 @@
   },
   {
     /* [6] */
-    /* fn asin<T : fa_f32_f16>(T) -> T */
-    /* fn asin<N : num, T : fa_f32_f16>(vec<N, T>) -> vec<N, T> */
+    /* fn asin<T : fa_f32_f16>(@test_value(0.479425538604) T) -> T */
+    /* fn asin<N : num, T : fa_f32_f16>(@test_value(0.479425538604) vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
     /* overloads */ &kOverloads[324],
   },
diff --git a/test/tint/builtins/gen/literal/asin/064953.wgsl b/test/tint/builtins/gen/literal/asin/064953.wgsl
index 46e87dd..cf8e240 100644
--- a/test/tint/builtins/gen/literal/asin/064953.wgsl
+++ b/test/tint/builtins/gen/literal/asin/064953.wgsl
@@ -23,7 +23,7 @@
 
 // fn asin(vec<4, f32>) -> vec<4, f32>
 fn asin_064953() {
-  var res: vec4<f32> = asin(vec4<f32>(1.f));
+  var res: vec4<f32> = asin(vec4<f32>(0.479425538604f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/asin/064953.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/asin/064953.wgsl.expected.dxc.hlsl
index 2d44087..4ae1669 100644
--- a/test/tint/builtins/gen/literal/asin/064953.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/asin/064953.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void asin_064953() {
-  float4 res = (1.570796371f).xxxx;
+  float4 res = (0.5f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/asin/064953.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/asin/064953.wgsl.expected.fxc.hlsl
index 2d44087..4ae1669 100644
--- a/test/tint/builtins/gen/literal/asin/064953.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/asin/064953.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void asin_064953() {
-  float4 res = (1.570796371f).xxxx;
+  float4 res = (0.5f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/asin/064953.wgsl.expected.glsl b/test/tint/builtins/gen/literal/asin/064953.wgsl.expected.glsl
index bcc19a9..d1f38ac 100644
--- a/test/tint/builtins/gen/literal/asin/064953.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/asin/064953.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void asin_064953() {
-  vec4 res = vec4(1.570796371f);
+  vec4 res = vec4(0.5f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void asin_064953() {
-  vec4 res = vec4(1.570796371f);
+  vec4 res = vec4(0.5f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void asin_064953() {
-  vec4 res = vec4(1.570796371f);
+  vec4 res = vec4(0.5f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/asin/064953.wgsl.expected.msl b/test/tint/builtins/gen/literal/asin/064953.wgsl.expected.msl
index 36ee242..b395eeb 100644
--- a/test/tint/builtins/gen/literal/asin/064953.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/asin/064953.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void asin_064953() {
-  float4 res = float4(1.570796371f);
+  float4 res = float4(0.5f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/asin/064953.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/asin/064953.wgsl.expected.spvasm
index c8f3ca5..764a9df 100644
--- a/test/tint/builtins/gen/literal/asin/064953.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/asin/064953.wgsl.expected.spvasm
@@ -30,8 +30,8 @@
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
-%float_1_57079637 = OpConstant %float 1.57079637
-         %14 = OpConstantComposite %v4float %float_1_57079637 %float_1_57079637 %float_1_57079637 %float_1_57079637
+  %float_0_5 = OpConstant %float 0.5
+         %14 = OpConstantComposite %v4float %float_0_5 %float_0_5 %float_0_5 %float_0_5
 %_ptr_Function_v4float = OpTypePointer Function %v4float
          %17 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
diff --git a/test/tint/builtins/gen/literal/asin/064953.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/asin/064953.wgsl.expected.wgsl
index 319b1fc..bc5d1dc 100644
--- a/test/tint/builtins/gen/literal/asin/064953.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/asin/064953.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn asin_064953() {
-  var res : vec4<f32> = asin(vec4<f32>(1.0f));
+  var res : vec4<f32> = asin(vec4<f32>(0.47942555f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/asin/0bac07.wgsl b/test/tint/builtins/gen/literal/asin/0bac07.wgsl
index 86c8974..49508db 100644
--- a/test/tint/builtins/gen/literal/asin/0bac07.wgsl
+++ b/test/tint/builtins/gen/literal/asin/0bac07.wgsl
@@ -23,7 +23,7 @@
 
 // fn asin(vec<3, fa>) -> vec<3, fa>
 fn asin_0bac07() {
-  var res = asin(vec3(1));
+  var res = asin(vec3(0.479425538604));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/asin/0bac07.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/asin/0bac07.wgsl.expected.dxc.hlsl
index 608f09a..96bd88a 100644
--- a/test/tint/builtins/gen/literal/asin/0bac07.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/asin/0bac07.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void asin_0bac07() {
-  float3 res = (1.570796371f).xxx;
+  float3 res = (0.5f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/asin/0bac07.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/asin/0bac07.wgsl.expected.fxc.hlsl
index 608f09a..96bd88a 100644
--- a/test/tint/builtins/gen/literal/asin/0bac07.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/asin/0bac07.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void asin_0bac07() {
-  float3 res = (1.570796371f).xxx;
+  float3 res = (0.5f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/asin/0bac07.wgsl.expected.glsl b/test/tint/builtins/gen/literal/asin/0bac07.wgsl.expected.glsl
index 9e69859..5efe560 100644
--- a/test/tint/builtins/gen/literal/asin/0bac07.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/asin/0bac07.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void asin_0bac07() {
-  vec3 res = vec3(1.570796371f);
+  vec3 res = vec3(0.5f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void asin_0bac07() {
-  vec3 res = vec3(1.570796371f);
+  vec3 res = vec3(0.5f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void asin_0bac07() {
-  vec3 res = vec3(1.570796371f);
+  vec3 res = vec3(0.5f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/asin/0bac07.wgsl.expected.msl b/test/tint/builtins/gen/literal/asin/0bac07.wgsl.expected.msl
index e0cbee7..6ac2e66 100644
--- a/test/tint/builtins/gen/literal/asin/0bac07.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/asin/0bac07.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void asin_0bac07() {
-  float3 res = float3(1.570796371f);
+  float3 res = float3(0.5f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/asin/0bac07.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/asin/0bac07.wgsl.expected.spvasm
index cfd553c..fa761df 100644
--- a/test/tint/builtins/gen/literal/asin/0bac07.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/asin/0bac07.wgsl.expected.spvasm
@@ -31,8 +31,8 @@
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
-%float_1_57079637 = OpConstant %float 1.57079637
-         %15 = OpConstantComposite %v3float %float_1_57079637 %float_1_57079637 %float_1_57079637
+  %float_0_5 = OpConstant %float 0.5
+         %15 = OpConstantComposite %v3float %float_0_5 %float_0_5 %float_0_5
 %_ptr_Function_v3float = OpTypePointer Function %v3float
          %18 = OpConstantNull %v3float
          %19 = OpTypeFunction %v4float
diff --git a/test/tint/builtins/gen/literal/asin/0bac07.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/asin/0bac07.wgsl.expected.wgsl
index 16dfa03..a283860 100644
--- a/test/tint/builtins/gen/literal/asin/0bac07.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/asin/0bac07.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn asin_0bac07() {
-  var res = asin(vec3(1));
+  var res = asin(vec3(0.479425538604));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/asin/64bb1f.wgsl b/test/tint/builtins/gen/literal/asin/64bb1f.wgsl
index 7203359..650172c 100644
--- a/test/tint/builtins/gen/literal/asin/64bb1f.wgsl
+++ b/test/tint/builtins/gen/literal/asin/64bb1f.wgsl
@@ -23,7 +23,7 @@
 
 // fn asin(vec<4, fa>) -> vec<4, fa>
 fn asin_64bb1f() {
-  var res = asin(vec4(1));
+  var res = asin(vec4(0.479425538604));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/asin/64bb1f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/asin/64bb1f.wgsl.expected.dxc.hlsl
index b0ffa27..1ee8601 100644
--- a/test/tint/builtins/gen/literal/asin/64bb1f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/asin/64bb1f.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void asin_64bb1f() {
-  float4 res = (1.570796371f).xxxx;
+  float4 res = (0.5f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/asin/64bb1f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/asin/64bb1f.wgsl.expected.fxc.hlsl
index b0ffa27..1ee8601 100644
--- a/test/tint/builtins/gen/literal/asin/64bb1f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/asin/64bb1f.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void asin_64bb1f() {
-  float4 res = (1.570796371f).xxxx;
+  float4 res = (0.5f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/asin/64bb1f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/asin/64bb1f.wgsl.expected.glsl
index e0df067..9483665 100644
--- a/test/tint/builtins/gen/literal/asin/64bb1f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/asin/64bb1f.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void asin_64bb1f() {
-  vec4 res = vec4(1.570796371f);
+  vec4 res = vec4(0.5f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void asin_64bb1f() {
-  vec4 res = vec4(1.570796371f);
+  vec4 res = vec4(0.5f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void asin_64bb1f() {
-  vec4 res = vec4(1.570796371f);
+  vec4 res = vec4(0.5f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/asin/64bb1f.wgsl.expected.msl b/test/tint/builtins/gen/literal/asin/64bb1f.wgsl.expected.msl
index 16110b4..5f0a2a9 100644
--- a/test/tint/builtins/gen/literal/asin/64bb1f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/asin/64bb1f.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void asin_64bb1f() {
-  float4 res = float4(1.570796371f);
+  float4 res = float4(0.5f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/asin/64bb1f.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/asin/64bb1f.wgsl.expected.spvasm
index d6923f3..a85e0e2 100644
--- a/test/tint/builtins/gen/literal/asin/64bb1f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/asin/64bb1f.wgsl.expected.spvasm
@@ -30,8 +30,8 @@
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
-%float_1_57079637 = OpConstant %float 1.57079637
-         %14 = OpConstantComposite %v4float %float_1_57079637 %float_1_57079637 %float_1_57079637 %float_1_57079637
+  %float_0_5 = OpConstant %float 0.5
+         %14 = OpConstantComposite %v4float %float_0_5 %float_0_5 %float_0_5 %float_0_5
 %_ptr_Function_v4float = OpTypePointer Function %v4float
          %17 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
diff --git a/test/tint/builtins/gen/literal/asin/64bb1f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/asin/64bb1f.wgsl.expected.wgsl
index 4c3b363..f6ce56f 100644
--- a/test/tint/builtins/gen/literal/asin/64bb1f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/asin/64bb1f.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn asin_64bb1f() {
-  var res = asin(vec4(1));
+  var res = asin(vec4(0.479425538604));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/asin/7b6a44.wgsl b/test/tint/builtins/gen/literal/asin/7b6a44.wgsl
index 95988bb..83a9590 100644
--- a/test/tint/builtins/gen/literal/asin/7b6a44.wgsl
+++ b/test/tint/builtins/gen/literal/asin/7b6a44.wgsl
@@ -23,7 +23,7 @@
 
 // fn asin(vec<2, f32>) -> vec<2, f32>
 fn asin_7b6a44() {
-  var res: vec2<f32> = asin(vec2<f32>(1.f));
+  var res: vec2<f32> = asin(vec2<f32>(0.479425538604f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/asin/7b6a44.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/asin/7b6a44.wgsl.expected.dxc.hlsl
index 9eee327..53e20d3 100644
--- a/test/tint/builtins/gen/literal/asin/7b6a44.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/asin/7b6a44.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void asin_7b6a44() {
-  float2 res = (1.570796371f).xx;
+  float2 res = (0.5f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/asin/7b6a44.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/asin/7b6a44.wgsl.expected.fxc.hlsl
index 9eee327..53e20d3 100644
--- a/test/tint/builtins/gen/literal/asin/7b6a44.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/asin/7b6a44.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void asin_7b6a44() {
-  float2 res = (1.570796371f).xx;
+  float2 res = (0.5f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/asin/7b6a44.wgsl.expected.glsl b/test/tint/builtins/gen/literal/asin/7b6a44.wgsl.expected.glsl
index 84f8769..2a7d93d 100644
--- a/test/tint/builtins/gen/literal/asin/7b6a44.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/asin/7b6a44.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void asin_7b6a44() {
-  vec2 res = vec2(1.570796371f);
+  vec2 res = vec2(0.5f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void asin_7b6a44() {
-  vec2 res = vec2(1.570796371f);
+  vec2 res = vec2(0.5f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void asin_7b6a44() {
-  vec2 res = vec2(1.570796371f);
+  vec2 res = vec2(0.5f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/asin/7b6a44.wgsl.expected.msl b/test/tint/builtins/gen/literal/asin/7b6a44.wgsl.expected.msl
index 5dcdbd6..bd3f146 100644
--- a/test/tint/builtins/gen/literal/asin/7b6a44.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/asin/7b6a44.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void asin_7b6a44() {
-  float2 res = float2(1.570796371f);
+  float2 res = float2(0.5f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/asin/7b6a44.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/asin/7b6a44.wgsl.expected.spvasm
index 01384ca..9d65d1e 100644
--- a/test/tint/builtins/gen/literal/asin/7b6a44.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/asin/7b6a44.wgsl.expected.spvasm
@@ -31,8 +31,8 @@
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-%float_1_57079637 = OpConstant %float 1.57079637
-         %15 = OpConstantComposite %v2float %float_1_57079637 %float_1_57079637
+  %float_0_5 = OpConstant %float 0.5
+         %15 = OpConstantComposite %v2float %float_0_5 %float_0_5
 %_ptr_Function_v2float = OpTypePointer Function %v2float
          %18 = OpConstantNull %v2float
          %19 = OpTypeFunction %v4float
diff --git a/test/tint/builtins/gen/literal/asin/7b6a44.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/asin/7b6a44.wgsl.expected.wgsl
index c1c0a65..77b8ae2 100644
--- a/test/tint/builtins/gen/literal/asin/7b6a44.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/asin/7b6a44.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn asin_7b6a44() {
-  var res : vec2<f32> = asin(vec2<f32>(1.0f));
+  var res : vec2<f32> = asin(vec2<f32>(0.47942555f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/asin/8cd9c9.wgsl b/test/tint/builtins/gen/literal/asin/8cd9c9.wgsl
index 2ddafc1..4e43588 100644
--- a/test/tint/builtins/gen/literal/asin/8cd9c9.wgsl
+++ b/test/tint/builtins/gen/literal/asin/8cd9c9.wgsl
@@ -23,7 +23,7 @@
 
 // fn asin(vec<3, f32>) -> vec<3, f32>
 fn asin_8cd9c9() {
-  var res: vec3<f32> = asin(vec3<f32>(1.f));
+  var res: vec3<f32> = asin(vec3<f32>(0.479425538604f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/asin/8cd9c9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/asin/8cd9c9.wgsl.expected.dxc.hlsl
index 75d4553..3d16011 100644
--- a/test/tint/builtins/gen/literal/asin/8cd9c9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/asin/8cd9c9.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void asin_8cd9c9() {
-  float3 res = (1.570796371f).xxx;
+  float3 res = (0.5f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/asin/8cd9c9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/asin/8cd9c9.wgsl.expected.fxc.hlsl
index 75d4553..3d16011 100644
--- a/test/tint/builtins/gen/literal/asin/8cd9c9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/asin/8cd9c9.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void asin_8cd9c9() {
-  float3 res = (1.570796371f).xxx;
+  float3 res = (0.5f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/asin/8cd9c9.wgsl.expected.glsl b/test/tint/builtins/gen/literal/asin/8cd9c9.wgsl.expected.glsl
index 0bdddba..605d90c 100644
--- a/test/tint/builtins/gen/literal/asin/8cd9c9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/asin/8cd9c9.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void asin_8cd9c9() {
-  vec3 res = vec3(1.570796371f);
+  vec3 res = vec3(0.5f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void asin_8cd9c9() {
-  vec3 res = vec3(1.570796371f);
+  vec3 res = vec3(0.5f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void asin_8cd9c9() {
-  vec3 res = vec3(1.570796371f);
+  vec3 res = vec3(0.5f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/asin/8cd9c9.wgsl.expected.msl b/test/tint/builtins/gen/literal/asin/8cd9c9.wgsl.expected.msl
index f16f510..c9bf2ec 100644
--- a/test/tint/builtins/gen/literal/asin/8cd9c9.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/asin/8cd9c9.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void asin_8cd9c9() {
-  float3 res = float3(1.570796371f);
+  float3 res = float3(0.5f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/asin/8cd9c9.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/asin/8cd9c9.wgsl.expected.spvasm
index 29deb8f..ae00642 100644
--- a/test/tint/builtins/gen/literal/asin/8cd9c9.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/asin/8cd9c9.wgsl.expected.spvasm
@@ -31,8 +31,8 @@
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
-%float_1_57079637 = OpConstant %float 1.57079637
-         %15 = OpConstantComposite %v3float %float_1_57079637 %float_1_57079637 %float_1_57079637
+  %float_0_5 = OpConstant %float 0.5
+         %15 = OpConstantComposite %v3float %float_0_5 %float_0_5 %float_0_5
 %_ptr_Function_v3float = OpTypePointer Function %v3float
          %18 = OpConstantNull %v3float
          %19 = OpTypeFunction %v4float
diff --git a/test/tint/builtins/gen/literal/asin/8cd9c9.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/asin/8cd9c9.wgsl.expected.wgsl
index 5000fc0..8d19bf5 100644
--- a/test/tint/builtins/gen/literal/asin/8cd9c9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/asin/8cd9c9.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn asin_8cd9c9() {
-  var res : vec3<f32> = asin(vec3<f32>(1.0f));
+  var res : vec3<f32> = asin(vec3<f32>(0.47942555f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/asin/a5dd88.wgsl b/test/tint/builtins/gen/literal/asin/a5dd88.wgsl
index 979cbc1..be8c51f 100644
--- a/test/tint/builtins/gen/literal/asin/a5dd88.wgsl
+++ b/test/tint/builtins/gen/literal/asin/a5dd88.wgsl
@@ -23,7 +23,7 @@
 
 // fn asin(vec<2, fa>) -> vec<2, fa>
 fn asin_a5dd88() {
-  var res = asin(vec2(1));
+  var res = asin(vec2(0.479425538604));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/asin/a5dd88.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/asin/a5dd88.wgsl.expected.dxc.hlsl
index 4c2a5a8..d910dc9 100644
--- a/test/tint/builtins/gen/literal/asin/a5dd88.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/asin/a5dd88.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void asin_a5dd88() {
-  float2 res = (1.570796371f).xx;
+  float2 res = (0.5f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/asin/a5dd88.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/asin/a5dd88.wgsl.expected.fxc.hlsl
index 4c2a5a8..d910dc9 100644
--- a/test/tint/builtins/gen/literal/asin/a5dd88.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/asin/a5dd88.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void asin_a5dd88() {
-  float2 res = (1.570796371f).xx;
+  float2 res = (0.5f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/asin/a5dd88.wgsl.expected.glsl b/test/tint/builtins/gen/literal/asin/a5dd88.wgsl.expected.glsl
index f1b5b4b..6b8eb2f 100644
--- a/test/tint/builtins/gen/literal/asin/a5dd88.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/asin/a5dd88.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void asin_a5dd88() {
-  vec2 res = vec2(1.570796371f);
+  vec2 res = vec2(0.5f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void asin_a5dd88() {
-  vec2 res = vec2(1.570796371f);
+  vec2 res = vec2(0.5f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void asin_a5dd88() {
-  vec2 res = vec2(1.570796371f);
+  vec2 res = vec2(0.5f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/asin/a5dd88.wgsl.expected.msl b/test/tint/builtins/gen/literal/asin/a5dd88.wgsl.expected.msl
index 2657d37..11e4d2d 100644
--- a/test/tint/builtins/gen/literal/asin/a5dd88.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/asin/a5dd88.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void asin_a5dd88() {
-  float2 res = float2(1.570796371f);
+  float2 res = float2(0.5f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/asin/a5dd88.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/asin/a5dd88.wgsl.expected.spvasm
index 2330120..a30cfac 100644
--- a/test/tint/builtins/gen/literal/asin/a5dd88.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/asin/a5dd88.wgsl.expected.spvasm
@@ -31,8 +31,8 @@
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-%float_1_57079637 = OpConstant %float 1.57079637
-         %15 = OpConstantComposite %v2float %float_1_57079637 %float_1_57079637
+  %float_0_5 = OpConstant %float 0.5
+         %15 = OpConstantComposite %v2float %float_0_5 %float_0_5
 %_ptr_Function_v2float = OpTypePointer Function %v2float
          %18 = OpConstantNull %v2float
          %19 = OpTypeFunction %v4float
diff --git a/test/tint/builtins/gen/literal/asin/a5dd88.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/asin/a5dd88.wgsl.expected.wgsl
index 224b65f..e7aacda 100644
--- a/test/tint/builtins/gen/literal/asin/a5dd88.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/asin/a5dd88.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn asin_a5dd88() {
-  var res = asin(vec2(1));
+  var res = asin(vec2(0.479425538604));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/asin/a6d73a.wgsl b/test/tint/builtins/gen/literal/asin/a6d73a.wgsl
index cc4f936..2f61303 100644
--- a/test/tint/builtins/gen/literal/asin/a6d73a.wgsl
+++ b/test/tint/builtins/gen/literal/asin/a6d73a.wgsl
@@ -23,7 +23,7 @@
 
 // fn asin(fa) -> fa
 fn asin_a6d73a() {
-  var res = asin(1);
+  var res = asin(0.479425538604);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/asin/a6d73a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/asin/a6d73a.wgsl.expected.dxc.hlsl
index 980100b..5e01eb0 100644
--- a/test/tint/builtins/gen/literal/asin/a6d73a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/asin/a6d73a.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void asin_a6d73a() {
-  float res = 1.570796371f;
+  float res = 0.5f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/asin/a6d73a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/asin/a6d73a.wgsl.expected.fxc.hlsl
index 980100b..5e01eb0 100644
--- a/test/tint/builtins/gen/literal/asin/a6d73a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/asin/a6d73a.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void asin_a6d73a() {
-  float res = 1.570796371f;
+  float res = 0.5f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/asin/a6d73a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/asin/a6d73a.wgsl.expected.glsl
index 8a6632d..4afa665 100644
--- a/test/tint/builtins/gen/literal/asin/a6d73a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/asin/a6d73a.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void asin_a6d73a() {
-  float res = 1.570796371f;
+  float res = 0.5f;
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void asin_a6d73a() {
-  float res = 1.570796371f;
+  float res = 0.5f;
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void asin_a6d73a() {
-  float res = 1.570796371f;
+  float res = 0.5f;
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/asin/a6d73a.wgsl.expected.msl b/test/tint/builtins/gen/literal/asin/a6d73a.wgsl.expected.msl
index 8f04a36..49fbf73 100644
--- a/test/tint/builtins/gen/literal/asin/a6d73a.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/asin/a6d73a.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void asin_a6d73a() {
-  float res = 1.570796371f;
+  float res = 0.5f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/asin/a6d73a.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/asin/a6d73a.wgsl.expected.spvasm
index 75f8434..c325ec1 100644
--- a/test/tint/builtins/gen/literal/asin/a6d73a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/asin/a6d73a.wgsl.expected.spvasm
@@ -30,14 +30,14 @@
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
-%float_1_57079637 = OpConstant %float 1.57079637
+  %float_0_5 = OpConstant %float 0.5
 %_ptr_Function_float = OpTypePointer Function %float
          %16 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %asin_a6d73a = OpFunction %void None %9
          %12 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
-               OpStore %res %float_1_57079637
+               OpStore %res %float_0_5
                OpReturn
                OpFunctionEnd
 %vertex_main_inner = OpFunction %v4float None %16
diff --git a/test/tint/builtins/gen/literal/asin/a6d73a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/asin/a6d73a.wgsl.expected.wgsl
index 802db5e..09cf49a 100644
--- a/test/tint/builtins/gen/literal/asin/a6d73a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/asin/a6d73a.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn asin_a6d73a() {
-  var res = asin(1);
+  var res = asin(0.479425538604);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/asin/c0c272.wgsl b/test/tint/builtins/gen/literal/asin/c0c272.wgsl
index c97c13f..5739918 100644
--- a/test/tint/builtins/gen/literal/asin/c0c272.wgsl
+++ b/test/tint/builtins/gen/literal/asin/c0c272.wgsl
@@ -23,7 +23,7 @@
 
 // fn asin(f32) -> f32
 fn asin_c0c272() {
-  var res: f32 = asin(1.f);
+  var res: f32 = asin(0.479425538604f);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/asin/c0c272.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/asin/c0c272.wgsl.expected.dxc.hlsl
index ba3e339..6020151 100644
--- a/test/tint/builtins/gen/literal/asin/c0c272.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/asin/c0c272.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void asin_c0c272() {
-  float res = 1.570796371f;
+  float res = 0.5f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/asin/c0c272.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/asin/c0c272.wgsl.expected.fxc.hlsl
index ba3e339..6020151 100644
--- a/test/tint/builtins/gen/literal/asin/c0c272.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/asin/c0c272.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void asin_c0c272() {
-  float res = 1.570796371f;
+  float res = 0.5f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/asin/c0c272.wgsl.expected.glsl b/test/tint/builtins/gen/literal/asin/c0c272.wgsl.expected.glsl
index c27baff..34eb102 100644
--- a/test/tint/builtins/gen/literal/asin/c0c272.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/asin/c0c272.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void asin_c0c272() {
-  float res = 1.570796371f;
+  float res = 0.5f;
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void asin_c0c272() {
-  float res = 1.570796371f;
+  float res = 0.5f;
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void asin_c0c272() {
-  float res = 1.570796371f;
+  float res = 0.5f;
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/asin/c0c272.wgsl.expected.msl b/test/tint/builtins/gen/literal/asin/c0c272.wgsl.expected.msl
index bd5cb2e..58374be 100644
--- a/test/tint/builtins/gen/literal/asin/c0c272.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/asin/c0c272.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void asin_c0c272() {
-  float res = 1.570796371f;
+  float res = 0.5f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/asin/c0c272.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/asin/c0c272.wgsl.expected.spvasm
index c5c51b7..37dd873 100644
--- a/test/tint/builtins/gen/literal/asin/c0c272.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/asin/c0c272.wgsl.expected.spvasm
@@ -30,14 +30,14 @@
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
-%float_1_57079637 = OpConstant %float 1.57079637
+  %float_0_5 = OpConstant %float 0.5
 %_ptr_Function_float = OpTypePointer Function %float
          %16 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %asin_c0c272 = OpFunction %void None %9
          %12 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
-               OpStore %res %float_1_57079637
+               OpStore %res %float_0_5
                OpReturn
                OpFunctionEnd
 %vertex_main_inner = OpFunction %v4float None %16
diff --git a/test/tint/builtins/gen/literal/asin/c0c272.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/asin/c0c272.wgsl.expected.wgsl
index d7dc41e..7e36cce 100644
--- a/test/tint/builtins/gen/literal/asin/c0c272.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/asin/c0c272.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn asin_c0c272() {
-  var res : f32 = asin(1.0f);
+  var res : f32 = asin(0.47942555f);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/var/asin/064953.wgsl b/test/tint/builtins/gen/var/asin/064953.wgsl
index dc35b20..07deb14 100644
--- a/test/tint/builtins/gen/var/asin/064953.wgsl
+++ b/test/tint/builtins/gen/var/asin/064953.wgsl
@@ -23,7 +23,7 @@
 
 // fn asin(vec<4, f32>) -> vec<4, f32>
 fn asin_064953() {
-  var arg_0 = vec4<f32>(1.f);
+  var arg_0 = vec4<f32>(0.479425538604f);
   var res: vec4<f32> = asin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/asin/064953.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/asin/064953.wgsl.expected.dxc.hlsl
index 932c5da..67d9bd3 100644
--- a/test/tint/builtins/gen/var/asin/064953.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/asin/064953.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void asin_064953() {
-  float4 arg_0 = (1.0f).xxxx;
+  float4 arg_0 = (0.47942555f).xxxx;
   float4 res = asin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/asin/064953.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/asin/064953.wgsl.expected.fxc.hlsl
index 932c5da..67d9bd3 100644
--- a/test/tint/builtins/gen/var/asin/064953.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/asin/064953.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void asin_064953() {
-  float4 arg_0 = (1.0f).xxxx;
+  float4 arg_0 = (0.47942555f).xxxx;
   float4 res = asin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/asin/064953.wgsl.expected.glsl b/test/tint/builtins/gen/var/asin/064953.wgsl.expected.glsl
index 26c0c37..68495fb 100644
--- a/test/tint/builtins/gen/var/asin/064953.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/asin/064953.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void asin_064953() {
-  vec4 arg_0 = vec4(1.0f);
+  vec4 arg_0 = vec4(0.47942555f);
   vec4 res = asin(arg_0);
 }
 
@@ -22,7 +22,7 @@
 precision mediump float;
 
 void asin_064953() {
-  vec4 arg_0 = vec4(1.0f);
+  vec4 arg_0 = vec4(0.47942555f);
   vec4 res = asin(arg_0);
 }
 
@@ -37,7 +37,7 @@
 #version 310 es
 
 void asin_064953() {
-  vec4 arg_0 = vec4(1.0f);
+  vec4 arg_0 = vec4(0.47942555f);
   vec4 res = asin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/asin/064953.wgsl.expected.msl b/test/tint/builtins/gen/var/asin/064953.wgsl.expected.msl
index 481b8b1..91f3fe3 100644
--- a/test/tint/builtins/gen/var/asin/064953.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/asin/064953.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void asin_064953() {
-  float4 arg_0 = float4(1.0f);
+  float4 arg_0 = float4(0.47942555f);
   float4 res = asin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/asin/064953.wgsl.expected.spvasm b/test/tint/builtins/gen/var/asin/064953.wgsl.expected.spvasm
index d5813cd..0b9824c 100644
--- a/test/tint/builtins/gen/var/asin/064953.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/asin/064953.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_0_47942555 = OpConstant %float 0.47942555
+         %14 = OpConstantComposite %v4float %float_0_47942555 %float_0_47942555 %float_0_47942555 %float_0_47942555
 %_ptr_Function_v4float = OpTypePointer Function %v4float
          %21 = OpTypeFunction %v4float
+    %float_1 = OpConstant %float 1
 %asin_064953 = 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 %asin_064953
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %asin_064953
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %asin_064953
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %asin_064953
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/asin/064953.wgsl.expected.wgsl b/test/tint/builtins/gen/var/asin/064953.wgsl.expected.wgsl
index 205c94d..61347d7 100644
--- a/test/tint/builtins/gen/var/asin/064953.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/asin/064953.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn asin_064953() {
-  var arg_0 = vec4<f32>(1.0f);
+  var arg_0 = vec4<f32>(0.47942555f);
   var res : vec4<f32> = asin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/asin/0bac07.wgsl b/test/tint/builtins/gen/var/asin/0bac07.wgsl
index 75109aa..d1555eb 100644
--- a/test/tint/builtins/gen/var/asin/0bac07.wgsl
+++ b/test/tint/builtins/gen/var/asin/0bac07.wgsl
@@ -23,7 +23,7 @@
 
 // fn asin(vec<3, fa>) -> vec<3, fa>
 fn asin_0bac07() {
-  const arg_0 = vec3(1);
+  const arg_0 = vec3(0.479425538604);
   var res = asin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/asin/0bac07.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/asin/0bac07.wgsl.expected.dxc.hlsl
index 608f09a..96bd88a 100644
--- a/test/tint/builtins/gen/var/asin/0bac07.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/asin/0bac07.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void asin_0bac07() {
-  float3 res = (1.570796371f).xxx;
+  float3 res = (0.5f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/asin/0bac07.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/asin/0bac07.wgsl.expected.fxc.hlsl
index 608f09a..96bd88a 100644
--- a/test/tint/builtins/gen/var/asin/0bac07.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/asin/0bac07.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void asin_0bac07() {
-  float3 res = (1.570796371f).xxx;
+  float3 res = (0.5f).xxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/asin/0bac07.wgsl.expected.glsl b/test/tint/builtins/gen/var/asin/0bac07.wgsl.expected.glsl
index 9e69859..5efe560 100644
--- a/test/tint/builtins/gen/var/asin/0bac07.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/asin/0bac07.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void asin_0bac07() {
-  vec3 res = vec3(1.570796371f);
+  vec3 res = vec3(0.5f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void asin_0bac07() {
-  vec3 res = vec3(1.570796371f);
+  vec3 res = vec3(0.5f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void asin_0bac07() {
-  vec3 res = vec3(1.570796371f);
+  vec3 res = vec3(0.5f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/asin/0bac07.wgsl.expected.msl b/test/tint/builtins/gen/var/asin/0bac07.wgsl.expected.msl
index e0cbee7..6ac2e66 100644
--- a/test/tint/builtins/gen/var/asin/0bac07.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/asin/0bac07.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void asin_0bac07() {
-  float3 res = float3(1.570796371f);
+  float3 res = float3(0.5f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/asin/0bac07.wgsl.expected.spvasm b/test/tint/builtins/gen/var/asin/0bac07.wgsl.expected.spvasm
index cfd553c..fa761df 100644
--- a/test/tint/builtins/gen/var/asin/0bac07.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/asin/0bac07.wgsl.expected.spvasm
@@ -31,8 +31,8 @@
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
-%float_1_57079637 = OpConstant %float 1.57079637
-         %15 = OpConstantComposite %v3float %float_1_57079637 %float_1_57079637 %float_1_57079637
+  %float_0_5 = OpConstant %float 0.5
+         %15 = OpConstantComposite %v3float %float_0_5 %float_0_5 %float_0_5
 %_ptr_Function_v3float = OpTypePointer Function %v3float
          %18 = OpConstantNull %v3float
          %19 = OpTypeFunction %v4float
diff --git a/test/tint/builtins/gen/var/asin/0bac07.wgsl.expected.wgsl b/test/tint/builtins/gen/var/asin/0bac07.wgsl.expected.wgsl
index 2389250..a90be4a 100644
--- a/test/tint/builtins/gen/var/asin/0bac07.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/asin/0bac07.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn asin_0bac07() {
-  const arg_0 = vec3(1);
+  const arg_0 = vec3(0.479425538604);
   var res = asin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/asin/64bb1f.wgsl b/test/tint/builtins/gen/var/asin/64bb1f.wgsl
index dbebb4e..acc71e2 100644
--- a/test/tint/builtins/gen/var/asin/64bb1f.wgsl
+++ b/test/tint/builtins/gen/var/asin/64bb1f.wgsl
@@ -23,7 +23,7 @@
 
 // fn asin(vec<4, fa>) -> vec<4, fa>
 fn asin_64bb1f() {
-  const arg_0 = vec4(1);
+  const arg_0 = vec4(0.479425538604);
   var res = asin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/asin/64bb1f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/asin/64bb1f.wgsl.expected.dxc.hlsl
index b0ffa27..1ee8601 100644
--- a/test/tint/builtins/gen/var/asin/64bb1f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/asin/64bb1f.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void asin_64bb1f() {
-  float4 res = (1.570796371f).xxxx;
+  float4 res = (0.5f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/asin/64bb1f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/asin/64bb1f.wgsl.expected.fxc.hlsl
index b0ffa27..1ee8601 100644
--- a/test/tint/builtins/gen/var/asin/64bb1f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/asin/64bb1f.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void asin_64bb1f() {
-  float4 res = (1.570796371f).xxxx;
+  float4 res = (0.5f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/asin/64bb1f.wgsl.expected.glsl b/test/tint/builtins/gen/var/asin/64bb1f.wgsl.expected.glsl
index e0df067..9483665 100644
--- a/test/tint/builtins/gen/var/asin/64bb1f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/asin/64bb1f.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void asin_64bb1f() {
-  vec4 res = vec4(1.570796371f);
+  vec4 res = vec4(0.5f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void asin_64bb1f() {
-  vec4 res = vec4(1.570796371f);
+  vec4 res = vec4(0.5f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void asin_64bb1f() {
-  vec4 res = vec4(1.570796371f);
+  vec4 res = vec4(0.5f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/asin/64bb1f.wgsl.expected.msl b/test/tint/builtins/gen/var/asin/64bb1f.wgsl.expected.msl
index 16110b4..5f0a2a9 100644
--- a/test/tint/builtins/gen/var/asin/64bb1f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/asin/64bb1f.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void asin_64bb1f() {
-  float4 res = float4(1.570796371f);
+  float4 res = float4(0.5f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/asin/64bb1f.wgsl.expected.spvasm b/test/tint/builtins/gen/var/asin/64bb1f.wgsl.expected.spvasm
index d6923f3..a85e0e2 100644
--- a/test/tint/builtins/gen/var/asin/64bb1f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/asin/64bb1f.wgsl.expected.spvasm
@@ -30,8 +30,8 @@
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
-%float_1_57079637 = OpConstant %float 1.57079637
-         %14 = OpConstantComposite %v4float %float_1_57079637 %float_1_57079637 %float_1_57079637 %float_1_57079637
+  %float_0_5 = OpConstant %float 0.5
+         %14 = OpConstantComposite %v4float %float_0_5 %float_0_5 %float_0_5 %float_0_5
 %_ptr_Function_v4float = OpTypePointer Function %v4float
          %17 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
diff --git a/test/tint/builtins/gen/var/asin/64bb1f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/asin/64bb1f.wgsl.expected.wgsl
index 2e7cbbc..1a14db8 100644
--- a/test/tint/builtins/gen/var/asin/64bb1f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/asin/64bb1f.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn asin_64bb1f() {
-  const arg_0 = vec4(1);
+  const arg_0 = vec4(0.479425538604);
   var res = asin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/asin/7b6a44.wgsl b/test/tint/builtins/gen/var/asin/7b6a44.wgsl
index 5c7a496..b8b7348 100644
--- a/test/tint/builtins/gen/var/asin/7b6a44.wgsl
+++ b/test/tint/builtins/gen/var/asin/7b6a44.wgsl
@@ -23,7 +23,7 @@
 
 // fn asin(vec<2, f32>) -> vec<2, f32>
 fn asin_7b6a44() {
-  var arg_0 = vec2<f32>(1.f);
+  var arg_0 = vec2<f32>(0.479425538604f);
   var res: vec2<f32> = asin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/asin/7b6a44.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/asin/7b6a44.wgsl.expected.dxc.hlsl
index 2491ebd..ec5dc28 100644
--- a/test/tint/builtins/gen/var/asin/7b6a44.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/asin/7b6a44.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void asin_7b6a44() {
-  float2 arg_0 = (1.0f).xx;
+  float2 arg_0 = (0.47942555f).xx;
   float2 res = asin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/asin/7b6a44.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/asin/7b6a44.wgsl.expected.fxc.hlsl
index 2491ebd..ec5dc28 100644
--- a/test/tint/builtins/gen/var/asin/7b6a44.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/asin/7b6a44.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void asin_7b6a44() {
-  float2 arg_0 = (1.0f).xx;
+  float2 arg_0 = (0.47942555f).xx;
   float2 res = asin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/asin/7b6a44.wgsl.expected.glsl b/test/tint/builtins/gen/var/asin/7b6a44.wgsl.expected.glsl
index 0604e88..e98152a 100644
--- a/test/tint/builtins/gen/var/asin/7b6a44.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/asin/7b6a44.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void asin_7b6a44() {
-  vec2 arg_0 = vec2(1.0f);
+  vec2 arg_0 = vec2(0.47942555f);
   vec2 res = asin(arg_0);
 }
 
@@ -22,7 +22,7 @@
 precision mediump float;
 
 void asin_7b6a44() {
-  vec2 arg_0 = vec2(1.0f);
+  vec2 arg_0 = vec2(0.47942555f);
   vec2 res = asin(arg_0);
 }
 
@@ -37,7 +37,7 @@
 #version 310 es
 
 void asin_7b6a44() {
-  vec2 arg_0 = vec2(1.0f);
+  vec2 arg_0 = vec2(0.47942555f);
   vec2 res = asin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/asin/7b6a44.wgsl.expected.msl b/test/tint/builtins/gen/var/asin/7b6a44.wgsl.expected.msl
index 37b6213..8562a86 100644
--- a/test/tint/builtins/gen/var/asin/7b6a44.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/asin/7b6a44.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void asin_7b6a44() {
-  float2 arg_0 = float2(1.0f);
+  float2 arg_0 = float2(0.47942555f);
   float2 res = asin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/asin/7b6a44.wgsl.expected.spvasm b/test/tint/builtins/gen/var/asin/7b6a44.wgsl.expected.spvasm
index 21aa1ab..05ddad5 100644
--- a/test/tint/builtins/gen/var/asin/7b6a44.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/asin/7b6a44.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_0_47942555 = OpConstant %float 0.47942555
+         %15 = OpConstantComposite %v2float %float_0_47942555 %float_0_47942555
 %_ptr_Function_v2float = OpTypePointer Function %v2float
          %18 = OpConstantNull %v2float
          %23 = OpTypeFunction %v4float
+    %float_1 = OpConstant %float 1
 %asin_7b6a44 = 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 %asin_7b6a44
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %asin_7b6a44
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %asin_7b6a44
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %asin_7b6a44
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/asin/7b6a44.wgsl.expected.wgsl b/test/tint/builtins/gen/var/asin/7b6a44.wgsl.expected.wgsl
index 4f0c2fd..8adbc85 100644
--- a/test/tint/builtins/gen/var/asin/7b6a44.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/asin/7b6a44.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn asin_7b6a44() {
-  var arg_0 = vec2<f32>(1.0f);
+  var arg_0 = vec2<f32>(0.47942555f);
   var res : vec2<f32> = asin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/asin/8cd9c9.wgsl b/test/tint/builtins/gen/var/asin/8cd9c9.wgsl
index 6460397..9ef585c 100644
--- a/test/tint/builtins/gen/var/asin/8cd9c9.wgsl
+++ b/test/tint/builtins/gen/var/asin/8cd9c9.wgsl
@@ -23,7 +23,7 @@
 
 // fn asin(vec<3, f32>) -> vec<3, f32>
 fn asin_8cd9c9() {
-  var arg_0 = vec3<f32>(1.f);
+  var arg_0 = vec3<f32>(0.479425538604f);
   var res: vec3<f32> = asin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/asin/8cd9c9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/asin/8cd9c9.wgsl.expected.dxc.hlsl
index 96d0aca..6f5cc30 100644
--- a/test/tint/builtins/gen/var/asin/8cd9c9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/asin/8cd9c9.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void asin_8cd9c9() {
-  float3 arg_0 = (1.0f).xxx;
+  float3 arg_0 = (0.47942555f).xxx;
   float3 res = asin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/asin/8cd9c9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/asin/8cd9c9.wgsl.expected.fxc.hlsl
index 96d0aca..6f5cc30 100644
--- a/test/tint/builtins/gen/var/asin/8cd9c9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/asin/8cd9c9.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void asin_8cd9c9() {
-  float3 arg_0 = (1.0f).xxx;
+  float3 arg_0 = (0.47942555f).xxx;
   float3 res = asin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/asin/8cd9c9.wgsl.expected.glsl b/test/tint/builtins/gen/var/asin/8cd9c9.wgsl.expected.glsl
index 95a2e1c..5c76d6d 100644
--- a/test/tint/builtins/gen/var/asin/8cd9c9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/asin/8cd9c9.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void asin_8cd9c9() {
-  vec3 arg_0 = vec3(1.0f);
+  vec3 arg_0 = vec3(0.47942555f);
   vec3 res = asin(arg_0);
 }
 
@@ -22,7 +22,7 @@
 precision mediump float;
 
 void asin_8cd9c9() {
-  vec3 arg_0 = vec3(1.0f);
+  vec3 arg_0 = vec3(0.47942555f);
   vec3 res = asin(arg_0);
 }
 
@@ -37,7 +37,7 @@
 #version 310 es
 
 void asin_8cd9c9() {
-  vec3 arg_0 = vec3(1.0f);
+  vec3 arg_0 = vec3(0.47942555f);
   vec3 res = asin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/asin/8cd9c9.wgsl.expected.msl b/test/tint/builtins/gen/var/asin/8cd9c9.wgsl.expected.msl
index 8ff1ba7..33a3914 100644
--- a/test/tint/builtins/gen/var/asin/8cd9c9.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/asin/8cd9c9.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void asin_8cd9c9() {
-  float3 arg_0 = float3(1.0f);
+  float3 arg_0 = float3(0.47942555f);
   float3 res = asin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/asin/8cd9c9.wgsl.expected.spvasm b/test/tint/builtins/gen/var/asin/8cd9c9.wgsl.expected.spvasm
index 734c4e8..a3c46c6 100644
--- a/test/tint/builtins/gen/var/asin/8cd9c9.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/asin/8cd9c9.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_0_47942555 = OpConstant %float 0.47942555
+         %15 = OpConstantComposite %v3float %float_0_47942555 %float_0_47942555 %float_0_47942555
 %_ptr_Function_v3float = OpTypePointer Function %v3float
          %18 = OpConstantNull %v3float
          %23 = OpTypeFunction %v4float
+    %float_1 = OpConstant %float 1
 %asin_8cd9c9 = 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 %asin_8cd9c9
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %asin_8cd9c9
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %asin_8cd9c9
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %asin_8cd9c9
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/asin/8cd9c9.wgsl.expected.wgsl b/test/tint/builtins/gen/var/asin/8cd9c9.wgsl.expected.wgsl
index db757e5..a63fc5c 100644
--- a/test/tint/builtins/gen/var/asin/8cd9c9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/asin/8cd9c9.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn asin_8cd9c9() {
-  var arg_0 = vec3<f32>(1.0f);
+  var arg_0 = vec3<f32>(0.47942555f);
   var res : vec3<f32> = asin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/asin/a5dd88.wgsl b/test/tint/builtins/gen/var/asin/a5dd88.wgsl
index 703f93a..bee2ee2 100644
--- a/test/tint/builtins/gen/var/asin/a5dd88.wgsl
+++ b/test/tint/builtins/gen/var/asin/a5dd88.wgsl
@@ -23,7 +23,7 @@
 
 // fn asin(vec<2, fa>) -> vec<2, fa>
 fn asin_a5dd88() {
-  const arg_0 = vec2(1);
+  const arg_0 = vec2(0.479425538604);
   var res = asin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/asin/a5dd88.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/asin/a5dd88.wgsl.expected.dxc.hlsl
index 4c2a5a8..d910dc9 100644
--- a/test/tint/builtins/gen/var/asin/a5dd88.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/asin/a5dd88.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void asin_a5dd88() {
-  float2 res = (1.570796371f).xx;
+  float2 res = (0.5f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/asin/a5dd88.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/asin/a5dd88.wgsl.expected.fxc.hlsl
index 4c2a5a8..d910dc9 100644
--- a/test/tint/builtins/gen/var/asin/a5dd88.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/asin/a5dd88.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void asin_a5dd88() {
-  float2 res = (1.570796371f).xx;
+  float2 res = (0.5f).xx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/asin/a5dd88.wgsl.expected.glsl b/test/tint/builtins/gen/var/asin/a5dd88.wgsl.expected.glsl
index f1b5b4b..6b8eb2f 100644
--- a/test/tint/builtins/gen/var/asin/a5dd88.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/asin/a5dd88.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void asin_a5dd88() {
-  vec2 res = vec2(1.570796371f);
+  vec2 res = vec2(0.5f);
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void asin_a5dd88() {
-  vec2 res = vec2(1.570796371f);
+  vec2 res = vec2(0.5f);
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void asin_a5dd88() {
-  vec2 res = vec2(1.570796371f);
+  vec2 res = vec2(0.5f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/asin/a5dd88.wgsl.expected.msl b/test/tint/builtins/gen/var/asin/a5dd88.wgsl.expected.msl
index 2657d37..11e4d2d 100644
--- a/test/tint/builtins/gen/var/asin/a5dd88.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/asin/a5dd88.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void asin_a5dd88() {
-  float2 res = float2(1.570796371f);
+  float2 res = float2(0.5f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/asin/a5dd88.wgsl.expected.spvasm b/test/tint/builtins/gen/var/asin/a5dd88.wgsl.expected.spvasm
index 2330120..a30cfac 100644
--- a/test/tint/builtins/gen/var/asin/a5dd88.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/asin/a5dd88.wgsl.expected.spvasm
@@ -31,8 +31,8 @@
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-%float_1_57079637 = OpConstant %float 1.57079637
-         %15 = OpConstantComposite %v2float %float_1_57079637 %float_1_57079637
+  %float_0_5 = OpConstant %float 0.5
+         %15 = OpConstantComposite %v2float %float_0_5 %float_0_5
 %_ptr_Function_v2float = OpTypePointer Function %v2float
          %18 = OpConstantNull %v2float
          %19 = OpTypeFunction %v4float
diff --git a/test/tint/builtins/gen/var/asin/a5dd88.wgsl.expected.wgsl b/test/tint/builtins/gen/var/asin/a5dd88.wgsl.expected.wgsl
index caf66d9..c6040e9 100644
--- a/test/tint/builtins/gen/var/asin/a5dd88.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/asin/a5dd88.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn asin_a5dd88() {
-  const arg_0 = vec2(1);
+  const arg_0 = vec2(0.479425538604);
   var res = asin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/asin/a6d73a.wgsl b/test/tint/builtins/gen/var/asin/a6d73a.wgsl
index 8045fdb..f4b8390 100644
--- a/test/tint/builtins/gen/var/asin/a6d73a.wgsl
+++ b/test/tint/builtins/gen/var/asin/a6d73a.wgsl
@@ -23,7 +23,7 @@
 
 // fn asin(fa) -> fa
 fn asin_a6d73a() {
-  const arg_0 = 1;
+  const arg_0 = 0.479425538604;
   var res = asin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/asin/a6d73a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/asin/a6d73a.wgsl.expected.dxc.hlsl
index 980100b..5e01eb0 100644
--- a/test/tint/builtins/gen/var/asin/a6d73a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/asin/a6d73a.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void asin_a6d73a() {
-  float res = 1.570796371f;
+  float res = 0.5f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/asin/a6d73a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/asin/a6d73a.wgsl.expected.fxc.hlsl
index 980100b..5e01eb0 100644
--- a/test/tint/builtins/gen/var/asin/a6d73a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/asin/a6d73a.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void asin_a6d73a() {
-  float res = 1.570796371f;
+  float res = 0.5f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/asin/a6d73a.wgsl.expected.glsl b/test/tint/builtins/gen/var/asin/a6d73a.wgsl.expected.glsl
index 8a6632d..4afa665 100644
--- a/test/tint/builtins/gen/var/asin/a6d73a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/asin/a6d73a.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void asin_a6d73a() {
-  float res = 1.570796371f;
+  float res = 0.5f;
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void asin_a6d73a() {
-  float res = 1.570796371f;
+  float res = 0.5f;
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void asin_a6d73a() {
-  float res = 1.570796371f;
+  float res = 0.5f;
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/asin/a6d73a.wgsl.expected.msl b/test/tint/builtins/gen/var/asin/a6d73a.wgsl.expected.msl
index 8f04a36..49fbf73 100644
--- a/test/tint/builtins/gen/var/asin/a6d73a.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/asin/a6d73a.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void asin_a6d73a() {
-  float res = 1.570796371f;
+  float res = 0.5f;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/asin/a6d73a.wgsl.expected.spvasm b/test/tint/builtins/gen/var/asin/a6d73a.wgsl.expected.spvasm
index 75f8434..c325ec1 100644
--- a/test/tint/builtins/gen/var/asin/a6d73a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/asin/a6d73a.wgsl.expected.spvasm
@@ -30,14 +30,14 @@
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
-%float_1_57079637 = OpConstant %float 1.57079637
+  %float_0_5 = OpConstant %float 0.5
 %_ptr_Function_float = OpTypePointer Function %float
          %16 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %asin_a6d73a = OpFunction %void None %9
          %12 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
-               OpStore %res %float_1_57079637
+               OpStore %res %float_0_5
                OpReturn
                OpFunctionEnd
 %vertex_main_inner = OpFunction %v4float None %16
diff --git a/test/tint/builtins/gen/var/asin/a6d73a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/asin/a6d73a.wgsl.expected.wgsl
index aedf811..c26749c 100644
--- a/test/tint/builtins/gen/var/asin/a6d73a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/asin/a6d73a.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn asin_a6d73a() {
-  const arg_0 = 1;
+  const arg_0 = 0.479425538604;
   var res = asin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/asin/c0c272.wgsl b/test/tint/builtins/gen/var/asin/c0c272.wgsl
index 3c73f52..1acc09e 100644
--- a/test/tint/builtins/gen/var/asin/c0c272.wgsl
+++ b/test/tint/builtins/gen/var/asin/c0c272.wgsl
@@ -23,7 +23,7 @@
 
 // fn asin(f32) -> f32
 fn asin_c0c272() {
-  var arg_0 = 1.f;
+  var arg_0 = 0.479425538604f;
   var res: f32 = asin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/asin/c0c272.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/asin/c0c272.wgsl.expected.dxc.hlsl
index ad66315..ce1128b 100644
--- a/test/tint/builtins/gen/var/asin/c0c272.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/asin/c0c272.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void asin_c0c272() {
-  float arg_0 = 1.0f;
+  float arg_0 = 0.47942555f;
   float res = asin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/asin/c0c272.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/asin/c0c272.wgsl.expected.fxc.hlsl
index ad66315..ce1128b 100644
--- a/test/tint/builtins/gen/var/asin/c0c272.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/asin/c0c272.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void asin_c0c272() {
-  float arg_0 = 1.0f;
+  float arg_0 = 0.47942555f;
   float res = asin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/asin/c0c272.wgsl.expected.glsl b/test/tint/builtins/gen/var/asin/c0c272.wgsl.expected.glsl
index 9869bdb..8b7c97e 100644
--- a/test/tint/builtins/gen/var/asin/c0c272.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/asin/c0c272.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void asin_c0c272() {
-  float arg_0 = 1.0f;
+  float arg_0 = 0.47942555f;
   float res = asin(arg_0);
 }
 
@@ -22,7 +22,7 @@
 precision mediump float;
 
 void asin_c0c272() {
-  float arg_0 = 1.0f;
+  float arg_0 = 0.47942555f;
   float res = asin(arg_0);
 }
 
@@ -37,7 +37,7 @@
 #version 310 es
 
 void asin_c0c272() {
-  float arg_0 = 1.0f;
+  float arg_0 = 0.47942555f;
   float res = asin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/asin/c0c272.wgsl.expected.msl b/test/tint/builtins/gen/var/asin/c0c272.wgsl.expected.msl
index c8dc4da..c907ded 100644
--- a/test/tint/builtins/gen/var/asin/c0c272.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/asin/c0c272.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void asin_c0c272() {
-  float arg_0 = 1.0f;
+  float arg_0 = 0.47942555f;
   float res = asin(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/asin/c0c272.wgsl.expected.spvasm b/test/tint/builtins/gen/var/asin/c0c272.wgsl.expected.spvasm
index 6ee3f4a..0f46bd6 100644
--- a/test/tint/builtins/gen/var/asin/c0c272.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/asin/c0c272.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_0_47942555 = OpConstant %float 0.47942555
 %_ptr_Function_float = OpTypePointer Function %float
          %20 = OpTypeFunction %v4float
+    %float_1 = OpConstant %float 1
 %asin_c0c272 = 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_0_47942555
          %18 = OpLoad %float %arg_0
          %16 = OpExtInst %float %17 Asin %18
                OpStore %res %16
@@ -58,12 +59,12 @@
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %asin_c0c272
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %asin_c0c272
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %asin_c0c272
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %asin_c0c272
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/asin/c0c272.wgsl.expected.wgsl b/test/tint/builtins/gen/var/asin/c0c272.wgsl.expected.wgsl
index c9af00f..e31ccd9 100644
--- a/test/tint/builtins/gen/var/asin/c0c272.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/asin/c0c272.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn asin_c0c272() {
-  var arg_0 = 1.0f;
+  var arg_0 = 0.47942555f;
   var res : f32 = asin(arg_0);
 }
 
