GLSL: fix clip space mismatch in gl_Position.

OpenGL clips against [-w, w], while WebGPU uses [0, w]. The fix is to
modify gl_Position.z on output to match GLSL semantics. (This is the
same code used by SPIRV-Cross under the fixup_clipspace option.)

Bug: tint:1401
Change-Id: I1b1511352eee11cd9b095cd809aa8e1263c6cf4c
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/78261
Reviewed-by: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Stephen White <senorblanco@chromium.org>
diff --git a/src/writer/glsl/generator_impl.cc b/src/writer/glsl/generator_impl.cc
index 7a128d2..c5a8253 100644
--- a/src/writer/glsl/generator_impl.cc
+++ b/src/writer/glsl/generator_impl.cc
@@ -2085,6 +2085,8 @@
     }
   }
   if (func->PipelineStage() == ast::PipelineStage::kVertex) {
+    out << "  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;"
+        << std::endl;
     out << "  gl_Position.y = -gl_Position.y;" << std::endl;
   }
 
diff --git a/src/writer/glsl/generator_impl_function_test.cc b/src/writer/glsl/generator_impl_function_test.cc
index 286aabb..b6e9fe7 100644
--- a/src/writer/glsl/generator_impl_function_test.cc
+++ b/src/writer/glsl/generator_impl_function_test.cc
@@ -292,6 +292,7 @@
   col1 = outputs.col1;
   col2 = outputs.col2;
   gl_Position = outputs.pos;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/benchmark/animometer.wgsl.expected.glsl b/test/benchmark/animometer.wgsl.expected.glsl
index 6278d46..976115f 100644
--- a/test/benchmark/animometer.wgsl.expected.glsl
+++ b/test/benchmark/animometer.wgsl.expected.glsl
@@ -83,6 +83,7 @@
   outputs = vert_main(inputs);
   v_color = outputs.v_color;
   gl_Position = outputs.Position;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/benchmark/particles.wgsl.expected.glsl b/test/benchmark/particles.wgsl.expected.glsl
index a981bc5..8319db1 100644
--- a/test/benchmark/particles.wgsl.expected.glsl
+++ b/test/benchmark/particles.wgsl.expected.glsl
@@ -101,6 +101,7 @@
   color = outputs.color;
   quad_pos = outputs.quad_pos;
   gl_Position = outputs.position;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/benchmark/skinned-shadowed-pbr-vertex.wgsl.expected.glsl b/test/benchmark/skinned-shadowed-pbr-vertex.wgsl.expected.glsl
index 6ca8a47..582fcd8 100644
--- a/test/benchmark/skinned-shadowed-pbr-vertex.wgsl.expected.glsl
+++ b/test/benchmark/skinned-shadowed-pbr-vertex.wgsl.expected.glsl
@@ -169,6 +169,7 @@
   tangent = outputs.tangent;
   bitangent = outputs.bitangent;
   gl_Position = outputs.position;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/bug/chromium/1251009.wgsl.expected.glsl b/test/bug/chromium/1251009.wgsl.expected.glsl
index 77c6257..1087196 100644
--- a/test/bug/chromium/1251009.wgsl.expected.glsl
+++ b/test/bug/chromium/1251009.wgsl.expected.glsl
@@ -49,6 +49,7 @@
   tint_symbol_3 outputs;
   outputs = tint_symbol(inputs);
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/bug/dawn/947.wgsl.expected.glsl b/test/bug/dawn/947.wgsl.expected.glsl
index a248de1..e203e69 100644
--- a/test/bug/dawn/947.wgsl.expected.glsl
+++ b/test/bug/dawn/947.wgsl.expected.glsl
@@ -58,6 +58,7 @@
   outputs = vs_main(inputs);
   texcoords = outputs.texcoords;
   gl_Position = outputs.position;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/bug/tint/1088.spvasm.expected.glsl b/test/bug/tint/1088.spvasm.expected.glsl
index e2c4a42..9deb3a6 100644
--- a/test/bug/tint/1088.spvasm.expected.glsl
+++ b/test/bug/tint/1088.spvasm.expected.glsl
@@ -90,6 +90,7 @@
   outputs = tint_symbol_1(inputs);
   vUV_1 = outputs.vUV_1;
   gl_Position = outputs.tint_symbol;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/bug/tint/292.wgsl.expected.glsl b/test/bug/tint/292.wgsl.expected.glsl
index 475e741..e43a4bb 100644
--- a/test/bug/tint/292.wgsl.expected.glsl
+++ b/test/bug/tint/292.wgsl.expected.glsl
@@ -21,6 +21,7 @@
   tint_symbol_1 outputs;
   outputs = tint_symbol();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/bug/tint/403.wgsl.expected.glsl b/test/bug/tint/403.wgsl.expected.glsl
index e9c8d83..ec211c6 100644
--- a/test/bug/tint/403.wgsl.expected.glsl
+++ b/test/bug/tint/403.wgsl.expected.glsl
@@ -46,6 +46,7 @@
   tint_symbol_4 outputs;
   outputs = tint_symbol(inputs);
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/bug/tint/824.wgsl.expected.glsl b/test/bug/tint/824.wgsl.expected.glsl
index 988fbab..121d097 100644
--- a/test/bug/tint/824.wgsl.expected.glsl
+++ b/test/bug/tint/824.wgsl.expected.glsl
@@ -40,6 +40,7 @@
   outputs = tint_symbol(inputs);
   color = outputs.color;
   gl_Position = outputs.Position;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/bug/tint/922.wgsl.expected.glsl b/test/bug/tint/922.wgsl.expected.glsl
index af8383c..4aab100 100644
--- a/test/bug/tint/922.wgsl.expected.glsl
+++ b/test/bug/tint/922.wgsl.expected.glsl
@@ -180,6 +180,7 @@
   v_Color = outputs.v_Color;
   v_TexCoord = outputs.v_TexCoord;
   gl_Position = outputs.member;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/abs/002533.wgsl.expected.glsl b/test/intrinsics/gen/abs/002533.wgsl.expected.glsl
