diff --git a/test/tint/builtins/gen/var/min/03c7e3.wgsl.expected.glsl b/test/tint/builtins/gen/var/min/03c7e3.wgsl.expected.glsl
new file mode 100644
index 0000000..f406945
--- /dev/null
+++ b/test/tint/builtins/gen/var/min/03c7e3.wgsl.expected.glsl
@@ -0,0 +1,55 @@
+#version 310 es
+
+void min_03c7e3() {
+  ivec2 arg_0 = ivec2(0);
+  ivec2 arg_1 = ivec2(0);
+  ivec2 res = min(arg_0, arg_1);
+}
+
+vec4 vertex_main() {
+  min_03c7e3();
+  return vec4(0.0f);
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
+#version 310 es
+precision mediump float;
+
+void min_03c7e3() {
+  ivec2 arg_0 = ivec2(0);
+  ivec2 arg_1 = ivec2(0);
+  ivec2 res = min(arg_0, arg_1);
+}
+
+void fragment_main() {
+  min_03c7e3();
+}
+
+void main() {
+  fragment_main();
+  return;
+}
+#version 310 es
+
+void min_03c7e3() {
+  ivec2 arg_0 = ivec2(0);
+  ivec2 arg_1 = ivec2(0);
+  ivec2 res = min(arg_0, arg_1);
+}
+
+void compute_main() {
+  min_03c7e3();
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  compute_main();
+  return;
+}