index 37efd67..a9d9604 100644
--- a/test/intrinsics/gen/abs/002533.wgsl.expected.glsl
+++ b/test/intrinsics/gen/abs/002533.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/abs/005174.wgsl.expected.glsl b/test/intrinsics/gen/abs/005174.wgsl.expected.glsl
index e538ffc..71f22f8 100644
--- a/test/intrinsics/gen/abs/005174.wgsl.expected.glsl
+++ b/test/intrinsics/gen/abs/005174.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/abs/1ce782.wgsl.expected.glsl b/test/intrinsics/gen/abs/1ce782.wgsl.expected.glsl
index f5203d9..1f4097a 100644
--- a/test/intrinsics/gen/abs/1ce782.wgsl.expected.glsl
+++ b/test/intrinsics/gen/abs/1ce782.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/abs/1e9d53.wgsl.expected.glsl b/test/intrinsics/gen/abs/1e9d53.wgsl.expected.glsl
index 3260ba1..cabdd21 100644
--- a/test/intrinsics/gen/abs/1e9d53.wgsl.expected.glsl
+++ b/test/intrinsics/gen/abs/1e9d53.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/abs/467cd1.wgsl.expected.glsl b/test/intrinsics/gen/abs/467cd1.wgsl.expected.glsl
index f94f2f5..219081c 100644
--- a/test/intrinsics/gen/abs/467cd1.wgsl.expected.glsl
+++ b/test/intrinsics/gen/abs/467cd1.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/abs/4ad288.wgsl.expected.glsl b/test/intrinsics/gen/abs/4ad288.wgsl.expected.glsl
index f7dbd20..d13d663 100644
--- a/test/intrinsics/gen/abs/4ad288.wgsl.expected.glsl
+++ b/test/intrinsics/gen/abs/4ad288.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/abs/5ad50a.wgsl.expected.glsl b/test/intrinsics/gen/abs/5ad50a.wgsl.expected.glsl
index 61111dd..87e4f31 100644
--- a/test/intrinsics/gen/abs/5ad50a.wgsl.expected.glsl
+++ b/test/intrinsics/gen/abs/5ad50a.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/abs/7326de.wgsl.expected.glsl b/test/intrinsics/gen/abs/7326de.wgsl.expected.glsl
index 54c757a..cba64f1 100644
--- a/test/intrinsics/gen/abs/7326de.wgsl.expected.glsl
+++ b/test/intrinsics/gen/abs/7326de.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/abs/7f28e6.wgsl.expected.glsl b/test/intrinsics/gen/abs/7f28e6.wgsl.expected.glsl
index d3ce049..4040568 100644
--- a/test/intrinsics/gen/abs/7f28e6.wgsl.expected.glsl
+++ b/test/intrinsics/gen/abs/7f28e6.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/abs/7faa9e.wgsl.expected.glsl b/test/intrinsics/gen/abs/7faa9e.wgsl.expected.glsl
index 0bc8ce5..5937ef3 100644
--- a/test/intrinsics/gen/abs/7faa9e.wgsl.expected.glsl
+++ b/test/intrinsics/gen/abs/7faa9e.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/abs/9c80a6.wgsl.expected.glsl b/test/intrinsics/gen/abs/9c80a6.wgsl.expected.glsl
index 9c4029c..0d7c01a 100644
--- a/test/intrinsics/gen/abs/9c80a6.wgsl.expected.glsl
+++ b/test/intrinsics/gen/abs/9c80a6.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/abs/b96037.wgsl.expected.glsl b/test/intrinsics/gen/abs/b96037.wgsl.expected.glsl
index bc63419..09f3cae 100644
--- a/test/intrinsics/gen/abs/b96037.wgsl.expected.glsl
+++ b/test/intrinsics/gen/abs/b96037.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/acos/489247.wgsl.expected.glsl b/test/intrinsics/gen/acos/489247.wgsl.expected.glsl
index 4671881..a70ce0b 100644
--- a/test/intrinsics/gen/acos/489247.wgsl.expected.glsl
+++ b/test/intrinsics/gen/acos/489247.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/acos/8e2acf.wgsl.expected.glsl b/test/intrinsics/gen/acos/8e2acf.wgsl.expected.glsl
index 97e9be5..6022d54 100644
--- a/test/intrinsics/gen/acos/8e2acf.wgsl.expected.glsl
+++ b/test/intrinsics/gen/acos/8e2acf.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/acos/a610c4.wgsl.expected.glsl b/test/intrinsics/gen/acos/a610c4.wgsl.expected.glsl
index 22d013a..80ccb9b 100644
--- a/test/intrinsics/gen/acos/a610c4.wgsl.expected.glsl
+++ b/test/intrinsics/gen/acos/a610c4.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/acos/dfc915.wgsl.expected.glsl b/test/intrinsics/gen/acos/dfc915.wgsl.expected.glsl
index 2969cd7..1c696f0 100644
--- a/test/intrinsics/gen/acos/dfc915.wgsl.expected.glsl
+++ b/test/intrinsics/gen/acos/dfc915.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/all/353d6a.wgsl.expected.glsl b/test/intrinsics/gen/all/353d6a.wgsl.expected.glsl
index 256c243..5873a4a 100644
--- a/test/intrinsics/gen/all/353d6a.wgsl.expected.glsl
+++ b/test/intrinsics/gen/all/353d6a.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/all/986c7b.wgsl.expected.glsl b/test/intrinsics/gen/all/986c7b.wgsl.expected.glsl
index 4274d15..9da0a90 100644
--- a/test/intrinsics/gen/all/986c7b.wgsl.expected.glsl
+++ b/test/intrinsics/gen/all/986c7b.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/all/bd2dba.wgsl.expected.glsl b/test/intrinsics/gen/all/bd2dba.wgsl.expected.glsl
index 8cd6c93..f8de1d2 100644
--- a/test/intrinsics/gen/all/bd2dba.wgsl.expected.glsl
+++ b/test/intrinsics/gen/all/bd2dba.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/all/f46790.wgsl.expected.glsl b/test/intrinsics/gen/all/f46790.wgsl.expected.glsl
index 4ad941d..d3bc0fe 100644
--- a/test/intrinsics/gen/all/f46790.wgsl.expected.glsl
+++ b/test/intrinsics/gen/all/f46790.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/any/083428.wgsl.expected.glsl b/test/intrinsics/gen/any/083428.wgsl.expected.glsl
index 1bc4e96..168f1d3 100644
--- a/test/intrinsics/gen/any/083428.wgsl.expected.glsl
+++ b/test/intrinsics/gen/any/083428.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/any/0e3e58.wgsl.expected.glsl b/test/intrinsics/gen/any/0e3e58.wgsl.expected.glsl
index 3ad92f7..22a2676 100644
--- a/test/intrinsics/gen/any/0e3e58.wgsl.expected.glsl
+++ b/test/intrinsics/gen/any/0e3e58.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/any/2ab91a.wgsl.expected.glsl b/test/intrinsics/gen/any/2ab91a.wgsl.expected.glsl
index 31564bc..eecacd1 100644
--- a/test/intrinsics/gen/any/2ab91a.wgsl.expected.glsl
+++ b/test/intrinsics/gen/any/2ab91a.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/any/e755c1.wgsl.expected.glsl b/test/intrinsics/gen/any/e755c1.wgsl.expected.glsl
index a90aa60..c07e8ae 100644
--- a/test/intrinsics/gen/any/e755c1.wgsl.expected.glsl
+++ b/test/intrinsics/gen/any/e755c1.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/arrayLength/1588cd.wgsl.expected.glsl b/test/intrinsics/gen/arrayLength/1588cd.wgsl.expected.glsl
index fbf6310..79b0117 100644
--- a/test/intrinsics/gen/arrayLength/1588cd.wgsl.expected.glsl
+++ b/test/intrinsics/gen/arrayLength/1588cd.wgsl.expected.glsl
@@ -34,6 +34,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/arrayLength/61b1c7.wgsl.expected.glsl b/test/intrinsics/gen/arrayLength/61b1c7.wgsl.expected.glsl
index ebc03c7..39316b0 100644
--- a/test/intrinsics/gen/arrayLength/61b1c7.wgsl.expected.glsl
+++ b/test/intrinsics/gen/arrayLength/61b1c7.wgsl.expected.glsl
@@ -34,6 +34,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/arrayLength/a0f5ca.wgsl.expected.glsl b/test/intrinsics/gen/arrayLength/a0f5ca.wgsl.expected.glsl
index 67f3a4c..98c7ec5 100644
--- a/test/intrinsics/gen/arrayLength/a0f5ca.wgsl.expected.glsl
+++ b/test/intrinsics/gen/arrayLength/a0f5ca.wgsl.expected.glsl
@@ -34,6 +34,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/arrayLength/cdd123.wgsl.expected.glsl b/test/intrinsics/gen/arrayLength/cdd123.wgsl.expected.glsl
index 9167aa4..5b23df4 100644
--- a/test/intrinsics/gen/arrayLength/cdd123.wgsl.expected.glsl
+++ b/test/intrinsics/gen/arrayLength/cdd123.wgsl.expected.glsl
@@ -34,6 +34,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/arrayLength/cfca0a.wgsl.expected.glsl b/test/intrinsics/gen/arrayLength/cfca0a.wgsl.expected.glsl
index 26bf959..a482ec8 100644
--- a/test/intrinsics/gen/arrayLength/cfca0a.wgsl.expected.glsl
+++ b/test/intrinsics/gen/arrayLength/cfca0a.wgsl.expected.glsl
@@ -34,6 +34,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/arrayLength/eb510f.wgsl.expected.glsl b/test/intrinsics/gen/arrayLength/eb510f.wgsl.expected.glsl
index d0df122..54ac47a 100644
--- a/test/intrinsics/gen/arrayLength/eb510f.wgsl.expected.glsl
+++ b/test/intrinsics/gen/arrayLength/eb510f.wgsl.expected.glsl
@@ -34,6 +34,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/asin/064953.wgsl.expected.glsl b/test/intrinsics/gen/asin/064953.wgsl.expected.glsl
index cdc9a95..77c5c16 100644
--- a/test/intrinsics/gen/asin/064953.wgsl.expected.glsl
+++ b/test/intrinsics/gen/asin/064953.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/asin/7b6a44.wgsl.expected.glsl b/test/intrinsics/gen/asin/7b6a44.wgsl.expected.glsl
index 4af4bed..eb9d035 100644
--- a/test/intrinsics/gen/asin/7b6a44.wgsl.expected.glsl
+++ b/test/intrinsics/gen/asin/7b6a44.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/asin/8cd9c9.wgsl.expected.glsl b/test/intrinsics/gen/asin/8cd9c9.wgsl.expected.glsl
index 48fdbcb..74f5c46 100644
--- a/test/intrinsics/gen/asin/8cd9c9.wgsl.expected.glsl
+++ b/test/intrinsics/gen/asin/8cd9c9.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/asin/c0c272.wgsl.expected.glsl b/test/intrinsics/gen/asin/c0c272.wgsl.expected.glsl
index 1e8378e..3b4521e 100644
--- a/test/intrinsics/gen/asin/c0c272.wgsl.expected.glsl
+++ b/test/intrinsics/gen/asin/c0c272.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/atan/02979a.wgsl.expected.glsl b/test/intrinsics/gen/atan/02979a.wgsl.expected.glsl
index ee1eaad..6c7de9b 100644
--- a/test/intrinsics/gen/atan/02979a.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atan/02979a.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/atan/331e6d.wgsl.expected.glsl b/test/intrinsics/gen/atan/331e6d.wgsl.expected.glsl
index 84b1dfd..dfd43f2 100644
--- a/test/intrinsics/gen/atan/331e6d.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atan/331e6d.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/atan/a8b696.wgsl.expected.glsl b/test/intrinsics/gen/atan/a8b696.wgsl.expected.glsl
index 0ebc406..4adb5b2 100644
--- a/test/intrinsics/gen/atan/a8b696.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atan/a8b696.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/atan/ad96e4.wgsl.expected.glsl b/test/intrinsics/gen/atan/ad96e4.wgsl.expected.glsl
index c07ed31..7f0420a 100644
--- a/test/intrinsics/gen/atan/ad96e4.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atan/ad96e4.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/atan2/57fb13.wgsl.expected.glsl b/test/intrinsics/gen/atan2/57fb13.wgsl.expected.glsl
index 9e5d0a3..26eca58 100644
--- a/test/intrinsics/gen/atan2/57fb13.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atan2/57fb13.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/atan2/96057c.wgsl.expected.glsl b/test/intrinsics/gen/atan2/96057c.wgsl.expected.glsl
index b5eec8b..ab55de0 100644
--- a/test/intrinsics/gen/atan2/96057c.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atan2/96057c.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/atan2/a70d0d.wgsl.expected.glsl b/test/intrinsics/gen/atan2/a70d0d.wgsl.expected.glsl
index f06fcdd..49d65c5 100644
--- a/test/intrinsics/gen/atan2/a70d0d.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atan2/a70d0d.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/atan2/ae713e.wgsl.expected.glsl b/test/intrinsics/gen/atan2/ae713e.wgsl.expected.glsl
index ec9f7d0..e0bcc8a 100644
--- a/test/intrinsics/gen/atan2/ae713e.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atan2/ae713e.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/ceil/34064b.wgsl.expected.glsl b/test/intrinsics/gen/ceil/34064b.wgsl.expected.glsl
index 2a3b135..956a395 100644
--- a/test/intrinsics/gen/ceil/34064b.wgsl.expected.glsl
+++ b/test/intrinsics/gen/ceil/34064b.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/ceil/678655.wgsl.expected.glsl b/test/intrinsics/gen/ceil/678655.wgsl.expected.glsl
index 9a9c143..31d306d 100644
--- a/test/intrinsics/gen/ceil/678655.wgsl.expected.glsl
+++ b/test/intrinsics/gen/ceil/678655.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/ceil/96f597.wgsl.expected.glsl b/test/intrinsics/gen/ceil/96f597.wgsl.expected.glsl
index 58113d5..d917e31 100644
--- a/test/intrinsics/gen/ceil/96f597.wgsl.expected.glsl
+++ b/test/intrinsics/gen/ceil/96f597.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/ceil/b74c16.wgsl.expected.glsl b/test/intrinsics/gen/ceil/b74c16.wgsl.expected.glsl
index 51d5751..79d3a3c 100644
--- a/test/intrinsics/gen/ceil/b74c16.wgsl.expected.glsl
+++ b/test/intrinsics/gen/ceil/b74c16.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/clamp/0acf8f.wgsl.expected.glsl b/test/intrinsics/gen/clamp/0acf8f.wgsl.expected.glsl
index 3ec47cc..8ed088e 100644
--- a/test/intrinsics/gen/clamp/0acf8f.wgsl.expected.glsl
+++ b/test/intrinsics/gen/clamp/0acf8f.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/clamp/1a32e3.wgsl.expected.glsl b/test/intrinsics/gen/clamp/1a32e3.wgsl.expected.glsl
index ed04508..2efad4d 100644
--- a/test/intrinsics/gen/clamp/1a32e3.wgsl.expected.glsl
+++ b/test/intrinsics/gen/clamp/1a32e3.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/clamp/2bd567.wgsl.expected.glsl b/test/intrinsics/gen/clamp/2bd567.wgsl.expected.glsl
index 43ee8b9..a443a31 100644
--- a/test/intrinsics/gen/clamp/2bd567.wgsl.expected.glsl
+++ b/test/intrinsics/gen/clamp/2bd567.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/clamp/2bde41.wgsl.expected.glsl b/test/intrinsics/gen/clamp/2bde41.wgsl.expected.glsl
index 590083d..3546e04 100644
--- a/test/intrinsics/gen/clamp/2bde41.wgsl.expected.glsl
+++ b/test/intrinsics/gen/clamp/2bde41.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/clamp/548fc7.wgsl.expected.glsl b/test/intrinsics/gen/clamp/548fc7.wgsl.expected.glsl
index f3e3ed3..389d818 100644
--- a/test/intrinsics/gen/clamp/548fc7.wgsl.expected.glsl
+++ b/test/intrinsics/gen/clamp/548fc7.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/clamp/5f0819.wgsl.expected.glsl b/test/intrinsics/gen/clamp/5f0819.wgsl.expected.glsl
index e68c707..dc61fb7 100644
--- a/test/intrinsics/gen/clamp/5f0819.wgsl.expected.glsl
+++ b/test/intrinsics/gen/clamp/5f0819.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/clamp/6c1749.wgsl.expected.glsl b/test/intrinsics/gen/clamp/6c1749.wgsl.expected.glsl
index 675c22f..5f2a0ec 100644
--- a/test/intrinsics/gen/clamp/6c1749.wgsl.expected.glsl
+++ b/test/intrinsics/gen/clamp/6c1749.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/clamp/7706d7.wgsl.expected.glsl b/test/intrinsics/gen/clamp/7706d7.wgsl.expected.glsl
index 1805a75..614bb6a 100644
--- a/test/intrinsics/gen/clamp/7706d7.wgsl.expected.glsl
+++ b/test/intrinsics/gen/clamp/7706d7.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/clamp/867397.wgsl.expected.glsl b/test/intrinsics/gen/clamp/867397.wgsl.expected.glsl
index 0b7c470..6b6fa98 100644
--- a/test/intrinsics/gen/clamp/867397.wgsl.expected.glsl
+++ b/test/intrinsics/gen/clamp/867397.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/clamp/a2de25.wgsl.expected.glsl b/test/intrinsics/gen/clamp/a2de25.wgsl.expected.glsl
index 23ba3e4..e644d9a 100644
--- a/test/intrinsics/gen/clamp/a2de25.wgsl.expected.glsl
+++ b/test/intrinsics/gen/clamp/a2de25.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/clamp/b07c65.wgsl.expected.glsl b/test/intrinsics/gen/clamp/b07c65.wgsl.expected.glsl
index 4337f3e..393f284 100644
--- a/test/intrinsics/gen/clamp/b07c65.wgsl.expected.glsl
+++ b/test/intrinsics/gen/clamp/b07c65.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/clamp/bd43ce.wgsl.expected.glsl b/test/intrinsics/gen/clamp/bd43ce.wgsl.expected.glsl
index 476dca9..22e0ec0 100644
--- a/test/intrinsics/gen/clamp/bd43ce.wgsl.expected.glsl
+++ b/test/intrinsics/gen/clamp/bd43ce.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/cos/16dc15.wgsl.expected.glsl b/test/intrinsics/gen/cos/16dc15.wgsl.expected.glsl
index 432f4be..d97825f 100644
--- a/test/intrinsics/gen/cos/16dc15.wgsl.expected.glsl
+++ b/test/intrinsics/gen/cos/16dc15.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/cos/29d66d.wgsl.expected.glsl b/test/intrinsics/gen/cos/29d66d.wgsl.expected.glsl
index ea59c7e..f80a3a3 100644
--- a/test/intrinsics/gen/cos/29d66d.wgsl.expected.glsl
+++ b/test/intrinsics/gen/cos/29d66d.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/cos/c3b486.wgsl.expected.glsl b/test/intrinsics/gen/cos/c3b486.wgsl.expected.glsl
index ec33d96..0718e00 100644
--- a/test/intrinsics/gen/cos/c3b486.wgsl.expected.glsl
+++ b/test/intrinsics/gen/cos/c3b486.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/cos/c5c28e.wgsl.expected.glsl b/test/intrinsics/gen/cos/c5c28e.wgsl.expected.glsl
index 82d182c..acd2840 100644
--- a/test/intrinsics/gen/cos/c5c28e.wgsl.expected.glsl
+++ b/test/intrinsics/gen/cos/c5c28e.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/cosh/377652.wgsl.expected.glsl b/test/intrinsics/gen/cosh/377652.wgsl.expected.glsl
index 0e8a40a..3fe5c6a 100644
--- a/test/intrinsics/gen/cosh/377652.wgsl.expected.glsl
+++ b/test/intrinsics/gen/cosh/377652.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/cosh/c13756.wgsl.expected.glsl b/test/intrinsics/gen/cosh/c13756.wgsl.expected.glsl
index bca647c..8feca51 100644
--- a/test/intrinsics/gen/cosh/c13756.wgsl.expected.glsl
+++ b/test/intrinsics/gen/cosh/c13756.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/cosh/da92dd.wgsl.expected.glsl b/test/intrinsics/gen/cosh/da92dd.wgsl.expected.glsl
index 296e122..afbc396 100644
--- a/test/intrinsics/gen/cosh/da92dd.wgsl.expected.glsl
+++ b/test/intrinsics/gen/cosh/da92dd.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/cosh/e0c1de.wgsl.expected.glsl b/test/intrinsics/gen/cosh/e0c1de.wgsl.expected.glsl
index a15e460..25ccf66 100644
--- a/test/intrinsics/gen/cosh/e0c1de.wgsl.expected.glsl
+++ b/test/intrinsics/gen/cosh/e0c1de.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/countOneBits/0d0e46.wgsl.expected.glsl b/test/intrinsics/gen/countOneBits/0d0e46.wgsl.expected.glsl
index 4c444f1..11b663d 100644
--- a/test/intrinsics/gen/countOneBits/0d0e46.wgsl.expected.glsl
+++ b/test/intrinsics/gen/countOneBits/0d0e46.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/countOneBits/0f7980.wgsl.expected.glsl b/test/intrinsics/gen/countOneBits/0f7980.wgsl.expected.glsl
index aaa2d24..053ca57 100644
--- a/test/intrinsics/gen/countOneBits/0f7980.wgsl.expected.glsl
+++ b/test/intrinsics/gen/countOneBits/0f7980.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/countOneBits/65d2ae.wgsl.expected.glsl b/test/intrinsics/gen/countOneBits/65d2ae.wgsl.expected.glsl
index 603c17c..f910a7f 100644
--- a/test/intrinsics/gen/countOneBits/65d2ae.wgsl.expected.glsl
+++ b/test/intrinsics/gen/countOneBits/65d2ae.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/countOneBits/690cfc.wgsl.expected.glsl b/test/intrinsics/gen/countOneBits/690cfc.wgsl.expected.glsl
index f2da622..1387754 100644
--- a/test/intrinsics/gen/countOneBits/690cfc.wgsl.expected.glsl
+++ b/test/intrinsics/gen/countOneBits/690cfc.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/countOneBits/94fd81.wgsl.expected.glsl b/test/intrinsics/gen/countOneBits/94fd81.wgsl.expected.glsl
index 750e3d2..4cc6288 100644
--- a/test/intrinsics/gen/countOneBits/94fd81.wgsl.expected.glsl
+++ b/test/intrinsics/gen/countOneBits/94fd81.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/countOneBits/ae44f9.wgsl.expected.glsl b/test/intrinsics/gen/countOneBits/ae44f9.wgsl.expected.glsl
index 241a8d0..55d89f8 100644
--- a/test/intrinsics/gen/countOneBits/ae44f9.wgsl.expected.glsl
+++ b/test/intrinsics/gen/countOneBits/ae44f9.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/countOneBits/af90e2.wgsl.expected.glsl b/test/intrinsics/gen/countOneBits/af90e2.wgsl.expected.glsl
index f7b71d1..e907fc3 100644
--- a/test/intrinsics/gen/countOneBits/af90e2.wgsl.expected.glsl
+++ b/test/intrinsics/gen/countOneBits/af90e2.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/countOneBits/fd88b2.wgsl.expected.glsl b/test/intrinsics/gen/countOneBits/fd88b2.wgsl.expected.glsl
index 78d84a7..40ac27a 100644
--- a/test/intrinsics/gen/countOneBits/fd88b2.wgsl.expected.glsl
+++ b/test/intrinsics/gen/countOneBits/fd88b2.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/cross/041cb0.wgsl.expected.glsl b/test/intrinsics/gen/cross/041cb0.wgsl.expected.glsl
index dfaee60..6d93cb0 100644
--- a/test/intrinsics/gen/cross/041cb0.wgsl.expected.glsl
+++ b/test/intrinsics/gen/cross/041cb0.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/degrees/0d170c.wgsl.expected.glsl b/test/intrinsics/gen/degrees/0d170c.wgsl.expected.glsl
index bc259fd..684f3fb 100644
--- a/test/intrinsics/gen/degrees/0d170c.wgsl.expected.glsl
+++ b/test/intrinsics/gen/degrees/0d170c.wgsl.expected.glsl
@@ -29,6 +29,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/degrees/1ad5df.wgsl.expected.glsl b/test/intrinsics/gen/degrees/1ad5df.wgsl.expected.glsl
index c68e963..8d35b2d 100644
--- a/test/intrinsics/gen/degrees/1ad5df.wgsl.expected.glsl
+++ b/test/intrinsics/gen/degrees/1ad5df.wgsl.expected.glsl
@@ -29,6 +29,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/degrees/2af623.wgsl.expected.glsl b/test/intrinsics/gen/degrees/2af623.wgsl.expected.glsl
index 692bed4..2f1c095 100644
--- a/test/intrinsics/gen/degrees/2af623.wgsl.expected.glsl
+++ b/test/intrinsics/gen/degrees/2af623.wgsl.expected.glsl
@@ -29,6 +29,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/degrees/51f705.wgsl.expected.glsl b/test/intrinsics/gen/degrees/51f705.wgsl.expected.glsl
index ec9618e..c576030 100644
--- a/test/intrinsics/gen/degrees/51f705.wgsl.expected.glsl
+++ b/test/intrinsics/gen/degrees/51f705.wgsl.expected.glsl
@@ -29,6 +29,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/determinant/2b62ba.wgsl.expected.glsl b/test/intrinsics/gen/determinant/2b62ba.wgsl.expected.glsl
index 50c54d2..1adff1a 100644
--- a/test/intrinsics/gen/determinant/2b62ba.wgsl.expected.glsl
+++ b/test/intrinsics/gen/determinant/2b62ba.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/determinant/a0a87c.wgsl.expected.glsl b/test/intrinsics/gen/determinant/a0a87c.wgsl.expected.glsl
index f2b15cf..8b716ef 100644
--- a/test/intrinsics/gen/determinant/a0a87c.wgsl.expected.glsl
+++ b/test/intrinsics/gen/determinant/a0a87c.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/determinant/e19305.wgsl.expected.glsl b/test/intrinsics/gen/determinant/e19305.wgsl.expected.glsl
index 8117d8b..2e2e0d0 100644
--- a/test/intrinsics/gen/determinant/e19305.wgsl.expected.glsl
+++ b/test/intrinsics/gen/determinant/e19305.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/distance/0657d4.wgsl.expected.glsl b/test/intrinsics/gen/distance/0657d4.wgsl.expected.glsl
index c278ef0..4fb7b3d 100644
--- a/test/intrinsics/gen/distance/0657d4.wgsl.expected.glsl
+++ b/test/intrinsics/gen/distance/0657d4.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/distance/9646ea.wgsl.expected.glsl b/test/intrinsics/gen/distance/9646ea.wgsl.expected.glsl
index 39c71e5..a0773a8 100644
--- a/test/intrinsics/gen/distance/9646ea.wgsl.expected.glsl
+++ b/test/intrinsics/gen/distance/9646ea.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/distance/aa4055.wgsl.expected.glsl b/test/intrinsics/gen/distance/aa4055.wgsl.expected.glsl
index e7dddbf..cc3cdc4 100644
--- a/test/intrinsics/gen/distance/aa4055.wgsl.expected.glsl
+++ b/test/intrinsics/gen/distance/aa4055.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/distance/cfed73.wgsl.expected.glsl b/test/intrinsics/gen/distance/cfed73.wgsl.expected.glsl
index b509965..a38a90c 100644
--- a/test/intrinsics/gen/distance/cfed73.wgsl.expected.glsl
+++ b/test/intrinsics/gen/distance/cfed73.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/dot/0c577b.wgsl.expected.glsl b/test/intrinsics/gen/dot/0c577b.wgsl.expected.glsl
index 2e99625..69e5674 100644
--- a/test/intrinsics/gen/dot/0c577b.wgsl.expected.glsl
+++ b/test/intrinsics/gen/dot/0c577b.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/dot/7548a0.wgsl.expected.glsl b/test/intrinsics/gen/dot/7548a0.wgsl.expected.glsl
index 7e99a55..22594ab 100644
--- a/test/intrinsics/gen/dot/7548a0.wgsl.expected.glsl
+++ b/test/intrinsics/gen/dot/7548a0.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/dot/883f0e.wgsl.expected.glsl b/test/intrinsics/gen/dot/883f0e.wgsl.expected.glsl
index eec9252..263b33d 100644
--- a/test/intrinsics/gen/dot/883f0e.wgsl.expected.glsl
+++ b/test/intrinsics/gen/dot/883f0e.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/dot/97c7ee.wgsl.expected.glsl b/test/intrinsics/gen/dot/97c7ee.wgsl.expected.glsl
index c620ce6..ad17ac2 100644
--- a/test/intrinsics/gen/dot/97c7ee.wgsl.expected.glsl
+++ b/test/intrinsics/gen/dot/97c7ee.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/dot/ba4246.wgsl.expected.glsl b/test/intrinsics/gen/dot/ba4246.wgsl.expected.glsl
index 3959bf6..3a4cec1 100644
--- a/test/intrinsics/gen/dot/ba4246.wgsl.expected.glsl
+++ b/test/intrinsics/gen/dot/ba4246.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/dot/e994c7.wgsl.expected.glsl b/test/intrinsics/gen/dot/e994c7.wgsl.expected.glsl
index 941d081..9ee8ab2 100644
--- a/test/intrinsics/gen/dot/e994c7.wgsl.expected.glsl
+++ b/test/intrinsics/gen/dot/e994c7.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/dot/ef6b1d.wgsl.expected.glsl b/test/intrinsics/gen/dot/ef6b1d.wgsl.expected.glsl
index 809f017..31c5cef 100644
--- a/test/intrinsics/gen/dot/ef6b1d.wgsl.expected.glsl
+++ b/test/intrinsics/gen/dot/ef6b1d.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/dot/f1312c.wgsl.expected.glsl b/test/intrinsics/gen/dot/f1312c.wgsl.expected.glsl
index 57919d4..3e0d1f8 100644
--- a/test/intrinsics/gen/dot/f1312c.wgsl.expected.glsl
+++ b/test/intrinsics/gen/dot/f1312c.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/dot/fc5f7c.wgsl.expected.glsl b/test/intrinsics/gen/dot/fc5f7c.wgsl.expected.glsl
index 29bb327..22d0dd2 100644
--- a/test/intrinsics/gen/dot/fc5f7c.wgsl.expected.glsl
+++ b/test/intrinsics/gen/dot/fc5f7c.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/exp/0f70eb.wgsl.expected.glsl b/test/intrinsics/gen/exp/0f70eb.wgsl.expected.glsl
index f1882e6..5af098b 100644
--- a/test/intrinsics/gen/exp/0f70eb.wgsl.expected.glsl
+++ b/test/intrinsics/gen/exp/0f70eb.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/exp/1951e7.wgsl.expected.glsl b/test/intrinsics/gen/exp/1951e7.wgsl.expected.glsl
index dff1bfe..e4384a7 100644
--- a/test/intrinsics/gen/exp/1951e7.wgsl.expected.glsl
+++ b/test/intrinsics/gen/exp/1951e7.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/exp/771fd2.wgsl.expected.glsl b/test/intrinsics/gen/exp/771fd2.wgsl.expected.glsl
index a46e266..7d9ef49 100644
--- a/test/intrinsics/gen/exp/771fd2.wgsl.expected.glsl
+++ b/test/intrinsics/gen/exp/771fd2.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/exp/d98450.wgsl.expected.glsl b/test/intrinsics/gen/exp/d98450.wgsl.expected.glsl
index aa82fb1..c40ee7e 100644
--- a/test/intrinsics/gen/exp/d98450.wgsl.expected.glsl
+++ b/test/intrinsics/gen/exp/d98450.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/exp2/1f8680.wgsl.expected.glsl b/test/intrinsics/gen/exp2/1f8680.wgsl.expected.glsl
index 214840f..e9ecb77 100644
--- a/test/intrinsics/gen/exp2/1f8680.wgsl.expected.glsl
+++ b/test/intrinsics/gen/exp2/1f8680.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/exp2/a9d0a7.wgsl.expected.glsl b/test/intrinsics/gen/exp2/a9d0a7.wgsl.expected.glsl
index 736af83..6194f99 100644
--- a/test/intrinsics/gen/exp2/a9d0a7.wgsl.expected.glsl
+++ b/test/intrinsics/gen/exp2/a9d0a7.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/exp2/d6777c.wgsl.expected.glsl b/test/intrinsics/gen/exp2/d6777c.wgsl.expected.glsl
index 08834d9..e3d32d5 100644
--- a/test/intrinsics/gen/exp2/d6777c.wgsl.expected.glsl
+++ b/test/intrinsics/gen/exp2/d6777c.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/exp2/dea523.wgsl.expected.glsl b/test/intrinsics/gen/exp2/dea523.wgsl.expected.glsl
index 313278f..c6d84db 100644
--- a/test/intrinsics/gen/exp2/dea523.wgsl.expected.glsl
+++ b/test/intrinsics/gen/exp2/dea523.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/faceForward/5afbd5.wgsl.expected.glsl b/test/intrinsics/gen/faceForward/5afbd5.wgsl.expected.glsl
index a582f90..5dbbc6d 100644
--- a/test/intrinsics/gen/faceForward/5afbd5.wgsl.expected.glsl
+++ b/test/intrinsics/gen/faceForward/5afbd5.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/faceForward/b316e5.wgsl.expected.glsl b/test/intrinsics/gen/faceForward/b316e5.wgsl.expected.glsl
index 791ba27..e488435 100644
--- a/test/intrinsics/gen/faceForward/b316e5.wgsl.expected.glsl
+++ b/test/intrinsics/gen/faceForward/b316e5.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/faceForward/e6908b.wgsl.expected.glsl b/test/intrinsics/gen/faceForward/e6908b.wgsl.expected.glsl
index a1bd76b..14d0f5d 100644
--- a/test/intrinsics/gen/faceForward/e6908b.wgsl.expected.glsl
+++ b/test/intrinsics/gen/faceForward/e6908b.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/floor/3bccc4.wgsl.expected.glsl b/test/intrinsics/gen/floor/3bccc4.wgsl.expected.glsl
index 25ea844..1552c45 100644
--- a/test/intrinsics/gen/floor/3bccc4.wgsl.expected.glsl
+++ b/test/intrinsics/gen/floor/3bccc4.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/floor/5fc9ac.wgsl.expected.glsl b/test/intrinsics/gen/floor/5fc9ac.wgsl.expected.glsl
index d92b849..8255234 100644
--- a/test/intrinsics/gen/floor/5fc9ac.wgsl.expected.glsl
+++ b/test/intrinsics/gen/floor/5fc9ac.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/floor/60d7ea.wgsl.expected.glsl b/test/intrinsics/gen/floor/60d7ea.wgsl.expected.glsl
index bae81bb..234af63 100644
--- a/test/intrinsics/gen/floor/60d7ea.wgsl.expected.glsl
+++ b/test/intrinsics/gen/floor/60d7ea.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/floor/66f154.wgsl.expected.glsl b/test/intrinsics/gen/floor/66f154.wgsl.expected.glsl
index e26964e..8b00479 100644
--- a/test/intrinsics/gen/floor/66f154.wgsl.expected.glsl
+++ b/test/intrinsics/gen/floor/66f154.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/fma/26a7a9.wgsl.expected.glsl b/test/intrinsics/gen/fma/26a7a9.wgsl.expected.glsl
index 7bcc736..65e2184 100644
--- a/test/intrinsics/gen/fma/26a7a9.wgsl.expected.glsl
+++ b/test/intrinsics/gen/fma/26a7a9.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/fma/6a3283.wgsl.expected.glsl b/test/intrinsics/gen/fma/6a3283.wgsl.expected.glsl
index 54a7577..7436355 100644
--- a/test/intrinsics/gen/fma/6a3283.wgsl.expected.glsl
+++ b/test/intrinsics/gen/fma/6a3283.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/fma/c10ba3.wgsl.expected.glsl b/test/intrinsics/gen/fma/c10ba3.wgsl.expected.glsl
index a48ff5c..30e2d14 100644
--- a/test/intrinsics/gen/fma/c10ba3.wgsl.expected.glsl
+++ b/test/intrinsics/gen/fma/c10ba3.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/fma/e17c5c.wgsl.expected.glsl b/test/intrinsics/gen/fma/e17c5c.wgsl.expected.glsl
index 1a0d92d..7c0248e 100644
--- a/test/intrinsics/gen/fma/e17c5c.wgsl.expected.glsl
+++ b/test/intrinsics/gen/fma/e17c5c.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/fract/8bc1e9.wgsl.expected.glsl b/test/intrinsics/gen/fract/8bc1e9.wgsl.expected.glsl
index 9b128ba..0375ada 100644
--- a/test/intrinsics/gen/fract/8bc1e9.wgsl.expected.glsl
+++ b/test/intrinsics/gen/fract/8bc1e9.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/fract/943cb1.wgsl.expected.glsl b/test/intrinsics/gen/fract/943cb1.wgsl.expected.glsl
index 8e6e966..61ab739 100644
--- a/test/intrinsics/gen/fract/943cb1.wgsl.expected.glsl
+++ b/test/intrinsics/gen/fract/943cb1.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/fract/a49758.wgsl.expected.glsl b/test/intrinsics/gen/fract/a49758.wgsl.expected.glsl
index 2ea3ff8..156d5e9 100644
--- a/test/intrinsics/gen/fract/a49758.wgsl.expected.glsl
+++ b/test/intrinsics/gen/fract/a49758.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/fract/fa5c71.wgsl.expected.glsl b/test/intrinsics/gen/fract/fa5c71.wgsl.expected.glsl
index 884ec28..3f97c82 100644
--- a/test/intrinsics/gen/fract/fa5c71.wgsl.expected.glsl
+++ b/test/intrinsics/gen/fract/fa5c71.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/frexp/368997.wgsl.expected.glsl b/test/intrinsics/gen/frexp/368997.wgsl.expected.glsl
index 3db9e73..1506936 100644
--- a/test/intrinsics/gen/frexp/368997.wgsl.expected.glsl
+++ b/test/intrinsics/gen/frexp/368997.wgsl.expected.glsl
@@ -38,6 +38,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/frexp/3c4f48.wgsl.expected.glsl b/test/intrinsics/gen/frexp/3c4f48.wgsl.expected.glsl
index 9d3d477..bf14350 100644
--- a/test/intrinsics/gen/frexp/3c4f48.wgsl.expected.glsl
+++ b/test/intrinsics/gen/frexp/3c4f48.wgsl.expected.glsl
@@ -38,6 +38,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/frexp/4bdfc7.wgsl.expected.glsl b/test/intrinsics/gen/frexp/4bdfc7.wgsl.expected.glsl
index 770654e..ff8402c 100644
--- a/test/intrinsics/gen/frexp/4bdfc7.wgsl.expected.glsl
+++ b/test/intrinsics/gen/frexp/4bdfc7.wgsl.expected.glsl
@@ -38,6 +38,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/frexp/eabd40.wgsl.expected.glsl b/test/intrinsics/gen/frexp/eabd40.wgsl.expected.glsl
index 6d2f022..e16cc08 100644
--- a/test/intrinsics/gen/frexp/eabd40.wgsl.expected.glsl
+++ b/test/intrinsics/gen/frexp/eabd40.wgsl.expected.glsl
@@ -38,6 +38,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/ignore/51aeb7.wgsl.expected.glsl b/test/intrinsics/gen/ignore/51aeb7.wgsl.expected.glsl
index db87165..a9d7595 100644
--- a/test/intrinsics/gen/ignore/51aeb7.wgsl.expected.glsl
+++ b/test/intrinsics/gen/ignore/51aeb7.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/ignore/6698df.wgsl.expected.glsl b/test/intrinsics/gen/ignore/6698df.wgsl.expected.glsl
index 0ce2ba0..d3e5912 100644
--- a/test/intrinsics/gen/ignore/6698df.wgsl.expected.glsl
+++ b/test/intrinsics/gen/ignore/6698df.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/ignore/d91a2f.wgsl.expected.glsl b/test/intrinsics/gen/ignore/d91a2f.wgsl.expected.glsl
index a64b4e1..4f16889 100644
--- a/test/intrinsics/gen/ignore/d91a2f.wgsl.expected.glsl
+++ b/test/intrinsics/gen/ignore/d91a2f.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/ignore/f414a6.wgsl.expected.glsl b/test/intrinsics/gen/ignore/f414a6.wgsl.expected.glsl
index 91a8f8d..7e976a5 100644
--- a/test/intrinsics/gen/ignore/f414a6.wgsl.expected.glsl
+++ b/test/intrinsics/gen/ignore/f414a6.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/inverseSqrt/84407e.wgsl.expected.glsl b/test/intrinsics/gen/inverseSqrt/84407e.wgsl.expected.glsl
index e73db6b..790d03b 100644
--- a/test/intrinsics/gen/inverseSqrt/84407e.wgsl.expected.glsl
+++ b/test/intrinsics/gen/inverseSqrt/84407e.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/inverseSqrt/8f2bd2.wgsl.expected.glsl b/test/intrinsics/gen/inverseSqrt/8f2bd2.wgsl.expected.glsl
index 20a6562..bb7a249 100644
--- a/test/intrinsics/gen/inverseSqrt/8f2bd2.wgsl.expected.glsl
+++ b/test/intrinsics/gen/inverseSqrt/8f2bd2.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/inverseSqrt/b197b1.wgsl.expected.glsl b/test/intrinsics/gen/inverseSqrt/b197b1.wgsl.expected.glsl
index 6e2818a..d4f4e54 100644
--- a/test/intrinsics/gen/inverseSqrt/b197b1.wgsl.expected.glsl
+++ b/test/intrinsics/gen/inverseSqrt/b197b1.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/inverseSqrt/c22347.wgsl.expected.glsl b/test/intrinsics/gen/inverseSqrt/c22347.wgsl.expected.glsl
index ab3fead..6725af4 100644
--- a/test/intrinsics/gen/inverseSqrt/c22347.wgsl.expected.glsl
+++ b/test/intrinsics/gen/inverseSqrt/c22347.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/isFinite/34d32b.wgsl.expected.glsl b/test/intrinsics/gen/isFinite/34d32b.wgsl.expected.glsl
index 380ee12..0d46074 100644
--- a/test/intrinsics/gen/isFinite/34d32b.wgsl.expected.glsl
+++ b/test/intrinsics/gen/isFinite/34d32b.wgsl.expected.glsl
@@ -30,6 +30,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/isFinite/426f9f.wgsl.expected.glsl b/test/intrinsics/gen/isFinite/426f9f.wgsl.expected.glsl
index b15d078..2fd72b3 100644
--- a/test/intrinsics/gen/isFinite/426f9f.wgsl.expected.glsl
+++ b/test/intrinsics/gen/isFinite/426f9f.wgsl.expected.glsl
@@ -30,6 +30,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/isFinite/8a23ad.wgsl.expected.glsl b/test/intrinsics/gen/isFinite/8a23ad.wgsl.expected.glsl
index 4383ca4..91124f9 100644
--- a/test/intrinsics/gen/isFinite/8a23ad.wgsl.expected.glsl
+++ b/test/intrinsics/gen/isFinite/8a23ad.wgsl.expected.glsl
@@ -30,6 +30,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/isFinite/f31987.wgsl.expected.glsl b/test/intrinsics/gen/isFinite/f31987.wgsl.expected.glsl
index 3739c2a..395c892 100644
--- a/test/intrinsics/gen/isFinite/f31987.wgsl.expected.glsl
+++ b/test/intrinsics/gen/isFinite/f31987.wgsl.expected.glsl
@@ -30,6 +30,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/isInf/666f2a.wgsl.expected.glsl b/test/intrinsics/gen/isInf/666f2a.wgsl.expected.glsl
index 1d30f1c..870a48f 100644
--- a/test/intrinsics/gen/isInf/666f2a.wgsl.expected.glsl
+++ b/test/intrinsics/gen/isInf/666f2a.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/isInf/7bd98f.wgsl.expected.glsl b/test/intrinsics/gen/isInf/7bd98f.wgsl.expected.glsl
index 74a902c..bb37301 100644
--- a/test/intrinsics/gen/isInf/7bd98f.wgsl.expected.glsl
+++ b/test/intrinsics/gen/isInf/7bd98f.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/isInf/7e81b5.wgsl.expected.glsl b/test/intrinsics/gen/isInf/7e81b5.wgsl.expected.glsl
index 1045535..77035e8 100644
--- a/test/intrinsics/gen/isInf/7e81b5.wgsl.expected.glsl
+++ b/test/intrinsics/gen/isInf/7e81b5.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/isInf/a46d6f.wgsl.expected.glsl b/test/intrinsics/gen/isInf/a46d6f.wgsl.expected.glsl
index 1919c56..2bb0f8c 100644
--- a/test/intrinsics/gen/isInf/a46d6f.wgsl.expected.glsl
+++ b/test/intrinsics/gen/isInf/a46d6f.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/isNan/1280ab.wgsl.expected.glsl b/test/intrinsics/gen/isNan/1280ab.wgsl.expected.glsl
index 6b33851..3e392cc 100644
--- a/test/intrinsics/gen/isNan/1280ab.wgsl.expected.glsl
+++ b/test/intrinsics/gen/isNan/1280ab.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/isNan/4d280d.wgsl.expected.glsl b/test/intrinsics/gen/isNan/4d280d.wgsl.expected.glsl
index 6ace2f9..0da055c 100644
--- a/test/intrinsics/gen/isNan/4d280d.wgsl.expected.glsl
+++ b/test/intrinsics/gen/isNan/4d280d.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/isNan/67ecd3.wgsl.expected.glsl b/test/intrinsics/gen/isNan/67ecd3.wgsl.expected.glsl
index cfc77ea..e7ec27b 100644
--- a/test/intrinsics/gen/isNan/67ecd3.wgsl.expected.glsl
+++ b/test/intrinsics/gen/isNan/67ecd3.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/isNan/e4978e.wgsl.expected.glsl b/test/intrinsics/gen/isNan/e4978e.wgsl.expected.glsl
index 73191e8..8033cb1 100644
--- a/test/intrinsics/gen/isNan/e4978e.wgsl.expected.glsl
+++ b/test/intrinsics/gen/isNan/e4978e.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/isNormal/863dcd.wgsl.expected.glsl b/test/intrinsics/gen/isNormal/863dcd.wgsl.expected.glsl
index 4f8eb6c..23d8edf 100644
--- a/test/intrinsics/gen/isNormal/863dcd.wgsl.expected.glsl
+++ b/test/intrinsics/gen/isNormal/863dcd.wgsl.expected.glsl
@@ -37,6 +37,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/isNormal/b00ab1.wgsl.expected.glsl b/test/intrinsics/gen/isNormal/b00ab1.wgsl.expected.glsl
index 45d65e7..53e9308 100644
--- a/test/intrinsics/gen/isNormal/b00ab1.wgsl.expected.glsl
+++ b/test/intrinsics/gen/isNormal/b00ab1.wgsl.expected.glsl
@@ -37,6 +37,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/isNormal/c286b7.wgsl.expected.glsl b/test/intrinsics/gen/isNormal/c286b7.wgsl.expected.glsl
index 403beac..fdd976b 100644
--- a/test/intrinsics/gen/isNormal/c286b7.wgsl.expected.glsl
+++ b/test/intrinsics/gen/isNormal/c286b7.wgsl.expected.glsl
@@ -37,6 +37,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/isNormal/c6e880.wgsl.expected.glsl b/test/intrinsics/gen/isNormal/c6e880.wgsl.expected.glsl
index 4d8a868..58fb928 100644
--- a/test/intrinsics/gen/isNormal/c6e880.wgsl.expected.glsl
+++ b/test/intrinsics/gen/isNormal/c6e880.wgsl.expected.glsl
@@ -37,6 +37,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/ldexp/a31cdc.wgsl.expected.glsl b/test/intrinsics/gen/ldexp/a31cdc.wgsl.expected.glsl
index 6be4130..2ce0179 100644
--- a/test/intrinsics/gen/ldexp/a31cdc.wgsl.expected.glsl
+++ b/test/intrinsics/gen/ldexp/a31cdc.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/ldexp/abd718.wgsl.expected.glsl b/test/intrinsics/gen/ldexp/abd718.wgsl.expected.glsl
index 3f863c5..d331a20 100644
--- a/test/intrinsics/gen/ldexp/abd718.wgsl.expected.glsl
+++ b/test/intrinsics/gen/ldexp/abd718.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/ldexp/cc9cde.wgsl.expected.glsl b/test/intrinsics/gen/ldexp/cc9cde.wgsl.expected.glsl
index fa29694..38cd6b5 100644
--- a/test/intrinsics/gen/ldexp/cc9cde.wgsl.expected.glsl
+++ b/test/intrinsics/gen/ldexp/cc9cde.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/ldexp/db8b49.wgsl.expected.glsl b/test/intrinsics/gen/ldexp/db8b49.wgsl.expected.glsl
index 9bb389d..c34ebd0 100644
--- a/test/intrinsics/gen/ldexp/db8b49.wgsl.expected.glsl
+++ b/test/intrinsics/gen/ldexp/db8b49.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/length/056071.wgsl.expected.glsl b/test/intrinsics/gen/length/056071.wgsl.expected.glsl
index 433a775..1316030 100644
--- a/test/intrinsics/gen/length/056071.wgsl.expected.glsl
+++ b/test/intrinsics/gen/length/056071.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/length/602a17.wgsl.expected.glsl b/test/intrinsics/gen/length/602a17.wgsl.expected.glsl
index a5300f5..59c2009 100644
--- a/test/intrinsics/gen/length/602a17.wgsl.expected.glsl
+++ b/test/intrinsics/gen/length/602a17.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/length/afde8b.wgsl.expected.glsl b/test/intrinsics/gen/length/afde8b.wgsl.expected.glsl
index 6e7979e..c59c8834 100644
--- a/test/intrinsics/gen/length/afde8b.wgsl.expected.glsl
+++ b/test/intrinsics/gen/length/afde8b.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/length/becebf.wgsl.expected.glsl b/test/intrinsics/gen/length/becebf.wgsl.expected.glsl
index 8b74be8..9d9618c 100644
--- a/test/intrinsics/gen/length/becebf.wgsl.expected.glsl
+++ b/test/intrinsics/gen/length/becebf.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/log/3da25a.wgsl.expected.glsl b/test/intrinsics/gen/log/3da25a.wgsl.expected.glsl
index f312339..234a002 100644
--- a/test/intrinsics/gen/log/3da25a.wgsl.expected.glsl
+++ b/test/intrinsics/gen/log/3da25a.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/log/7114a6.wgsl.expected.glsl b/test/intrinsics/gen/log/7114a6.wgsl.expected.glsl
index 19b3e42..a24f791 100644
--- a/test/intrinsics/gen/log/7114a6.wgsl.expected.glsl
+++ b/test/intrinsics/gen/log/7114a6.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/log/b2ce28.wgsl.expected.glsl b/test/intrinsics/gen/log/b2ce28.wgsl.expected.glsl
index 2181f22..f93a0bc 100644
--- a/test/intrinsics/gen/log/b2ce28.wgsl.expected.glsl
+++ b/test/intrinsics/gen/log/b2ce28.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/log/f4c570.wgsl.expected.glsl b/test/intrinsics/gen/log/f4c570.wgsl.expected.glsl
index a75bf17..0256c6c 100644
--- a/test/intrinsics/gen/log/f4c570.wgsl.expected.glsl
+++ b/test/intrinsics/gen/log/f4c570.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/log2/4036ed.wgsl.expected.glsl b/test/intrinsics/gen/log2/4036ed.wgsl.expected.glsl
index e3a12d7..7eda0dd 100644
--- a/test/intrinsics/gen/log2/4036ed.wgsl.expected.glsl
+++ b/test/intrinsics/gen/log2/4036ed.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/log2/902988.wgsl.expected.glsl b/test/intrinsics/gen/log2/902988.wgsl.expected.glsl
index f1d25b7..f62ea98 100644
--- a/test/intrinsics/gen/log2/902988.wgsl.expected.glsl
+++ b/test/intrinsics/gen/log2/902988.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/log2/adb233.wgsl.expected.glsl b/test/intrinsics/gen/log2/adb233.wgsl.expected.glsl
index 2785876..1c68e82 100644
--- a/test/intrinsics/gen/log2/adb233.wgsl.expected.glsl
+++ b/test/intrinsics/gen/log2/adb233.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/log2/aea659.wgsl.expected.glsl b/test/intrinsics/gen/log2/aea659.wgsl.expected.glsl
index 105fc9e..da187fe 100644
--- a/test/intrinsics/gen/log2/aea659.wgsl.expected.glsl
+++ b/test/intrinsics/gen/log2/aea659.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/max/0c0aae.wgsl.expected.glsl b/test/intrinsics/gen/max/0c0aae.wgsl.expected.glsl
index 6462db5..26b2d96 100644
--- a/test/intrinsics/gen/max/0c0aae.wgsl.expected.glsl
+++ b/test/intrinsics/gen/max/0c0aae.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/max/25eafe.wgsl.expected.glsl b/test/intrinsics/gen/max/25eafe.wgsl.expected.glsl
index 81b1a2c..936d5e6 100644
--- a/test/intrinsics/gen/max/25eafe.wgsl.expected.glsl
+++ b/test/intrinsics/gen/max/25eafe.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/max/320815.wgsl.expected.glsl b/test/intrinsics/gen/max/320815.wgsl.expected.glsl
index 33a176b..e72fe51 100644
--- a/test/intrinsics/gen/max/320815.wgsl.expected.glsl
+++ b/test/intrinsics/gen/max/320815.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/max/44a39d.wgsl.expected.glsl b/test/intrinsics/gen/max/44a39d.wgsl.expected.glsl
index e0a701f..1b72e31 100644
--- a/test/intrinsics/gen/max/44a39d.wgsl.expected.glsl
+++ b/test/intrinsics/gen/max/44a39d.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/max/453e04.wgsl.expected.glsl b/test/intrinsics/gen/max/453e04.wgsl.expected.glsl
index f9ec53e..19e7f1f 100644
--- a/test/intrinsics/gen/max/453e04.wgsl.expected.glsl
+++ b/test/intrinsics/gen/max/453e04.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/max/462050.wgsl.expected.glsl b/test/intrinsics/gen/max/462050.wgsl.expected.glsl
index 038fa12..0c680c9 100644
--- a/test/intrinsics/gen/max/462050.wgsl.expected.glsl
+++ b/test/intrinsics/gen/max/462050.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/max/4883ac.wgsl.expected.glsl b/test/intrinsics/gen/max/4883ac.wgsl.expected.glsl
index 60b9131..f1fe35a 100644
--- a/test/intrinsics/gen/max/4883ac.wgsl.expected.glsl
+++ b/test/intrinsics/gen/max/4883ac.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/max/85e6bc.wgsl.expected.glsl b/test/intrinsics/gen/max/85e6bc.wgsl.expected.glsl
index 14fb911..8c916c8 100644
--- a/test/intrinsics/gen/max/85e6bc.wgsl.expected.glsl
+++ b/test/intrinsics/gen/max/85e6bc.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/max/a93419.wgsl.expected.glsl b/test/intrinsics/gen/max/a93419.wgsl.expected.glsl
index d988e4f..ba1ee86 100644
--- a/test/intrinsics/gen/max/a93419.wgsl.expected.glsl
+++ b/test/intrinsics/gen/max/a93419.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/max/b1b73a.wgsl.expected.glsl b/test/intrinsics/gen/max/b1b73a.wgsl.expected.glsl
index 5ac1a04..e4a3b6d 100644
--- a/test/intrinsics/gen/max/b1b73a.wgsl.expected.glsl
+++ b/test/intrinsics/gen/max/b1b73a.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/max/ce7c30.wgsl.expected.glsl b/test/intrinsics/gen/max/ce7c30.wgsl.expected.glsl
index 78a41e4..4221ecd 100644
--- a/test/intrinsics/gen/max/ce7c30.wgsl.expected.glsl
+++ b/test/intrinsics/gen/max/ce7c30.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/max/e8192f.wgsl.expected.glsl b/test/intrinsics/gen/max/e8192f.wgsl.expected.glsl
index 0df9fe1..14fc550 100644
--- a/test/intrinsics/gen/max/e8192f.wgsl.expected.glsl
+++ b/test/intrinsics/gen/max/e8192f.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/min/03c7e3.wgsl.expected.glsl b/test/intrinsics/gen/min/03c7e3.wgsl.expected.glsl
index 3681cac..f92e9cb 100644
--- a/test/intrinsics/gen/min/03c7e3.wgsl.expected.glsl
+++ b/test/intrinsics/gen/min/03c7e3.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/min/0dc614.wgsl.expected.glsl b/test/intrinsics/gen/min/0dc614.wgsl.expected.glsl
index 5f46503..980a701 100644
--- a/test/intrinsics/gen/min/0dc614.wgsl.expected.glsl
+++ b/test/intrinsics/gen/min/0dc614.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/min/3941e1.wgsl.expected.glsl b/test/intrinsics/gen/min/3941e1.wgsl.expected.glsl
index 4b50155..6f40cd9 100644
--- a/test/intrinsics/gen/min/3941e1.wgsl.expected.glsl
+++ b/test/intrinsics/gen/min/3941e1.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/min/46c5d3.wgsl.expected.glsl b/test/intrinsics/gen/min/46c5d3.wgsl.expected.glsl
index 6a12575..72f91a5 100644
--- a/test/intrinsics/gen/min/46c5d3.wgsl.expected.glsl
+++ b/test/intrinsics/gen/min/46c5d3.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/min/82b28f.wgsl.expected.glsl b/test/intrinsics/gen/min/82b28f.wgsl.expected.glsl
index ccc288d..e3845f7 100644
--- a/test/intrinsics/gen/min/82b28f.wgsl.expected.glsl
+++ b/test/intrinsics/gen/min/82b28f.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/min/93cfc4.wgsl.expected.glsl b/test/intrinsics/gen/min/93cfc4.wgsl.expected.glsl
index 6c8ed16..dc784fd 100644
--- a/test/intrinsics/gen/min/93cfc4.wgsl.expected.glsl
+++ b/test/intrinsics/gen/min/93cfc4.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/min/a45171.wgsl.expected.glsl b/test/intrinsics/gen/min/a45171.wgsl.expected.glsl
index be1e651..e8b51fd 100644
--- a/test/intrinsics/gen/min/a45171.wgsl.expected.glsl
+++ b/test/intrinsics/gen/min/a45171.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/min/aa28ad.wgsl.expected.glsl b/test/intrinsics/gen/min/aa28ad.wgsl.expected.glsl
index e278388..95169e0 100644
--- a/test/intrinsics/gen/min/aa28ad.wgsl.expected.glsl
+++ b/test/intrinsics/gen/min/aa28ad.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/min/af326d.wgsl.expected.glsl b/test/intrinsics/gen/min/af326d.wgsl.expected.glsl
index fb6c905..23e2ce1 100644
--- a/test/intrinsics/gen/min/af326d.wgsl.expected.glsl
+++ b/test/intrinsics/gen/min/af326d.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/min/c70bb7.wgsl.expected.glsl b/test/intrinsics/gen/min/c70bb7.wgsl.expected.glsl
index 1497821..ce53401 100644
--- a/test/intrinsics/gen/min/c70bb7.wgsl.expected.glsl
+++ b/test/intrinsics/gen/min/c70bb7.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/min/c73147.wgsl.expected.glsl b/test/intrinsics/gen/min/c73147.wgsl.expected.glsl
index 33890b6..747e2ed 100644
--- a/test/intrinsics/gen/min/c73147.wgsl.expected.glsl
+++ b/test/intrinsics/gen/min/c73147.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/min/c76fa6.wgsl.expected.glsl b/test/intrinsics/gen/min/c76fa6.wgsl.expected.glsl
index d592973..07477ab 100644
--- a/test/intrinsics/gen/min/c76fa6.wgsl.expected.glsl
+++ b/test/intrinsics/gen/min/c76fa6.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/mix/0c8c33.wgsl.expected.glsl b/test/intrinsics/gen/mix/0c8c33.wgsl.expected.glsl
index 7655fec..27d05de 100644
--- a/test/intrinsics/gen/mix/0c8c33.wgsl.expected.glsl
+++ b/test/intrinsics/gen/mix/0c8c33.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/mix/1faeb1.wgsl.expected.glsl b/test/intrinsics/gen/mix/1faeb1.wgsl.expected.glsl
index 53f8f7e..6ebd051 100644
--- a/test/intrinsics/gen/mix/1faeb1.wgsl.expected.glsl
+++ b/test/intrinsics/gen/mix/1faeb1.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/mix/2fadab.wgsl.expected.glsl b/test/intrinsics/gen/mix/2fadab.wgsl.expected.glsl
index a51405d..e8f7679 100644
--- a/test/intrinsics/gen/mix/2fadab.wgsl.expected.glsl
+++ b/test/intrinsics/gen/mix/2fadab.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/mix/315264.wgsl.expected.glsl b/test/intrinsics/gen/mix/315264.wgsl.expected.glsl
index fcfcee9..3bdb9d0 100644
--- a/test/intrinsics/gen/mix/315264.wgsl.expected.glsl
+++ b/test/intrinsics/gen/mix/315264.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/mix/4f0b5e.wgsl.expected.glsl b/test/intrinsics/gen/mix/4f0b5e.wgsl.expected.glsl
index 9aadb86..2c2bb45 100644
--- a/test/intrinsics/gen/mix/4f0b5e.wgsl.expected.glsl
+++ b/test/intrinsics/gen/mix/4f0b5e.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/mix/6f8adc.wgsl.expected.glsl b/test/intrinsics/gen/mix/6f8adc.wgsl.expected.glsl
index a0f4d63..49ff4c3 100644
--- a/test/intrinsics/gen/mix/6f8adc.wgsl.expected.glsl
+++ b/test/intrinsics/gen/mix/6f8adc.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/mix/c37ede.wgsl.expected.glsl b/test/intrinsics/gen/mix/c37ede.wgsl.expected.glsl
index 440a8d8..cb6d7e3 100644
--- a/test/intrinsics/gen/mix/c37ede.wgsl.expected.glsl
+++ b/test/intrinsics/gen/mix/c37ede.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/modf/180fed.wgsl.expected.glsl b/test/intrinsics/gen/modf/180fed.wgsl.expected.glsl
index 24c591a..efa2621 100644
--- a/test/intrinsics/gen/modf/180fed.wgsl.expected.glsl
+++ b/test/intrinsics/gen/modf/180fed.wgsl.expected.glsl
@@ -38,6 +38,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/modf/9b75f7.wgsl.expected.glsl b/test/intrinsics/gen/modf/9b75f7.wgsl.expected.glsl
index d303f5b..4f22fcf 100644
--- a/test/intrinsics/gen/modf/9b75f7.wgsl.expected.glsl
+++ b/test/intrinsics/gen/modf/9b75f7.wgsl.expected.glsl
@@ -38,6 +38,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/modf/ec2dbc.wgsl.expected.glsl b/test/intrinsics/gen/modf/ec2dbc.wgsl.expected.glsl
index d249237..0229c44 100644
--- a/test/intrinsics/gen/modf/ec2dbc.wgsl.expected.glsl
+++ b/test/intrinsics/gen/modf/ec2dbc.wgsl.expected.glsl
@@ -38,6 +38,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/modf/f5f20d.wgsl.expected.glsl b/test/intrinsics/gen/modf/f5f20d.wgsl.expected.glsl
index 524bc1c..4848cee 100644
--- a/test/intrinsics/gen/modf/f5f20d.wgsl.expected.glsl
+++ b/test/intrinsics/gen/modf/f5f20d.wgsl.expected.glsl
@@ -38,6 +38,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/normalize/64d8c0.wgsl.expected.glsl b/test/intrinsics/gen/normalize/64d8c0.wgsl.expected.glsl
index 39ea34c..50ca5bf 100644
--- a/test/intrinsics/gen/normalize/64d8c0.wgsl.expected.glsl
+++ b/test/intrinsics/gen/normalize/64d8c0.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/normalize/9a0aab.wgsl.expected.glsl b/test/intrinsics/gen/normalize/9a0aab.wgsl.expected.glsl
index 717b70b..02f8bd9 100644
--- a/test/intrinsics/gen/normalize/9a0aab.wgsl.expected.glsl
+++ b/test/intrinsics/gen/normalize/9a0aab.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/normalize/fc2ef1.wgsl.expected.glsl b/test/intrinsics/gen/normalize/fc2ef1.wgsl.expected.glsl
index 7159f7f..f0eb1f5 100644
--- a/test/intrinsics/gen/normalize/fc2ef1.wgsl.expected.glsl
+++ b/test/intrinsics/gen/normalize/fc2ef1.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/pack2x16float/0e97b3.wgsl.expected.glsl b/test/intrinsics/gen/pack2x16float/0e97b3.wgsl.expected.glsl
index b34c723..8335d30 100644
--- a/test/intrinsics/gen/pack2x16float/0e97b3.wgsl.expected.glsl
+++ b/test/intrinsics/gen/pack2x16float/0e97b3.wgsl.expected.glsl
@@ -32,6 +32,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/pack2x16snorm/6c169b.wgsl.expected.glsl b/test/intrinsics/gen/pack2x16snorm/6c169b.wgsl.expected.glsl
index dbc5baa..3e7fe19 100644
--- a/test/intrinsics/gen/pack2x16snorm/6c169b.wgsl.expected.glsl
+++ b/test/intrinsics/gen/pack2x16snorm/6c169b.wgsl.expected.glsl
@@ -32,6 +32,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/pack2x16unorm/0f08e4.wgsl.expected.glsl b/test/intrinsics/gen/pack2x16unorm/0f08e4.wgsl.expected.glsl
index 957c998..bf3bafb 100644
--- a/test/intrinsics/gen/pack2x16unorm/0f08e4.wgsl.expected.glsl
+++ b/test/intrinsics/gen/pack2x16unorm/0f08e4.wgsl.expected.glsl
@@ -32,6 +32,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/pack4x8snorm/4d22e7.wgsl.expected.glsl b/test/intrinsics/gen/pack4x8snorm/4d22e7.wgsl.expected.glsl
index 665b0da..c183181 100644
--- a/test/intrinsics/gen/pack4x8snorm/4d22e7.wgsl.expected.glsl
+++ b/test/intrinsics/gen/pack4x8snorm/4d22e7.wgsl.expected.glsl
@@ -32,6 +32,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/pack4x8unorm/95c456.wgsl.expected.glsl b/test/intrinsics/gen/pack4x8unorm/95c456.wgsl.expected.glsl
index e2bb77f..4da2c32 100644
--- a/test/intrinsics/gen/pack4x8unorm/95c456.wgsl.expected.glsl
+++ b/test/intrinsics/gen/pack4x8unorm/95c456.wgsl.expected.glsl
@@ -32,6 +32,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/pow/04a908.wgsl.expected.glsl b/test/intrinsics/gen/pow/04a908.wgsl.expected.glsl
index c50c6af..a336cc9 100644
--- a/test/intrinsics/gen/pow/04a908.wgsl.expected.glsl
+++ b/test/intrinsics/gen/pow/04a908.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/pow/46e029.wgsl.expected.glsl b/test/intrinsics/gen/pow/46e029.wgsl.expected.glsl
index f8745f4..d70fc2f 100644
--- a/test/intrinsics/gen/pow/46e029.wgsl.expected.glsl
+++ b/test/intrinsics/gen/pow/46e029.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/pow/4a46c9.wgsl.expected.glsl b/test/intrinsics/gen/pow/4a46c9.wgsl.expected.glsl
index 5d76a94..6691e7a 100644
--- a/test/intrinsics/gen/pow/4a46c9.wgsl.expected.glsl
+++ b/test/intrinsics/gen/pow/4a46c9.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/pow/e60ea5.wgsl.expected.glsl b/test/intrinsics/gen/pow/e60ea5.wgsl.expected.glsl
index 5e2fb98..df359b2 100644
--- a/test/intrinsics/gen/pow/e60ea5.wgsl.expected.glsl
+++ b/test/intrinsics/gen/pow/e60ea5.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/radians/09b7fc.wgsl.expected.glsl b/test/intrinsics/gen/radians/09b7fc.wgsl.expected.glsl
index 5aa8a71..270c9d2 100644
--- a/test/intrinsics/gen/radians/09b7fc.wgsl.expected.glsl
+++ b/test/intrinsics/gen/radians/09b7fc.wgsl.expected.glsl
@@ -29,6 +29,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/radians/61687a.wgsl.expected.glsl b/test/intrinsics/gen/radians/61687a.wgsl.expected.glsl
index 2ed7f64..f2c469a 100644
--- a/test/intrinsics/gen/radians/61687a.wgsl.expected.glsl
+++ b/test/intrinsics/gen/radians/61687a.wgsl.expected.glsl
@@ -29,6 +29,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/radians/6b0ff2.wgsl.expected.glsl b/test/intrinsics/gen/radians/6b0ff2.wgsl.expected.glsl
index f7bde26..4494c76 100644
--- a/test/intrinsics/gen/radians/6b0ff2.wgsl.expected.glsl
+++ b/test/intrinsics/gen/radians/6b0ff2.wgsl.expected.glsl
@@ -29,6 +29,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/radians/f96258.wgsl.expected.glsl b/test/intrinsics/gen/radians/f96258.wgsl.expected.glsl
index eb106cb..2cf878e 100644
--- a/test/intrinsics/gen/radians/f96258.wgsl.expected.glsl
+++ b/test/intrinsics/gen/radians/f96258.wgsl.expected.glsl
@@ -29,6 +29,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/reflect/05357e.wgsl.expected.glsl b/test/intrinsics/gen/reflect/05357e.wgsl.expected.glsl
index 50be510..7d81f8f 100644
--- a/test/intrinsics/gen/reflect/05357e.wgsl.expected.glsl
+++ b/test/intrinsics/gen/reflect/05357e.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/reflect/b61e10.wgsl.expected.glsl b/test/intrinsics/gen/reflect/b61e10.wgsl.expected.glsl
index 91aec93..90303df 100644
--- a/test/intrinsics/gen/reflect/b61e10.wgsl.expected.glsl
+++ b/test/intrinsics/gen/reflect/b61e10.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/reflect/f47fdb.wgsl.expected.glsl b/test/intrinsics/gen/reflect/f47fdb.wgsl.expected.glsl
index a9cdf93..e4edf09 100644
--- a/test/intrinsics/gen/reflect/f47fdb.wgsl.expected.glsl
+++ b/test/intrinsics/gen/reflect/f47fdb.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/refract/7e02e6.wgsl.expected.glsl b/test/intrinsics/gen/refract/7e02e6.wgsl.expected.glsl
index e60675e..9f3ea85 100644
--- a/test/intrinsics/gen/refract/7e02e6.wgsl.expected.glsl
+++ b/test/intrinsics/gen/refract/7e02e6.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/refract/cbc1d2.wgsl.expected.glsl b/test/intrinsics/gen/refract/cbc1d2.wgsl.expected.glsl
index 2561c52..b1361ee 100644
--- a/test/intrinsics/gen/refract/cbc1d2.wgsl.expected.glsl
+++ b/test/intrinsics/gen/refract/cbc1d2.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/refract/cd905f.wgsl.expected.glsl b/test/intrinsics/gen/refract/cd905f.wgsl.expected.glsl
index 01765ce..12a9689 100644
--- a/test/intrinsics/gen/refract/cd905f.wgsl.expected.glsl
+++ b/test/intrinsics/gen/refract/cd905f.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/reverseBits/222177.wgsl.expected.glsl b/test/intrinsics/gen/reverseBits/222177.wgsl.expected.glsl
index d62daf3..1f240b4 100644
--- a/test/intrinsics/gen/reverseBits/222177.wgsl.expected.glsl
+++ b/test/intrinsics/gen/reverseBits/222177.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/reverseBits/35fea9.wgsl.expected.glsl b/test/intrinsics/gen/reverseBits/35fea9.wgsl.expected.glsl
index 4beb522..ca98e70 100644
--- a/test/intrinsics/gen/reverseBits/35fea9.wgsl.expected.glsl
+++ b/test/intrinsics/gen/reverseBits/35fea9.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/reverseBits/4dbd6f.wgsl.expected.glsl b/test/intrinsics/gen/reverseBits/4dbd6f.wgsl.expected.glsl
index 85ac5da..d6af58f 100644
--- a/test/intrinsics/gen/reverseBits/4dbd6f.wgsl.expected.glsl
+++ b/test/intrinsics/gen/reverseBits/4dbd6f.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/reverseBits/7c4269.wgsl.expected.glsl b/test/intrinsics/gen/reverseBits/7c4269.wgsl.expected.glsl
index 7109502..9dcf4bc 100644
--- a/test/intrinsics/gen/reverseBits/7c4269.wgsl.expected.glsl
+++ b/test/intrinsics/gen/reverseBits/7c4269.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/reverseBits/a6ccd4.wgsl.expected.glsl b/test/intrinsics/gen/reverseBits/a6ccd4.wgsl.expected.glsl
index 67c7af8..54e3baa 100644
--- a/test/intrinsics/gen/reverseBits/a6ccd4.wgsl.expected.glsl
+++ b/test/intrinsics/gen/reverseBits/a6ccd4.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/reverseBits/c21bc1.wgsl.expected.glsl b/test/intrinsics/gen/reverseBits/c21bc1.wgsl.expected.glsl
index a25b4a4..cf95586 100644
--- a/test/intrinsics/gen/reverseBits/c21bc1.wgsl.expected.glsl
+++ b/test/intrinsics/gen/reverseBits/c21bc1.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/reverseBits/e1f4c1.wgsl.expected.glsl b/test/intrinsics/gen/reverseBits/e1f4c1.wgsl.expected.glsl
index e314fbb..9a17b8c 100644
--- a/test/intrinsics/gen/reverseBits/e1f4c1.wgsl.expected.glsl
+++ b/test/intrinsics/gen/reverseBits/e1f4c1.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/reverseBits/e31adf.wgsl.expected.glsl b/test/intrinsics/gen/reverseBits/e31adf.wgsl.expected.glsl
index 35ab11c..ff07c39 100644
--- a/test/intrinsics/gen/reverseBits/e31adf.wgsl.expected.glsl
+++ b/test/intrinsics/gen/reverseBits/e31adf.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/round/106c0b.wgsl.expected.glsl b/test/intrinsics/gen/round/106c0b.wgsl.expected.glsl
index bd1e3cc..088e98a 100644
--- a/test/intrinsics/gen/round/106c0b.wgsl.expected.glsl
+++ b/test/intrinsics/gen/round/106c0b.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/round/1c7897.wgsl.expected.glsl b/test/intrinsics/gen/round/1c7897.wgsl.expected.glsl
index 28eb74c..8a1f931 100644
--- a/test/intrinsics/gen/round/1c7897.wgsl.expected.glsl
+++ b/test/intrinsics/gen/round/1c7897.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/round/52c84d.wgsl.expected.glsl b/test/intrinsics/gen/round/52c84d.wgsl.expected.glsl
index d9b15b5..b4bdde7 100644
--- a/test/intrinsics/gen/round/52c84d.wgsl.expected.glsl
+++ b/test/intrinsics/gen/round/52c84d.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/round/9edc38.wgsl.expected.glsl b/test/intrinsics/gen/round/9edc38.wgsl.expected.glsl
index df807da..d42fb3b 100644
--- a/test/intrinsics/gen/round/9edc38.wgsl.expected.glsl
+++ b/test/intrinsics/gen/round/9edc38.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/select/00b848.wgsl.expected.glsl b/test/intrinsics/gen/select/00b848.wgsl.expected.glsl
index 347a0b7..bcdbc9c 100644
--- a/test/intrinsics/gen/select/00b848.wgsl.expected.glsl
+++ b/test/intrinsics/gen/select/00b848.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/select/01e2cd.wgsl.expected.glsl b/test/intrinsics/gen/select/01e2cd.wgsl.expected.glsl
index f31d541..8ee7a9c 100644
--- a/test/intrinsics/gen/select/01e2cd.wgsl.expected.glsl
+++ b/test/intrinsics/gen/select/01e2cd.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/select/087ea4.wgsl.expected.glsl b/test/intrinsics/gen/select/087ea4.wgsl.expected.glsl
index 0179924..953ba8e 100644
--- a/test/intrinsics/gen/select/087ea4.wgsl.expected.glsl
+++ b/test/intrinsics/gen/select/087ea4.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/select/1e960b.wgsl.expected.glsl b/test/intrinsics/gen/select/1e960b.wgsl.expected.glsl
index 00238d3..bb3b71b 100644
--- a/test/intrinsics/gen/select/1e960b.wgsl.expected.glsl
+++ b/test/intrinsics/gen/select/1e960b.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/select/266aff.wgsl.expected.glsl b/test/intrinsics/gen/select/266aff.wgsl.expected.glsl
index fce4b89..5bb9c40 100644
--- a/test/intrinsics/gen/select/266aff.wgsl.expected.glsl
+++ b/test/intrinsics/gen/select/266aff.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/select/28a27e.wgsl.expected.glsl b/test/intrinsics/gen/select/28a27e.wgsl.expected.glsl
index 09ac5f0..796be36 100644
--- a/test/intrinsics/gen/select/28a27e.wgsl.expected.glsl
+++ b/test/intrinsics/gen/select/28a27e.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/select/3c25ce.wgsl.expected.glsl b/test/intrinsics/gen/select/3c25ce.wgsl.expected.glsl
index c1be4f7..3790d14 100644
--- a/test/intrinsics/gen/select/3c25ce.wgsl.expected.glsl
+++ b/test/intrinsics/gen/select/3c25ce.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/select/416e14.wgsl.expected.glsl b/test/intrinsics/gen/select/416e14.wgsl.expected.glsl
index e1fdb29..9d3f859 100644
--- a/test/intrinsics/gen/select/416e14.wgsl.expected.glsl
+++ b/test/intrinsics/gen/select/416e14.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/select/51b047.wgsl.expected.glsl b/test/intrinsics/gen/select/51b047.wgsl.expected.glsl
index 3004e29..2bf0d76 100644
--- a/test/intrinsics/gen/select/51b047.wgsl.expected.glsl
+++ b/test/intrinsics/gen/select/51b047.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/select/713567.wgsl.expected.glsl b/test/intrinsics/gen/select/713567.wgsl.expected.glsl
index 2d7eb6d..c46f90e 100644
--- a/test/intrinsics/gen/select/713567.wgsl.expected.glsl
+++ b/test/intrinsics/gen/select/713567.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/select/78be5f.wgsl.expected.glsl b/test/intrinsics/gen/select/78be5f.wgsl.expected.glsl
index df6fbf4..d4cbe6a 100644
--- a/test/intrinsics/gen/select/78be5f.wgsl.expected.glsl
+++ b/test/intrinsics/gen/select/78be5f.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/select/80a9a9.wgsl.expected.glsl b/test/intrinsics/gen/select/80a9a9.wgsl.expected.glsl
index 9c5e012..752a9a6 100644
--- a/test/intrinsics/gen/select/80a9a9.wgsl.expected.glsl
+++ b/test/intrinsics/gen/select/80a9a9.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/select/8fa62c.wgsl.expected.glsl b/test/intrinsics/gen/select/8fa62c.wgsl.expected.glsl
index 1821b3a..ddd9d4a 100644
--- a/test/intrinsics/gen/select/8fa62c.wgsl.expected.glsl
+++ b/test/intrinsics/gen/select/8fa62c.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/select/99f883.wgsl.expected.glsl b/test/intrinsics/gen/select/99f883.wgsl.expected.glsl
index 8125ab2..b38da75 100644
--- a/test/intrinsics/gen/select/99f883.wgsl.expected.glsl
+++ b/test/intrinsics/gen/select/99f883.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/select/a2860e.wgsl.expected.glsl b/test/intrinsics/gen/select/a2860e.wgsl.expected.glsl
index 52b9848..034f6de 100644
--- a/test/intrinsics/gen/select/a2860e.wgsl.expected.glsl
+++ b/test/intrinsics/gen/select/a2860e.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/select/ab069f.wgsl.expected.glsl b/test/intrinsics/gen/select/ab069f.wgsl.expected.glsl
index 6e3aa0e..376b4c9 100644
--- a/test/intrinsics/gen/select/ab069f.wgsl.expected.glsl
+++ b/test/intrinsics/gen/select/ab069f.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/select/b04721.wgsl.expected.glsl b/test/intrinsics/gen/select/b04721.wgsl.expected.glsl
index 6d577be..3f1e5e9 100644
--- a/test/intrinsics/gen/select/b04721.wgsl.expected.glsl
+++ b/test/intrinsics/gen/select/b04721.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/select/bb447f.wgsl.expected.glsl b/test/intrinsics/gen/select/bb447f.wgsl.expected.glsl
index c8d1747..d755711 100644
--- a/test/intrinsics/gen/select/bb447f.wgsl.expected.glsl
+++ b/test/intrinsics/gen/select/bb447f.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/select/bb8aae.wgsl.expected.glsl b/test/intrinsics/gen/select/bb8aae.wgsl.expected.glsl
index 1723d39..5220945 100644
--- a/test/intrinsics/gen/select/bb8aae.wgsl.expected.glsl
+++ b/test/intrinsics/gen/select/bb8aae.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/select/bf3d29.wgsl.expected.glsl b/test/intrinsics/gen/select/bf3d29.wgsl.expected.glsl
index 5d30a5d..f09b128 100644
--- a/test/intrinsics/gen/select/bf3d29.wgsl.expected.glsl
+++ b/test/intrinsics/gen/select/bf3d29.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/select/c31f9e.wgsl.expected.glsl b/test/intrinsics/gen/select/c31f9e.wgsl.expected.glsl
index b95f6ab..4055abb 100644
--- a/test/intrinsics/gen/select/c31f9e.wgsl.expected.glsl
+++ b/test/intrinsics/gen/select/c31f9e.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/select/c41bd1.wgsl.expected.glsl b/test/intrinsics/gen/select/c41bd1.wgsl.expected.glsl
index 1275c19..fbd94e1 100644
--- a/test/intrinsics/gen/select/c41bd1.wgsl.expected.glsl
+++ b/test/intrinsics/gen/select/c41bd1.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/select/c4a4ef.wgsl.expected.glsl b/test/intrinsics/gen/select/c4a4ef.wgsl.expected.glsl
index 926264c..d1112ca 100644
--- a/test/intrinsics/gen/select/c4a4ef.wgsl.expected.glsl
+++ b/test/intrinsics/gen/select/c4a4ef.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/select/cb9301.wgsl.expected.glsl b/test/intrinsics/gen/select/cb9301.wgsl.expected.glsl
index 2149581..f495bf0 100644
--- a/test/intrinsics/gen/select/cb9301.wgsl.expected.glsl
+++ b/test/intrinsics/gen/select/cb9301.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/select/e3e028.wgsl.expected.glsl b/test/intrinsics/gen/select/e3e028.wgsl.expected.glsl
index 9a62a71..edd3d6a 100644
--- a/test/intrinsics/gen/select/e3e028.wgsl.expected.glsl
+++ b/test/intrinsics/gen/select/e3e028.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/select/ebfea2.wgsl.expected.glsl b/test/intrinsics/gen/select/ebfea2.wgsl.expected.glsl
index 3843641..291479b 100644
--- a/test/intrinsics/gen/select/ebfea2.wgsl.expected.glsl
+++ b/test/intrinsics/gen/select/ebfea2.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/select/ed8a15.wgsl.expected.glsl b/test/intrinsics/gen/select/ed8a15.wgsl.expected.glsl
index 1145b1e..b5a024e 100644
--- a/test/intrinsics/gen/select/ed8a15.wgsl.expected.glsl
+++ b/test/intrinsics/gen/select/ed8a15.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/select/fb7e53.wgsl.expected.glsl b/test/intrinsics/gen/select/fb7e53.wgsl.expected.glsl
index 4fcd1db..ded66c1 100644
--- a/test/intrinsics/gen/select/fb7e53.wgsl.expected.glsl
+++ b/test/intrinsics/gen/select/fb7e53.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/sign/159665.wgsl.expected.glsl b/test/intrinsics/gen/sign/159665.wgsl.expected.glsl
index a226002..594594b 100644
--- a/test/intrinsics/gen/sign/159665.wgsl.expected.glsl
+++ b/test/intrinsics/gen/sign/159665.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/sign/b8f634.wgsl.expected.glsl b/test/intrinsics/gen/sign/b8f634.wgsl.expected.glsl
index a2b8a3c..231bae2 100644
--- a/test/intrinsics/gen/sign/b8f634.wgsl.expected.glsl
+++ b/test/intrinsics/gen/sign/b8f634.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/sign/d065d8.wgsl.expected.glsl b/test/intrinsics/gen/sign/d065d8.wgsl.expected.glsl
index 2085558..b9897f1 100644
--- a/test/intrinsics/gen/sign/d065d8.wgsl.expected.glsl
+++ b/test/intrinsics/gen/sign/d065d8.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/sign/dd790e.wgsl.expected.glsl b/test/intrinsics/gen/sign/dd790e.wgsl.expected.glsl
index 9a999ef..cbb2304 100644
--- a/test/intrinsics/gen/sign/dd790e.wgsl.expected.glsl
+++ b/test/intrinsics/gen/sign/dd790e.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/sin/01f241.wgsl.expected.glsl b/test/intrinsics/gen/sin/01f241.wgsl.expected.glsl
index 0ab76db..51d31ee 100644
--- a/test/intrinsics/gen/sin/01f241.wgsl.expected.glsl
+++ b/test/intrinsics/gen/sin/01f241.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/sin/4e3979.wgsl.expected.glsl b/test/intrinsics/gen/sin/4e3979.wgsl.expected.glsl
index 0f3d911..f34b822 100644
--- a/test/intrinsics/gen/sin/4e3979.wgsl.expected.glsl
+++ b/test/intrinsics/gen/sin/4e3979.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/sin/b78c91.wgsl.expected.glsl b/test/intrinsics/gen/sin/b78c91.wgsl.expected.glsl
index 2b77b75..d849a11 100644
--- a/test/intrinsics/gen/sin/b78c91.wgsl.expected.glsl
+++ b/test/intrinsics/gen/sin/b78c91.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/sin/fc8bc4.wgsl.expected.glsl b/test/intrinsics/gen/sin/fc8bc4.wgsl.expected.glsl
index 2a71109..d1e42e7 100644
--- a/test/intrinsics/gen/sin/fc8bc4.wgsl.expected.glsl
+++ b/test/intrinsics/gen/sin/fc8bc4.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/sinh/445e33.wgsl.expected.glsl b/test/intrinsics/gen/sinh/445e33.wgsl.expected.glsl
index daa07fb..5401860 100644
--- a/test/intrinsics/gen/sinh/445e33.wgsl.expected.glsl
+++ b/test/intrinsics/gen/sinh/445e33.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/sinh/7bb598.wgsl.expected.glsl b/test/intrinsics/gen/sinh/7bb598.wgsl.expected.glsl
index 5788072..6c2544d 100644
--- a/test/intrinsics/gen/sinh/7bb598.wgsl.expected.glsl
+++ b/test/intrinsics/gen/sinh/7bb598.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/sinh/b9860e.wgsl.expected.glsl b/test/intrinsics/gen/sinh/b9860e.wgsl.expected.glsl
index 4662041..dff0577 100644
--- a/test/intrinsics/gen/sinh/b9860e.wgsl.expected.glsl
+++ b/test/intrinsics/gen/sinh/b9860e.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/sinh/c9a5eb.wgsl.expected.glsl b/test/intrinsics/gen/sinh/c9a5eb.wgsl.expected.glsl
index d586f6d..a6fdb9a 100644
--- a/test/intrinsics/gen/sinh/c9a5eb.wgsl.expected.glsl
+++ b/test/intrinsics/gen/sinh/c9a5eb.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/smoothStep/5f615b.wgsl.expected.glsl b/test/intrinsics/gen/smoothStep/5f615b.wgsl.expected.glsl
index 718da19..e2086a4 100644
--- a/test/intrinsics/gen/smoothStep/5f615b.wgsl.expected.glsl
+++ b/test/intrinsics/gen/smoothStep/5f615b.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/smoothStep/658be3.wgsl.expected.glsl b/test/intrinsics/gen/smoothStep/658be3.wgsl.expected.glsl
index c207bfc..0ed1f2b 100644
--- a/test/intrinsics/gen/smoothStep/658be3.wgsl.expected.glsl
+++ b/test/intrinsics/gen/smoothStep/658be3.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/smoothStep/c11eef.wgsl.expected.glsl b/test/intrinsics/gen/smoothStep/c11eef.wgsl.expected.glsl
index 84956b6..f43d9e5 100644
--- a/test/intrinsics/gen/smoothStep/c11eef.wgsl.expected.glsl
+++ b/test/intrinsics/gen/smoothStep/c11eef.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/smoothStep/cb0bfb.wgsl.expected.glsl b/test/intrinsics/gen/smoothStep/cb0bfb.wgsl.expected.glsl
index e5652e2..83171c6 100644
--- a/test/intrinsics/gen/smoothStep/cb0bfb.wgsl.expected.glsl
+++ b/test/intrinsics/gen/smoothStep/cb0bfb.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/sqrt/20c74e.wgsl.expected.glsl b/test/intrinsics/gen/sqrt/20c74e.wgsl.expected.glsl
index fda2fe3..1a9092b 100644
--- a/test/intrinsics/gen/sqrt/20c74e.wgsl.expected.glsl
+++ b/test/intrinsics/gen/sqrt/20c74e.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/sqrt/8c7024.wgsl.expected.glsl b/test/intrinsics/gen/sqrt/8c7024.wgsl.expected.glsl
index 6139c83..d6c2d16 100644
--- a/test/intrinsics/gen/sqrt/8c7024.wgsl.expected.glsl
+++ b/test/intrinsics/gen/sqrt/8c7024.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/sqrt/aa0d7a.wgsl.expected.glsl b/test/intrinsics/gen/sqrt/aa0d7a.wgsl.expected.glsl
index 4ff825a..2f6ae9e 100644
--- a/test/intrinsics/gen/sqrt/aa0d7a.wgsl.expected.glsl
+++ b/test/intrinsics/gen/sqrt/aa0d7a.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/sqrt/f8c59a.wgsl.expected.glsl b/test/intrinsics/gen/sqrt/f8c59a.wgsl.expected.glsl
index 3108670..4679c12 100644
--- a/test/intrinsics/gen/sqrt/f8c59a.wgsl.expected.glsl
+++ b/test/intrinsics/gen/sqrt/f8c59a.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/step/0b073b.wgsl.expected.glsl b/test/intrinsics/gen/step/0b073b.wgsl.expected.glsl
index 4d68bbe..306bcac 100644
--- a/test/intrinsics/gen/step/0b073b.wgsl.expected.glsl
+++ b/test/intrinsics/gen/step/0b073b.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/step/19accd.wgsl.expected.glsl b/test/intrinsics/gen/step/19accd.wgsl.expected.glsl
index 8ffb095..87cd641 100644
--- a/test/intrinsics/gen/step/19accd.wgsl.expected.glsl
+++ b/test/intrinsics/gen/step/19accd.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/step/334303.wgsl.expected.glsl b/test/intrinsics/gen/step/334303.wgsl.expected.glsl
index 341d813..1a62355 100644
--- a/test/intrinsics/gen/step/334303.wgsl.expected.glsl
+++ b/test/intrinsics/gen/step/334303.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/step/e2b337.wgsl.expected.glsl b/test/intrinsics/gen/step/e2b337.wgsl.expected.glsl
index a195908..753b13d 100644
--- a/test/intrinsics/gen/step/e2b337.wgsl.expected.glsl
+++ b/test/intrinsics/gen/step/e2b337.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/tan/244e2a.wgsl.expected.glsl b/test/intrinsics/gen/tan/244e2a.wgsl.expected.glsl
index 6b22fc9..3443c6f 100644
--- a/test/intrinsics/gen/tan/244e2a.wgsl.expected.glsl
+++ b/test/intrinsics/gen/tan/244e2a.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/tan/2f030e.wgsl.expected.glsl b/test/intrinsics/gen/tan/2f030e.wgsl.expected.glsl
index 434c308..3f9de1a 100644
--- a/test/intrinsics/gen/tan/2f030e.wgsl.expected.glsl
+++ b/test/intrinsics/gen/tan/2f030e.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/tan/7ea104.wgsl.expected.glsl b/test/intrinsics/gen/tan/7ea104.wgsl.expected.glsl
index 069bc3f..919a434 100644
--- a/test/intrinsics/gen/tan/7ea104.wgsl.expected.glsl
+++ b/test/intrinsics/gen/tan/7ea104.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/tan/8ce3e9.wgsl.expected.glsl b/test/intrinsics/gen/tan/8ce3e9.wgsl.expected.glsl
index aa809f2..b3aa74d 100644
--- a/test/intrinsics/gen/tan/8ce3e9.wgsl.expected.glsl
+++ b/test/intrinsics/gen/tan/8ce3e9.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/tanh/5663c5.wgsl.expected.glsl b/test/intrinsics/gen/tanh/5663c5.wgsl.expected.glsl
index 3b932c9..63f6833 100644
--- a/test/intrinsics/gen/tanh/5663c5.wgsl.expected.glsl
+++ b/test/intrinsics/gen/tanh/5663c5.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/tanh/5724b3.wgsl.expected.glsl b/test/intrinsics/gen/tanh/5724b3.wgsl.expected.glsl
index bec23d5..a2c5b4e 100644
--- a/test/intrinsics/gen/tanh/5724b3.wgsl.expected.glsl
+++ b/test/intrinsics/gen/tanh/5724b3.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/tanh/9f9fb9.wgsl.expected.glsl b/test/intrinsics/gen/tanh/9f9fb9.wgsl.expected.glsl
index bd763b2..5973331 100644
--- a/test/intrinsics/gen/tanh/9f9fb9.wgsl.expected.glsl
+++ b/test/intrinsics/gen/tanh/9f9fb9.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/tanh/c15fdb.wgsl.expected.glsl b/test/intrinsics/gen/tanh/c15fdb.wgsl.expected.glsl
index 59b0f13..a4ef21a 100644
--- a/test/intrinsics/gen/tanh/c15fdb.wgsl.expected.glsl
+++ b/test/intrinsics/gen/tanh/c15fdb.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/002b2a.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/002b2a.wgsl.expected.glsl
index f0e4606..0f60c4c 100644
--- a/test/intrinsics/gen/textureDimensions/002b2a.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/002b2a.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/012b82.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/012b82.wgsl.expected.glsl
index 481a013..f593650 100644
--- a/test/intrinsics/gen/textureDimensions/012b82.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/012b82.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/08753d.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/08753d.wgsl.expected.glsl
index 461ae0a..b044497 100644
--- a/test/intrinsics/gen/textureDimensions/08753d.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/08753d.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/0c4772.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/0c4772.wgsl.expected.glsl
index 23a3161..58e3f09 100644
--- a/test/intrinsics/gen/textureDimensions/0c4772.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/0c4772.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/0cce40.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/0cce40.wgsl.expected.glsl
index 5a4b177..ac5415c 100644
--- a/test/intrinsics/gen/textureDimensions/0cce40.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/0cce40.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/0cf2ff.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/0cf2ff.wgsl.expected.glsl
index 2bf815c..413b4f8 100644
--- a/test/intrinsics/gen/textureDimensions/0cf2ff.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/0cf2ff.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/0d8b7e.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/0d8b7e.wgsl.expected.glsl
index d0bbe46..1368767 100644
--- a/test/intrinsics/gen/textureDimensions/0d8b7e.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/0d8b7e.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/0e32ee.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/0e32ee.wgsl.expected.glsl
index 69b8fb2..ce1b64b 100644
--- a/test/intrinsics/gen/textureDimensions/0e32ee.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/0e32ee.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/0f3c50.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/0f3c50.wgsl.expected.glsl
index 0c302bb..8fb03be 100644
--- a/test/intrinsics/gen/textureDimensions/0f3c50.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/0f3c50.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/1191a5.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/1191a5.wgsl.expected.glsl
index 00c30af..2507c32 100644
--- a/test/intrinsics/gen/textureDimensions/1191a5.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/1191a5.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/12c9bb.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/12c9bb.wgsl.expected.glsl
index e082710..bccba0b 100644
--- a/test/intrinsics/gen/textureDimensions/12c9bb.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/12c9bb.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/147998.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/147998.wgsl.expected.glsl
index e3421b0..33dbdb6 100644
--- a/test/intrinsics/gen/textureDimensions/147998.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/147998.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/16036c.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/16036c.wgsl.expected.glsl
index 35ebc9f9..f912185 100644
--- a/test/intrinsics/gen/textureDimensions/16036c.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/16036c.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/1b71f0.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/1b71f0.wgsl.expected.glsl
index 02e303b..a83fbb9 100644
--- a/test/intrinsics/gen/textureDimensions/1b71f0.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/1b71f0.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/1d6c26.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/1d6c26.wgsl.expected.glsl
index 50cbda0..56fe634 100644
--- a/test/intrinsics/gen/textureDimensions/1d6c26.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/1d6c26.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/1e9e39.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/1e9e39.wgsl.expected.glsl
index 95cd8c2..05a17aa 100644
--- a/test/intrinsics/gen/textureDimensions/1e9e39.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/1e9e39.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/1f20c5.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/1f20c5.wgsl.expected.glsl
index eb97808..5aeb255 100644
--- a/test/intrinsics/gen/textureDimensions/1f20c5.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/1f20c5.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/214dd4.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/214dd4.wgsl.expected.glsl
index 15b3e85..5ab8cb0 100644
--- a/test/intrinsics/gen/textureDimensions/214dd4.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/214dd4.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/221f22.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/221f22.wgsl.expected.glsl
index f34e49a..719dfa5 100644
--- a/test/intrinsics/gen/textureDimensions/221f22.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/221f22.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/267788.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/267788.wgsl.expected.glsl
index 1563989..231b3b2 100644
--- a/test/intrinsics/gen/textureDimensions/267788.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/267788.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/26bdfa.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/26bdfa.wgsl.expected.glsl
index 88fb909..0c1b611 100644
--- a/test/intrinsics/gen/textureDimensions/26bdfa.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/26bdfa.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/26ef6c.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/26ef6c.wgsl.expected.glsl
index 9d0216b..57baecf 100644
--- a/test/intrinsics/gen/textureDimensions/26ef6c.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/26ef6c.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/2ad087.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/2ad087.wgsl.expected.glsl
index 0d31f82..2c47ea9 100644
--- a/test/intrinsics/gen/textureDimensions/2ad087.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/2ad087.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/2efa05.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/2efa05.wgsl.expected.glsl
index 8f88fda..a8a428b 100644
--- a/test/intrinsics/gen/textureDimensions/2efa05.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/2efa05.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/2f289f.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/2f289f.wgsl.expected.glsl
index ca6024b..cd8540d 100644
--- a/test/intrinsics/gen/textureDimensions/2f289f.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/2f289f.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/2fe1cc.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/2fe1cc.wgsl.expected.glsl
index 90e48b0..8a467fb 100644
--- a/test/intrinsics/gen/textureDimensions/2fe1cc.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/2fe1cc.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/318ecc.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/318ecc.wgsl.expected.glsl
index 2f461dc..74872a4 100644
--- a/test/intrinsics/gen/textureDimensions/318ecc.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/318ecc.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/340d06.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/340d06.wgsl.expected.glsl
index b8932f7..5be1dd0 100644
--- a/test/intrinsics/gen/textureDimensions/340d06.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/340d06.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/398e30.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/398e30.wgsl.expected.glsl
index 3a52121..854f888 100644
--- a/test/intrinsics/gen/textureDimensions/398e30.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/398e30.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/3a94ea.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/3a94ea.wgsl.expected.glsl
index 5db3b56..73a1b29 100644
--- a/test/intrinsics/gen/textureDimensions/3a94ea.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/3a94ea.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/3aca08.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/3aca08.wgsl.expected.glsl
index c3a1801..050a238 100644
--- a/test/intrinsics/gen/textureDimensions/3aca08.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/3aca08.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/3c5ad8.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/3c5ad8.wgsl.expected.glsl
index d9d8463..c3c8c62 100644
--- a/test/intrinsics/gen/textureDimensions/3c5ad8.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/3c5ad8.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/4152a6.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/4152a6.wgsl.expected.glsl
index 5176f09..8dd6ca1 100644
--- a/test/intrinsics/gen/textureDimensions/4152a6.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/4152a6.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/423f99.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/423f99.wgsl.expected.glsl
index fbf1d02..a2dbeb6 100644
--- a/test/intrinsics/gen/textureDimensions/423f99.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/423f99.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/4267ee.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/4267ee.wgsl.expected.glsl
index acc68c5..6c7255e 100644
--- a/test/intrinsics/gen/textureDimensions/4267ee.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/4267ee.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/42d4e6.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/42d4e6.wgsl.expected.glsl
index 1a85b7b..4d2620d 100644
--- a/test/intrinsics/gen/textureDimensions/42d4e6.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/42d4e6.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/48cb89.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/48cb89.wgsl.expected.glsl
index f83aad5..9581a35 100644
--- a/test/intrinsics/gen/textureDimensions/48cb89.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/48cb89.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/49d274.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/49d274.wgsl.expected.glsl
index 487bb79..d3f8a37 100644
--- a/test/intrinsics/gen/textureDimensions/49d274.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/49d274.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/4df9a8.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/4df9a8.wgsl.expected.glsl
index 6345878..cc416b2 100644
--- a/test/intrinsics/gen/textureDimensions/4df9a8.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/4df9a8.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/50a9ee.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/50a9ee.wgsl.expected.glsl
index 1745af4..28bcc15 100644
--- a/test/intrinsics/gen/textureDimensions/50a9ee.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/50a9ee.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/52045c.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/52045c.wgsl.expected.glsl
index 709d104..5b94938 100644
--- a/test/intrinsics/gen/textureDimensions/52045c.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/52045c.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/55b23e.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/55b23e.wgsl.expected.glsl
index 61e00f7..b0f533c 100644
--- a/test/intrinsics/gen/textureDimensions/55b23e.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/55b23e.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/579629.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/579629.wgsl.expected.glsl
index b8af02f..8b9bec3 100644
--- a/test/intrinsics/gen/textureDimensions/579629.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/579629.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/57da0b.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/57da0b.wgsl.expected.glsl
index c8151a4..7fbf196 100644
--- a/test/intrinsics/gen/textureDimensions/57da0b.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/57da0b.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/57e28f.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/57e28f.wgsl.expected.glsl
index 1619887..a243d0c 100644
--- a/test/intrinsics/gen/textureDimensions/57e28f.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/57e28f.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/58a515.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/58a515.wgsl.expected.glsl
index 9360009..5e4dae7 100644
--- a/test/intrinsics/gen/textureDimensions/58a515.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/58a515.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/5985f3.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/5985f3.wgsl.expected.glsl
index c63fffd..04e4107 100644
--- a/test/intrinsics/gen/textureDimensions/5985f3.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/5985f3.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/5caa5e.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/5caa5e.wgsl.expected.glsl
index 7ffd983..97f15c8 100644
--- a/test/intrinsics/gen/textureDimensions/5caa5e.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/5caa5e.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/5e295d.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/5e295d.wgsl.expected.glsl
index d96a921..0bcace0 100644
--- a/test/intrinsics/gen/textureDimensions/5e295d.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/5e295d.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/60bf54.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/60bf54.wgsl.expected.glsl
index 25f0f2d..d3ac6cc 100644
--- a/test/intrinsics/gen/textureDimensions/60bf54.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/60bf54.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/63f3cf.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/63f3cf.wgsl.expected.glsl
index 2f124b2..5c5ffdb 100644
--- a/test/intrinsics/gen/textureDimensions/63f3cf.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/63f3cf.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/68105c.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/68105c.wgsl.expected.glsl
index c382ed5..b3d04cc 100644
--- a/test/intrinsics/gen/textureDimensions/68105c.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/68105c.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/686ef2.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/686ef2.wgsl.expected.glsl
index f2855b4..619ef60 100644
--- a/test/intrinsics/gen/textureDimensions/686ef2.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/686ef2.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/6adac6.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/6adac6.wgsl.expected.glsl
index dc171d4..bad1827 100644
--- a/test/intrinsics/gen/textureDimensions/6adac6.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/6adac6.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/6ec1b4.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/6ec1b4.wgsl.expected.glsl
index 42379c2..f1c5c1f 100644
--- a/test/intrinsics/gen/textureDimensions/6ec1b4.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/6ec1b4.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/6f0d79.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/6f0d79.wgsl.expected.glsl
index 84e96b1..070db6d 100644
--- a/test/intrinsics/gen/textureDimensions/6f0d79.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/6f0d79.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/702c53.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/702c53.wgsl.expected.glsl
index 58722f6..681147c 100644
--- a/test/intrinsics/gen/textureDimensions/702c53.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/702c53.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/72e5d6.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/72e5d6.wgsl.expected.glsl
index f6ef9e2..aa44ad0 100644
--- a/test/intrinsics/gen/textureDimensions/72e5d6.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/72e5d6.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/79df87.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/79df87.wgsl.expected.glsl
index c658710..c52530f 100644
--- a/test/intrinsics/gen/textureDimensions/79df87.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/79df87.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/7bf826.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/7bf826.wgsl.expected.glsl
index 35866ee..1d2ab40 100644
--- a/test/intrinsics/gen/textureDimensions/7bf826.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/7bf826.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/7f5c2e.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/7f5c2e.wgsl.expected.glsl
index 7a5e09e..bbba208 100644
--- a/test/intrinsics/gen/textureDimensions/7f5c2e.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/7f5c2e.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/8028f3.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/8028f3.wgsl.expected.glsl
index 048646b..f6be5c0 100644
--- a/test/intrinsics/gen/textureDimensions/8028f3.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/8028f3.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/811679.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/811679.wgsl.expected.glsl
index 0a7c470..b2c772b 100644
--- a/test/intrinsics/gen/textureDimensions/811679.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/811679.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/820596.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/820596.wgsl.expected.glsl
index a637410..7836f70 100644
--- a/test/intrinsics/gen/textureDimensions/820596.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/820596.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/83ee5a.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/83ee5a.wgsl.expected.glsl
index 2db3182..22e223d 100644
--- a/test/intrinsics/gen/textureDimensions/83ee5a.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/83ee5a.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/85d556.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/85d556.wgsl.expected.glsl
index 2ae2c9d..4d6dcae 100644
--- a/test/intrinsics/gen/textureDimensions/85d556.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/85d556.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/88ad17.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/88ad17.wgsl.expected.glsl
index eeece9c..820ff02 100644
--- a/test/intrinsics/gen/textureDimensions/88ad17.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/88ad17.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/8aa4c4.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/8aa4c4.wgsl.expected.glsl
index 4afb1ea..f7b5040 100644
--- a/test/intrinsics/gen/textureDimensions/8aa4c4.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/8aa4c4.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/8deb5e.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/8deb5e.wgsl.expected.glsl
index c10bbd3..27de4f3 100644
--- a/test/intrinsics/gen/textureDimensions/8deb5e.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/8deb5e.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/8f20bf.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/8f20bf.wgsl.expected.glsl
index ed5bffa..f3a64ba 100644
--- a/test/intrinsics/gen/textureDimensions/8f20bf.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/8f20bf.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/8fca0f.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/8fca0f.wgsl.expected.glsl
index d1dea96..f4f61cd 100644
--- a/test/intrinsics/gen/textureDimensions/8fca0f.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/8fca0f.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/90340b.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/90340b.wgsl.expected.glsl
index 5fd0bb1..2c5b144 100644
--- a/test/intrinsics/gen/textureDimensions/90340b.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/90340b.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/9042ab.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/9042ab.wgsl.expected.glsl
index a9d98c4..5a8a2b5 100644
--- a/test/intrinsics/gen/textureDimensions/9042ab.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/9042ab.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/9393b0.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/9393b0.wgsl.expected.glsl
index 31c65e8..3c4c7c4 100644
--- a/test/intrinsics/gen/textureDimensions/9393b0.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/9393b0.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/939fdb.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/939fdb.wgsl.expected.glsl
index a5f727a..55587ff 100644
--- a/test/intrinsics/gen/textureDimensions/939fdb.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/939fdb.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/962dcd.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/962dcd.wgsl.expected.glsl
index 030a7f8..d6d55f8 100644
--- a/test/intrinsics/gen/textureDimensions/962dcd.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/962dcd.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/9abfe5.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/9abfe5.wgsl.expected.glsl
index 55a5344..0b0ea4a 100644
--- a/test/intrinsics/gen/textureDimensions/9abfe5.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/9abfe5.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/9c9c57.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/9c9c57.wgsl.expected.glsl
index ee080fe..e51dea9 100644
--- a/test/intrinsics/gen/textureDimensions/9c9c57.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/9c9c57.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/9da9e2.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/9da9e2.wgsl.expected.glsl
index a16a4bb..ef5dd49 100644
--- a/test/intrinsics/gen/textureDimensions/9da9e2.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/9da9e2.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/9eb8d8.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/9eb8d8.wgsl.expected.glsl
index cae2103..1ef74f4 100644
--- a/test/intrinsics/gen/textureDimensions/9eb8d8.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/9eb8d8.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/9f8e46.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/9f8e46.wgsl.expected.glsl
index fc5577b..79420da 100644
--- a/test/intrinsics/gen/textureDimensions/9f8e46.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/9f8e46.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/a01845.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/a01845.wgsl.expected.glsl
index 18a2339..df0018f 100644
--- a/test/intrinsics/gen/textureDimensions/a01845.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/a01845.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/a7d565.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/a7d565.wgsl.expected.glsl
index 3b9e347..8eceb21 100644
--- a/test/intrinsics/gen/textureDimensions/a7d565.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/a7d565.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/a863f2.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/a863f2.wgsl.expected.glsl
index da7946d..b096907 100644
--- a/test/intrinsics/gen/textureDimensions/a863f2.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/a863f2.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/a9c9c1.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/a9c9c1.wgsl.expected.glsl
index 8cb9404..dbd5448 100644
--- a/test/intrinsics/gen/textureDimensions/a9c9c1.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/a9c9c1.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/b0e16d.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/b0e16d.wgsl.expected.glsl
index f03fc04..6712c43 100644
--- a/test/intrinsics/gen/textureDimensions/b0e16d.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/b0e16d.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/b3c954.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/b3c954.wgsl.expected.glsl
index 983e3ca..6e65111 100644
--- a/test/intrinsics/gen/textureDimensions/b3c954.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/b3c954.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/b3e407.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/b3e407.wgsl.expected.glsl
index 5a83f5a..eddf418 100644
--- a/test/intrinsics/gen/textureDimensions/b3e407.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/b3e407.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/b91240.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/b91240.wgsl.expected.glsl
index 5e8c4e1..b9b2835 100644
--- a/test/intrinsics/gen/textureDimensions/b91240.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/b91240.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/ba1481.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/ba1481.wgsl.expected.glsl
index a63ec0b..2d337f8 100644
--- a/test/intrinsics/gen/textureDimensions/ba1481.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/ba1481.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/bb3dde.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/bb3dde.wgsl.expected.glsl
index 8d3b5b2..9be28c7 100644
--- a/test/intrinsics/gen/textureDimensions/bb3dde.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/bb3dde.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/c30e75.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/c30e75.wgsl.expected.glsl
index 8543a6f..c288e25 100644
--- a/test/intrinsics/gen/textureDimensions/c30e75.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/c30e75.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/c7943d.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/c7943d.wgsl.expected.glsl
index fbeefdd..cfd945e 100644
--- a/test/intrinsics/gen/textureDimensions/c7943d.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/c7943d.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/cc968c.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/cc968c.wgsl.expected.glsl
index 48fd1e7..af1aadb 100644
--- a/test/intrinsics/gen/textureDimensions/cc968c.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/cc968c.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/cccc8f.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/cccc8f.wgsl.expected.glsl
index a3fee89..774aa7a 100644
--- a/test/intrinsics/gen/textureDimensions/cccc8f.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/cccc8f.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/cd76a7.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/cd76a7.wgsl.expected.glsl
index f690dd5..b46987f 100644
--- a/test/intrinsics/gen/textureDimensions/cd76a7.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/cd76a7.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/cdf473.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/cdf473.wgsl.expected.glsl
index e54e027..d1f95a0 100644
--- a/test/intrinsics/gen/textureDimensions/cdf473.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/cdf473.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/cec841.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/cec841.wgsl.expected.glsl
index 9f1194f..f96f64d 100644
--- a/test/intrinsics/gen/textureDimensions/cec841.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/cec841.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/cf7e43.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/cf7e43.wgsl.expected.glsl
index eaef07c..d6a4eeb 100644
--- a/test/intrinsics/gen/textureDimensions/cf7e43.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/cf7e43.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/d125bc.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/d125bc.wgsl.expected.glsl
index cfe164c..ba73335 100644
--- a/test/intrinsics/gen/textureDimensions/d125bc.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/d125bc.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/d83c45.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/d83c45.wgsl.expected.glsl
index b7f3106..e527f04 100644
--- a/test/intrinsics/gen/textureDimensions/d83c45.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/d83c45.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/daf7c0.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/daf7c0.wgsl.expected.glsl
index d82ea38..c2f50a6 100644
--- a/test/intrinsics/gen/textureDimensions/daf7c0.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/daf7c0.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/dc2dd0.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/dc2dd0.wgsl.expected.glsl
index c7ba27b..2abfd3c 100644
--- a/test/intrinsics/gen/textureDimensions/dc2dd0.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/dc2dd0.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/e927be.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/e927be.wgsl.expected.glsl
index d92c29c..bbd4d76 100644
--- a/test/intrinsics/gen/textureDimensions/e927be.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/e927be.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/e9e96c.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/e9e96c.wgsl.expected.glsl
index 32e4bbb..4677c34 100644
--- a/test/intrinsics/gen/textureDimensions/e9e96c.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/e9e96c.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/ef5b89.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/ef5b89.wgsl.expected.glsl
index 22e4adc..61798af 100644
--- a/test/intrinsics/gen/textureDimensions/ef5b89.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/ef5b89.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/efc8a4.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/efc8a4.wgsl.expected.glsl
index 48dc98f..06ce068 100644
--- a/test/intrinsics/gen/textureDimensions/efc8a4.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/efc8a4.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/f60bdb.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/f60bdb.wgsl.expected.glsl
index 67bd236..4aa6080 100644
--- a/test/intrinsics/gen/textureDimensions/f60bdb.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/f60bdb.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/f7145b.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/f7145b.wgsl.expected.glsl
index 3a5deaf..393b87d 100644
--- a/test/intrinsics/gen/textureDimensions/f7145b.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/f7145b.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/f931c7.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/f931c7.wgsl.expected.glsl
index ca200d4..7f6d8ed 100644
--- a/test/intrinsics/gen/textureDimensions/f931c7.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/f931c7.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/fa9859.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/fa9859.wgsl.expected.glsl
index 24ba5d0..ff7510b 100644
--- a/test/intrinsics/gen/textureDimensions/fa9859.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/fa9859.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/fb5670.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/fb5670.wgsl.expected.glsl
index 2662d11..0a351e6 100644
--- a/test/intrinsics/gen/textureDimensions/fb5670.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/fb5670.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureDimensions/fcac78.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/fcac78.wgsl.expected.glsl
index 98d5dc4..9173c69 100644
--- a/test/intrinsics/gen/textureDimensions/fcac78.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/fcac78.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureGather/01305f.wgsl.expected.glsl b/test/intrinsics/gen/textureGather/01305f.wgsl.expected.glsl
index 538ccef..23f98df 100644
--- a/test/intrinsics/gen/textureGather/01305f.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureGather/01305f.wgsl.expected.glsl
@@ -27,6 +27,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureGather/06030a.wgsl.expected.glsl b/test/intrinsics/gen/textureGather/06030a.wgsl.expected.glsl
index 6011ea7..960aef7 100644
--- a/test/intrinsics/gen/textureGather/06030a.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureGather/06030a.wgsl.expected.glsl
@@ -27,6 +27,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureGather/10c554.wgsl.expected.glsl b/test/intrinsics/gen/textureGather/10c554.wgsl.expected.glsl
index 1a7be7a..2eeb693 100644
--- a/test/intrinsics/gen/textureGather/10c554.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureGather/10c554.wgsl.expected.glsl
@@ -27,6 +27,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureGather/15d79c.wgsl.expected.glsl b/test/intrinsics/gen/textureGather/15d79c.wgsl.expected.glsl
index 31c0d21..688ba1e 100644
--- a/test/intrinsics/gen/textureGather/15d79c.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureGather/15d79c.wgsl.expected.glsl
@@ -27,6 +27,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureGather/2e0ed5.wgsl.expected.glsl b/test/intrinsics/gen/textureGather/2e0ed5.wgsl.expected.glsl
index ebf283e..8eb5532 100644
--- a/test/intrinsics/gen/textureGather/2e0ed5.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureGather/2e0ed5.wgsl.expected.glsl
@@ -27,6 +27,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureGather/3112e8.wgsl.expected.glsl b/test/intrinsics/gen/textureGather/3112e8.wgsl.expected.glsl
index 054f212..685d4e1 100644
--- a/test/intrinsics/gen/textureGather/3112e8.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureGather/3112e8.wgsl.expected.glsl
@@ -29,6 +29,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureGather/3c527e.wgsl.expected.glsl b/test/intrinsics/gen/textureGather/3c527e.wgsl.expected.glsl
index d92418b..86c4e69 100644
--- a/test/intrinsics/gen/textureGather/3c527e.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureGather/3c527e.wgsl.expected.glsl
@@ -29,6 +29,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureGather/43025d.wgsl.expected.glsl b/test/intrinsics/gen/textureGather/43025d.wgsl.expected.glsl
index e6aafc5..52d72ac 100644
--- a/test/intrinsics/gen/textureGather/43025d.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureGather/43025d.wgsl.expected.glsl
@@ -29,6 +29,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureGather/4f2350.wgsl.expected.glsl b/test/intrinsics/gen/textureGather/4f2350.wgsl.expected.glsl
index be595e8..ce12d8e 100644
--- a/test/intrinsics/gen/textureGather/4f2350.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureGather/4f2350.wgsl.expected.glsl
@@ -27,6 +27,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureGather/51cf0b.wgsl.expected.glsl b/test/intrinsics/gen/textureGather/51cf0b.wgsl.expected.glsl
index 96f60fe..b3cea06 100644
--- a/test/intrinsics/gen/textureGather/51cf0b.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureGather/51cf0b.wgsl.expected.glsl
@@ -27,6 +27,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureGather/53ece6.wgsl.expected.glsl b/test/intrinsics/gen/textureGather/53ece6.wgsl.expected.glsl
index 3609d3b..aee3538 100644
--- a/test/intrinsics/gen/textureGather/53ece6.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureGather/53ece6.wgsl.expected.glsl
@@ -27,6 +27,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureGather/57bfc6.wgsl.expected.glsl b/test/intrinsics/gen/textureGather/57bfc6.wgsl.expected.glsl
index 2248d18..263ea24 100644
--- a/test/intrinsics/gen/textureGather/57bfc6.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureGather/57bfc6.wgsl.expected.glsl
@@ -27,6 +27,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureGather/587ba3.wgsl.expected.glsl b/test/intrinsics/gen/textureGather/587ba3.wgsl.expected.glsl
index dd2da9d..b78777d 100644
--- a/test/intrinsics/gen/textureGather/587ba3.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureGather/587ba3.wgsl.expected.glsl
@@ -27,6 +27,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureGather/69e0fb.wgsl.expected.glsl b/test/intrinsics/gen/textureGather/69e0fb.wgsl.expected.glsl
index 146affc..f8cbb0f 100644
--- a/test/intrinsics/gen/textureGather/69e0fb.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureGather/69e0fb.wgsl.expected.glsl
@@ -27,6 +27,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureGather/93003d.wgsl.expected.glsl b/test/intrinsics/gen/textureGather/93003d.wgsl.expected.glsl
index a3f0817..7c39728 100644
--- a/test/intrinsics/gen/textureGather/93003d.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureGather/93003d.wgsl.expected.glsl
@@ -27,6 +27,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureGather/9a6358.wgsl.expected.glsl b/test/intrinsics/gen/textureGather/9a6358.wgsl.expected.glsl
index 7d074f9..d0355b6 100644
--- a/test/intrinsics/gen/textureGather/9a6358.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureGather/9a6358.wgsl.expected.glsl
@@ -27,6 +27,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureGather/9efca2.wgsl.expected.glsl b/test/intrinsics/gen/textureGather/9efca2.wgsl.expected.glsl
index 3676bc6..94e82de 100644
--- a/test/intrinsics/gen/textureGather/9efca2.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureGather/9efca2.wgsl.expected.glsl
@@ -27,6 +27,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureGather/bd0b1e.wgsl.expected.glsl b/test/intrinsics/gen/textureGather/bd0b1e.wgsl.expected.glsl
index ca8732f..9069aed 100644
--- a/test/intrinsics/gen/textureGather/bd0b1e.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureGather/bd0b1e.wgsl.expected.glsl
@@ -27,6 +27,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureGather/c409ae.wgsl.expected.glsl b/test/intrinsics/gen/textureGather/c409ae.wgsl.expected.glsl
index 223c9ab..bffbce1 100644
--- a/test/intrinsics/gen/textureGather/c409ae.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureGather/c409ae.wgsl.expected.glsl
@@ -27,6 +27,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureGather/c55822.wgsl.expected.glsl b/test/intrinsics/gen/textureGather/c55822.wgsl.expected.glsl
index 25791ee..e099dcf 100644
--- a/test/intrinsics/gen/textureGather/c55822.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureGather/c55822.wgsl.expected.glsl
@@ -29,6 +29,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureGather/e1b67d.wgsl.expected.glsl b/test/intrinsics/gen/textureGather/e1b67d.wgsl.expected.glsl
index 75ad314..7f2323e 100644
--- a/test/intrinsics/gen/textureGather/e1b67d.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureGather/e1b67d.wgsl.expected.glsl
@@ -27,6 +27,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureGather/e9eff6.wgsl.expected.glsl b/test/intrinsics/gen/textureGather/e9eff6.wgsl.expected.glsl
index ebce328..44ff16a 100644
--- a/test/intrinsics/gen/textureGather/e9eff6.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureGather/e9eff6.wgsl.expected.glsl
@@ -27,6 +27,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureGather/f5f3ba.wgsl.expected.glsl b/test/intrinsics/gen/textureGather/f5f3ba.wgsl.expected.glsl
index 3086074..2549939 100644
--- a/test/intrinsics/gen/textureGather/f5f3ba.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureGather/f5f3ba.wgsl.expected.glsl
@@ -27,6 +27,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureGather/f7995a.wgsl.expected.glsl b/test/intrinsics/gen/textureGather/f7995a.wgsl.expected.glsl
index 56f1bcf..2a173d6 100644
--- a/test/intrinsics/gen/textureGather/f7995a.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureGather/f7995a.wgsl.expected.glsl
@@ -27,6 +27,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureGatherCompare/182fd4.wgsl.expected.glsl b/test/intrinsics/gen/textureGatherCompare/182fd4.wgsl.expected.glsl
index 734622c..b4282df 100644
--- a/test/intrinsics/gen/textureGatherCompare/182fd4.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureGatherCompare/182fd4.wgsl.expected.glsl
@@ -29,6 +29,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureGatherCompare/60d2d1.wgsl.expected.glsl b/test/intrinsics/gen/textureGatherCompare/60d2d1.wgsl.expected.glsl
index 60d0a9a..ff0a64b 100644
--- a/test/intrinsics/gen/textureGatherCompare/60d2d1.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureGatherCompare/60d2d1.wgsl.expected.glsl
@@ -29,6 +29,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureGatherCompare/6d9352.wgsl.expected.glsl b/test/intrinsics/gen/textureGatherCompare/6d9352.wgsl.expected.glsl
index b56605b..e408d49 100644
--- a/test/intrinsics/gen/textureGatherCompare/6d9352.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureGatherCompare/6d9352.wgsl.expected.glsl
@@ -29,6 +29,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureGatherCompare/6f1267.wgsl.expected.glsl b/test/intrinsics/gen/textureGatherCompare/6f1267.wgsl.expected.glsl
index 605a4ec..58dd62c 100644
--- a/test/intrinsics/gen/textureGatherCompare/6f1267.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureGatherCompare/6f1267.wgsl.expected.glsl
@@ -29,6 +29,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureGatherCompare/783e65.wgsl.expected.glsl b/test/intrinsics/gen/textureGatherCompare/783e65.wgsl.expected.glsl
index f1f5eb4..5a93080 100644
--- a/test/intrinsics/gen/textureGatherCompare/783e65.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureGatherCompare/783e65.wgsl.expected.glsl
@@ -29,6 +29,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureGatherCompare/a5f587.wgsl.expected.glsl b/test/intrinsics/gen/textureGatherCompare/a5f587.wgsl.expected.glsl
index 59811e6..f535ee0 100644
--- a/test/intrinsics/gen/textureGatherCompare/a5f587.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureGatherCompare/a5f587.wgsl.expected.glsl
@@ -29,6 +29,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureLoad/19cf87.wgsl.expected.glsl b/test/intrinsics/gen/textureLoad/19cf87.wgsl.expected.glsl
index 70a25a7..b4e2da9 100644
--- a/test/intrinsics/gen/textureLoad/19cf87.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureLoad/19cf87.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureLoad/1b8588.wgsl.expected.glsl b/test/intrinsics/gen/textureLoad/1b8588.wgsl.expected.glsl
index 081c48c..60fca1f 100644
--- a/test/intrinsics/gen/textureLoad/1b8588.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureLoad/1b8588.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureLoad/1f2016.wgsl.expected.glsl b/test/intrinsics/gen/textureLoad/1f2016.wgsl.expected.glsl
index afc4f68..98ac52a 100644
--- a/test/intrinsics/gen/textureLoad/1f2016.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureLoad/1f2016.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureLoad/484344.wgsl.expected.glsl b/test/intrinsics/gen/textureLoad/484344.wgsl.expected.glsl
index 9346a00..b316707 100644
--- a/test/intrinsics/gen/textureLoad/484344.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureLoad/484344.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureLoad/4fd803.wgsl.expected.glsl b/test/intrinsics/gen/textureLoad/4fd803.wgsl.expected.glsl
index 77702b8..9466096 100644
--- a/test/intrinsics/gen/textureLoad/4fd803.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureLoad/4fd803.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureLoad/5a2f9d.wgsl.expected.glsl b/test/intrinsics/gen/textureLoad/5a2f9d.wgsl.expected.glsl
index 6d408cc..ac08abf 100644
--- a/test/intrinsics/gen/textureLoad/5a2f9d.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureLoad/5a2f9d.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureLoad/6154d4.wgsl.expected.glsl b/test/intrinsics/gen/textureLoad/6154d4.wgsl.expected.glsl
index 85729bf..8964b6c 100644
--- a/test/intrinsics/gen/textureLoad/6154d4.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureLoad/6154d4.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureLoad/6273b1.wgsl.expected.glsl b/test/intrinsics/gen/textureLoad/6273b1.wgsl.expected.glsl
index 68952ce..f7e9072 100644
--- a/test/intrinsics/gen/textureLoad/6273b1.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureLoad/6273b1.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureLoad/79e697.wgsl.expected.glsl b/test/intrinsics/gen/textureLoad/79e697.wgsl.expected.glsl
index b5ca742..7452a9c 100644
--- a/test/intrinsics/gen/textureLoad/79e697.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureLoad/79e697.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureLoad/7c90e5.wgsl.expected.glsl b/test/intrinsics/gen/textureLoad/7c90e5.wgsl.expected.glsl
index c28793f..2f360e6 100644
--- a/test/intrinsics/gen/textureLoad/7c90e5.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureLoad/7c90e5.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureLoad/81c381.wgsl.expected.glsl b/test/intrinsics/gen/textureLoad/81c381.wgsl.expected.glsl
index d17526a..49fbabd 100644
--- a/test/intrinsics/gen/textureLoad/81c381.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureLoad/81c381.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureLoad/87be85.wgsl.expected.glsl b/test/intrinsics/gen/textureLoad/87be85.wgsl.expected.glsl
index edf24c7..65df325 100644
--- a/test/intrinsics/gen/textureLoad/87be85.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureLoad/87be85.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureLoad/8acf41.wgsl.expected.glsl b/test/intrinsics/gen/textureLoad/8acf41.wgsl.expected.glsl
index 41234eb..ecb0930 100644
--- a/test/intrinsics/gen/textureLoad/8acf41.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureLoad/8acf41.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureLoad/9b2667.wgsl.expected.glsl b/test/intrinsics/gen/textureLoad/9b2667.wgsl.expected.glsl
index d0e0245..fae43f3 100644
--- a/test/intrinsics/gen/textureLoad/9b2667.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureLoad/9b2667.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureLoad/a583c9.wgsl.expected.glsl b/test/intrinsics/gen/textureLoad/a583c9.wgsl.expected.glsl
index 16098ba..215da7e 100644
--- a/test/intrinsics/gen/textureLoad/a583c9.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureLoad/a583c9.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureLoad/a9a9f5.wgsl.expected.glsl b/test/intrinsics/gen/textureLoad/a9a9f5.wgsl.expected.glsl
index 81ff424..4553ca8 100644
--- a/test/intrinsics/gen/textureLoad/a9a9f5.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureLoad/a9a9f5.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureLoad/c2a480.wgsl.expected.glsl b/test/intrinsics/gen/textureLoad/c2a480.wgsl.expected.glsl
index 5d3b644..3a871ed 100644
--- a/test/intrinsics/gen/textureLoad/c2a480.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureLoad/c2a480.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureLoad/c378ee.wgsl.expected.glsl b/test/intrinsics/gen/textureLoad/c378ee.wgsl.expected.glsl
index 5677bfa..83deeea 100644
--- a/test/intrinsics/gen/textureLoad/c378ee.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureLoad/c378ee.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureLoad/e3d2cc.wgsl.expected.glsl b/test/intrinsics/gen/textureLoad/e3d2cc.wgsl.expected.glsl
index 4b79410..fabf333 100644
--- a/test/intrinsics/gen/textureLoad/e3d2cc.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureLoad/e3d2cc.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureNumLayers/024820.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLayers/024820.wgsl.expected.glsl
index e765223..7ac4790 100644
--- a/test/intrinsics/gen/textureNumLayers/024820.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLayers/024820.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureNumLayers/053df7.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLayers/053df7.wgsl.expected.glsl
index ab7bb78..2a991e3 100644
--- a/test/intrinsics/gen/textureNumLayers/053df7.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLayers/053df7.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureNumLayers/058cc3.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLayers/058cc3.wgsl.expected.glsl
index 12bb98f..29bd7cf 100644
--- a/test/intrinsics/gen/textureNumLayers/058cc3.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLayers/058cc3.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureNumLayers/09d05d.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLayers/09d05d.wgsl.expected.glsl
index 07e2c4e..656c305 100644
--- a/test/intrinsics/gen/textureNumLayers/09d05d.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLayers/09d05d.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureNumLayers/13b4ce.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLayers/13b4ce.wgsl.expected.glsl
index ed99031..a0e8e7a 100644
--- a/test/intrinsics/gen/textureNumLayers/13b4ce.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLayers/13b4ce.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureNumLayers/22e53b.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLayers/22e53b.wgsl.expected.glsl
index 6cddc02..f29f856 100644
--- a/test/intrinsics/gen/textureNumLayers/22e53b.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLayers/22e53b.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureNumLayers/562013.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLayers/562013.wgsl.expected.glsl
index f64ebc4..7287b21 100644
--- a/test/intrinsics/gen/textureNumLayers/562013.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLayers/562013.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureNumLayers/5d59cd.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLayers/5d59cd.wgsl.expected.glsl
index 17a02ff..7a082d8 100644
--- a/test/intrinsics/gen/textureNumLayers/5d59cd.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLayers/5d59cd.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureNumLayers/68a65b.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLayers/68a65b.wgsl.expected.glsl
index 746959a..7e4ab5a 100644
--- a/test/intrinsics/gen/textureNumLayers/68a65b.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLayers/68a65b.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureNumLayers/778bd1.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLayers/778bd1.wgsl.expected.glsl
index b8becf8..0a9915d 100644
--- a/test/intrinsics/gen/textureNumLayers/778bd1.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLayers/778bd1.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureNumLayers/7f1937.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLayers/7f1937.wgsl.expected.glsl
index c05cb55..c7b6605 100644
--- a/test/intrinsics/gen/textureNumLayers/7f1937.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLayers/7f1937.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureNumLayers/85f980.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLayers/85f980.wgsl.expected.glsl
index 71ec67e..c7975e6 100644
--- a/test/intrinsics/gen/textureNumLayers/85f980.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLayers/85f980.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureNumLayers/87953e.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLayers/87953e.wgsl.expected.glsl
index 05441b0..90a5609 100644
--- a/test/intrinsics/gen/textureNumLayers/87953e.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLayers/87953e.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureNumLayers/893e7c.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLayers/893e7c.wgsl.expected.glsl
index 03a4f6a..f200d42 100644
--- a/test/intrinsics/gen/textureNumLayers/893e7c.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLayers/893e7c.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureNumLayers/9700fb.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLayers/9700fb.wgsl.expected.glsl
index 9e2a56e..7233f2f 100644
--- a/test/intrinsics/gen/textureNumLayers/9700fb.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLayers/9700fb.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureNumLayers/a216d2.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLayers/a216d2.wgsl.expected.glsl
index 8888e11..4c6bf3f 100644
--- a/test/intrinsics/gen/textureNumLayers/a216d2.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLayers/a216d2.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureNumLayers/cd5dc8.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLayers/cd5dc8.wgsl.expected.glsl
index 211a786..69bf230 100644
--- a/test/intrinsics/gen/textureNumLayers/cd5dc8.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLayers/cd5dc8.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureNumLayers/d5b228.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLayers/d5b228.wgsl.expected.glsl
index 3b4b1a6..a28de70 100644
--- a/test/intrinsics/gen/textureNumLayers/d5b228.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLayers/d5b228.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureNumLayers/e31be1.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLayers/e31be1.wgsl.expected.glsl
index 82eb30e..dd53e42 100644
--- a/test/intrinsics/gen/textureNumLayers/e31be1.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLayers/e31be1.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureNumLayers/e653c0.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLayers/e653c0.wgsl.expected.glsl
index 4717704..003cf83 100644
--- a/test/intrinsics/gen/textureNumLayers/e653c0.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLayers/e653c0.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureNumLayers/ee942f.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLayers/ee942f.wgsl.expected.glsl
index 9f8b29a..259f4f6 100644
--- a/test/intrinsics/gen/textureNumLayers/ee942f.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLayers/ee942f.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureNumLayers/f33005.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLayers/f33005.wgsl.expected.glsl
index 636897a..5fae35e 100644
--- a/test/intrinsics/gen/textureNumLayers/f33005.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLayers/f33005.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureNumLayers/fcec98.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLayers/fcec98.wgsl.expected.glsl
index 032bd61..6114dc7 100644
--- a/test/intrinsics/gen/textureNumLayers/fcec98.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLayers/fcec98.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureNumLayers/ff5e89.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLayers/ff5e89.wgsl.expected.glsl
index 1ed6594..264efcb 100644
--- a/test/intrinsics/gen/textureNumLayers/ff5e89.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLayers/ff5e89.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureNumLevels/076cb5.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLevels/076cb5.wgsl.expected.glsl
index ea3b6b6..ebffe19 100644
--- a/test/intrinsics/gen/textureNumLevels/076cb5.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLevels/076cb5.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureNumLevels/080d95.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLevels/080d95.wgsl.expected.glsl
index ee124a8..f34065a 100644
--- a/test/intrinsics/gen/textureNumLevels/080d95.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLevels/080d95.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureNumLevels/09ddd0.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLevels/09ddd0.wgsl.expected.glsl
index d874ab2..0c66620 100644
--- a/test/intrinsics/gen/textureNumLevels/09ddd0.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLevels/09ddd0.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureNumLevels/105988.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLevels/105988.wgsl.expected.glsl
index 9d2af6a..fc1eb9c 100644
--- a/test/intrinsics/gen/textureNumLevels/105988.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLevels/105988.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureNumLevels/1e6f3b.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLevels/1e6f3b.wgsl.expected.glsl
index 50168b9..3480f63 100644
--- a/test/intrinsics/gen/textureNumLevels/1e6f3b.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLevels/1e6f3b.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureNumLevels/23f750.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLevels/23f750.wgsl.expected.glsl
index 47e83b9..08f4588 100644
--- a/test/intrinsics/gen/textureNumLevels/23f750.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLevels/23f750.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureNumLevels/2c3575.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLevels/2c3575.wgsl.expected.glsl
index 7e64833..7e37a9e 100644
--- a/test/intrinsics/gen/textureNumLevels/2c3575.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLevels/2c3575.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureNumLevels/32a0ae.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLevels/32a0ae.wgsl.expected.glsl
index 31f9531..f430b8a 100644
--- a/test/intrinsics/gen/textureNumLevels/32a0ae.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLevels/32a0ae.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureNumLevels/5101cf.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLevels/5101cf.wgsl.expected.glsl
index abf90fc..0177cb0 100644
--- a/test/intrinsics/gen/textureNumLevels/5101cf.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLevels/5101cf.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureNumLevels/51b5bb.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLevels/51b5bb.wgsl.expected.glsl
index 2cf1057..b7da5d4 100644
--- a/test/intrinsics/gen/textureNumLevels/51b5bb.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLevels/51b5bb.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureNumLevels/897aaf.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLevels/897aaf.wgsl.expected.glsl
index fe99bb1..5827c9b 100644
--- a/test/intrinsics/gen/textureNumLevels/897aaf.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLevels/897aaf.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureNumLevels/9da7a5.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLevels/9da7a5.wgsl.expected.glsl
index 7ab0aa2..aafada5 100644
--- a/test/intrinsics/gen/textureNumLevels/9da7a5.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLevels/9da7a5.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureNumLevels/a91c03.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLevels/a91c03.wgsl.expected.glsl
index c453ab6..1c5cc0c 100644
--- a/test/intrinsics/gen/textureNumLevels/a91c03.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLevels/a91c03.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureNumLevels/aee7c8.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLevels/aee7c8.wgsl.expected.glsl
index bf7c57e..0b190ab 100644
--- a/test/intrinsics/gen/textureNumLevels/aee7c8.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLevels/aee7c8.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureNumLevels/b1b12b.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLevels/b1b12b.wgsl.expected.glsl
index 33cf33b..8c7223c 100644
--- a/test/intrinsics/gen/textureNumLevels/b1b12b.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLevels/b1b12b.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureNumLevels/b4f5ea.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLevels/b4f5ea.wgsl.expected.glsl
index 16a6610..cd0d70f 100644
--- a/test/intrinsics/gen/textureNumLevels/b4f5ea.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLevels/b4f5ea.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureNumLevels/d004a9.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLevels/d004a9.wgsl.expected.glsl
index f4fa651..30de2c6 100644
--- a/test/intrinsics/gen/textureNumLevels/d004a9.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLevels/d004a9.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureNumLevels/dca09e.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLevels/dca09e.wgsl.expected.glsl
index 8b967a8..9868029 100644
--- a/test/intrinsics/gen/textureNumLevels/dca09e.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLevels/dca09e.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureNumLevels/e67231.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLevels/e67231.wgsl.expected.glsl
index d6103dd..44e6b39 100644
--- a/test/intrinsics/gen/textureNumLevels/e67231.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLevels/e67231.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureNumLevels/ed078b.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLevels/ed078b.wgsl.expected.glsl
index 744b130..eb232ea 100644
--- a/test/intrinsics/gen/textureNumLevels/ed078b.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLevels/ed078b.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureNumLevels/f46ec6.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLevels/f46ec6.wgsl.expected.glsl
index d022ea8..4636ea7 100644
--- a/test/intrinsics/gen/textureNumLevels/f46ec6.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLevels/f46ec6.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureNumLevels/f5828d.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLevels/f5828d.wgsl.expected.glsl
index ae65de0..c808844 100644
--- a/test/intrinsics/gen/textureNumLevels/f5828d.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLevels/f5828d.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureNumSamples/2c6f14.wgsl.expected.glsl b/test/intrinsics/gen/textureNumSamples/2c6f14.wgsl.expected.glsl
index d2507ab..2679239 100644
--- a/test/intrinsics/gen/textureNumSamples/2c6f14.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumSamples/2c6f14.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureNumSamples/42f8bb.wgsl.expected.glsl b/test/intrinsics/gen/textureNumSamples/42f8bb.wgsl.expected.glsl
index 7b0c519..4edac8a 100644
--- a/test/intrinsics/gen/textureNumSamples/42f8bb.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumSamples/42f8bb.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureNumSamples/449d23.wgsl.expected.glsl b/test/intrinsics/gen/textureNumSamples/449d23.wgsl.expected.glsl
index a22589b..2a6a32a 100644
--- a/test/intrinsics/gen/textureNumSamples/449d23.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumSamples/449d23.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureNumSamples/a3c8a0.wgsl.expected.glsl b/test/intrinsics/gen/textureNumSamples/a3c8a0.wgsl.expected.glsl
index 1e13b72..3ac2707 100644
--- a/test/intrinsics/gen/textureNumSamples/a3c8a0.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumSamples/a3c8a0.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureSampleCompareLevel/011a8f.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleCompareLevel/011a8f.wgsl.expected.glsl
index d43ddb0..fa864b0 100644
--- a/test/intrinsics/gen/textureSampleCompareLevel/011a8f.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureSampleCompareLevel/011a8f.wgsl.expected.glsl
@@ -29,6 +29,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureSampleCompareLevel/1116ed.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleCompareLevel/1116ed.wgsl.expected.glsl
index 25be187..e9e93c1 100644
--- a/test/intrinsics/gen/textureSampleCompareLevel/1116ed.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureSampleCompareLevel/1116ed.wgsl.expected.glsl
@@ -29,6 +29,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureSampleCompareLevel/1568e3.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleCompareLevel/1568e3.wgsl.expected.glsl
index 683527d..e4784a2 100644
--- a/test/intrinsics/gen/textureSampleCompareLevel/1568e3.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureSampleCompareLevel/1568e3.wgsl.expected.glsl
@@ -29,6 +29,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureSampleCompareLevel/2ad2b1.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleCompareLevel/2ad2b1.wgsl.expected.glsl
index 91fc708..7a934c1 100644
--- a/test/intrinsics/gen/textureSampleCompareLevel/2ad2b1.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureSampleCompareLevel/2ad2b1.wgsl.expected.glsl
@@ -29,6 +29,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureSampleCompareLevel/4cf3a2.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleCompareLevel/4cf3a2.wgsl.expected.glsl
index 5e33710..6f116fe 100644
--- a/test/intrinsics/gen/textureSampleCompareLevel/4cf3a2.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureSampleCompareLevel/4cf3a2.wgsl.expected.glsl
@@ -29,6 +29,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureSampleCompareLevel/f8121c.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleCompareLevel/f8121c.wgsl.expected.glsl
index a869043..40a07de 100644
--- a/test/intrinsics/gen/textureSampleCompareLevel/f8121c.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureSampleCompareLevel/f8121c.wgsl.expected.glsl
@@ -29,6 +29,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureSampleGrad/21402b.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleGrad/21402b.wgsl.expected.glsl
index 41227a4..dd3d506 100644
--- a/test/intrinsics/gen/textureSampleGrad/21402b.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureSampleGrad/21402b.wgsl.expected.glsl
@@ -27,6 +27,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureSampleGrad/2ecd8f.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleGrad/2ecd8f.wgsl.expected.glsl
index e447fd5..a29e182 100644
--- a/test/intrinsics/gen/textureSampleGrad/2ecd8f.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureSampleGrad/2ecd8f.wgsl.expected.glsl
@@ -27,6 +27,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureSampleGrad/468f88.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleGrad/468f88.wgsl.expected.glsl
index cebae2c..93a50fe 100644
--- a/test/intrinsics/gen/textureSampleGrad/468f88.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureSampleGrad/468f88.wgsl.expected.glsl
@@ -27,6 +27,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureSampleGrad/521263.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleGrad/521263.wgsl.expected.glsl
index 12d0e00..139e8a1 100644
--- a/test/intrinsics/gen/textureSampleGrad/521263.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureSampleGrad/521263.wgsl.expected.glsl
@@ -27,6 +27,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureSampleGrad/5312f4.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleGrad/5312f4.wgsl.expected.glsl
index 7749e1e..c8bf7a0 100644
--- a/test/intrinsics/gen/textureSampleGrad/5312f4.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureSampleGrad/5312f4.wgsl.expected.glsl
@@ -27,6 +27,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureSampleGrad/872f00.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleGrad/872f00.wgsl.expected.glsl
index b4f339d..50eb21e 100644
--- a/test/intrinsics/gen/textureSampleGrad/872f00.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureSampleGrad/872f00.wgsl.expected.glsl
@@ -27,6 +27,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureSampleGrad/e383db.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleGrad/e383db.wgsl.expected.glsl
index d6575ff..0053fca 100644
--- a/test/intrinsics/gen/textureSampleGrad/e383db.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureSampleGrad/e383db.wgsl.expected.glsl
@@ -29,6 +29,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureSampleGrad/e9a2f7.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleGrad/e9a2f7.wgsl.expected.glsl
index e5e3eef..fb59338 100644
--- a/test/intrinsics/gen/textureSampleGrad/e9a2f7.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureSampleGrad/e9a2f7.wgsl.expected.glsl
@@ -27,6 +27,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureSampleLevel/02be59.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleLevel/02be59.wgsl.expected.glsl
index 99d6d87..3eca5d3 100644
--- a/test/intrinsics/gen/textureSampleLevel/02be59.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureSampleLevel/02be59.wgsl.expected.glsl
@@ -29,6 +29,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureSampleLevel/0bdd9a.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleLevel/0bdd9a.wgsl.expected.glsl
index 703a317..ba6f146 100644
--- a/test/intrinsics/gen/textureSampleLevel/0bdd9a.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureSampleLevel/0bdd9a.wgsl.expected.glsl
@@ -29,6 +29,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureSampleLevel/1b0291.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleLevel/1b0291.wgsl.expected.glsl
index 2b34745..888e5c0 100644
--- a/test/intrinsics/gen/textureSampleLevel/1b0291.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureSampleLevel/1b0291.wgsl.expected.glsl
@@ -29,6 +29,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureSampleLevel/1bf73e.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleLevel/1bf73e.wgsl.expected.glsl
index bd90c62..b04ff20 100644
--- a/test/intrinsics/gen/textureSampleLevel/1bf73e.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureSampleLevel/1bf73e.wgsl.expected.glsl
@@ -29,6 +29,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureSampleLevel/302be4.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleLevel/302be4.wgsl.expected.glsl
index a66ae27..7f799d2 100644
--- a/test/intrinsics/gen/textureSampleLevel/302be4.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureSampleLevel/302be4.wgsl.expected.glsl
@@ -27,6 +27,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureSampleLevel/47daa4.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleLevel/47daa4.wgsl.expected.glsl
index 6c6a30c..5df230a 100644
--- a/test/intrinsics/gen/textureSampleLevel/47daa4.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureSampleLevel/47daa4.wgsl.expected.glsl
@@ -29,6 +29,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureSampleLevel/690d95.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleLevel/690d95.wgsl.expected.glsl
index e12972c..2e13b34 100644
--- a/test/intrinsics/gen/textureSampleLevel/690d95.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureSampleLevel/690d95.wgsl.expected.glsl
@@ -27,6 +27,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureSampleLevel/979816.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleLevel/979816.wgsl.expected.glsl
index 70dd619..6e452b8 100644
--- a/test/intrinsics/gen/textureSampleLevel/979816.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureSampleLevel/979816.wgsl.expected.glsl
@@ -27,6 +27,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureSampleLevel/9bd37b.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleLevel/9bd37b.wgsl.expected.glsl
index 4054927..c46fd86 100644
--- a/test/intrinsics/gen/textureSampleLevel/9bd37b.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureSampleLevel/9bd37b.wgsl.expected.glsl
@@ -27,6 +27,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureSampleLevel/a4af26.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleLevel/a4af26.wgsl.expected.glsl
index ece5be1..df5321c 100644
--- a/test/intrinsics/gen/textureSampleLevel/a4af26.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureSampleLevel/a4af26.wgsl.expected.glsl
@@ -27,6 +27,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureSampleLevel/abfcc0.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleLevel/abfcc0.wgsl.expected.glsl
index 66ef007..89cb1f2 100644
--- a/test/intrinsics/gen/textureSampleLevel/abfcc0.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureSampleLevel/abfcc0.wgsl.expected.glsl
@@ -27,6 +27,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureSampleLevel/ae5e39.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleLevel/ae5e39.wgsl.expected.glsl
index 91c547a..d4ae3fe 100644
--- a/test/intrinsics/gen/textureSampleLevel/ae5e39.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureSampleLevel/ae5e39.wgsl.expected.glsl
@@ -29,6 +29,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureSampleLevel/ba93b3.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleLevel/ba93b3.wgsl.expected.glsl
index 0c0ac10..ed6448c 100644
--- a/test/intrinsics/gen/textureSampleLevel/ba93b3.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureSampleLevel/ba93b3.wgsl.expected.glsl
@@ -29,6 +29,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureSampleLevel/c32df7.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleLevel/c32df7.wgsl.expected.glsl
index c11197e..f65d6f6 100644
--- a/test/intrinsics/gen/textureSampleLevel/c32df7.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureSampleLevel/c32df7.wgsl.expected.glsl
@@ -27,6 +27,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureSampleLevel/c6aca6.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleLevel/c6aca6.wgsl.expected.glsl
index 56c4d64..ddb00ef 100644
--- a/test/intrinsics/gen/textureSampleLevel/c6aca6.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureSampleLevel/c6aca6.wgsl.expected.glsl
@@ -27,6 +27,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureStore/05ce15.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/05ce15.wgsl.expected.glsl
index a2a12ac..93076e8 100644
--- a/test/intrinsics/gen/textureStore/05ce15.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/05ce15.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureStore/064c7f.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/064c7f.wgsl.expected.glsl
index d656f9d..af34f02 100644
--- a/test/intrinsics/gen/textureStore/064c7f.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/064c7f.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureStore/068641.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/068641.wgsl.expected.glsl
index e25e292..97a4082 100644
--- a/test/intrinsics/gen/textureStore/068641.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/068641.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureStore/0af6b5.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/0af6b5.wgsl.expected.glsl
index 96f3ce1..d49a59a 100644
--- a/test/intrinsics/gen/textureStore/0af6b5.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/0af6b5.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureStore/0c3dff.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/0c3dff.wgsl.expected.glsl
index 1fb751a..1c04a33 100644
--- a/test/intrinsics/gen/textureStore/0c3dff.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/0c3dff.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureStore/102722.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/102722.wgsl.expected.glsl
index c422cbe..23bcd0b 100644
--- a/test/intrinsics/gen/textureStore/102722.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/102722.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureStore/1bbd08.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/1bbd08.wgsl.expected.glsl
index fecb6a5..dcca257 100644
--- a/test/intrinsics/gen/textureStore/1bbd08.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/1bbd08.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureStore/1c02e7.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/1c02e7.wgsl.expected.glsl
index 6e6e69c..3661048 100644
--- a/test/intrinsics/gen/textureStore/1c02e7.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/1c02e7.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureStore/22d955.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/22d955.wgsl.expected.glsl
index df9b64d..d6b90eb 100644
--- a/test/intrinsics/gen/textureStore/22d955.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/22d955.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureStore/26bf70.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/26bf70.wgsl.expected.glsl
index ce56f9b..efe7756 100644
--- a/test/intrinsics/gen/textureStore/26bf70.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/26bf70.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureStore/2796b4.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/2796b4.wgsl.expected.glsl
index f90c8b0..17f4bc9 100644
--- a/test/intrinsics/gen/textureStore/2796b4.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/2796b4.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureStore/2ac6c7.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/2ac6c7.wgsl.expected.glsl
index 16bd368..8e2b8c4 100644
--- a/test/intrinsics/gen/textureStore/2ac6c7.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/2ac6c7.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureStore/2eb2a4.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/2eb2a4.wgsl.expected.glsl
index 4458c45..6e8f226 100644
--- a/test/intrinsics/gen/textureStore/2eb2a4.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/2eb2a4.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureStore/2ed2a3.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/2ed2a3.wgsl.expected.glsl
index b79f138..6403f80 100644
--- a/test/intrinsics/gen/textureStore/2ed2a3.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/2ed2a3.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureStore/31745b.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/31745b.wgsl.expected.glsl
index 0b84066..4defeef 100644
--- a/test/intrinsics/gen/textureStore/31745b.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/31745b.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureStore/32f368.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/32f368.wgsl.expected.glsl
index 3f604a6..0271e9c 100644
--- a/test/intrinsics/gen/textureStore/32f368.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/32f368.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureStore/331aee.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/331aee.wgsl.expected.glsl
index 98f97e6..0803632 100644
--- a/test/intrinsics/gen/textureStore/331aee.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/331aee.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureStore/38e8d7.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/38e8d7.wgsl.expected.glsl
index 7157863..8b8affc 100644
--- a/test/intrinsics/gen/textureStore/38e8d7.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/38e8d7.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureStore/3a52ac.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/3a52ac.wgsl.expected.glsl
index 3e1c40a..c89eb91 100644
--- a/test/intrinsics/gen/textureStore/3a52ac.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/3a52ac.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureStore/3bb7a1.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/3bb7a1.wgsl.expected.glsl
index 53393fe..8f114f9 100644
--- a/test/intrinsics/gen/textureStore/3bb7a1.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/3bb7a1.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureStore/3bec15.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/3bec15.wgsl.expected.glsl
index 40b8d07..1cb628c 100644
--- a/test/intrinsics/gen/textureStore/3bec15.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/3bec15.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureStore/441ba8.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/441ba8.wgsl.expected.glsl
index f657b29..a8dff3e 100644
--- a/test/intrinsics/gen/textureStore/441ba8.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/441ba8.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureStore/4fc057.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/4fc057.wgsl.expected.glsl
index be222d5..0359847 100644
--- a/test/intrinsics/gen/textureStore/4fc057.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/4fc057.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureStore/5a2f8f.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/5a2f8f.wgsl.expected.glsl
index 905c2e6..edaf329 100644
--- a/test/intrinsics/gen/textureStore/5a2f8f.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/5a2f8f.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureStore/60975f.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/60975f.wgsl.expected.glsl
index 4325c70..8990d5e 100644
--- a/test/intrinsics/gen/textureStore/60975f.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/60975f.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureStore/682fd6.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/682fd6.wgsl.expected.glsl
index bd11bc2..15e66fc 100644
--- a/test/intrinsics/gen/textureStore/682fd6.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/682fd6.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureStore/6b75c3.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/6b75c3.wgsl.expected.glsl
index b61f48a..668e90c 100644
--- a/test/intrinsics/gen/textureStore/6b75c3.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/6b75c3.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureStore/6b80d2.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/6b80d2.wgsl.expected.glsl
index 16239ee..0993568 100644
--- a/test/intrinsics/gen/textureStore/6b80d2.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/6b80d2.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureStore/6cff2e.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/6cff2e.wgsl.expected.glsl
index 535f41e..95cd722 100644
--- a/test/intrinsics/gen/textureStore/6cff2e.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/6cff2e.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureStore/6da692.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/6da692.wgsl.expected.glsl
index 63b8b52..1946796 100644
--- a/test/intrinsics/gen/textureStore/6da692.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/6da692.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureStore/731349.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/731349.wgsl.expected.glsl
index 9c4d9eb..e528e3f 100644
--- a/test/intrinsics/gen/textureStore/731349.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/731349.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureStore/752da6.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/752da6.wgsl.expected.glsl
index 399dd48..69c93ef 100644
--- a/test/intrinsics/gen/textureStore/752da6.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/752da6.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureStore/77c0ae.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/77c0ae.wgsl.expected.glsl
index 92aa374..eecdcaa 100644
--- a/test/intrinsics/gen/textureStore/77c0ae.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/77c0ae.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureStore/7cec8d.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/7cec8d.wgsl.expected.glsl
index a86146a..b67042b 100644
--- a/test/intrinsics/gen/textureStore/7cec8d.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/7cec8d.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureStore/7f7fae.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/7f7fae.wgsl.expected.glsl
index 6de553e..c36928a 100644
--- a/test/intrinsics/gen/textureStore/7f7fae.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/7f7fae.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureStore/804942.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/804942.wgsl.expected.glsl
index 8288982..b7b0580 100644
--- a/test/intrinsics/gen/textureStore/804942.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/804942.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureStore/805dae.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/805dae.wgsl.expected.glsl
index 0c39f41..88e7036 100644
--- a/test/intrinsics/gen/textureStore/805dae.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/805dae.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureStore/83bcc1.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/83bcc1.wgsl.expected.glsl
index 0313917..1d2ea07 100644
--- a/test/intrinsics/gen/textureStore/83bcc1.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/83bcc1.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureStore/872747.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/872747.wgsl.expected.glsl
index 37a5e83..ed49302 100644
--- a/test/intrinsics/gen/textureStore/872747.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/872747.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureStore/8e0479.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/8e0479.wgsl.expected.glsl
index 84c26fb..67e1537 100644
--- a/test/intrinsics/gen/textureStore/8e0479.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/8e0479.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureStore/8f71a1.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/8f71a1.wgsl.expected.glsl
index a4828b9..633eaa4 100644
--- a/test/intrinsics/gen/textureStore/8f71a1.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/8f71a1.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureStore/969534.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/969534.wgsl.expected.glsl
index d613c01..d6d0f3c 100644
--- a/test/intrinsics/gen/textureStore/969534.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/969534.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureStore/9a3ecc.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/9a3ecc.wgsl.expected.glsl
index 49e6391..ba254e6 100644
--- a/test/intrinsics/gen/textureStore/9a3ecc.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/9a3ecc.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureStore/9d9cd5.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/9d9cd5.wgsl.expected.glsl
index 820b26f..17f8574 100644
--- a/test/intrinsics/gen/textureStore/9d9cd5.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/9d9cd5.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureStore/9e3ec5.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/9e3ec5.wgsl.expected.glsl
index c7219fd..e42de05 100644
--- a/test/intrinsics/gen/textureStore/9e3ec5.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/9e3ec5.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureStore/ac67aa.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/ac67aa.wgsl.expected.glsl
index 49a543f..cf92f73 100644
--- a/test/intrinsics/gen/textureStore/ac67aa.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/ac67aa.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureStore/b706b1.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/b706b1.wgsl.expected.glsl
index bd7039b..ddedb0f 100644
--- a/test/intrinsics/gen/textureStore/b706b1.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/b706b1.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureStore/bbcb7f.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/bbcb7f.wgsl.expected.glsl
index 6a83148..c2606c1 100644
--- a/test/intrinsics/gen/textureStore/bbcb7f.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/bbcb7f.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureStore/be6e30.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/be6e30.wgsl.expected.glsl
index dfebc0e..982658a 100644
--- a/test/intrinsics/gen/textureStore/be6e30.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/be6e30.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureStore/bf775c.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/bf775c.wgsl.expected.glsl
index 27837a9..de8414d 100644
--- a/test/intrinsics/gen/textureStore/bf775c.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/bf775c.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureStore/c5af1e.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/c5af1e.wgsl.expected.glsl
index 4d0add9..e513d6a 100644
--- a/test/intrinsics/gen/textureStore/c5af1e.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/c5af1e.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureStore/c863be.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/c863be.wgsl.expected.glsl
index 8a551ae..056432f 100644
--- a/test/intrinsics/gen/textureStore/c863be.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/c863be.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureStore/d73b5c.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/d73b5c.wgsl.expected.glsl
index d582563..dbb4a12 100644
--- a/test/intrinsics/gen/textureStore/d73b5c.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/d73b5c.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureStore/dd7d81.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/dd7d81.wgsl.expected.glsl
index 5ed18a6..d8946a4 100644
--- a/test/intrinsics/gen/textureStore/dd7d81.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/dd7d81.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureStore/dde364.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/dde364.wgsl.expected.glsl
index 4b67f2c..05b042f 100644
--- a/test/intrinsics/gen/textureStore/dde364.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/dde364.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureStore/e885e8.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/e885e8.wgsl.expected.glsl
index 7441922..d9d00e6 100644
--- a/test/intrinsics/gen/textureStore/e885e8.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/e885e8.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureStore/eb702f.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/eb702f.wgsl.expected.glsl
index 5f0e737..cd5619d 100644
--- a/test/intrinsics/gen/textureStore/eb702f.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/eb702f.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureStore/eb78b9.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/eb78b9.wgsl.expected.glsl
index 13865eb..4d0dd64 100644
--- a/test/intrinsics/gen/textureStore/eb78b9.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/eb78b9.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureStore/ee6acc.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/ee6acc.wgsl.expected.glsl
index 7c76153..39fc638 100644
--- a/test/intrinsics/gen/textureStore/ee6acc.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/ee6acc.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureStore/ef9f2f.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/ef9f2f.wgsl.expected.glsl
index 58c9b58..50cd686 100644
--- a/test/intrinsics/gen/textureStore/ef9f2f.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/ef9f2f.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureStore/f8dead.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/f8dead.wgsl.expected.glsl
index d67f4ee..f8cc2ce 100644
--- a/test/intrinsics/gen/textureStore/f8dead.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/f8dead.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureStore/f9be83.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/f9be83.wgsl.expected.glsl
index 63a3074..f188d4a 100644
--- a/test/intrinsics/gen/textureStore/f9be83.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/f9be83.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureStore/fb9a8f.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/fb9a8f.wgsl.expected.glsl
index 83204e6..b9c043d 100644
--- a/test/intrinsics/gen/textureStore/fb9a8f.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/fb9a8f.wgsl.expected.glsl
@@ -28,6 +28,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/textureStore/fbf53f.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/fbf53f.wgsl.expected.glsl
index ebb1a2d..c8c16c9 100644
--- a/test/intrinsics/gen/textureStore/fbf53f.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/fbf53f.wgsl.expected.glsl
@@ -26,6 +26,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/transpose/2585cd.wgsl.expected.glsl b/test/intrinsics/gen/transpose/2585cd.wgsl.expected.glsl
index e53ed26..d526e53 100644
--- a/test/intrinsics/gen/transpose/2585cd.wgsl.expected.glsl
+++ b/test/intrinsics/gen/transpose/2585cd.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/transpose/31d679.wgsl.expected.glsl b/test/intrinsics/gen/transpose/31d679.wgsl.expected.glsl
index 94c6b80..690387c 100644
--- a/test/intrinsics/gen/transpose/31d679.wgsl.expected.glsl
+++ b/test/intrinsics/gen/transpose/31d679.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/transpose/31e37e.wgsl.expected.glsl b/test/intrinsics/gen/transpose/31e37e.wgsl.expected.glsl
index 84e5407..ec4cdee 100644
--- a/test/intrinsics/gen/transpose/31e37e.wgsl.expected.glsl
+++ b/test/intrinsics/gen/transpose/31e37e.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/transpose/4ce359.wgsl.expected.glsl b/test/intrinsics/gen/transpose/4ce359.wgsl.expected.glsl
index a03fa51..7651b41f 100644
--- a/test/intrinsics/gen/transpose/4ce359.wgsl.expected.glsl
+++ b/test/intrinsics/gen/transpose/4ce359.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/transpose/4dc9a1.wgsl.expected.glsl b/test/intrinsics/gen/transpose/4dc9a1.wgsl.expected.glsl
index 1597888..7a5f776 100644
--- a/test/intrinsics/gen/transpose/4dc9a1.wgsl.expected.glsl
+++ b/test/intrinsics/gen/transpose/4dc9a1.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/transpose/854336.wgsl.expected.glsl b/test/intrinsics/gen/transpose/854336.wgsl.expected.glsl
index 155bd35..78e72ea 100644
--- a/test/intrinsics/gen/transpose/854336.wgsl.expected.glsl
+++ b/test/intrinsics/gen/transpose/854336.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/transpose/c1b600.wgsl.expected.glsl b/test/intrinsics/gen/transpose/c1b600.wgsl.expected.glsl
index 682578a..8944817 100644
--- a/test/intrinsics/gen/transpose/c1b600.wgsl.expected.glsl
+++ b/test/intrinsics/gen/transpose/c1b600.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/transpose/d8f8ba.wgsl.expected.glsl b/test/intrinsics/gen/transpose/d8f8ba.wgsl.expected.glsl
index 86e5480..1efffd4 100644
--- a/test/intrinsics/gen/transpose/d8f8ba.wgsl.expected.glsl
+++ b/test/intrinsics/gen/transpose/d8f8ba.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/transpose/ed4bdc.wgsl.expected.glsl b/test/intrinsics/gen/transpose/ed4bdc.wgsl.expected.glsl
index ae64003..80ab4e8 100644
--- a/test/intrinsics/gen/transpose/ed4bdc.wgsl.expected.glsl
+++ b/test/intrinsics/gen/transpose/ed4bdc.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/trunc/562d05.wgsl.expected.glsl b/test/intrinsics/gen/trunc/562d05.wgsl.expected.glsl
index ff3f6b2..cdc4839 100644
--- a/test/intrinsics/gen/trunc/562d05.wgsl.expected.glsl
+++ b/test/intrinsics/gen/trunc/562d05.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/trunc/e183aa.wgsl.expected.glsl b/test/intrinsics/gen/trunc/e183aa.wgsl.expected.glsl
index cd8db12..0d50be7 100644
--- a/test/intrinsics/gen/trunc/e183aa.wgsl.expected.glsl
+++ b/test/intrinsics/gen/trunc/e183aa.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/trunc/eb83df.wgsl.expected.glsl b/test/intrinsics/gen/trunc/eb83df.wgsl.expected.glsl
index d809fe8..9bb7a77 100644
--- a/test/intrinsics/gen/trunc/eb83df.wgsl.expected.glsl
+++ b/test/intrinsics/gen/trunc/eb83df.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/trunc/f370d3.wgsl.expected.glsl b/test/intrinsics/gen/trunc/f370d3.wgsl.expected.glsl
index 32ce843..653a58c 100644
--- a/test/intrinsics/gen/trunc/f370d3.wgsl.expected.glsl
+++ b/test/intrinsics/gen/trunc/f370d3.wgsl.expected.glsl
@@ -24,6 +24,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/unpack2x16float/32a5cf.wgsl.expected.glsl b/test/intrinsics/gen/unpack2x16float/32a5cf.wgsl.expected.glsl
index 76beac1..be890b1 100644
--- a/test/intrinsics/gen/unpack2x16float/32a5cf.wgsl.expected.glsl
+++ b/test/intrinsics/gen/unpack2x16float/32a5cf.wgsl.expected.glsl
@@ -32,6 +32,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/unpack2x16snorm/b4aea6.wgsl.expected.glsl b/test/intrinsics/gen/unpack2x16snorm/b4aea6.wgsl.expected.glsl
index babc3da..ed824f9 100644
--- a/test/intrinsics/gen/unpack2x16snorm/b4aea6.wgsl.expected.glsl
+++ b/test/intrinsics/gen/unpack2x16snorm/b4aea6.wgsl.expected.glsl
@@ -33,6 +33,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/unpack2x16unorm/7699c0.wgsl.expected.glsl b/test/intrinsics/gen/unpack2x16unorm/7699c0.wgsl.expected.glsl
index 7fe0e54..0e3d558 100644
--- a/test/intrinsics/gen/unpack2x16unorm/7699c0.wgsl.expected.glsl
+++ b/test/intrinsics/gen/unpack2x16unorm/7699c0.wgsl.expected.glsl
@@ -33,6 +33,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/unpack4x8snorm/523fb3.wgsl.expected.glsl b/test/intrinsics/gen/unpack4x8snorm/523fb3.wgsl.expected.glsl
index b27d4c7..b95e186 100644
--- a/test/intrinsics/gen/unpack4x8snorm/523fb3.wgsl.expected.glsl
+++ b/test/intrinsics/gen/unpack4x8snorm/523fb3.wgsl.expected.glsl
@@ -33,6 +33,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/gen/unpack4x8unorm/750c74.wgsl.expected.glsl b/test/intrinsics/gen/unpack4x8unorm/750c74.wgsl.expected.glsl
index cb08c88..3c80c76 100644
--- a/test/intrinsics/gen/unpack4x8unorm/750c74.wgsl.expected.glsl
+++ b/test/intrinsics/gen/unpack4x8unorm/750c74.wgsl.expected.glsl
@@ -33,6 +33,7 @@
   tint_symbol outputs;
   outputs = vertex_main();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/textureDimensions/depth_ms.spvasm.expected.glsl b/test/intrinsics/textureDimensions/depth_ms.spvasm.expected.glsl
index bdab771..d4520c4 100644
--- a/test/intrinsics/textureDimensions/depth_ms.spvasm.expected.glsl
+++ b/test/intrinsics/textureDimensions/depth_ms.spvasm.expected.glsl
@@ -45,6 +45,7 @@
   tint_symbol_3 outputs;
   outputs = vertex_main();
   gl_Position = outputs.tint_symbol_1_1;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/textureLoad/depth_ms.spvasm.expected.glsl b/test/intrinsics/textureLoad/depth_ms.spvasm.expected.glsl
index 5f2df56..c94cc72 100644
--- a/test/intrinsics/textureLoad/depth_ms.spvasm.expected.glsl
+++ b/test/intrinsics/textureLoad/depth_ms.spvasm.expected.glsl
@@ -45,6 +45,7 @@
   tint_symbol_3 outputs;
   outputs = vertex_main();
   gl_Position = outputs.tint_symbol_1_1;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/intrinsics/textureNumSamples/depth_ms.spvasm.expected.glsl b/test/intrinsics/textureNumSamples/depth_ms.spvasm.expected.glsl
index ee1281e..6b066d1 100644
--- a/test/intrinsics/textureNumSamples/depth_ms.spvasm.expected.glsl
+++ b/test/intrinsics/textureNumSamples/depth_ms.spvasm.expected.glsl
@@ -47,6 +47,7 @@
   tint_symbol_3 outputs;
   outputs = vertex_main();
   gl_Position = outputs.tint_symbol_1_1;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/samples/compute_boids.wgsl.expected.glsl b/test/samples/compute_boids.wgsl.expected.glsl
index 790512a..10299a1 100644
--- a/test/samples/compute_boids.wgsl.expected.glsl
+++ b/test/samples/compute_boids.wgsl.expected.glsl
@@ -56,6 +56,7 @@
   tint_symbol_3 outputs;
   outputs = vert_main(inputs);
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/samples/cube.wgsl.expected.glsl b/test/samples/cube.wgsl.expected.glsl
index 444cd23..67ede84 100644
--- a/test/samples/cube.wgsl.expected.glsl
+++ b/test/samples/cube.wgsl.expected.glsl
@@ -59,6 +59,7 @@
   outputs = vtx_main(inputs);
   vtxFragColor = outputs.vtxFragColor;
   gl_Position = outputs.Position;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/samples/simple_vertex.spvasm.expected.glsl b/test/samples/simple_vertex.spvasm.expected.glsl
index fc281a4..70dfb18 100644
--- a/test/samples/simple_vertex.spvasm.expected.glsl
+++ b/test/samples/simple_vertex.spvasm.expected.glsl
@@ -31,6 +31,7 @@
   tint_symbol_2 outputs;
   outputs = tint_symbol_1();
   gl_Position = outputs.tint_symbol;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/samples/triangle.wgsl.expected.glsl b/test/samples/triangle.wgsl.expected.glsl
index 67feb5c..8cb735c 100644
--- a/test/samples/triangle.wgsl.expected.glsl
+++ b/test/samples/triangle.wgsl.expected.glsl
@@ -30,6 +30,7 @@
   tint_symbol_2 outputs;
   outputs = vtx_main(inputs);
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/shader_io/interpolate_integers.wgsl.expected.glsl b/test/shader_io/interpolate_integers.wgsl.expected.glsl
index 736525a..3edb324 100644
--- a/test/shader_io/interpolate_integers.wgsl.expected.glsl
+++ b/test/shader_io/interpolate_integers.wgsl.expected.glsl
@@ -54,6 +54,7 @@
   vi = outputs.vi;
   vu = outputs.vu;
   gl_Position = outputs.pos;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/shader_io/interpolate_return_struct.wgsl.expected.glsl b/test/shader_io/interpolate_return_struct.wgsl.expected.glsl
index c9ee276..0b52495 100644
--- a/test/shader_io/interpolate_return_struct.wgsl.expected.glsl
+++ b/test/shader_io/interpolate_return_struct.wgsl.expected.glsl
@@ -63,6 +63,7 @@
   linear_centroid = outputs.linear_centroid;
   linear_sample = outputs.linear_sample;
   gl_Position = outputs.pos;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/shader_io/invariant.wgsl.expected.glsl b/test/shader_io/invariant.wgsl.expected.glsl
index f4a5922..88d2c062 100644
--- a/test/shader_io/invariant.wgsl.expected.glsl
+++ b/test/shader_io/invariant.wgsl.expected.glsl
@@ -19,6 +19,7 @@
   tint_symbol_1 outputs;
   outputs = tint_symbol();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/shader_io/invariant_struct_member.wgsl.expected.glsl b/test/shader_io/invariant_struct_member.wgsl.expected.glsl
index 72de2f5..b660e74 100644
--- a/test/shader_io/invariant_struct_member.wgsl.expected.glsl
+++ b/test/shader_io/invariant_struct_member.wgsl.expected.glsl
@@ -23,6 +23,7 @@
   tint_symbol_1 outputs;
   outputs = tint_symbol();
   gl_Position = outputs.pos;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/shader_io/shared_struct_different_stages.wgsl.expected.glsl b/test/shader_io/shared_struct_different_stages.wgsl.expected.glsl
index d449567..d9b62a4 100644
--- a/test/shader_io/shared_struct_different_stages.wgsl.expected.glsl
+++ b/test/shader_io/shared_struct_different_stages.wgsl.expected.glsl
@@ -39,6 +39,7 @@
   col1 = outputs.col1;
   col2 = outputs.col2;
   gl_Position = outputs.pos;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/shader_io/shared_struct_helper_function.wgsl.expected.glsl b/test/shader_io/shared_struct_helper_function.wgsl.expected.glsl
index 875731b..4af4489 100644
--- a/test/shader_io/shared_struct_helper_function.wgsl.expected.glsl
+++ b/test/shader_io/shared_struct_helper_function.wgsl.expected.glsl
@@ -38,6 +38,7 @@
   outputs = vert_main1();
   loc0 = outputs.loc0;
   gl_Position = outputs.pos;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
@@ -81,6 +82,7 @@
   outputs = vert_main2();
   loc0 = outputs.loc0;
   gl_Position = outputs.pos;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/shader_io/vertex_input_builtins.wgsl.expected.glsl b/test/shader_io/vertex_input_builtins.wgsl.expected.glsl
index fc2ba6e..50db3c7 100644
--- a/test/shader_io/vertex_input_builtins.wgsl.expected.glsl
+++ b/test/shader_io/vertex_input_builtins.wgsl.expected.glsl
@@ -27,6 +27,7 @@
   tint_symbol_3 outputs;
   outputs = tint_symbol(inputs);
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/shader_io/vertex_input_builtins_struct.wgsl.expected.glsl b/test/shader_io/vertex_input_builtins_struct.wgsl.expected.glsl
index 0df97fa..88c758b 100644
--- a/test/shader_io/vertex_input_builtins_struct.wgsl.expected.glsl
+++ b/test/shader_io/vertex_input_builtins_struct.wgsl.expected.glsl
@@ -32,6 +32,7 @@
   tint_symbol_3 outputs;
   outputs = tint_symbol(inputs);
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/shader_io/vertex_input_locations.wgsl.expected.glsl b/test/shader_io/vertex_input_locations.wgsl.expected.glsl
index 007b655..be35fad 100644
--- a/test/shader_io/vertex_input_locations.wgsl.expected.glsl
+++ b/test/shader_io/vertex_input_locations.wgsl.expected.glsl
@@ -38,6 +38,7 @@
   tint_symbol_3 outputs;
   outputs = tint_symbol(inputs);
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/shader_io/vertex_input_locations_struct.wgsl.expected.glsl b/test/shader_io/vertex_input_locations_struct.wgsl.expected.glsl
index 5868fea..7f77780 100644
--- a/test/shader_io/vertex_input_locations_struct.wgsl.expected.glsl
+++ b/test/shader_io/vertex_input_locations_struct.wgsl.expected.glsl
@@ -45,6 +45,7 @@
   tint_symbol_3 outputs;
   outputs = tint_symbol(inputs);
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/shader_io/vertex_input_mixed.wgsl.expected.glsl b/test/shader_io/vertex_input_mixed.wgsl.expected.glsl
index ce5652e..8feb188 100644
--- a/test/shader_io/vertex_input_mixed.wgsl.expected.glsl
+++ b/test/shader_io/vertex_input_mixed.wgsl.expected.glsl
@@ -53,6 +53,7 @@
   tint_symbol_3 outputs;
   outputs = tint_symbol(inputs);
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/shader_io/vertex_output_builtins.wgsl.expected.glsl b/test/shader_io/vertex_output_builtins.wgsl.expected.glsl
index 99f3730..78e2a3f 100644
--- a/test/shader_io/vertex_output_builtins.wgsl.expected.glsl
+++ b/test/shader_io/vertex_output_builtins.wgsl.expected.glsl
@@ -19,6 +19,7 @@
   tint_symbol_1 outputs;
   outputs = tint_symbol();
   gl_Position = outputs.value;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/shader_io/vertex_output_builtins_struct.wgsl.expected.glsl b/test/shader_io/vertex_output_builtins_struct.wgsl.expected.glsl
index 824c176..07d7a09 100644
--- a/test/shader_io/vertex_output_builtins_struct.wgsl.expected.glsl
+++ b/test/shader_io/vertex_output_builtins_struct.wgsl.expected.glsl
@@ -23,6 +23,7 @@
   tint_symbol_1 outputs;
   outputs = tint_symbol();
   gl_Position = outputs.position;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }
 
diff --git a/test/shader_io/vertex_output_locations_struct.wgsl.expected.glsl b/test/shader_io/vertex_output_locations_struct.wgsl.expected.glsl
index 90910ba..cd514d6 100644
--- a/test/shader_io/vertex_output_locations_struct.wgsl.expected.glsl
+++ b/test/shader_io/vertex_output_locations_struct.wgsl.expected.glsl
@@ -43,6 +43,7 @@
   loc2 = outputs.loc2;
   loc3 = outputs.loc3;
   gl_Position = outputs.position;
+  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
   gl_Position.y = -gl_Position.y;
 }