diff --git a/test/builtins/gen/abs/002533.wgsl.expected.glsl b/test/builtins/gen/abs/002533.wgsl.expected.glsl
index 0e26161..806bd2d 100644
--- a/test/builtins/gen/abs/002533.wgsl.expected.glsl
+++ b/test/builtins/gen/abs/002533.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void abs_002533() {
   vec4 res = abs(vec4(0.0f, 0.0f, 0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void abs_002533() {
   vec4 res = abs(vec4(0.0f, 0.0f, 0.0f, 0.0f));
diff --git a/test/builtins/gen/abs/005174.wgsl.expected.glsl b/test/builtins/gen/abs/005174.wgsl.expected.glsl
index dfd8b54..0af5ccb 100644
--- a/test/builtins/gen/abs/005174.wgsl.expected.glsl
+++ b/test/builtins/gen/abs/005174.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void abs_005174() {
   vec3 res = abs(vec3(0.0f, 0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void abs_005174() {
   vec3 res = abs(vec3(0.0f, 0.0f, 0.0f));
diff --git a/test/builtins/gen/abs/1ce782.wgsl.expected.glsl b/test/builtins/gen/abs/1ce782.wgsl.expected.glsl
index 7cfa4b0..1360342 100644
--- a/test/builtins/gen/abs/1ce782.wgsl.expected.glsl
+++ b/test/builtins/gen/abs/1ce782.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 void abs_1ce782() {
   uvec4 res = abs(uvec4(0u, 0u, 0u, 0u));
@@ -20,9 +19,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'abs' : no matching overloaded function found 
-ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp 4-component vector of uint'
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'abs' : no matching overloaded function found 
+ERROR: 0:4: '=' :  cannot convert from ' const float' to ' temp highp 4-component vector of uint'
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
@@ -51,7 +50,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 void abs_1ce782() {
   uvec4 res = abs(uvec4(0u, 0u, 0u, 0u));
@@ -67,9 +65,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'abs' : no matching overloaded function found 
-ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp 4-component vector of uint'
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'abs' : no matching overloaded function found 
+ERROR: 0:4: '=' :  cannot convert from ' const float' to ' temp highp 4-component vector of uint'
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/abs/1e9d53.wgsl.expected.glsl b/test/builtins/gen/abs/1e9d53.wgsl.expected.glsl
index cc54c23..9cbe88f 100644
--- a/test/builtins/gen/abs/1e9d53.wgsl.expected.glsl
+++ b/test/builtins/gen/abs/1e9d53.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void abs_1e9d53() {
   vec2 res = abs(vec2(0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void abs_1e9d53() {
   vec2 res = abs(vec2(0.0f, 0.0f));
diff --git a/test/builtins/gen/abs/467cd1.wgsl.expected.glsl b/test/builtins/gen/abs/467cd1.wgsl.expected.glsl
index f929fe2..7e6bf0f 100644
--- a/test/builtins/gen/abs/467cd1.wgsl.expected.glsl
+++ b/test/builtins/gen/abs/467cd1.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 void abs_467cd1() {
   uint res = abs(1u);
@@ -20,9 +19,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'abs' : no matching overloaded function found 
-ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp uint'
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'abs' : no matching overloaded function found 
+ERROR: 0:4: '=' :  cannot convert from ' const float' to ' temp highp uint'
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
@@ -51,7 +50,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 void abs_467cd1() {
   uint res = abs(1u);
@@ -67,9 +65,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'abs' : no matching overloaded function found 
-ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp uint'
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'abs' : no matching overloaded function found 
+ERROR: 0:4: '=' :  cannot convert from ' const float' to ' temp highp uint'
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/abs/4ad288.wgsl.expected.glsl b/test/builtins/gen/abs/4ad288.wgsl.expected.glsl
index eaadad8..1c16bc2 100644
--- a/test/builtins/gen/abs/4ad288.wgsl.expected.glsl
+++ b/test/builtins/gen/abs/4ad288.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void abs_4ad288() {
   int res = abs(1);
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void abs_4ad288() {
   int res = abs(1);
diff --git a/test/builtins/gen/abs/5ad50a.wgsl.expected.glsl b/test/builtins/gen/abs/5ad50a.wgsl.expected.glsl
index 709618d..c7647bf 100644
--- a/test/builtins/gen/abs/5ad50a.wgsl.expected.glsl
+++ b/test/builtins/gen/abs/5ad50a.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void abs_5ad50a() {
   ivec3 res = abs(ivec3(0, 0, 0));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void abs_5ad50a() {
   ivec3 res = abs(ivec3(0, 0, 0));
diff --git a/test/builtins/gen/abs/7326de.wgsl.expected.glsl b/test/builtins/gen/abs/7326de.wgsl.expected.glsl
index 7b5c7dd..f7d2dd3 100644
--- a/test/builtins/gen/abs/7326de.wgsl.expected.glsl
+++ b/test/builtins/gen/abs/7326de.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 void abs_7326de() {
   uvec3 res = abs(uvec3(0u, 0u, 0u));
@@ -20,9 +19,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'abs' : no matching overloaded function found 
-ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp 3-component vector of uint'
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'abs' : no matching overloaded function found 
+ERROR: 0:4: '=' :  cannot convert from ' const float' to ' temp highp 3-component vector of uint'
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
@@ -51,7 +50,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 void abs_7326de() {
   uvec3 res = abs(uvec3(0u, 0u, 0u));
@@ -67,9 +65,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'abs' : no matching overloaded function found 
-ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp 3-component vector of uint'
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'abs' : no matching overloaded function found 
+ERROR: 0:4: '=' :  cannot convert from ' const float' to ' temp highp 3-component vector of uint'
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/abs/7f28e6.wgsl.expected.glsl b/test/builtins/gen/abs/7f28e6.wgsl.expected.glsl
index 1b1f376..88eec14 100644
--- a/test/builtins/gen/abs/7f28e6.wgsl.expected.glsl
+++ b/test/builtins/gen/abs/7f28e6.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 void abs_7f28e6() {
   uvec2 res = abs(uvec2(0u, 0u));
@@ -20,9 +19,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'abs' : no matching overloaded function found 
-ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp 2-component vector of uint'
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'abs' : no matching overloaded function found 
+ERROR: 0:4: '=' :  cannot convert from ' const float' to ' temp highp 2-component vector of uint'
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
@@ -51,7 +50,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 void abs_7f28e6() {
   uvec2 res = abs(uvec2(0u, 0u));
@@ -67,9 +65,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'abs' : no matching overloaded function found 
-ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp 2-component vector of uint'
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'abs' : no matching overloaded function found 
+ERROR: 0:4: '=' :  cannot convert from ' const float' to ' temp highp 2-component vector of uint'
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/abs/7faa9e.wgsl.expected.glsl b/test/builtins/gen/abs/7faa9e.wgsl.expected.glsl
index 3a4930f..ba065c2 100644
--- a/test/builtins/gen/abs/7faa9e.wgsl.expected.glsl
+++ b/test/builtins/gen/abs/7faa9e.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void abs_7faa9e() {
   ivec2 res = abs(ivec2(0, 0));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void abs_7faa9e() {
   ivec2 res = abs(ivec2(0, 0));
diff --git a/test/builtins/gen/abs/9c80a6.wgsl.expected.glsl b/test/builtins/gen/abs/9c80a6.wgsl.expected.glsl
index ef48036..c90afce 100644
--- a/test/builtins/gen/abs/9c80a6.wgsl.expected.glsl
+++ b/test/builtins/gen/abs/9c80a6.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void abs_9c80a6() {
   ivec4 res = abs(ivec4(0, 0, 0, 0));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void abs_9c80a6() {
   ivec4 res = abs(ivec4(0, 0, 0, 0));
diff --git a/test/builtins/gen/abs/b96037.wgsl.expected.glsl b/test/builtins/gen/abs/b96037.wgsl.expected.glsl
index 61e09f2..b124182 100644
--- a/test/builtins/gen/abs/b96037.wgsl.expected.glsl
+++ b/test/builtins/gen/abs/b96037.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void abs_b96037() {
   float res = abs(1.0f);
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void abs_b96037() {
   float res = abs(1.0f);
diff --git a/test/builtins/gen/acos/489247.wgsl.expected.glsl b/test/builtins/gen/acos/489247.wgsl.expected.glsl
index cdaf0f4..4263eed 100644
--- a/test/builtins/gen/acos/489247.wgsl.expected.glsl
+++ b/test/builtins/gen/acos/489247.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void acos_489247() {
   float res = acos(1.0f);
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void acos_489247() {
   float res = acos(1.0f);
diff --git a/test/builtins/gen/acos/8e2acf.wgsl.expected.glsl b/test/builtins/gen/acos/8e2acf.wgsl.expected.glsl
index 30c87b8..2cfd0af 100644
--- a/test/builtins/gen/acos/8e2acf.wgsl.expected.glsl
+++ b/test/builtins/gen/acos/8e2acf.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void acos_8e2acf() {
   vec4 res = acos(vec4(0.0f, 0.0f, 0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void acos_8e2acf() {
   vec4 res = acos(vec4(0.0f, 0.0f, 0.0f, 0.0f));
diff --git a/test/builtins/gen/acos/a610c4.wgsl.expected.glsl b/test/builtins/gen/acos/a610c4.wgsl.expected.glsl
index b913253..d89f1d5 100644
--- a/test/builtins/gen/acos/a610c4.wgsl.expected.glsl
+++ b/test/builtins/gen/acos/a610c4.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void acos_a610c4() {
   vec3 res = acos(vec3(0.0f, 0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void acos_a610c4() {
   vec3 res = acos(vec3(0.0f, 0.0f, 0.0f));
diff --git a/test/builtins/gen/acos/dfc915.wgsl.expected.glsl b/test/builtins/gen/acos/dfc915.wgsl.expected.glsl
index bed9877..e43c819 100644
--- a/test/builtins/gen/acos/dfc915.wgsl.expected.glsl
+++ b/test/builtins/gen/acos/dfc915.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void acos_dfc915() {
   vec2 res = acos(vec2(0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void acos_dfc915() {
   vec2 res = acos(vec2(0.0f, 0.0f));
diff --git a/test/builtins/gen/all/353d6a.wgsl.expected.glsl b/test/builtins/gen/all/353d6a.wgsl.expected.glsl
index 2f202ff9..1208198 100644
--- a/test/builtins/gen/all/353d6a.wgsl.expected.glsl
+++ b/test/builtins/gen/all/353d6a.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 void all_353d6a() {
   bool res = all(false);
@@ -20,9 +19,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'all' : no matching overloaded function found 
-ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp bool'
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'all' : no matching overloaded function found 
+ERROR: 0:4: '=' :  cannot convert from ' const float' to ' temp bool'
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
@@ -51,7 +50,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 void all_353d6a() {
   bool res = all(false);
@@ -67,9 +65,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'all' : no matching overloaded function found 
-ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp bool'
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'all' : no matching overloaded function found 
+ERROR: 0:4: '=' :  cannot convert from ' const float' to ' temp bool'
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/all/986c7b.wgsl.expected.glsl b/test/builtins/gen/all/986c7b.wgsl.expected.glsl
index b4083b8..8050f80 100644
--- a/test/builtins/gen/all/986c7b.wgsl.expected.glsl
+++ b/test/builtins/gen/all/986c7b.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void all_986c7b() {
   bool res = all(bvec4(false, false, false, false));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void all_986c7b() {
   bool res = all(bvec4(false, false, false, false));
diff --git a/test/builtins/gen/all/bd2dba.wgsl.expected.glsl b/test/builtins/gen/all/bd2dba.wgsl.expected.glsl
index 65cdde6..949aad1 100644
--- a/test/builtins/gen/all/bd2dba.wgsl.expected.glsl
+++ b/test/builtins/gen/all/bd2dba.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void all_bd2dba() {
   bool res = all(bvec3(false, false, false));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void all_bd2dba() {
   bool res = all(bvec3(false, false, false));
diff --git a/test/builtins/gen/all/f46790.wgsl.expected.glsl b/test/builtins/gen/all/f46790.wgsl.expected.glsl
index e664e39..4b5d43b 100644
--- a/test/builtins/gen/all/f46790.wgsl.expected.glsl
+++ b/test/builtins/gen/all/f46790.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void all_f46790() {
   bool res = all(bvec2(false, false));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void all_f46790() {
   bool res = all(bvec2(false, false));
diff --git a/test/builtins/gen/any/083428.wgsl.expected.glsl b/test/builtins/gen/any/083428.wgsl.expected.glsl
index 3cbe6b3..1fdfb19 100644
--- a/test/builtins/gen/any/083428.wgsl.expected.glsl
+++ b/test/builtins/gen/any/083428.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void any_083428() {
   bool res = any(bvec4(false, false, false, false));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void any_083428() {
   bool res = any(bvec4(false, false, false, false));
diff --git a/test/builtins/gen/any/0e3e58.wgsl.expected.glsl b/test/builtins/gen/any/0e3e58.wgsl.expected.glsl
index 8d2b299..90f8f69 100644
--- a/test/builtins/gen/any/0e3e58.wgsl.expected.glsl
+++ b/test/builtins/gen/any/0e3e58.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void any_0e3e58() {
   bool res = any(bvec2(false, false));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void any_0e3e58() {
   bool res = any(bvec2(false, false));
diff --git a/test/builtins/gen/any/2ab91a.wgsl.expected.glsl b/test/builtins/gen/any/2ab91a.wgsl.expected.glsl
index 8fe07e6..eef474e 100644
--- a/test/builtins/gen/any/2ab91a.wgsl.expected.glsl
+++ b/test/builtins/gen/any/2ab91a.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 void any_2ab91a() {
   bool res = any(false);
@@ -20,9 +19,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'any' : no matching overloaded function found 
-ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp bool'
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'any' : no matching overloaded function found 
+ERROR: 0:4: '=' :  cannot convert from ' const float' to ' temp bool'
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
@@ -51,7 +50,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 void any_2ab91a() {
   bool res = any(false);
@@ -67,9 +65,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'any' : no matching overloaded function found 
-ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp bool'
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'any' : no matching overloaded function found 
+ERROR: 0:4: '=' :  cannot convert from ' const float' to ' temp bool'
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/any/e755c1.wgsl.expected.glsl b/test/builtins/gen/any/e755c1.wgsl.expected.glsl
index 1f443e4..b5db335 100644
--- a/test/builtins/gen/any/e755c1.wgsl.expected.glsl
+++ b/test/builtins/gen/any/e755c1.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void any_e755c1() {
   bool res = any(bvec3(false, false, false));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void any_e755c1() {
   bool res = any(bvec3(false, false, false));
diff --git a/test/builtins/gen/arrayLength/1588cd.wgsl.expected.glsl b/test/builtins/gen/arrayLength/1588cd.wgsl.expected.glsl
index 6c55ac3..8c0fe17 100644
--- a/test/builtins/gen/arrayLength/1588cd.wgsl.expected.glsl
+++ b/test/builtins/gen/arrayLength/1588cd.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 layout(binding = 1, std430) buffer SB_RO_1 {
   int arg_0[];
@@ -39,7 +38,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 layout(binding = 1, std430) buffer SB_RO_1 {
   int arg_0[];
diff --git a/test/builtins/gen/arrayLength/61b1c7.wgsl.expected.glsl b/test/builtins/gen/arrayLength/61b1c7.wgsl.expected.glsl
index a5d0229..ad1be03 100644
--- a/test/builtins/gen/arrayLength/61b1c7.wgsl.expected.glsl
+++ b/test/builtins/gen/arrayLength/61b1c7.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 layout(binding = 0, std430) buffer SB_RW_1 {
   int arg_0[];
@@ -39,7 +38,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 layout(binding = 0, std430) buffer SB_RW_1 {
   int arg_0[];
diff --git a/test/builtins/gen/arrayLength/a0f5ca.wgsl.expected.glsl b/test/builtins/gen/arrayLength/a0f5ca.wgsl.expected.glsl
index d0bf4a5..6e4fa86 100644
--- a/test/builtins/gen/arrayLength/a0f5ca.wgsl.expected.glsl
+++ b/test/builtins/gen/arrayLength/a0f5ca.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 layout(binding = 1, std430) buffer SB_RO_1 {
   float arg_0[];
@@ -39,7 +38,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 layout(binding = 1, std430) buffer SB_RO_1 {
   float arg_0[];
diff --git a/test/builtins/gen/arrayLength/cdd123.wgsl.expected.glsl b/test/builtins/gen/arrayLength/cdd123.wgsl.expected.glsl
index 92e73df..a20b9f5 100644
--- a/test/builtins/gen/arrayLength/cdd123.wgsl.expected.glsl
+++ b/test/builtins/gen/arrayLength/cdd123.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 layout(binding = 0, std430) buffer SB_RW_1 {
   float arg_0[];
@@ -39,7 +38,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 layout(binding = 0, std430) buffer SB_RW_1 {
   float arg_0[];
diff --git a/test/builtins/gen/arrayLength/cfca0a.wgsl.expected.glsl b/test/builtins/gen/arrayLength/cfca0a.wgsl.expected.glsl
index 99cab31..d7522aa 100644
--- a/test/builtins/gen/arrayLength/cfca0a.wgsl.expected.glsl
+++ b/test/builtins/gen/arrayLength/cfca0a.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 layout(binding = 1, std430) buffer SB_RO_1 {
   uint arg_0[];
@@ -39,7 +38,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 layout(binding = 1, std430) buffer SB_RO_1 {
   uint arg_0[];
diff --git a/test/builtins/gen/arrayLength/eb510f.wgsl.expected.glsl b/test/builtins/gen/arrayLength/eb510f.wgsl.expected.glsl
index 52cd14e..765e645 100644
--- a/test/builtins/gen/arrayLength/eb510f.wgsl.expected.glsl
+++ b/test/builtins/gen/arrayLength/eb510f.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 layout(binding = 0, std430) buffer SB_RW_1 {
   uint arg_0[];
@@ -39,7 +38,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 layout(binding = 0, std430) buffer SB_RW_1 {
   uint arg_0[];
diff --git a/test/builtins/gen/asin/064953.wgsl.expected.glsl b/test/builtins/gen/asin/064953.wgsl.expected.glsl
index c4e492a..ccb4a56 100644
--- a/test/builtins/gen/asin/064953.wgsl.expected.glsl
+++ b/test/builtins/gen/asin/064953.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void asin_064953() {
   vec4 res = asin(vec4(0.0f, 0.0f, 0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void asin_064953() {
   vec4 res = asin(vec4(0.0f, 0.0f, 0.0f, 0.0f));
diff --git a/test/builtins/gen/asin/7b6a44.wgsl.expected.glsl b/test/builtins/gen/asin/7b6a44.wgsl.expected.glsl
index a92e9b0..7f959c0 100644
--- a/test/builtins/gen/asin/7b6a44.wgsl.expected.glsl
+++ b/test/builtins/gen/asin/7b6a44.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void asin_7b6a44() {
   vec2 res = asin(vec2(0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void asin_7b6a44() {
   vec2 res = asin(vec2(0.0f, 0.0f));
diff --git a/test/builtins/gen/asin/8cd9c9.wgsl.expected.glsl b/test/builtins/gen/asin/8cd9c9.wgsl.expected.glsl
index a53d17c..a394773 100644
--- a/test/builtins/gen/asin/8cd9c9.wgsl.expected.glsl
+++ b/test/builtins/gen/asin/8cd9c9.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void asin_8cd9c9() {
   vec3 res = asin(vec3(0.0f, 0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void asin_8cd9c9() {
   vec3 res = asin(vec3(0.0f, 0.0f, 0.0f));
diff --git a/test/builtins/gen/asin/c0c272.wgsl.expected.glsl b/test/builtins/gen/asin/c0c272.wgsl.expected.glsl
index 1b61048..e11008a 100644
--- a/test/builtins/gen/asin/c0c272.wgsl.expected.glsl
+++ b/test/builtins/gen/asin/c0c272.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void asin_c0c272() {
   float res = asin(1.0f);
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void asin_c0c272() {
   float res = asin(1.0f);
diff --git a/test/builtins/gen/atan/02979a.wgsl.expected.glsl b/test/builtins/gen/atan/02979a.wgsl.expected.glsl
index 350248a..56f8c99 100644
--- a/test/builtins/gen/atan/02979a.wgsl.expected.glsl
+++ b/test/builtins/gen/atan/02979a.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void atan_02979a() {
   float res = atan(1.0f);
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void atan_02979a() {
   float res = atan(1.0f);
diff --git a/test/builtins/gen/atan/331e6d.wgsl.expected.glsl b/test/builtins/gen/atan/331e6d.wgsl.expected.glsl
index 6aae2b6..202896e 100644
--- a/test/builtins/gen/atan/331e6d.wgsl.expected.glsl
+++ b/test/builtins/gen/atan/331e6d.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void atan_331e6d() {
   vec3 res = atan(vec3(0.0f, 0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void atan_331e6d() {
   vec3 res = atan(vec3(0.0f, 0.0f, 0.0f));
diff --git a/test/builtins/gen/atan/a8b696.wgsl.expected.glsl b/test/builtins/gen/atan/a8b696.wgsl.expected.glsl
index 6cadae4..f3be369 100644
--- a/test/builtins/gen/atan/a8b696.wgsl.expected.glsl
+++ b/test/builtins/gen/atan/a8b696.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void atan_a8b696() {
   vec4 res = atan(vec4(0.0f, 0.0f, 0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void atan_a8b696() {
   vec4 res = atan(vec4(0.0f, 0.0f, 0.0f, 0.0f));
diff --git a/test/builtins/gen/atan/ad96e4.wgsl.expected.glsl b/test/builtins/gen/atan/ad96e4.wgsl.expected.glsl
index f4a5686..c1bd895 100644
--- a/test/builtins/gen/atan/ad96e4.wgsl.expected.glsl
+++ b/test/builtins/gen/atan/ad96e4.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void atan_ad96e4() {
   vec2 res = atan(vec2(0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void atan_ad96e4() {
   vec2 res = atan(vec2(0.0f, 0.0f));
diff --git a/test/builtins/gen/atan2/57fb13.wgsl.expected.glsl b/test/builtins/gen/atan2/57fb13.wgsl.expected.glsl
index 5846e6f..3b86f39 100644
--- a/test/builtins/gen/atan2/57fb13.wgsl.expected.glsl
+++ b/test/builtins/gen/atan2/57fb13.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void atan2_57fb13() {
   vec2 res = atan(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void atan2_57fb13() {
   vec2 res = atan(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
diff --git a/test/builtins/gen/atan2/96057c.wgsl.expected.glsl b/test/builtins/gen/atan2/96057c.wgsl.expected.glsl
index 0bfac0c..c0c4d40 100644
--- a/test/builtins/gen/atan2/96057c.wgsl.expected.glsl
+++ b/test/builtins/gen/atan2/96057c.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void atan2_96057c() {
   float res = atan(1.0f, 1.0f);
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void atan2_96057c() {
   float res = atan(1.0f, 1.0f);
diff --git a/test/builtins/gen/atan2/a70d0d.wgsl.expected.glsl b/test/builtins/gen/atan2/a70d0d.wgsl.expected.glsl
index 6a9fa45..195cf45 100644
--- a/test/builtins/gen/atan2/a70d0d.wgsl.expected.glsl
+++ b/test/builtins/gen/atan2/a70d0d.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void atan2_a70d0d() {
   vec3 res = atan(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void atan2_a70d0d() {
   vec3 res = atan(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
diff --git a/test/builtins/gen/atan2/ae713e.wgsl.expected.glsl b/test/builtins/gen/atan2/ae713e.wgsl.expected.glsl
index 1f50d8b..38e3578 100644
--- a/test/builtins/gen/atan2/ae713e.wgsl.expected.glsl
+++ b/test/builtins/gen/atan2/ae713e.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void atan2_ae713e() {
   vec4 res = atan(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void atan2_ae713e() {
   vec4 res = atan(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
diff --git a/test/builtins/gen/atomicAdd/794055.wgsl.expected.glsl b/test/builtins/gen/atomicAdd/794055.wgsl.expected.glsl
index bb7797f..9aa5fd0 100644
--- a/test/builtins/gen/atomicAdd/794055.wgsl.expected.glsl
+++ b/test/builtins/gen/atomicAdd/794055.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 shared int arg_0;
 void atomicAdd_794055() {
diff --git a/test/builtins/gen/atomicAdd/8a199a.wgsl.expected.glsl b/test/builtins/gen/atomicAdd/8a199a.wgsl.expected.glsl
index 7cfbf78..c2e7cdb 100644
--- a/test/builtins/gen/atomicAdd/8a199a.wgsl.expected.glsl
+++ b/test/builtins/gen/atomicAdd/8a199a.wgsl.expected.glsl
@@ -21,7 +21,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 struct SB_RW {
   uint arg_0;
diff --git a/test/builtins/gen/atomicAdd/d32fe4.wgsl.expected.glsl b/test/builtins/gen/atomicAdd/d32fe4.wgsl.expected.glsl
index 1e1c730..a9a2c73 100644
--- a/test/builtins/gen/atomicAdd/d32fe4.wgsl.expected.glsl
+++ b/test/builtins/gen/atomicAdd/d32fe4.wgsl.expected.glsl
@@ -21,7 +21,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 struct SB_RW {
   int arg_0;
diff --git a/test/builtins/gen/atomicAdd/d5db1d.wgsl.expected.glsl b/test/builtins/gen/atomicAdd/d5db1d.wgsl.expected.glsl
index 2bc498d..58c0191 100644
--- a/test/builtins/gen/atomicAdd/d5db1d.wgsl.expected.glsl
+++ b/test/builtins/gen/atomicAdd/d5db1d.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 shared uint arg_0;
 void atomicAdd_d5db1d() {
diff --git a/test/builtins/gen/atomicAnd/152966.wgsl.expected.glsl b/test/builtins/gen/atomicAnd/152966.wgsl.expected.glsl
index 9f34abb..0815478 100644
--- a/test/builtins/gen/atomicAnd/152966.wgsl.expected.glsl
+++ b/test/builtins/gen/atomicAnd/152966.wgsl.expected.glsl
@@ -21,7 +21,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 struct SB_RW {
   int arg_0;
diff --git a/test/builtins/gen/atomicAnd/34edd3.wgsl.expected.glsl b/test/builtins/gen/atomicAnd/34edd3.wgsl.expected.glsl
index 39cca89..3052d85 100644
--- a/test/builtins/gen/atomicAnd/34edd3.wgsl.expected.glsl
+++ b/test/builtins/gen/atomicAnd/34edd3.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 shared uint arg_0;
 void atomicAnd_34edd3() {
diff --git a/test/builtins/gen/atomicAnd/45a819.wgsl.expected.glsl b/test/builtins/gen/atomicAnd/45a819.wgsl.expected.glsl
index 4acc0f3..1d8d880 100644
--- a/test/builtins/gen/atomicAnd/45a819.wgsl.expected.glsl
+++ b/test/builtins/gen/atomicAnd/45a819.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 shared int arg_0;
 void atomicAnd_45a819() {
diff --git a/test/builtins/gen/atomicAnd/85a8d9.wgsl.expected.glsl b/test/builtins/gen/atomicAnd/85a8d9.wgsl.expected.glsl
index fd1e8e9..3363b8b 100644
--- a/test/builtins/gen/atomicAnd/85a8d9.wgsl.expected.glsl
+++ b/test/builtins/gen/atomicAnd/85a8d9.wgsl.expected.glsl
@@ -21,7 +21,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 struct SB_RW {
   uint arg_0;
diff --git a/test/builtins/gen/atomicCompareExchangeWeak/12871c.wgsl.expected.glsl b/test/builtins/gen/atomicCompareExchangeWeak/12871c.wgsl.expected.glsl
index fe25e03..22d032e 100644
--- a/test/builtins/gen/atomicCompareExchangeWeak/12871c.wgsl.expected.glsl
+++ b/test/builtins/gen/atomicCompareExchangeWeak/12871c.wgsl.expected.glsl
@@ -29,7 +29,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 ivec2 tint_atomicCompareExchangeWeak(inout int param_0, int param_1, int param_2) {
   ivec2 result;
diff --git a/test/builtins/gen/atomicCompareExchangeWeak/6673da.wgsl.expected.glsl b/test/builtins/gen/atomicCompareExchangeWeak/6673da.wgsl.expected.glsl
index c7fbeab..abfdbf5 100644
--- a/test/builtins/gen/atomicCompareExchangeWeak/6673da.wgsl.expected.glsl
+++ b/test/builtins/gen/atomicCompareExchangeWeak/6673da.wgsl.expected.glsl
@@ -29,7 +29,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uvec2 tint_atomicCompareExchangeWeak(inout uint param_0, uint param_1, uint param_2) {
   uvec2 result;
diff --git a/test/builtins/gen/atomicCompareExchangeWeak/89ea3b.wgsl.expected.glsl b/test/builtins/gen/atomicCompareExchangeWeak/89ea3b.wgsl.expected.glsl
index 7794290..7cc71a3 100644
--- a/test/builtins/gen/atomicCompareExchangeWeak/89ea3b.wgsl.expected.glsl
+++ b/test/builtins/gen/atomicCompareExchangeWeak/89ea3b.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 ivec2 tint_atomicCompareExchangeWeak(inout int param_0, int param_1, int param_2) {
   ivec2 result;
diff --git a/test/builtins/gen/atomicCompareExchangeWeak/b2ab2c.wgsl.expected.glsl b/test/builtins/gen/atomicCompareExchangeWeak/b2ab2c.wgsl.expected.glsl
index 8eee628..56826d4 100644
--- a/test/builtins/gen/atomicCompareExchangeWeak/b2ab2c.wgsl.expected.glsl
+++ b/test/builtins/gen/atomicCompareExchangeWeak/b2ab2c.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uvec2 tint_atomicCompareExchangeWeak(inout uint param_0, uint param_1, uint param_2) {
   uvec2 result;
diff --git a/test/builtins/gen/atomicExchange/0a5dca.wgsl.expected.glsl b/test/builtins/gen/atomicExchange/0a5dca.wgsl.expected.glsl
index 3547265..9bbbe05 100644
--- a/test/builtins/gen/atomicExchange/0a5dca.wgsl.expected.glsl
+++ b/test/builtins/gen/atomicExchange/0a5dca.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 shared uint arg_0;
 void atomicExchange_0a5dca() {
diff --git a/test/builtins/gen/atomicExchange/d59712.wgsl.expected.glsl b/test/builtins/gen/atomicExchange/d59712.wgsl.expected.glsl
index 081d2a5..03b9891 100644
--- a/test/builtins/gen/atomicExchange/d59712.wgsl.expected.glsl
+++ b/test/builtins/gen/atomicExchange/d59712.wgsl.expected.glsl
@@ -21,7 +21,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 struct SB_RW {
   uint arg_0;
diff --git a/test/builtins/gen/atomicExchange/e114ba.wgsl.expected.glsl b/test/builtins/gen/atomicExchange/e114ba.wgsl.expected.glsl
index 5a98189..29b214e 100644
--- a/test/builtins/gen/atomicExchange/e114ba.wgsl.expected.glsl
+++ b/test/builtins/gen/atomicExchange/e114ba.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 shared int arg_0;
 void atomicExchange_e114ba() {
diff --git a/test/builtins/gen/atomicExchange/f2e22f.wgsl.expected.glsl b/test/builtins/gen/atomicExchange/f2e22f.wgsl.expected.glsl
index 270c305..d1f33c7 100644
--- a/test/builtins/gen/atomicExchange/f2e22f.wgsl.expected.glsl
+++ b/test/builtins/gen/atomicExchange/f2e22f.wgsl.expected.glsl
@@ -21,7 +21,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 struct SB_RW {
   int arg_0;
diff --git a/test/builtins/gen/atomicLoad/0806ad.wgsl.expected.glsl b/test/builtins/gen/atomicLoad/0806ad.wgsl.expected.glsl
index 0306ab2..38a8c92 100644
--- a/test/builtins/gen/atomicLoad/0806ad.wgsl.expected.glsl
+++ b/test/builtins/gen/atomicLoad/0806ad.wgsl.expected.glsl
@@ -21,7 +21,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 struct SB_RW {
   int arg_0;
diff --git a/test/builtins/gen/atomicLoad/361bf1.wgsl.expected.glsl b/test/builtins/gen/atomicLoad/361bf1.wgsl.expected.glsl
index 3a11a14..f56f5a7 100644
--- a/test/builtins/gen/atomicLoad/361bf1.wgsl.expected.glsl
+++ b/test/builtins/gen/atomicLoad/361bf1.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 shared uint arg_0;
 void atomicLoad_361bf1() {
diff --git a/test/builtins/gen/atomicLoad/afcc03.wgsl.expected.glsl b/test/builtins/gen/atomicLoad/afcc03.wgsl.expected.glsl
index 7bd9bb4..a290c99 100644
--- a/test/builtins/gen/atomicLoad/afcc03.wgsl.expected.glsl
+++ b/test/builtins/gen/atomicLoad/afcc03.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 shared int arg_0;
 void atomicLoad_afcc03() {
diff --git a/test/builtins/gen/atomicLoad/fe6cc3.wgsl.expected.glsl b/test/builtins/gen/atomicLoad/fe6cc3.wgsl.expected.glsl
index 07ac3ee..b4bd0d8 100644
--- a/test/builtins/gen/atomicLoad/fe6cc3.wgsl.expected.glsl
+++ b/test/builtins/gen/atomicLoad/fe6cc3.wgsl.expected.glsl
@@ -21,7 +21,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 struct SB_RW {
   uint arg_0;
diff --git a/test/builtins/gen/atomicMax/51b9be.wgsl.expected.glsl b/test/builtins/gen/atomicMax/51b9be.wgsl.expected.glsl
index f726e34..98f34a9 100644
--- a/test/builtins/gen/atomicMax/51b9be.wgsl.expected.glsl
+++ b/test/builtins/gen/atomicMax/51b9be.wgsl.expected.glsl
@@ -21,7 +21,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 struct SB_RW {
   uint arg_0;
diff --git a/test/builtins/gen/atomicMax/92aa72.wgsl.expected.glsl b/test/builtins/gen/atomicMax/92aa72.wgsl.expected.glsl
index 1ffdba3..9f6d085 100644
--- a/test/builtins/gen/atomicMax/92aa72.wgsl.expected.glsl
+++ b/test/builtins/gen/atomicMax/92aa72.wgsl.expected.glsl
@@ -21,7 +21,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 struct SB_RW {
   int arg_0;
diff --git a/test/builtins/gen/atomicMax/a89cc3.wgsl.expected.glsl b/test/builtins/gen/atomicMax/a89cc3.wgsl.expected.glsl
index 215658c..51e9eac 100644
--- a/test/builtins/gen/atomicMax/a89cc3.wgsl.expected.glsl
+++ b/test/builtins/gen/atomicMax/a89cc3.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 shared int arg_0;
 void atomicMax_a89cc3() {
diff --git a/test/builtins/gen/atomicMax/beccfc.wgsl.expected.glsl b/test/builtins/gen/atomicMax/beccfc.wgsl.expected.glsl
index 6725271..c307f41 100644
--- a/test/builtins/gen/atomicMax/beccfc.wgsl.expected.glsl
+++ b/test/builtins/gen/atomicMax/beccfc.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 shared uint arg_0;
 void atomicMax_beccfc() {
diff --git a/test/builtins/gen/atomicMin/278235.wgsl.expected.glsl b/test/builtins/gen/atomicMin/278235.wgsl.expected.glsl
index b162c5a..e899058 100644
--- a/test/builtins/gen/atomicMin/278235.wgsl.expected.glsl
+++ b/test/builtins/gen/atomicMin/278235.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 shared int arg_0;
 void atomicMin_278235() {
diff --git a/test/builtins/gen/atomicMin/69d383.wgsl.expected.glsl b/test/builtins/gen/atomicMin/69d383.wgsl.expected.glsl
index ae3960b..bdb3b62 100644
--- a/test/builtins/gen/atomicMin/69d383.wgsl.expected.glsl
+++ b/test/builtins/gen/atomicMin/69d383.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 shared uint arg_0;
 void atomicMin_69d383() {
diff --git a/test/builtins/gen/atomicMin/8e38dc.wgsl.expected.glsl b/test/builtins/gen/atomicMin/8e38dc.wgsl.expected.glsl
index d408681..e2d3c72 100644
--- a/test/builtins/gen/atomicMin/8e38dc.wgsl.expected.glsl
+++ b/test/builtins/gen/atomicMin/8e38dc.wgsl.expected.glsl
@@ -21,7 +21,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 struct SB_RW {
   int arg_0;
diff --git a/test/builtins/gen/atomicMin/c67a74.wgsl.expected.glsl b/test/builtins/gen/atomicMin/c67a74.wgsl.expected.glsl
index 4def8e7..6e3098e 100644
--- a/test/builtins/gen/atomicMin/c67a74.wgsl.expected.glsl
+++ b/test/builtins/gen/atomicMin/c67a74.wgsl.expected.glsl
@@ -21,7 +21,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 struct SB_RW {
   uint arg_0;
diff --git a/test/builtins/gen/atomicOr/5e3d61.wgsl.expected.glsl b/test/builtins/gen/atomicOr/5e3d61.wgsl.expected.glsl
index 57d9728..aa4f061 100644
--- a/test/builtins/gen/atomicOr/5e3d61.wgsl.expected.glsl
+++ b/test/builtins/gen/atomicOr/5e3d61.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 shared uint arg_0;
 void atomicOr_5e3d61() {
diff --git a/test/builtins/gen/atomicOr/5e95d4.wgsl.expected.glsl b/test/builtins/gen/atomicOr/5e95d4.wgsl.expected.glsl
index 01985c1..4ee4dea 100644
--- a/test/builtins/gen/atomicOr/5e95d4.wgsl.expected.glsl
+++ b/test/builtins/gen/atomicOr/5e95d4.wgsl.expected.glsl
@@ -21,7 +21,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 struct SB_RW {
   uint arg_0;
diff --git a/test/builtins/gen/atomicOr/8d96a0.wgsl.expected.glsl b/test/builtins/gen/atomicOr/8d96a0.wgsl.expected.glsl
index 3838592..d5d42c4 100644
--- a/test/builtins/gen/atomicOr/8d96a0.wgsl.expected.glsl
+++ b/test/builtins/gen/atomicOr/8d96a0.wgsl.expected.glsl
@@ -21,7 +21,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 struct SB_RW {
   int arg_0;
diff --git a/test/builtins/gen/atomicOr/d09248.wgsl.expected.glsl b/test/builtins/gen/atomicOr/d09248.wgsl.expected.glsl
index 79171ef..bb03f7c 100644
--- a/test/builtins/gen/atomicOr/d09248.wgsl.expected.glsl
+++ b/test/builtins/gen/atomicOr/d09248.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 shared int arg_0;
 void atomicOr_d09248() {
diff --git a/test/builtins/gen/atomicStore/726882.wgsl.expected.glsl b/test/builtins/gen/atomicStore/726882.wgsl.expected.glsl
index 3d30417..9519ceb 100644
--- a/test/builtins/gen/atomicStore/726882.wgsl.expected.glsl
+++ b/test/builtins/gen/atomicStore/726882.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 shared uint arg_0;
 void atomicStore_726882() {
diff --git a/test/builtins/gen/atomicStore/8bea94.wgsl.expected.glsl b/test/builtins/gen/atomicStore/8bea94.wgsl.expected.glsl
index d152765..b46dbfc 100644
--- a/test/builtins/gen/atomicStore/8bea94.wgsl.expected.glsl
+++ b/test/builtins/gen/atomicStore/8bea94.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 shared int arg_0;
 void atomicStore_8bea94() {
diff --git a/test/builtins/gen/atomicStore/cdc29e.wgsl.expected.glsl b/test/builtins/gen/atomicStore/cdc29e.wgsl.expected.glsl
index 970c11b..7d8d0f5 100644
--- a/test/builtins/gen/atomicStore/cdc29e.wgsl.expected.glsl
+++ b/test/builtins/gen/atomicStore/cdc29e.wgsl.expected.glsl
@@ -21,7 +21,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 struct SB_RW {
   uint arg_0;
diff --git a/test/builtins/gen/atomicStore/d1e9a6.wgsl.expected.glsl b/test/builtins/gen/atomicStore/d1e9a6.wgsl.expected.glsl
index a5d2959..1281880 100644
--- a/test/builtins/gen/atomicStore/d1e9a6.wgsl.expected.glsl
+++ b/test/builtins/gen/atomicStore/d1e9a6.wgsl.expected.glsl
@@ -21,7 +21,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 struct SB_RW {
   int arg_0;
diff --git a/test/builtins/gen/atomicSub/051100.wgsl.expected.glsl b/test/builtins/gen/atomicSub/051100.wgsl.expected.glsl
index 62a7e3a..07573d2 100644
--- a/test/builtins/gen/atomicSub/051100.wgsl.expected.glsl
+++ b/test/builtins/gen/atomicSub/051100.wgsl.expected.glsl
@@ -21,7 +21,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 struct SB_RW {
   int arg_0;
diff --git a/test/builtins/gen/atomicSub/0d26c2.wgsl.expected.glsl b/test/builtins/gen/atomicSub/0d26c2.wgsl.expected.glsl
index e2f878a..b03de77 100644
--- a/test/builtins/gen/atomicSub/0d26c2.wgsl.expected.glsl
+++ b/test/builtins/gen/atomicSub/0d26c2.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 shared uint arg_0;
 void atomicSub_0d26c2() {
diff --git a/test/builtins/gen/atomicSub/15bfc9.wgsl.expected.glsl b/test/builtins/gen/atomicSub/15bfc9.wgsl.expected.glsl
index 739d9c9..24aa578 100644
--- a/test/builtins/gen/atomicSub/15bfc9.wgsl.expected.glsl
+++ b/test/builtins/gen/atomicSub/15bfc9.wgsl.expected.glsl
@@ -21,7 +21,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 struct SB_RW {
   uint arg_0;
diff --git a/test/builtins/gen/atomicSub/77883a.wgsl.expected.glsl b/test/builtins/gen/atomicSub/77883a.wgsl.expected.glsl
index f47901f..27910ac 100644
--- a/test/builtins/gen/atomicSub/77883a.wgsl.expected.glsl
+++ b/test/builtins/gen/atomicSub/77883a.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 shared int arg_0;
 void atomicSub_77883a() {
diff --git a/test/builtins/gen/atomicXor/54510e.wgsl.expected.glsl b/test/builtins/gen/atomicXor/54510e.wgsl.expected.glsl
index 5427999..e04552e 100644
--- a/test/builtins/gen/atomicXor/54510e.wgsl.expected.glsl
+++ b/test/builtins/gen/atomicXor/54510e.wgsl.expected.glsl
@@ -21,7 +21,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 struct SB_RW {
   uint arg_0;
diff --git a/test/builtins/gen/atomicXor/75dc95.wgsl.expected.glsl b/test/builtins/gen/atomicXor/75dc95.wgsl.expected.glsl
index f39ea9e..5c4e204 100644
--- a/test/builtins/gen/atomicXor/75dc95.wgsl.expected.glsl
+++ b/test/builtins/gen/atomicXor/75dc95.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 shared int arg_0;
 void atomicXor_75dc95() {
diff --git a/test/builtins/gen/atomicXor/c1b78c.wgsl.expected.glsl b/test/builtins/gen/atomicXor/c1b78c.wgsl.expected.glsl
index 8e45daa..0ebd9e7 100644
--- a/test/builtins/gen/atomicXor/c1b78c.wgsl.expected.glsl
+++ b/test/builtins/gen/atomicXor/c1b78c.wgsl.expected.glsl
@@ -21,7 +21,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 struct SB_RW {
   int arg_0;
diff --git a/test/builtins/gen/atomicXor/c8e6be.wgsl.expected.glsl b/test/builtins/gen/atomicXor/c8e6be.wgsl.expected.glsl
index ef63814..dd44734 100644
--- a/test/builtins/gen/atomicXor/c8e6be.wgsl.expected.glsl
+++ b/test/builtins/gen/atomicXor/c8e6be.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 shared uint arg_0;
 void atomicXor_c8e6be() {
diff --git a/test/builtins/gen/ceil/34064b.wgsl.expected.glsl b/test/builtins/gen/ceil/34064b.wgsl.expected.glsl
index 4e1806e..6b43925 100644
--- a/test/builtins/gen/ceil/34064b.wgsl.expected.glsl
+++ b/test/builtins/gen/ceil/34064b.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void ceil_34064b() {
   vec3 res = ceil(vec3(0.0f, 0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void ceil_34064b() {
   vec3 res = ceil(vec3(0.0f, 0.0f, 0.0f));
diff --git a/test/builtins/gen/ceil/678655.wgsl.expected.glsl b/test/builtins/gen/ceil/678655.wgsl.expected.glsl
index e66c6ea..77257fc 100644
--- a/test/builtins/gen/ceil/678655.wgsl.expected.glsl
+++ b/test/builtins/gen/ceil/678655.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void ceil_678655() {
   float res = ceil(1.0f);
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void ceil_678655() {
   float res = ceil(1.0f);
diff --git a/test/builtins/gen/ceil/96f597.wgsl.expected.glsl b/test/builtins/gen/ceil/96f597.wgsl.expected.glsl
index 5ca7044..2436713 100644
--- a/test/builtins/gen/ceil/96f597.wgsl.expected.glsl
+++ b/test/builtins/gen/ceil/96f597.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void ceil_96f597() {
   vec2 res = ceil(vec2(0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void ceil_96f597() {
   vec2 res = ceil(vec2(0.0f, 0.0f));
diff --git a/test/builtins/gen/ceil/b74c16.wgsl.expected.glsl b/test/builtins/gen/ceil/b74c16.wgsl.expected.glsl
index b020c55..03155fe 100644
--- a/test/builtins/gen/ceil/b74c16.wgsl.expected.glsl
+++ b/test/builtins/gen/ceil/b74c16.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void ceil_b74c16() {
   vec4 res = ceil(vec4(0.0f, 0.0f, 0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void ceil_b74c16() {
   vec4 res = ceil(vec4(0.0f, 0.0f, 0.0f, 0.0f));
diff --git a/test/builtins/gen/clamp/0acf8f.wgsl.expected.glsl b/test/builtins/gen/clamp/0acf8f.wgsl.expected.glsl
index 8c38d2a..b7e9129 100644
--- a/test/builtins/gen/clamp/0acf8f.wgsl.expected.glsl
+++ b/test/builtins/gen/clamp/0acf8f.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void clamp_0acf8f() {
   vec2 res = clamp(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void clamp_0acf8f() {
   vec2 res = clamp(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
diff --git a/test/builtins/gen/clamp/1a32e3.wgsl.expected.glsl b/test/builtins/gen/clamp/1a32e3.wgsl.expected.glsl
index 5f87b77..e85508d 100644
--- a/test/builtins/gen/clamp/1a32e3.wgsl.expected.glsl
+++ b/test/builtins/gen/clamp/1a32e3.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void clamp_1a32e3() {
   ivec4 res = clamp(ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void clamp_1a32e3() {
   ivec4 res = clamp(ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0));
diff --git a/test/builtins/gen/clamp/2bd567.wgsl.expected.glsl b/test/builtins/gen/clamp/2bd567.wgsl.expected.glsl
index 59947a6..f53caf7 100644
--- a/test/builtins/gen/clamp/2bd567.wgsl.expected.glsl
+++ b/test/builtins/gen/clamp/2bd567.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void clamp_2bd567() {
   float res = clamp(1.0f, 1.0f, 1.0f);
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void clamp_2bd567() {
   float res = clamp(1.0f, 1.0f, 1.0f);
diff --git a/test/builtins/gen/clamp/2bde41.wgsl.expected.glsl b/test/builtins/gen/clamp/2bde41.wgsl.expected.glsl
index 2739432..6aaf023 100644
--- a/test/builtins/gen/clamp/2bde41.wgsl.expected.glsl
+++ b/test/builtins/gen/clamp/2bde41.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void clamp_2bde41() {
   vec4 res = clamp(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void clamp_2bde41() {
   vec4 res = clamp(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
diff --git a/test/builtins/gen/clamp/548fc7.wgsl.expected.glsl b/test/builtins/gen/clamp/548fc7.wgsl.expected.glsl
index 4986e45..b088b18 100644
--- a/test/builtins/gen/clamp/548fc7.wgsl.expected.glsl
+++ b/test/builtins/gen/clamp/548fc7.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void clamp_548fc7() {
   uvec3 res = clamp(uvec3(0u, 0u, 0u), uvec3(0u, 0u, 0u), uvec3(0u, 0u, 0u));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void clamp_548fc7() {
   uvec3 res = clamp(uvec3(0u, 0u, 0u), uvec3(0u, 0u, 0u), uvec3(0u, 0u, 0u));
diff --git a/test/builtins/gen/clamp/5f0819.wgsl.expected.glsl b/test/builtins/gen/clamp/5f0819.wgsl.expected.glsl
index 1068aeb..d3ac5ba 100644
--- a/test/builtins/gen/clamp/5f0819.wgsl.expected.glsl
+++ b/test/builtins/gen/clamp/5f0819.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void clamp_5f0819() {
   ivec3 res = clamp(ivec3(0, 0, 0), ivec3(0, 0, 0), ivec3(0, 0, 0));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void clamp_5f0819() {
   ivec3 res = clamp(ivec3(0, 0, 0), ivec3(0, 0, 0), ivec3(0, 0, 0));
diff --git a/test/builtins/gen/clamp/6c1749.wgsl.expected.glsl b/test/builtins/gen/clamp/6c1749.wgsl.expected.glsl
index 2f4bb90..bd1c35c 100644
--- a/test/builtins/gen/clamp/6c1749.wgsl.expected.glsl
+++ b/test/builtins/gen/clamp/6c1749.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void clamp_6c1749() {
   ivec2 res = clamp(ivec2(0, 0), ivec2(0, 0), ivec2(0, 0));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void clamp_6c1749() {
   ivec2 res = clamp(ivec2(0, 0), ivec2(0, 0), ivec2(0, 0));
diff --git a/test/builtins/gen/clamp/7706d7.wgsl.expected.glsl b/test/builtins/gen/clamp/7706d7.wgsl.expected.glsl
index 1786de2..65b4af4 100644
--- a/test/builtins/gen/clamp/7706d7.wgsl.expected.glsl
+++ b/test/builtins/gen/clamp/7706d7.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void clamp_7706d7() {
   uvec2 res = clamp(uvec2(0u, 0u), uvec2(0u, 0u), uvec2(0u, 0u));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void clamp_7706d7() {
   uvec2 res = clamp(uvec2(0u, 0u), uvec2(0u, 0u), uvec2(0u, 0u));
diff --git a/test/builtins/gen/clamp/867397.wgsl.expected.glsl b/test/builtins/gen/clamp/867397.wgsl.expected.glsl
index 722a50b..f7cf62a 100644
--- a/test/builtins/gen/clamp/867397.wgsl.expected.glsl
+++ b/test/builtins/gen/clamp/867397.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void clamp_867397() {
   vec3 res = clamp(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void clamp_867397() {
   vec3 res = clamp(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
diff --git a/test/builtins/gen/clamp/a2de25.wgsl.expected.glsl b/test/builtins/gen/clamp/a2de25.wgsl.expected.glsl
index 8a62404..77a7a34 100644
--- a/test/builtins/gen/clamp/a2de25.wgsl.expected.glsl
+++ b/test/builtins/gen/clamp/a2de25.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void clamp_a2de25() {
   uint res = clamp(1u, 1u, 1u);
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void clamp_a2de25() {
   uint res = clamp(1u, 1u, 1u);
diff --git a/test/builtins/gen/clamp/b07c65.wgsl.expected.glsl b/test/builtins/gen/clamp/b07c65.wgsl.expected.glsl
index ece23a6..c71e535 100644
--- a/test/builtins/gen/clamp/b07c65.wgsl.expected.glsl
+++ b/test/builtins/gen/clamp/b07c65.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void clamp_b07c65() {
   int res = clamp(1, 1, 1);
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void clamp_b07c65() {
   int res = clamp(1, 1, 1);
diff --git a/test/builtins/gen/clamp/bd43ce.wgsl.expected.glsl b/test/builtins/gen/clamp/bd43ce.wgsl.expected.glsl
index 5206a82..196409e 100644
--- a/test/builtins/gen/clamp/bd43ce.wgsl.expected.glsl
+++ b/test/builtins/gen/clamp/bd43ce.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void clamp_bd43ce() {
   uvec4 res = clamp(uvec4(0u, 0u, 0u, 0u), uvec4(0u, 0u, 0u, 0u), uvec4(0u, 0u, 0u, 0u));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void clamp_bd43ce() {
   uvec4 res = clamp(uvec4(0u, 0u, 0u, 0u), uvec4(0u, 0u, 0u, 0u), uvec4(0u, 0u, 0u, 0u));
diff --git a/test/builtins/gen/cos/16dc15.wgsl.expected.glsl b/test/builtins/gen/cos/16dc15.wgsl.expected.glsl
index 9f3d3d9..e165379 100644
--- a/test/builtins/gen/cos/16dc15.wgsl.expected.glsl
+++ b/test/builtins/gen/cos/16dc15.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void cos_16dc15() {
   vec3 res = cos(vec3(0.0f, 0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void cos_16dc15() {
   vec3 res = cos(vec3(0.0f, 0.0f, 0.0f));
diff --git a/test/builtins/gen/cos/29d66d.wgsl.expected.glsl b/test/builtins/gen/cos/29d66d.wgsl.expected.glsl
index 6a2cdd0..3145690 100644
--- a/test/builtins/gen/cos/29d66d.wgsl.expected.glsl
+++ b/test/builtins/gen/cos/29d66d.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void cos_29d66d() {
   vec4 res = cos(vec4(0.0f, 0.0f, 0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void cos_29d66d() {
   vec4 res = cos(vec4(0.0f, 0.0f, 0.0f, 0.0f));
diff --git a/test/builtins/gen/cos/c3b486.wgsl.expected.glsl b/test/builtins/gen/cos/c3b486.wgsl.expected.glsl
index b1c05c5..e307b9e 100644
--- a/test/builtins/gen/cos/c3b486.wgsl.expected.glsl
+++ b/test/builtins/gen/cos/c3b486.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void cos_c3b486() {
   vec2 res = cos(vec2(0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void cos_c3b486() {
   vec2 res = cos(vec2(0.0f, 0.0f));
diff --git a/test/builtins/gen/cos/c5c28e.wgsl.expected.glsl b/test/builtins/gen/cos/c5c28e.wgsl.expected.glsl
index 5a3dc87..e9ca290 100644
--- a/test/builtins/gen/cos/c5c28e.wgsl.expected.glsl
+++ b/test/builtins/gen/cos/c5c28e.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void cos_c5c28e() {
   float res = cos(1.0f);
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void cos_c5c28e() {
   float res = cos(1.0f);
diff --git a/test/builtins/gen/cosh/377652.wgsl.expected.glsl b/test/builtins/gen/cosh/377652.wgsl.expected.glsl
index 37e79fb..53d2571 100644
--- a/test/builtins/gen/cosh/377652.wgsl.expected.glsl
+++ b/test/builtins/gen/cosh/377652.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void cosh_377652() {
   vec3 res = cosh(vec3(0.0f, 0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void cosh_377652() {
   vec3 res = cosh(vec3(0.0f, 0.0f, 0.0f));
diff --git a/test/builtins/gen/cosh/c13756.wgsl.expected.glsl b/test/builtins/gen/cosh/c13756.wgsl.expected.glsl
index e142266..3fdd98f 100644
--- a/test/builtins/gen/cosh/c13756.wgsl.expected.glsl
+++ b/test/builtins/gen/cosh/c13756.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void cosh_c13756() {
   vec2 res = cosh(vec2(0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void cosh_c13756() {
   vec2 res = cosh(vec2(0.0f, 0.0f));
diff --git a/test/builtins/gen/cosh/da92dd.wgsl.expected.glsl b/test/builtins/gen/cosh/da92dd.wgsl.expected.glsl
index 0e4ce95..1b25909 100644
--- a/test/builtins/gen/cosh/da92dd.wgsl.expected.glsl
+++ b/test/builtins/gen/cosh/da92dd.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void cosh_da92dd() {
   float res = cosh(1.0f);
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void cosh_da92dd() {
   float res = cosh(1.0f);
diff --git a/test/builtins/gen/cosh/e0c1de.wgsl.expected.glsl b/test/builtins/gen/cosh/e0c1de.wgsl.expected.glsl
index 9b4cf6c..48a7c0a 100644
--- a/test/builtins/gen/cosh/e0c1de.wgsl.expected.glsl
+++ b/test/builtins/gen/cosh/e0c1de.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void cosh_e0c1de() {
   vec4 res = cosh(vec4(0.0f, 0.0f, 0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void cosh_e0c1de() {
   vec4 res = cosh(vec4(0.0f, 0.0f, 0.0f, 0.0f));
diff --git a/test/builtins/gen/countOneBits/0d0e46.wgsl.expected.glsl b/test/builtins/gen/countOneBits/0d0e46.wgsl.expected.glsl
index f799d3c..bf9a227 100644
--- a/test/builtins/gen/countOneBits/0d0e46.wgsl.expected.glsl
+++ b/test/builtins/gen/countOneBits/0d0e46.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 void countOneBits_0d0e46() {
   uvec4 res = countbits(uvec4(0u, 0u, 0u, 0u));
@@ -20,9 +19,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'countbits' : no matching overloaded function found 
-ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp 4-component vector of uint'
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'countbits' : no matching overloaded function found 
+ERROR: 0:4: '=' :  cannot convert from ' const float' to ' temp highp 4-component vector of uint'
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
@@ -51,7 +50,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 void countOneBits_0d0e46() {
   uvec4 res = countbits(uvec4(0u, 0u, 0u, 0u));
@@ -67,9 +65,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'countbits' : no matching overloaded function found 
-ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp 4-component vector of uint'
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'countbits' : no matching overloaded function found 
+ERROR: 0:4: '=' :  cannot convert from ' const float' to ' temp highp 4-component vector of uint'
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/countOneBits/0f7980.wgsl.expected.glsl b/test/builtins/gen/countOneBits/0f7980.wgsl.expected.glsl
index 09551c3..d4e690c 100644
--- a/test/builtins/gen/countOneBits/0f7980.wgsl.expected.glsl
+++ b/test/builtins/gen/countOneBits/0f7980.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 void countOneBits_0f7980() {
   ivec4 res = countbits(ivec4(0, 0, 0, 0));
@@ -20,9 +19,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'countbits' : no matching overloaded function found 
-ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp 4-component vector of int'
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'countbits' : no matching overloaded function found 
+ERROR: 0:4: '=' :  cannot convert from ' const float' to ' temp highp 4-component vector of int'
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
@@ -51,7 +50,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 void countOneBits_0f7980() {
   ivec4 res = countbits(ivec4(0, 0, 0, 0));
@@ -67,9 +65,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'countbits' : no matching overloaded function found 
-ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp 4-component vector of int'
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'countbits' : no matching overloaded function found 
+ERROR: 0:4: '=' :  cannot convert from ' const float' to ' temp highp 4-component vector of int'
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/countOneBits/65d2ae.wgsl.expected.glsl b/test/builtins/gen/countOneBits/65d2ae.wgsl.expected.glsl
index 038da22..2f4d946 100644
--- a/test/builtins/gen/countOneBits/65d2ae.wgsl.expected.glsl
+++ b/test/builtins/gen/countOneBits/65d2ae.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 void countOneBits_65d2ae() {
   ivec3 res = countbits(ivec3(0, 0, 0));
@@ -20,9 +19,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'countbits' : no matching overloaded function found 
-ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp 3-component vector of int'
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'countbits' : no matching overloaded function found 
+ERROR: 0:4: '=' :  cannot convert from ' const float' to ' temp highp 3-component vector of int'
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
@@ -51,7 +50,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 void countOneBits_65d2ae() {
   ivec3 res = countbits(ivec3(0, 0, 0));
@@ -67,9 +65,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'countbits' : no matching overloaded function found 
-ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp 3-component vector of int'
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'countbits' : no matching overloaded function found 
+ERROR: 0:4: '=' :  cannot convert from ' const float' to ' temp highp 3-component vector of int'
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/countOneBits/690cfc.wgsl.expected.glsl b/test/builtins/gen/countOneBits/690cfc.wgsl.expected.glsl
index 268f4a8..80fbd03 100644
--- a/test/builtins/gen/countOneBits/690cfc.wgsl.expected.glsl
+++ b/test/builtins/gen/countOneBits/690cfc.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 void countOneBits_690cfc() {
   uvec3 res = countbits(uvec3(0u, 0u, 0u));
@@ -20,9 +19,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'countbits' : no matching overloaded function found 
-ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp 3-component vector of uint'
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'countbits' : no matching overloaded function found 
+ERROR: 0:4: '=' :  cannot convert from ' const float' to ' temp highp 3-component vector of uint'
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
@@ -51,7 +50,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 void countOneBits_690cfc() {
   uvec3 res = countbits(uvec3(0u, 0u, 0u));
@@ -67,9 +65,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'countbits' : no matching overloaded function found 
-ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp 3-component vector of uint'
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'countbits' : no matching overloaded function found 
+ERROR: 0:4: '=' :  cannot convert from ' const float' to ' temp highp 3-component vector of uint'
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/countOneBits/94fd81.wgsl.expected.glsl b/test/builtins/gen/countOneBits/94fd81.wgsl.expected.glsl
index 631db9a..f4d3c55 100644
--- a/test/builtins/gen/countOneBits/94fd81.wgsl.expected.glsl
+++ b/test/builtins/gen/countOneBits/94fd81.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 void countOneBits_94fd81() {
   uvec2 res = countbits(uvec2(0u, 0u));
@@ -20,9 +19,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'countbits' : no matching overloaded function found 
-ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp 2-component vector of uint'
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'countbits' : no matching overloaded function found 
+ERROR: 0:4: '=' :  cannot convert from ' const float' to ' temp highp 2-component vector of uint'
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
@@ -51,7 +50,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 void countOneBits_94fd81() {
   uvec2 res = countbits(uvec2(0u, 0u));
@@ -67,9 +65,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'countbits' : no matching overloaded function found 
-ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp 2-component vector of uint'
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'countbits' : no matching overloaded function found 
+ERROR: 0:4: '=' :  cannot convert from ' const float' to ' temp highp 2-component vector of uint'
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/countOneBits/ae44f9.wgsl.expected.glsl b/test/builtins/gen/countOneBits/ae44f9.wgsl.expected.glsl
index 9286553..6d26ecd 100644
--- a/test/builtins/gen/countOneBits/ae44f9.wgsl.expected.glsl
+++ b/test/builtins/gen/countOneBits/ae44f9.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 void countOneBits_ae44f9() {
   uint res = countbits(1u);
@@ -20,9 +19,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'countbits' : no matching overloaded function found 
-ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp uint'
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'countbits' : no matching overloaded function found 
+ERROR: 0:4: '=' :  cannot convert from ' const float' to ' temp highp uint'
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
@@ -51,7 +50,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 void countOneBits_ae44f9() {
   uint res = countbits(1u);
@@ -67,9 +65,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'countbits' : no matching overloaded function found 
-ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp uint'
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'countbits' : no matching overloaded function found 
+ERROR: 0:4: '=' :  cannot convert from ' const float' to ' temp highp uint'
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/countOneBits/af90e2.wgsl.expected.glsl b/test/builtins/gen/countOneBits/af90e2.wgsl.expected.glsl
index d1907d4..13673ed 100644
--- a/test/builtins/gen/countOneBits/af90e2.wgsl.expected.glsl
+++ b/test/builtins/gen/countOneBits/af90e2.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 void countOneBits_af90e2() {
   ivec2 res = countbits(ivec2(0, 0));
@@ -20,9 +19,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'countbits' : no matching overloaded function found 
-ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp 2-component vector of int'
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'countbits' : no matching overloaded function found 
+ERROR: 0:4: '=' :  cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
@@ -51,7 +50,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 void countOneBits_af90e2() {
   ivec2 res = countbits(ivec2(0, 0));
@@ -67,9 +65,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'countbits' : no matching overloaded function found 
-ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp 2-component vector of int'
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'countbits' : no matching overloaded function found 
+ERROR: 0:4: '=' :  cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/countOneBits/fd88b2.wgsl.expected.glsl b/test/builtins/gen/countOneBits/fd88b2.wgsl.expected.glsl
index b2342c0..22f32fc 100644
--- a/test/builtins/gen/countOneBits/fd88b2.wgsl.expected.glsl
+++ b/test/builtins/gen/countOneBits/fd88b2.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 void countOneBits_fd88b2() {
   int res = countbits(1);
@@ -20,9 +19,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'countbits' : no matching overloaded function found 
-ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp int'
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'countbits' : no matching overloaded function found 
+ERROR: 0:4: '=' :  cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
@@ -51,7 +50,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 void countOneBits_fd88b2() {
   int res = countbits(1);
@@ -67,9 +65,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'countbits' : no matching overloaded function found 
-ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp int'
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'countbits' : no matching overloaded function found 
+ERROR: 0:4: '=' :  cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/cross/041cb0.wgsl.expected.glsl b/test/builtins/gen/cross/041cb0.wgsl.expected.glsl
index cf3ac75..51e5992 100644
--- a/test/builtins/gen/cross/041cb0.wgsl.expected.glsl
+++ b/test/builtins/gen/cross/041cb0.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void cross_041cb0() {
   vec3 res = cross(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void cross_041cb0() {
   vec3 res = cross(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
diff --git a/test/builtins/gen/degrees/0d170c.wgsl.expected.glsl b/test/builtins/gen/degrees/0d170c.wgsl.expected.glsl
index 2f88843..95c40fe 100644
--- a/test/builtins/gen/degrees/0d170c.wgsl.expected.glsl
+++ b/test/builtins/gen/degrees/0d170c.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 vec4 tint_degrees(vec4 param_0) {
   return param_0 * 57.295779513082322865;
@@ -43,7 +42,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 vec4 tint_degrees(vec4 param_0) {
   return param_0 * 57.295779513082322865;
diff --git a/test/builtins/gen/degrees/1ad5df.wgsl.expected.glsl b/test/builtins/gen/degrees/1ad5df.wgsl.expected.glsl
index 6e29dfc..dbb9fc0 100644
--- a/test/builtins/gen/degrees/1ad5df.wgsl.expected.glsl
+++ b/test/builtins/gen/degrees/1ad5df.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 vec2 tint_degrees(vec2 param_0) {
   return param_0 * 57.295779513082322865;
@@ -43,7 +42,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 vec2 tint_degrees(vec2 param_0) {
   return param_0 * 57.295779513082322865;
diff --git a/test/builtins/gen/degrees/2af623.wgsl.expected.glsl b/test/builtins/gen/degrees/2af623.wgsl.expected.glsl
index 2658861..69f79b1 100644
--- a/test/builtins/gen/degrees/2af623.wgsl.expected.glsl
+++ b/test/builtins/gen/degrees/2af623.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 vec3 tint_degrees(vec3 param_0) {
   return param_0 * 57.295779513082322865;
@@ -43,7 +42,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 vec3 tint_degrees(vec3 param_0) {
   return param_0 * 57.295779513082322865;
diff --git a/test/builtins/gen/degrees/51f705.wgsl.expected.glsl b/test/builtins/gen/degrees/51f705.wgsl.expected.glsl
index 373fffb..177129a 100644
--- a/test/builtins/gen/degrees/51f705.wgsl.expected.glsl
+++ b/test/builtins/gen/degrees/51f705.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 float tint_degrees(float param_0) {
   return param_0 * 57.295779513082322865;
@@ -43,7 +42,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 float tint_degrees(float param_0) {
   return param_0 * 57.295779513082322865;
diff --git a/test/builtins/gen/determinant/2b62ba.wgsl.expected.glsl b/test/builtins/gen/determinant/2b62ba.wgsl.expected.glsl
index 4d8147a..eb19607 100644
--- a/test/builtins/gen/determinant/2b62ba.wgsl.expected.glsl
+++ b/test/builtins/gen/determinant/2b62ba.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void determinant_2b62ba() {
   float res = determinant(mat3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void determinant_2b62ba() {
   float res = determinant(mat3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
diff --git a/test/builtins/gen/determinant/a0a87c.wgsl.expected.glsl b/test/builtins/gen/determinant/a0a87c.wgsl.expected.glsl
index f2a5f4e..8d76e1f 100644
--- a/test/builtins/gen/determinant/a0a87c.wgsl.expected.glsl
+++ b/test/builtins/gen/determinant/a0a87c.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void determinant_a0a87c() {
   float res = determinant(mat4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void determinant_a0a87c() {
   float res = determinant(mat4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
diff --git a/test/builtins/gen/determinant/e19305.wgsl.expected.glsl b/test/builtins/gen/determinant/e19305.wgsl.expected.glsl
index 474b179..969352fc 100644
--- a/test/builtins/gen/determinant/e19305.wgsl.expected.glsl
+++ b/test/builtins/gen/determinant/e19305.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void determinant_e19305() {
   float res = determinant(mat2(0.0f, 0.0f, 0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void determinant_e19305() {
   float res = determinant(mat2(0.0f, 0.0f, 0.0f, 0.0f));
diff --git a/test/builtins/gen/distance/0657d4.wgsl.expected.glsl b/test/builtins/gen/distance/0657d4.wgsl.expected.glsl
index d0d4773..387f58e 100644
--- a/test/builtins/gen/distance/0657d4.wgsl.expected.glsl
+++ b/test/builtins/gen/distance/0657d4.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void distance_0657d4() {
   float res = distance(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void distance_0657d4() {
   float res = distance(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
diff --git a/test/builtins/gen/distance/9646ea.wgsl.expected.glsl b/test/builtins/gen/distance/9646ea.wgsl.expected.glsl
index 2b4b8d4..6c4cad2 100644
--- a/test/builtins/gen/distance/9646ea.wgsl.expected.glsl
+++ b/test/builtins/gen/distance/9646ea.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void distance_9646ea() {
   float res = distance(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void distance_9646ea() {
   float res = distance(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
diff --git a/test/builtins/gen/distance/aa4055.wgsl.expected.glsl b/test/builtins/gen/distance/aa4055.wgsl.expected.glsl
index a49d96f..6161f45 100644
--- a/test/builtins/gen/distance/aa4055.wgsl.expected.glsl
+++ b/test/builtins/gen/distance/aa4055.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void distance_aa4055() {
   float res = distance(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void distance_aa4055() {
   float res = distance(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
diff --git a/test/builtins/gen/distance/cfed73.wgsl.expected.glsl b/test/builtins/gen/distance/cfed73.wgsl.expected.glsl
index b6471a6..0e208c5 100644
--- a/test/builtins/gen/distance/cfed73.wgsl.expected.glsl
+++ b/test/builtins/gen/distance/cfed73.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void distance_cfed73() {
   float res = distance(1.0f, 1.0f);
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void distance_cfed73() {
   float res = distance(1.0f, 1.0f);
diff --git a/test/builtins/gen/dot/0c577b.wgsl.expected.glsl b/test/builtins/gen/dot/0c577b.wgsl.expected.glsl
index 13a2f4e..134cd5b 100644
--- a/test/builtins/gen/dot/0c577b.wgsl.expected.glsl
+++ b/test/builtins/gen/dot/0c577b.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void dot_0c577b() {
   float res = dot(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void dot_0c577b() {
   float res = dot(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
diff --git a/test/builtins/gen/dot/7548a0.wgsl.expected.glsl b/test/builtins/gen/dot/7548a0.wgsl.expected.glsl
index 3c22476..37584d2 100644
--- a/test/builtins/gen/dot/7548a0.wgsl.expected.glsl
+++ b/test/builtins/gen/dot/7548a0.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uint tint_int_dot(uvec3 a, uvec3 b) {
   return a[0]*b[0] + a[1]*b[1] + a[2]*b[2];
@@ -41,7 +40,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uint tint_int_dot(uvec3 a, uvec3 b) {
   return a[0]*b[0] + a[1]*b[1] + a[2]*b[2];
diff --git a/test/builtins/gen/dot/883f0e.wgsl.expected.glsl b/test/builtins/gen/dot/883f0e.wgsl.expected.glsl
index 32578f4..83effaa 100644
--- a/test/builtins/gen/dot/883f0e.wgsl.expected.glsl
+++ b/test/builtins/gen/dot/883f0e.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void dot_883f0e() {
   float res = dot(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void dot_883f0e() {
   float res = dot(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
diff --git a/test/builtins/gen/dot/97c7ee.wgsl.expected.glsl b/test/builtins/gen/dot/97c7ee.wgsl.expected.glsl
index 92ff745..7e2136d 100644
--- a/test/builtins/gen/dot/97c7ee.wgsl.expected.glsl
+++ b/test/builtins/gen/dot/97c7ee.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uint tint_int_dot(uvec2 a, uvec2 b) {
   return a[0]*b[0] + a[1]*b[1];
@@ -41,7 +40,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uint tint_int_dot(uvec2 a, uvec2 b) {
   return a[0]*b[0] + a[1]*b[1];
diff --git a/test/builtins/gen/dot/ba4246.wgsl.expected.glsl b/test/builtins/gen/dot/ba4246.wgsl.expected.glsl
index 0c6c025..760bde1 100644
--- a/test/builtins/gen/dot/ba4246.wgsl.expected.glsl
+++ b/test/builtins/gen/dot/ba4246.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void dot_ba4246() {
   float res = dot(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void dot_ba4246() {
   float res = dot(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
diff --git a/test/builtins/gen/dot/e994c7.wgsl.expected.glsl b/test/builtins/gen/dot/e994c7.wgsl.expected.glsl
index 5916d1a..5257a55 100644
--- a/test/builtins/gen/dot/e994c7.wgsl.expected.glsl
+++ b/test/builtins/gen/dot/e994c7.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uint tint_int_dot(uvec4 a, uvec4 b) {
   return a[0]*b[0] + a[1]*b[1] + a[2]*b[2] + a[3]*b[3];
@@ -41,7 +40,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uint tint_int_dot(uvec4 a, uvec4 b) {
   return a[0]*b[0] + a[1]*b[1] + a[2]*b[2] + a[3]*b[3];
diff --git a/test/builtins/gen/dot/ef6b1d.wgsl.expected.glsl b/test/builtins/gen/dot/ef6b1d.wgsl.expected.glsl
index 34d8bf5..7c4b246 100644
--- a/test/builtins/gen/dot/ef6b1d.wgsl.expected.glsl
+++ b/test/builtins/gen/dot/ef6b1d.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 int tint_int_dot(ivec4 a, ivec4 b) {
   return a[0]*b[0] + a[1]*b[1] + a[2]*b[2] + a[3]*b[3];
@@ -41,7 +40,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 int tint_int_dot(ivec4 a, ivec4 b) {
   return a[0]*b[0] + a[1]*b[1] + a[2]*b[2] + a[3]*b[3];
diff --git a/test/builtins/gen/dot/f1312c.wgsl.expected.glsl b/test/builtins/gen/dot/f1312c.wgsl.expected.glsl
index f217684..218f3c3 100644
--- a/test/builtins/gen/dot/f1312c.wgsl.expected.glsl
+++ b/test/builtins/gen/dot/f1312c.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 int tint_int_dot(ivec3 a, ivec3 b) {
   return a[0]*b[0] + a[1]*b[1] + a[2]*b[2];
@@ -41,7 +40,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 int tint_int_dot(ivec3 a, ivec3 b) {
   return a[0]*b[0] + a[1]*b[1] + a[2]*b[2];
diff --git a/test/builtins/gen/dot/fc5f7c.wgsl.expected.glsl b/test/builtins/gen/dot/fc5f7c.wgsl.expected.glsl
index 5ad787d..7b1023f 100644
--- a/test/builtins/gen/dot/fc5f7c.wgsl.expected.glsl
+++ b/test/builtins/gen/dot/fc5f7c.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 int tint_int_dot(ivec2 a, ivec2 b) {
   return a[0]*b[0] + a[1]*b[1];
@@ -41,7 +40,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 int tint_int_dot(ivec2 a, ivec2 b) {
   return a[0]*b[0] + a[1]*b[1];
diff --git a/test/builtins/gen/exp/0f70eb.wgsl.expected.glsl b/test/builtins/gen/exp/0f70eb.wgsl.expected.glsl
index feae4f5..98a8a0f 100644
--- a/test/builtins/gen/exp/0f70eb.wgsl.expected.glsl
+++ b/test/builtins/gen/exp/0f70eb.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void exp_0f70eb() {
   vec4 res = exp(vec4(0.0f, 0.0f, 0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void exp_0f70eb() {
   vec4 res = exp(vec4(0.0f, 0.0f, 0.0f, 0.0f));
diff --git a/test/builtins/gen/exp/1951e7.wgsl.expected.glsl b/test/builtins/gen/exp/1951e7.wgsl.expected.glsl
index d2e216a..b2a049d 100644
--- a/test/builtins/gen/exp/1951e7.wgsl.expected.glsl
+++ b/test/builtins/gen/exp/1951e7.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void exp_1951e7() {
   vec2 res = exp(vec2(0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void exp_1951e7() {
   vec2 res = exp(vec2(0.0f, 0.0f));
diff --git a/test/builtins/gen/exp/771fd2.wgsl.expected.glsl b/test/builtins/gen/exp/771fd2.wgsl.expected.glsl
index d5b5e73..6cd3240 100644
--- a/test/builtins/gen/exp/771fd2.wgsl.expected.glsl
+++ b/test/builtins/gen/exp/771fd2.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void exp_771fd2() {
   float res = exp(1.0f);
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void exp_771fd2() {
   float res = exp(1.0f);
diff --git a/test/builtins/gen/exp/d98450.wgsl.expected.glsl b/test/builtins/gen/exp/d98450.wgsl.expected.glsl
index 52d707b..952a65a 100644
--- a/test/builtins/gen/exp/d98450.wgsl.expected.glsl
+++ b/test/builtins/gen/exp/d98450.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void exp_d98450() {
   vec3 res = exp(vec3(0.0f, 0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void exp_d98450() {
   vec3 res = exp(vec3(0.0f, 0.0f, 0.0f));
diff --git a/test/builtins/gen/exp2/1f8680.wgsl.expected.glsl b/test/builtins/gen/exp2/1f8680.wgsl.expected.glsl
index b9556d1..136569a 100644
--- a/test/builtins/gen/exp2/1f8680.wgsl.expected.glsl
+++ b/test/builtins/gen/exp2/1f8680.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void exp2_1f8680() {
   vec3 res = exp2(vec3(0.0f, 0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void exp2_1f8680() {
   vec3 res = exp2(vec3(0.0f, 0.0f, 0.0f));
diff --git a/test/builtins/gen/exp2/a9d0a7.wgsl.expected.glsl b/test/builtins/gen/exp2/a9d0a7.wgsl.expected.glsl
index 52ec604..57e1e9a 100644
--- a/test/builtins/gen/exp2/a9d0a7.wgsl.expected.glsl
+++ b/test/builtins/gen/exp2/a9d0a7.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void exp2_a9d0a7() {
   vec4 res = exp2(vec4(0.0f, 0.0f, 0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void exp2_a9d0a7() {
   vec4 res = exp2(vec4(0.0f, 0.0f, 0.0f, 0.0f));
diff --git a/test/builtins/gen/exp2/d6777c.wgsl.expected.glsl b/test/builtins/gen/exp2/d6777c.wgsl.expected.glsl
index f6f2d25..fb9da03 100644
--- a/test/builtins/gen/exp2/d6777c.wgsl.expected.glsl
+++ b/test/builtins/gen/exp2/d6777c.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void exp2_d6777c() {
   vec2 res = exp2(vec2(0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void exp2_d6777c() {
   vec2 res = exp2(vec2(0.0f, 0.0f));
diff --git a/test/builtins/gen/exp2/dea523.wgsl.expected.glsl b/test/builtins/gen/exp2/dea523.wgsl.expected.glsl
index 5b667d2..21705b6 100644
--- a/test/builtins/gen/exp2/dea523.wgsl.expected.glsl
+++ b/test/builtins/gen/exp2/dea523.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void exp2_dea523() {
   float res = exp2(1.0f);
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void exp2_dea523() {
   float res = exp2(1.0f);
diff --git a/test/builtins/gen/faceForward/5afbd5.wgsl.expected.glsl b/test/builtins/gen/faceForward/5afbd5.wgsl.expected.glsl
index 2e59bb7..6cd6704 100644
--- a/test/builtins/gen/faceForward/5afbd5.wgsl.expected.glsl
+++ b/test/builtins/gen/faceForward/5afbd5.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void faceForward_5afbd5() {
   vec3 res = faceforward(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void faceForward_5afbd5() {
   vec3 res = faceforward(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
diff --git a/test/builtins/gen/faceForward/b316e5.wgsl.expected.glsl b/test/builtins/gen/faceForward/b316e5.wgsl.expected.glsl
index 412620d..9839b50 100644
--- a/test/builtins/gen/faceForward/b316e5.wgsl.expected.glsl
+++ b/test/builtins/gen/faceForward/b316e5.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void faceForward_b316e5() {
   vec4 res = faceforward(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void faceForward_b316e5() {
   vec4 res = faceforward(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
diff --git a/test/builtins/gen/faceForward/e6908b.wgsl.expected.glsl b/test/builtins/gen/faceForward/e6908b.wgsl.expected.glsl
index bb60c46..513dc58 100644
--- a/test/builtins/gen/faceForward/e6908b.wgsl.expected.glsl
+++ b/test/builtins/gen/faceForward/e6908b.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void faceForward_e6908b() {
   vec2 res = faceforward(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void faceForward_e6908b() {
   vec2 res = faceforward(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
diff --git a/test/builtins/gen/floor/3bccc4.wgsl.expected.glsl b/test/builtins/gen/floor/3bccc4.wgsl.expected.glsl
index e13ffb3..21a9a88 100644
--- a/test/builtins/gen/floor/3bccc4.wgsl.expected.glsl
+++ b/test/builtins/gen/floor/3bccc4.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void floor_3bccc4() {
   vec4 res = floor(vec4(0.0f, 0.0f, 0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void floor_3bccc4() {
   vec4 res = floor(vec4(0.0f, 0.0f, 0.0f, 0.0f));
diff --git a/test/builtins/gen/floor/5fc9ac.wgsl.expected.glsl b/test/builtins/gen/floor/5fc9ac.wgsl.expected.glsl
index 2bdf291..19b75e2 100644
--- a/test/builtins/gen/floor/5fc9ac.wgsl.expected.glsl
+++ b/test/builtins/gen/floor/5fc9ac.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void floor_5fc9ac() {
   vec2 res = floor(vec2(0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void floor_5fc9ac() {
   vec2 res = floor(vec2(0.0f, 0.0f));
diff --git a/test/builtins/gen/floor/60d7ea.wgsl.expected.glsl b/test/builtins/gen/floor/60d7ea.wgsl.expected.glsl
index 2261630..d13f72e 100644
--- a/test/builtins/gen/floor/60d7ea.wgsl.expected.glsl
+++ b/test/builtins/gen/floor/60d7ea.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void floor_60d7ea() {
   vec3 res = floor(vec3(0.0f, 0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void floor_60d7ea() {
   vec3 res = floor(vec3(0.0f, 0.0f, 0.0f));
diff --git a/test/builtins/gen/floor/66f154.wgsl.expected.glsl b/test/builtins/gen/floor/66f154.wgsl.expected.glsl
index bbc4dc1..a575161 100644
--- a/test/builtins/gen/floor/66f154.wgsl.expected.glsl
+++ b/test/builtins/gen/floor/66f154.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void floor_66f154() {
   float res = floor(1.0f);
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void floor_66f154() {
   float res = floor(1.0f);
diff --git a/test/builtins/gen/fma/26a7a9.wgsl.expected.glsl b/test/builtins/gen/fma/26a7a9.wgsl.expected.glsl
index 99f7db0..c8caa57 100644
--- a/test/builtins/gen/fma/26a7a9.wgsl.expected.glsl
+++ b/test/builtins/gen/fma/26a7a9.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 void fma_26a7a9() {
   vec2 res = mad(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
@@ -20,9 +19,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'mad' : no matching overloaded function found 
-ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp mediump 2-component vector of float'
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'mad' : no matching overloaded function found 
+ERROR: 0:4: '=' :  cannot convert from ' const float' to ' temp highp 2-component vector of float'
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
@@ -51,7 +50,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 void fma_26a7a9() {
   vec2 res = mad(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
@@ -67,9 +65,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'mad' : no matching overloaded function found 
-ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp mediump 2-component vector of float'
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'mad' : no matching overloaded function found 
+ERROR: 0:4: '=' :  cannot convert from ' const float' to ' temp highp 2-component vector of float'
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/fma/6a3283.wgsl.expected.glsl b/test/builtins/gen/fma/6a3283.wgsl.expected.glsl
index 3d1103f..c0e8480 100644
--- a/test/builtins/gen/fma/6a3283.wgsl.expected.glsl
+++ b/test/builtins/gen/fma/6a3283.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 void fma_6a3283() {
   vec4 res = mad(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
@@ -20,9 +19,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'mad' : no matching overloaded function found 
-ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp mediump 4-component vector of float'
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'mad' : no matching overloaded function found 
+ERROR: 0:4: '=' :  cannot convert from ' const float' to ' temp highp 4-component vector of float'
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
@@ -51,7 +50,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 void fma_6a3283() {
   vec4 res = mad(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
@@ -67,9 +65,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'mad' : no matching overloaded function found 
-ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp mediump 4-component vector of float'
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'mad' : no matching overloaded function found 
+ERROR: 0:4: '=' :  cannot convert from ' const float' to ' temp highp 4-component vector of float'
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/fma/c10ba3.wgsl.expected.glsl b/test/builtins/gen/fma/c10ba3.wgsl.expected.glsl
index cb9db2d..c97533c 100644
--- a/test/builtins/gen/fma/c10ba3.wgsl.expected.glsl
+++ b/test/builtins/gen/fma/c10ba3.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 void fma_c10ba3() {
   float res = mad(1.0f, 1.0f, 1.0f);
@@ -20,8 +19,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'mad' : no matching overloaded function found 
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'mad' : no matching overloaded function found 
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -49,7 +48,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 void fma_c10ba3() {
   float res = mad(1.0f, 1.0f, 1.0f);
@@ -65,8 +63,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'mad' : no matching overloaded function found 
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'mad' : no matching overloaded function found 
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/fma/e17c5c.wgsl.expected.glsl b/test/builtins/gen/fma/e17c5c.wgsl.expected.glsl
index cfe2ccd..ab68403 100644
--- a/test/builtins/gen/fma/e17c5c.wgsl.expected.glsl
+++ b/test/builtins/gen/fma/e17c5c.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 void fma_e17c5c() {
   vec3 res = mad(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
@@ -20,9 +19,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'mad' : no matching overloaded function found 
-ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp mediump 3-component vector of float'
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'mad' : no matching overloaded function found 
+ERROR: 0:4: '=' :  cannot convert from ' const float' to ' temp highp 3-component vector of float'
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
@@ -51,7 +50,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 void fma_e17c5c() {
   vec3 res = mad(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
@@ -67,9 +65,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'mad' : no matching overloaded function found 
-ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp mediump 3-component vector of float'
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'mad' : no matching overloaded function found 
+ERROR: 0:4: '=' :  cannot convert from ' const float' to ' temp highp 3-component vector of float'
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/fract/8bc1e9.wgsl.expected.glsl b/test/builtins/gen/fract/8bc1e9.wgsl.expected.glsl
index fc0b2aa..2d5f17d 100644
--- a/test/builtins/gen/fract/8bc1e9.wgsl.expected.glsl
+++ b/test/builtins/gen/fract/8bc1e9.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 void fract_8bc1e9() {
   vec4 res = frac(vec4(0.0f, 0.0f, 0.0f, 0.0f));
@@ -20,9 +19,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'frac' : no matching overloaded function found 
-ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp mediump 4-component vector of float'
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'frac' : no matching overloaded function found 
+ERROR: 0:4: '=' :  cannot convert from ' const float' to ' temp highp 4-component vector of float'
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
@@ -51,7 +50,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 void fract_8bc1e9() {
   vec4 res = frac(vec4(0.0f, 0.0f, 0.0f, 0.0f));
@@ -67,9 +65,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'frac' : no matching overloaded function found 
-ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp mediump 4-component vector of float'
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'frac' : no matching overloaded function found 
+ERROR: 0:4: '=' :  cannot convert from ' const float' to ' temp highp 4-component vector of float'
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/fract/943cb1.wgsl.expected.glsl b/test/builtins/gen/fract/943cb1.wgsl.expected.glsl
index 0e98131..7b55b0c 100644
--- a/test/builtins/gen/fract/943cb1.wgsl.expected.glsl
+++ b/test/builtins/gen/fract/943cb1.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 void fract_943cb1() {
   vec2 res = frac(vec2(0.0f, 0.0f));
@@ -20,9 +19,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'frac' : no matching overloaded function found 
-ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp mediump 2-component vector of float'
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'frac' : no matching overloaded function found 
+ERROR: 0:4: '=' :  cannot convert from ' const float' to ' temp highp 2-component vector of float'
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
@@ -51,7 +50,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 void fract_943cb1() {
   vec2 res = frac(vec2(0.0f, 0.0f));
@@ -67,9 +65,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'frac' : no matching overloaded function found 
-ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp mediump 2-component vector of float'
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'frac' : no matching overloaded function found 
+ERROR: 0:4: '=' :  cannot convert from ' const float' to ' temp highp 2-component vector of float'
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/fract/a49758.wgsl.expected.glsl b/test/builtins/gen/fract/a49758.wgsl.expected.glsl
index b69fb8f..29e64b8 100644
--- a/test/builtins/gen/fract/a49758.wgsl.expected.glsl
+++ b/test/builtins/gen/fract/a49758.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 void fract_a49758() {
   vec3 res = frac(vec3(0.0f, 0.0f, 0.0f));
@@ -20,9 +19,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'frac' : no matching overloaded function found 
-ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp mediump 3-component vector of float'
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'frac' : no matching overloaded function found 
+ERROR: 0:4: '=' :  cannot convert from ' const float' to ' temp highp 3-component vector of float'
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
@@ -51,7 +50,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 void fract_a49758() {
   vec3 res = frac(vec3(0.0f, 0.0f, 0.0f));
@@ -67,9 +65,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'frac' : no matching overloaded function found 
-ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp mediump 3-component vector of float'
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'frac' : no matching overloaded function found 
+ERROR: 0:4: '=' :  cannot convert from ' const float' to ' temp highp 3-component vector of float'
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/fract/fa5c71.wgsl.expected.glsl b/test/builtins/gen/fract/fa5c71.wgsl.expected.glsl
index 7811e56..36c061c 100644
--- a/test/builtins/gen/fract/fa5c71.wgsl.expected.glsl
+++ b/test/builtins/gen/fract/fa5c71.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 void fract_fa5c71() {
   float res = frac(1.0f);
@@ -20,8 +19,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'frac' : no matching overloaded function found 
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'frac' : no matching overloaded function found 
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -49,7 +48,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 void fract_fa5c71() {
   float res = frac(1.0f);
@@ -65,8 +63,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'frac' : no matching overloaded function found 
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'frac' : no matching overloaded function found 
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/frexp/368997.wgsl.expected.glsl b/test/builtins/gen/frexp/368997.wgsl.expected.glsl
index 47ed17d..93b9879 100644
--- a/test/builtins/gen/frexp/368997.wgsl.expected.glsl
+++ b/test/builtins/gen/frexp/368997.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 struct frexp_result_vec3 {
   vec3 sig;
@@ -33,8 +32,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:10: 'float3' : undeclared identifier 
-ERROR: 0:10: '' : compilation terminated 
+ERROR: 0:9: 'float3' : undeclared identifier 
+ERROR: 0:9: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -75,7 +74,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 struct frexp_result_vec3 {
   vec3 sig;
@@ -104,8 +102,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:10: 'float3' : undeclared identifier 
-ERROR: 0:10: '' : compilation terminated 
+ERROR: 0:9: 'float3' : undeclared identifier 
+ERROR: 0:9: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/frexp/3c4f48.wgsl.expected.glsl b/test/builtins/gen/frexp/3c4f48.wgsl.expected.glsl
index aa6d873..d17806d 100644
--- a/test/builtins/gen/frexp/3c4f48.wgsl.expected.glsl
+++ b/test/builtins/gen/frexp/3c4f48.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 struct frexp_result_vec4 {
   vec4 sig;
@@ -33,8 +32,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:10: 'float4' : undeclared identifier 
-ERROR: 0:10: '' : compilation terminated 
+ERROR: 0:9: 'float4' : undeclared identifier 
+ERROR: 0:9: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -75,7 +74,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 struct frexp_result_vec4 {
   vec4 sig;
@@ -104,8 +102,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:10: 'float4' : undeclared identifier 
-ERROR: 0:10: '' : compilation terminated 
+ERROR: 0:9: 'float4' : undeclared identifier 
+ERROR: 0:9: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/frexp/4bdfc7.wgsl.expected.glsl b/test/builtins/gen/frexp/4bdfc7.wgsl.expected.glsl
index 05a976e..f336b48 100644
--- a/test/builtins/gen/frexp/4bdfc7.wgsl.expected.glsl
+++ b/test/builtins/gen/frexp/4bdfc7.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 struct frexp_result_vec2 {
   vec2 sig;
@@ -33,8 +32,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:10: 'float2' : undeclared identifier 
-ERROR: 0:10: '' : compilation terminated 
+ERROR: 0:9: 'float2' : undeclared identifier 
+ERROR: 0:9: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -75,7 +74,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 struct frexp_result_vec2 {
   vec2 sig;
@@ -104,8 +102,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:10: 'float2' : undeclared identifier 
-ERROR: 0:10: '' : compilation terminated 
+ERROR: 0:9: 'float2' : undeclared identifier 
+ERROR: 0:9: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/frexp/eabd40.wgsl.expected.glsl b/test/builtins/gen/frexp/eabd40.wgsl.expected.glsl
index 0efc2db..e5f44f6 100644
--- a/test/builtins/gen/frexp/eabd40.wgsl.expected.glsl
+++ b/test/builtins/gen/frexp/eabd40.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 struct frexp_result {
   float sig;
@@ -33,8 +32,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:11: 'frexp' : no matching overloaded function found 
-ERROR: 0:11: '' : compilation terminated 
+ERROR: 0:10: 'frexp' : no matching overloaded function found 
+ERROR: 0:10: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -75,7 +74,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 struct frexp_result {
   float sig;
@@ -104,8 +102,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:11: 'frexp' : no matching overloaded function found 
-ERROR: 0:11: '' : compilation terminated 
+ERROR: 0:10: 'frexp' : no matching overloaded function found 
+ERROR: 0:10: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/inverseSqrt/84407e.wgsl.expected.glsl b/test/builtins/gen/inverseSqrt/84407e.wgsl.expected.glsl
index a06ac8a..715b0c6 100644
--- a/test/builtins/gen/inverseSqrt/84407e.wgsl.expected.glsl
+++ b/test/builtins/gen/inverseSqrt/84407e.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 void inverseSqrt_84407e() {
   float res = rsqrt(1.0f);
@@ -20,8 +19,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'rsqrt' : no matching overloaded function found 
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'rsqrt' : no matching overloaded function found 
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -49,7 +48,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 void inverseSqrt_84407e() {
   float res = rsqrt(1.0f);
@@ -65,8 +63,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'rsqrt' : no matching overloaded function found 
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'rsqrt' : no matching overloaded function found 
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/inverseSqrt/8f2bd2.wgsl.expected.glsl b/test/builtins/gen/inverseSqrt/8f2bd2.wgsl.expected.glsl
index a192269..19105a8 100644
--- a/test/builtins/gen/inverseSqrt/8f2bd2.wgsl.expected.glsl
+++ b/test/builtins/gen/inverseSqrt/8f2bd2.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 void inverseSqrt_8f2bd2() {
   vec2 res = rsqrt(vec2(0.0f, 0.0f));
@@ -20,9 +19,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'rsqrt' : no matching overloaded function found 
-ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp mediump 2-component vector of float'
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'rsqrt' : no matching overloaded function found 
+ERROR: 0:4: '=' :  cannot convert from ' const float' to ' temp highp 2-component vector of float'
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
@@ -51,7 +50,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 void inverseSqrt_8f2bd2() {
   vec2 res = rsqrt(vec2(0.0f, 0.0f));
@@ -67,9 +65,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'rsqrt' : no matching overloaded function found 
-ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp mediump 2-component vector of float'
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'rsqrt' : no matching overloaded function found 
+ERROR: 0:4: '=' :  cannot convert from ' const float' to ' temp highp 2-component vector of float'
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/inverseSqrt/b197b1.wgsl.expected.glsl b/test/builtins/gen/inverseSqrt/b197b1.wgsl.expected.glsl
index e5e100e..6c04051 100644
--- a/test/builtins/gen/inverseSqrt/b197b1.wgsl.expected.glsl
+++ b/test/builtins/gen/inverseSqrt/b197b1.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 void inverseSqrt_b197b1() {
   vec3 res = rsqrt(vec3(0.0f, 0.0f, 0.0f));
@@ -20,9 +19,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'rsqrt' : no matching overloaded function found 
-ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp mediump 3-component vector of float'
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'rsqrt' : no matching overloaded function found 
+ERROR: 0:4: '=' :  cannot convert from ' const float' to ' temp highp 3-component vector of float'
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
@@ -51,7 +50,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 void inverseSqrt_b197b1() {
   vec3 res = rsqrt(vec3(0.0f, 0.0f, 0.0f));
@@ -67,9 +65,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'rsqrt' : no matching overloaded function found 
-ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp mediump 3-component vector of float'
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'rsqrt' : no matching overloaded function found 
+ERROR: 0:4: '=' :  cannot convert from ' const float' to ' temp highp 3-component vector of float'
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/inverseSqrt/c22347.wgsl.expected.glsl b/test/builtins/gen/inverseSqrt/c22347.wgsl.expected.glsl
index 109f222..8248943 100644
--- a/test/builtins/gen/inverseSqrt/c22347.wgsl.expected.glsl
+++ b/test/builtins/gen/inverseSqrt/c22347.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 void inverseSqrt_c22347() {
   vec4 res = rsqrt(vec4(0.0f, 0.0f, 0.0f, 0.0f));
@@ -20,9 +19,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'rsqrt' : no matching overloaded function found 
-ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp mediump 4-component vector of float'
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'rsqrt' : no matching overloaded function found 
+ERROR: 0:4: '=' :  cannot convert from ' const float' to ' temp highp 4-component vector of float'
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
@@ -51,7 +50,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 void inverseSqrt_c22347() {
   vec4 res = rsqrt(vec4(0.0f, 0.0f, 0.0f, 0.0f));
@@ -67,9 +65,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'rsqrt' : no matching overloaded function found 
-ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp mediump 4-component vector of float'
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'rsqrt' : no matching overloaded function found 
+ERROR: 0:4: '=' :  cannot convert from ' const float' to ' temp highp 4-component vector of float'
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/isFinite/34d32b.wgsl.expected.glsl b/test/builtins/gen/isFinite/34d32b.wgsl.expected.glsl
index 28d6f70..68b02e8 100644
--- a/test/builtins/gen/isFinite/34d32b.wgsl.expected.glsl
+++ b/test/builtins/gen/isFinite/34d32b.wgsl.expected.glsl
@@ -5,7 +5,6 @@
                         ^^^^^^^^
 
 #version 310 es
-precision mediump float;
 
 void isFinite_34d32b() {
   bvec2 res = isfinite(vec2(0.0f, 0.0f));
@@ -24,9 +23,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'isfinite' : no matching overloaded function found 
-ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp 2-component vector of bool'
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'isfinite' : no matching overloaded function found 
+ERROR: 0:4: '=' :  cannot convert from ' const float' to ' temp 2-component vector of bool'
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
@@ -55,7 +54,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 void isFinite_34d32b() {
   bvec2 res = isfinite(vec2(0.0f, 0.0f));
@@ -71,9 +69,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'isfinite' : no matching overloaded function found 
-ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp 2-component vector of bool'
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'isfinite' : no matching overloaded function found 
+ERROR: 0:4: '=' :  cannot convert from ' const float' to ' temp 2-component vector of bool'
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/isFinite/426f9f.wgsl.expected.glsl b/test/builtins/gen/isFinite/426f9f.wgsl.expected.glsl
index e097925..057f0c1 100644
--- a/test/builtins/gen/isFinite/426f9f.wgsl.expected.glsl
+++ b/test/builtins/gen/isFinite/426f9f.wgsl.expected.glsl
@@ -5,7 +5,6 @@
                   ^^^^^^^^
 
 #version 310 es
-precision mediump float;
 
 void isFinite_426f9f() {
   bool res = isfinite(1.0f);
@@ -24,9 +23,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'isfinite' : no matching overloaded function found 
-ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp bool'
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'isfinite' : no matching overloaded function found 
+ERROR: 0:4: '=' :  cannot convert from ' const float' to ' temp bool'
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
@@ -55,7 +54,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 void isFinite_426f9f() {
   bool res = isfinite(1.0f);
@@ -71,9 +69,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'isfinite' : no matching overloaded function found 
-ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp bool'
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'isfinite' : no matching overloaded function found 
+ERROR: 0:4: '=' :  cannot convert from ' const float' to ' temp bool'
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/isFinite/8a23ad.wgsl.expected.glsl b/test/builtins/gen/isFinite/8a23ad.wgsl.expected.glsl
index 2493776..fe60f01 100644
--- a/test/builtins/gen/isFinite/8a23ad.wgsl.expected.glsl
+++ b/test/builtins/gen/isFinite/8a23ad.wgsl.expected.glsl
@@ -5,7 +5,6 @@
                         ^^^^^^^^
 
 #version 310 es
-precision mediump float;
 
 void isFinite_8a23ad() {
   bvec3 res = isfinite(vec3(0.0f, 0.0f, 0.0f));
@@ -24,9 +23,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'isfinite' : no matching overloaded function found 
-ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp 3-component vector of bool'
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'isfinite' : no matching overloaded function found 
+ERROR: 0:4: '=' :  cannot convert from ' const float' to ' temp 3-component vector of bool'
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
@@ -55,7 +54,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 void isFinite_8a23ad() {
   bvec3 res = isfinite(vec3(0.0f, 0.0f, 0.0f));
@@ -71,9 +69,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'isfinite' : no matching overloaded function found 
-ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp 3-component vector of bool'
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'isfinite' : no matching overloaded function found 
+ERROR: 0:4: '=' :  cannot convert from ' const float' to ' temp 3-component vector of bool'
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/isFinite/f31987.wgsl.expected.glsl b/test/builtins/gen/isFinite/f31987.wgsl.expected.glsl
index 445fb96..e001b01 100644
--- a/test/builtins/gen/isFinite/f31987.wgsl.expected.glsl
+++ b/test/builtins/gen/isFinite/f31987.wgsl.expected.glsl
@@ -5,7 +5,6 @@
                         ^^^^^^^^
 
 #version 310 es
-precision mediump float;
 
 void isFinite_f31987() {
   bvec4 res = isfinite(vec4(0.0f, 0.0f, 0.0f, 0.0f));
@@ -24,9 +23,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'isfinite' : no matching overloaded function found 
-ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp 4-component vector of bool'
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'isfinite' : no matching overloaded function found 
+ERROR: 0:4: '=' :  cannot convert from ' const float' to ' temp 4-component vector of bool'
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
@@ -55,7 +54,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 void isFinite_f31987() {
   bvec4 res = isfinite(vec4(0.0f, 0.0f, 0.0f, 0.0f));
@@ -71,9 +69,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'isfinite' : no matching overloaded function found 
-ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp 4-component vector of bool'
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'isfinite' : no matching overloaded function found 
+ERROR: 0:4: '=' :  cannot convert from ' const float' to ' temp 4-component vector of bool'
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/isInf/666f2a.wgsl.expected.glsl b/test/builtins/gen/isInf/666f2a.wgsl.expected.glsl
index e0830f8..04e24af 100644
--- a/test/builtins/gen/isInf/666f2a.wgsl.expected.glsl
+++ b/test/builtins/gen/isInf/666f2a.wgsl.expected.glsl
@@ -3,7 +3,6 @@
                         ^^^^^
 
 #version 310 es
-precision mediump float;
 
 void isInf_666f2a() {
   bvec3 res = isinf(vec3(0.0f, 0.0f, 0.0f));
@@ -37,7 +36,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void isInf_666f2a() {
   bvec3 res = isinf(vec3(0.0f, 0.0f, 0.0f));
diff --git a/test/builtins/gen/isInf/7bd98f.wgsl.expected.glsl b/test/builtins/gen/isInf/7bd98f.wgsl.expected.glsl
index 09b1082..a62e073 100644
--- a/test/builtins/gen/isInf/7bd98f.wgsl.expected.glsl
+++ b/test/builtins/gen/isInf/7bd98f.wgsl.expected.glsl
@@ -3,7 +3,6 @@
                   ^^^^^
 
 #version 310 es
-precision mediump float;
 
 void isInf_7bd98f() {
   bool res = isinf(1.0f);
@@ -37,7 +36,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void isInf_7bd98f() {
   bool res = isinf(1.0f);
diff --git a/test/builtins/gen/isInf/7e81b5.wgsl.expected.glsl b/test/builtins/gen/isInf/7e81b5.wgsl.expected.glsl
index b2e3c87..69b56a7 100644
--- a/test/builtins/gen/isInf/7e81b5.wgsl.expected.glsl
+++ b/test/builtins/gen/isInf/7e81b5.wgsl.expected.glsl
@@ -3,7 +3,6 @@
                         ^^^^^
 
 #version 310 es
-precision mediump float;
 
 void isInf_7e81b5() {
   bvec4 res = isinf(vec4(0.0f, 0.0f, 0.0f, 0.0f));
@@ -37,7 +36,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void isInf_7e81b5() {
   bvec4 res = isinf(vec4(0.0f, 0.0f, 0.0f, 0.0f));
diff --git a/test/builtins/gen/isInf/a46d6f.wgsl.expected.glsl b/test/builtins/gen/isInf/a46d6f.wgsl.expected.glsl
index d106427..5a9b1bd 100644
--- a/test/builtins/gen/isInf/a46d6f.wgsl.expected.glsl
+++ b/test/builtins/gen/isInf/a46d6f.wgsl.expected.glsl
@@ -3,7 +3,6 @@
                         ^^^^^
 
 #version 310 es
-precision mediump float;
 
 void isInf_a46d6f() {
   bvec2 res = isinf(vec2(0.0f, 0.0f));
@@ -37,7 +36,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void isInf_a46d6f() {
   bvec2 res = isinf(vec2(0.0f, 0.0f));
diff --git a/test/builtins/gen/isNan/1280ab.wgsl.expected.glsl b/test/builtins/gen/isNan/1280ab.wgsl.expected.glsl
index 4336d68..36acf98 100644
--- a/test/builtins/gen/isNan/1280ab.wgsl.expected.glsl
+++ b/test/builtins/gen/isNan/1280ab.wgsl.expected.glsl
@@ -3,7 +3,6 @@
                         ^^^^^
 
 #version 310 es
-precision mediump float;
 
 void isNan_1280ab() {
   bvec3 res = isnan(vec3(0.0f, 0.0f, 0.0f));
@@ -37,7 +36,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void isNan_1280ab() {
   bvec3 res = isnan(vec3(0.0f, 0.0f, 0.0f));
diff --git a/test/builtins/gen/isNan/4d280d.wgsl.expected.glsl b/test/builtins/gen/isNan/4d280d.wgsl.expected.glsl
index ee19e9d..eeb1337 100644
--- a/test/builtins/gen/isNan/4d280d.wgsl.expected.glsl
+++ b/test/builtins/gen/isNan/4d280d.wgsl.expected.glsl
@@ -3,7 +3,6 @@
                         ^^^^^
 
 #version 310 es
-precision mediump float;
 
 void isNan_4d280d() {
   bvec4 res = isnan(vec4(0.0f, 0.0f, 0.0f, 0.0f));
@@ -37,7 +36,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void isNan_4d280d() {
   bvec4 res = isnan(vec4(0.0f, 0.0f, 0.0f, 0.0f));
diff --git a/test/builtins/gen/isNan/67ecd3.wgsl.expected.glsl b/test/builtins/gen/isNan/67ecd3.wgsl.expected.glsl
index d2b833b..f02018d 100644
--- a/test/builtins/gen/isNan/67ecd3.wgsl.expected.glsl
+++ b/test/builtins/gen/isNan/67ecd3.wgsl.expected.glsl
@@ -3,7 +3,6 @@
                         ^^^^^
 
 #version 310 es
-precision mediump float;
 
 void isNan_67ecd3() {
   bvec2 res = isnan(vec2(0.0f, 0.0f));
@@ -37,7 +36,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void isNan_67ecd3() {
   bvec2 res = isnan(vec2(0.0f, 0.0f));
diff --git a/test/builtins/gen/isNan/e4978e.wgsl.expected.glsl b/test/builtins/gen/isNan/e4978e.wgsl.expected.glsl
index a7f4ead..4d1bfb8 100644
--- a/test/builtins/gen/isNan/e4978e.wgsl.expected.glsl
+++ b/test/builtins/gen/isNan/e4978e.wgsl.expected.glsl
@@ -3,7 +3,6 @@
                   ^^^^^
 
 #version 310 es
-precision mediump float;
 
 void isNan_e4978e() {
   bool res = isnan(1.0f);
@@ -37,7 +36,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void isNan_e4978e() {
   bool res = isnan(1.0f);
diff --git a/test/builtins/gen/isNormal/863dcd.wgsl.expected.glsl b/test/builtins/gen/isNormal/863dcd.wgsl.expected.glsl
index 4d7f3fe..43d272c 100644
--- a/test/builtins/gen/isNormal/863dcd.wgsl.expected.glsl
+++ b/test/builtins/gen/isNormal/863dcd.wgsl.expected.glsl
@@ -5,7 +5,6 @@
                         ^^^^^^^^
 
 #version 310 es
-precision mediump float;
 
 bvec4 tint_isNormal(vec4 param_0) {
   uint4 exponent = asuint(param_0) & 0x7f80000;
@@ -31,8 +30,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'uint4' : undeclared identifier 
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'uint4' : undeclared identifier 
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -67,7 +66,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 bvec4 tint_isNormal(vec4 param_0) {
   uint4 exponent = asuint(param_0) & 0x7f80000;
@@ -90,8 +88,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'uint4' : undeclared identifier 
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'uint4' : undeclared identifier 
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/isNormal/b00ab1.wgsl.expected.glsl b/test/builtins/gen/isNormal/b00ab1.wgsl.expected.glsl
index 0084bec..1642490 100644
--- a/test/builtins/gen/isNormal/b00ab1.wgsl.expected.glsl
+++ b/test/builtins/gen/isNormal/b00ab1.wgsl.expected.glsl
@@ -5,7 +5,6 @@
                         ^^^^^^^^
 
 #version 310 es
-precision mediump float;
 
 bvec2 tint_isNormal(vec2 param_0) {
   uint2 exponent = asuint(param_0) & 0x7f80000;
@@ -31,8 +30,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'uint2' : undeclared identifier 
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'uint2' : undeclared identifier 
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -67,7 +66,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 bvec2 tint_isNormal(vec2 param_0) {
   uint2 exponent = asuint(param_0) & 0x7f80000;
@@ -90,8 +88,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'uint2' : undeclared identifier 
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'uint2' : undeclared identifier 
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/isNormal/c286b7.wgsl.expected.glsl b/test/builtins/gen/isNormal/c286b7.wgsl.expected.glsl
index cf69d33..29e3684 100644
--- a/test/builtins/gen/isNormal/c286b7.wgsl.expected.glsl
+++ b/test/builtins/gen/isNormal/c286b7.wgsl.expected.glsl
@@ -5,7 +5,6 @@
                         ^^^^^^^^
 
 #version 310 es
-precision mediump float;
 
 bvec3 tint_isNormal(vec3 param_0) {
   uint3 exponent = asuint(param_0) & 0x7f80000;
@@ -31,8 +30,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'uint3' : undeclared identifier 
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'uint3' : undeclared identifier 
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -67,7 +66,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 bvec3 tint_isNormal(vec3 param_0) {
   uint3 exponent = asuint(param_0) & 0x7f80000;
@@ -90,8 +88,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'uint3' : undeclared identifier 
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'uint3' : undeclared identifier 
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/isNormal/c6e880.wgsl.expected.glsl b/test/builtins/gen/isNormal/c6e880.wgsl.expected.glsl
index 5974f96..34dc812 100644
--- a/test/builtins/gen/isNormal/c6e880.wgsl.expected.glsl
+++ b/test/builtins/gen/isNormal/c6e880.wgsl.expected.glsl
@@ -5,7 +5,6 @@
                   ^^^^^^^^
 
 #version 310 es
-precision mediump float;
 
 bool tint_isNormal(float param_0) {
   uint exponent = asuint(param_0) & 0x7f80000;
@@ -31,9 +30,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'asuint' : no matching overloaded function found 
-ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp uint'
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'asuint' : no matching overloaded function found 
+ERROR: 0:4: '=' :  cannot convert from ' const float' to ' temp highp uint'
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
@@ -69,7 +68,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 bool tint_isNormal(float param_0) {
   uint exponent = asuint(param_0) & 0x7f80000;
@@ -92,9 +90,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'asuint' : no matching overloaded function found 
-ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp uint'
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'asuint' : no matching overloaded function found 
+ERROR: 0:4: '=' :  cannot convert from ' const float' to ' temp highp uint'
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/ldexp/a31cdc.wgsl.expected.glsl b/test/builtins/gen/ldexp/a31cdc.wgsl.expected.glsl
index f1a8f19..2f36476 100644
--- a/test/builtins/gen/ldexp/a31cdc.wgsl.expected.glsl
+++ b/test/builtins/gen/ldexp/a31cdc.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void ldexp_a31cdc() {
   vec3 res = ldexp(vec3(0.0f, 0.0f, 0.0f), ivec3(0, 0, 0));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void ldexp_a31cdc() {
   vec3 res = ldexp(vec3(0.0f, 0.0f, 0.0f), ivec3(0, 0, 0));
diff --git a/test/builtins/gen/ldexp/abd718.wgsl.expected.glsl b/test/builtins/gen/ldexp/abd718.wgsl.expected.glsl
index c72b266..08e3943 100644
--- a/test/builtins/gen/ldexp/abd718.wgsl.expected.glsl
+++ b/test/builtins/gen/ldexp/abd718.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void ldexp_abd718() {
   vec2 res = ldexp(vec2(0.0f, 0.0f), ivec2(0, 0));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void ldexp_abd718() {
   vec2 res = ldexp(vec2(0.0f, 0.0f), ivec2(0, 0));
diff --git a/test/builtins/gen/ldexp/cc9cde.wgsl.expected.glsl b/test/builtins/gen/ldexp/cc9cde.wgsl.expected.glsl
index 0b56095..cec49db 100644
--- a/test/builtins/gen/ldexp/cc9cde.wgsl.expected.glsl
+++ b/test/builtins/gen/ldexp/cc9cde.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void ldexp_cc9cde() {
   vec4 res = ldexp(vec4(0.0f, 0.0f, 0.0f, 0.0f), ivec4(0, 0, 0, 0));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void ldexp_cc9cde() {
   vec4 res = ldexp(vec4(0.0f, 0.0f, 0.0f, 0.0f), ivec4(0, 0, 0, 0));
diff --git a/test/builtins/gen/ldexp/db8b49.wgsl.expected.glsl b/test/builtins/gen/ldexp/db8b49.wgsl.expected.glsl
index d29b019..6cee42f 100644
--- a/test/builtins/gen/ldexp/db8b49.wgsl.expected.glsl
+++ b/test/builtins/gen/ldexp/db8b49.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void ldexp_db8b49() {
   float res = ldexp(1.0f, 1);
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void ldexp_db8b49() {
   float res = ldexp(1.0f, 1);
diff --git a/test/builtins/gen/length/056071.wgsl.expected.glsl b/test/builtins/gen/length/056071.wgsl.expected.glsl
index 259f040..d2081a3 100644
--- a/test/builtins/gen/length/056071.wgsl.expected.glsl
+++ b/test/builtins/gen/length/056071.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void length_056071() {
   float res = length(vec3(0.0f, 0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void length_056071() {
   float res = length(vec3(0.0f, 0.0f, 0.0f));
diff --git a/test/builtins/gen/length/602a17.wgsl.expected.glsl b/test/builtins/gen/length/602a17.wgsl.expected.glsl
index 4a04172..3d7572e 100644
--- a/test/builtins/gen/length/602a17.wgsl.expected.glsl
+++ b/test/builtins/gen/length/602a17.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void length_602a17() {
   float res = length(1.0f);
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void length_602a17() {
   float res = length(1.0f);
diff --git a/test/builtins/gen/length/afde8b.wgsl.expected.glsl b/test/builtins/gen/length/afde8b.wgsl.expected.glsl
index e58341f..165ba8e 100644
--- a/test/builtins/gen/length/afde8b.wgsl.expected.glsl
+++ b/test/builtins/gen/length/afde8b.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void length_afde8b() {
   float res = length(vec2(0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void length_afde8b() {
   float res = length(vec2(0.0f, 0.0f));
diff --git a/test/builtins/gen/length/becebf.wgsl.expected.glsl b/test/builtins/gen/length/becebf.wgsl.expected.glsl
index 3ec5f75..26aa9f6 100644
--- a/test/builtins/gen/length/becebf.wgsl.expected.glsl
+++ b/test/builtins/gen/length/becebf.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void length_becebf() {
   float res = length(vec4(0.0f, 0.0f, 0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void length_becebf() {
   float res = length(vec4(0.0f, 0.0f, 0.0f, 0.0f));
diff --git a/test/builtins/gen/log/3da25a.wgsl.expected.glsl b/test/builtins/gen/log/3da25a.wgsl.expected.glsl
index 1b40c41..d3496ad 100644
--- a/test/builtins/gen/log/3da25a.wgsl.expected.glsl
+++ b/test/builtins/gen/log/3da25a.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void log_3da25a() {
   vec4 res = log(vec4(0.0f, 0.0f, 0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void log_3da25a() {
   vec4 res = log(vec4(0.0f, 0.0f, 0.0f, 0.0f));
diff --git a/test/builtins/gen/log/7114a6.wgsl.expected.glsl b/test/builtins/gen/log/7114a6.wgsl.expected.glsl
index 9b5e63e..deec7a6 100644
--- a/test/builtins/gen/log/7114a6.wgsl.expected.glsl
+++ b/test/builtins/gen/log/7114a6.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void log_7114a6() {
   float res = log(1.0f);
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void log_7114a6() {
   float res = log(1.0f);
diff --git a/test/builtins/gen/log/b2ce28.wgsl.expected.glsl b/test/builtins/gen/log/b2ce28.wgsl.expected.glsl
index 46653ad..b3299a9 100644
--- a/test/builtins/gen/log/b2ce28.wgsl.expected.glsl
+++ b/test/builtins/gen/log/b2ce28.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void log_b2ce28() {
   vec2 res = log(vec2(0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void log_b2ce28() {
   vec2 res = log(vec2(0.0f, 0.0f));
diff --git a/test/builtins/gen/log/f4c570.wgsl.expected.glsl b/test/builtins/gen/log/f4c570.wgsl.expected.glsl
index 4986e79..76d8555 100644
--- a/test/builtins/gen/log/f4c570.wgsl.expected.glsl
+++ b/test/builtins/gen/log/f4c570.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void log_f4c570() {
   vec3 res = log(vec3(0.0f, 0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void log_f4c570() {
   vec3 res = log(vec3(0.0f, 0.0f, 0.0f));
diff --git a/test/builtins/gen/log2/4036ed.wgsl.expected.glsl b/test/builtins/gen/log2/4036ed.wgsl.expected.glsl
index ef4bb19..7bd50ce 100644
--- a/test/builtins/gen/log2/4036ed.wgsl.expected.glsl
+++ b/test/builtins/gen/log2/4036ed.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void log2_4036ed() {
   float res = log2(1.0f);
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void log2_4036ed() {
   float res = log2(1.0f);
diff --git a/test/builtins/gen/log2/902988.wgsl.expected.glsl b/test/builtins/gen/log2/902988.wgsl.expected.glsl
index a263dea..630b57e 100644
--- a/test/builtins/gen/log2/902988.wgsl.expected.glsl
+++ b/test/builtins/gen/log2/902988.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void log2_902988() {
   vec4 res = log2(vec4(0.0f, 0.0f, 0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void log2_902988() {
   vec4 res = log2(vec4(0.0f, 0.0f, 0.0f, 0.0f));
diff --git a/test/builtins/gen/log2/adb233.wgsl.expected.glsl b/test/builtins/gen/log2/adb233.wgsl.expected.glsl
index b79c82b..7f25fab 100644
--- a/test/builtins/gen/log2/adb233.wgsl.expected.glsl
+++ b/test/builtins/gen/log2/adb233.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void log2_adb233() {
   vec3 res = log2(vec3(0.0f, 0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void log2_adb233() {
   vec3 res = log2(vec3(0.0f, 0.0f, 0.0f));
diff --git a/test/builtins/gen/log2/aea659.wgsl.expected.glsl b/test/builtins/gen/log2/aea659.wgsl.expected.glsl
index c1161a7..49e732e 100644
--- a/test/builtins/gen/log2/aea659.wgsl.expected.glsl
+++ b/test/builtins/gen/log2/aea659.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void log2_aea659() {
   vec2 res = log2(vec2(0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void log2_aea659() {
   vec2 res = log2(vec2(0.0f, 0.0f));
diff --git a/test/builtins/gen/max/0c0aae.wgsl.expected.glsl b/test/builtins/gen/max/0c0aae.wgsl.expected.glsl
index c0f35091..4d4445d 100644
--- a/test/builtins/gen/max/0c0aae.wgsl.expected.glsl
+++ b/test/builtins/gen/max/0c0aae.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void max_0c0aae() {
   uint res = max(1u, 1u);
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void max_0c0aae() {
   uint res = max(1u, 1u);
diff --git a/test/builtins/gen/max/25eafe.wgsl.expected.glsl b/test/builtins/gen/max/25eafe.wgsl.expected.glsl
index 03e055f..14d1d16 100644
--- a/test/builtins/gen/max/25eafe.wgsl.expected.glsl
+++ b/test/builtins/gen/max/25eafe.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void max_25eafe() {
   ivec3 res = max(ivec3(0, 0, 0), ivec3(0, 0, 0));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void max_25eafe() {
   ivec3 res = max(ivec3(0, 0, 0), ivec3(0, 0, 0));
diff --git a/test/builtins/gen/max/320815.wgsl.expected.glsl b/test/builtins/gen/max/320815.wgsl.expected.glsl
index c849500..bb50c1e 100644
--- a/test/builtins/gen/max/320815.wgsl.expected.glsl
+++ b/test/builtins/gen/max/320815.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void max_320815() {
   uvec2 res = max(uvec2(0u, 0u), uvec2(0u, 0u));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void max_320815() {
   uvec2 res = max(uvec2(0u, 0u), uvec2(0u, 0u));
diff --git a/test/builtins/gen/max/44a39d.wgsl.expected.glsl b/test/builtins/gen/max/44a39d.wgsl.expected.glsl
index bf3a813..3ab47ee 100644
--- a/test/builtins/gen/max/44a39d.wgsl.expected.glsl
+++ b/test/builtins/gen/max/44a39d.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void max_44a39d() {
   float res = max(1.0f, 1.0f);
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void max_44a39d() {
   float res = max(1.0f, 1.0f);
diff --git a/test/builtins/gen/max/453e04.wgsl.expected.glsl b/test/builtins/gen/max/453e04.wgsl.expected.glsl
index a23013a..68553b1 100644
--- a/test/builtins/gen/max/453e04.wgsl.expected.glsl
+++ b/test/builtins/gen/max/453e04.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void max_453e04() {
   uvec4 res = max(uvec4(0u, 0u, 0u, 0u), uvec4(0u, 0u, 0u, 0u));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void max_453e04() {
   uvec4 res = max(uvec4(0u, 0u, 0u, 0u), uvec4(0u, 0u, 0u, 0u));
diff --git a/test/builtins/gen/max/462050.wgsl.expected.glsl b/test/builtins/gen/max/462050.wgsl.expected.glsl
index 4242207..7f96940 100644
--- a/test/builtins/gen/max/462050.wgsl.expected.glsl
+++ b/test/builtins/gen/max/462050.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void max_462050() {
   vec2 res = max(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void max_462050() {
   vec2 res = max(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
diff --git a/test/builtins/gen/max/4883ac.wgsl.expected.glsl b/test/builtins/gen/max/4883ac.wgsl.expected.glsl
index f82b20e..9fe4c9e 100644
--- a/test/builtins/gen/max/4883ac.wgsl.expected.glsl
+++ b/test/builtins/gen/max/4883ac.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void max_4883ac() {
   vec3 res = max(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void max_4883ac() {
   vec3 res = max(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
diff --git a/test/builtins/gen/max/85e6bc.wgsl.expected.glsl b/test/builtins/gen/max/85e6bc.wgsl.expected.glsl
index cf6e036..f4f392c 100644
--- a/test/builtins/gen/max/85e6bc.wgsl.expected.glsl
+++ b/test/builtins/gen/max/85e6bc.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void max_85e6bc() {
   ivec4 res = max(ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void max_85e6bc() {
   ivec4 res = max(ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0));
diff --git a/test/builtins/gen/max/a93419.wgsl.expected.glsl b/test/builtins/gen/max/a93419.wgsl.expected.glsl
index 5daddd7..fdb20ad 100644
--- a/test/builtins/gen/max/a93419.wgsl.expected.glsl
+++ b/test/builtins/gen/max/a93419.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void max_a93419() {
   vec4 res = max(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void max_a93419() {
   vec4 res = max(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
diff --git a/test/builtins/gen/max/b1b73a.wgsl.expected.glsl b/test/builtins/gen/max/b1b73a.wgsl.expected.glsl
index f53eb96..157a422 100644
--- a/test/builtins/gen/max/b1b73a.wgsl.expected.glsl
+++ b/test/builtins/gen/max/b1b73a.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void max_b1b73a() {
   uvec3 res = max(uvec3(0u, 0u, 0u), uvec3(0u, 0u, 0u));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void max_b1b73a() {
   uvec3 res = max(uvec3(0u, 0u, 0u), uvec3(0u, 0u, 0u));
diff --git a/test/builtins/gen/max/ce7c30.wgsl.expected.glsl b/test/builtins/gen/max/ce7c30.wgsl.expected.glsl
index 470b30c..a17e0bc 100644
--- a/test/builtins/gen/max/ce7c30.wgsl.expected.glsl
+++ b/test/builtins/gen/max/ce7c30.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void max_ce7c30() {
   int res = max(1, 1);
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void max_ce7c30() {
   int res = max(1, 1);
diff --git a/test/builtins/gen/max/e8192f.wgsl.expected.glsl b/test/builtins/gen/max/e8192f.wgsl.expected.glsl
index bf322b9..5a98868 100644
--- a/test/builtins/gen/max/e8192f.wgsl.expected.glsl
+++ b/test/builtins/gen/max/e8192f.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void max_e8192f() {
   ivec2 res = max(ivec2(0, 0), ivec2(0, 0));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void max_e8192f() {
   ivec2 res = max(ivec2(0, 0), ivec2(0, 0));
diff --git a/test/builtins/gen/min/03c7e3.wgsl.expected.glsl b/test/builtins/gen/min/03c7e3.wgsl.expected.glsl
index e5d154f..6957c38 100644
--- a/test/builtins/gen/min/03c7e3.wgsl.expected.glsl
+++ b/test/builtins/gen/min/03c7e3.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void min_03c7e3() {
   ivec2 res = min(ivec2(0, 0), ivec2(0, 0));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void min_03c7e3() {
   ivec2 res = min(ivec2(0, 0), ivec2(0, 0));
diff --git a/test/builtins/gen/min/0dc614.wgsl.expected.glsl b/test/builtins/gen/min/0dc614.wgsl.expected.glsl
index 0f8cb32..bf9f982 100644
--- a/test/builtins/gen/min/0dc614.wgsl.expected.glsl
+++ b/test/builtins/gen/min/0dc614.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void min_0dc614() {
   uvec4 res = min(uvec4(0u, 0u, 0u, 0u), uvec4(0u, 0u, 0u, 0u));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void min_0dc614() {
   uvec4 res = min(uvec4(0u, 0u, 0u, 0u), uvec4(0u, 0u, 0u, 0u));
diff --git a/test/builtins/gen/min/3941e1.wgsl.expected.glsl b/test/builtins/gen/min/3941e1.wgsl.expected.glsl
index 9ada220..dc3a809 100644
--- a/test/builtins/gen/min/3941e1.wgsl.expected.glsl
+++ b/test/builtins/gen/min/3941e1.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void min_3941e1() {
   ivec4 res = min(ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void min_3941e1() {
   ivec4 res = min(ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0));
diff --git a/test/builtins/gen/min/46c5d3.wgsl.expected.glsl b/test/builtins/gen/min/46c5d3.wgsl.expected.glsl
index fc70ab2..3e6980d 100644
--- a/test/builtins/gen/min/46c5d3.wgsl.expected.glsl
+++ b/test/builtins/gen/min/46c5d3.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void min_46c5d3() {
   uint res = min(1u, 1u);
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void min_46c5d3() {
   uint res = min(1u, 1u);
diff --git a/test/builtins/gen/min/82b28f.wgsl.expected.glsl b/test/builtins/gen/min/82b28f.wgsl.expected.glsl
index 79b76c1..443539d 100644
--- a/test/builtins/gen/min/82b28f.wgsl.expected.glsl
+++ b/test/builtins/gen/min/82b28f.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void min_82b28f() {
   uvec2 res = min(uvec2(0u, 0u), uvec2(0u, 0u));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void min_82b28f() {
   uvec2 res = min(uvec2(0u, 0u), uvec2(0u, 0u));
diff --git a/test/builtins/gen/min/93cfc4.wgsl.expected.glsl b/test/builtins/gen/min/93cfc4.wgsl.expected.glsl
index f1b7daa..10a28da 100644
--- a/test/builtins/gen/min/93cfc4.wgsl.expected.glsl
+++ b/test/builtins/gen/min/93cfc4.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void min_93cfc4() {
   vec3 res = min(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void min_93cfc4() {
   vec3 res = min(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
diff --git a/test/builtins/gen/min/a45171.wgsl.expected.glsl b/test/builtins/gen/min/a45171.wgsl.expected.glsl
index ee3ce20..fa52fc4 100644
--- a/test/builtins/gen/min/a45171.wgsl.expected.glsl
+++ b/test/builtins/gen/min/a45171.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void min_a45171() {
   ivec3 res = min(ivec3(0, 0, 0), ivec3(0, 0, 0));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void min_a45171() {
   ivec3 res = min(ivec3(0, 0, 0), ivec3(0, 0, 0));
diff --git a/test/builtins/gen/min/aa28ad.wgsl.expected.glsl b/test/builtins/gen/min/aa28ad.wgsl.expected.glsl
index 9833c79..4e89f3e 100644
--- a/test/builtins/gen/min/aa28ad.wgsl.expected.glsl
+++ b/test/builtins/gen/min/aa28ad.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void min_aa28ad() {
   vec2 res = min(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void min_aa28ad() {
   vec2 res = min(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
diff --git a/test/builtins/gen/min/af326d.wgsl.expected.glsl b/test/builtins/gen/min/af326d.wgsl.expected.glsl
index aa066a9..d44ae03 100644
--- a/test/builtins/gen/min/af326d.wgsl.expected.glsl
+++ b/test/builtins/gen/min/af326d.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void min_af326d() {
   float res = min(1.0f, 1.0f);
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void min_af326d() {
   float res = min(1.0f, 1.0f);
diff --git a/test/builtins/gen/min/c70bb7.wgsl.expected.glsl b/test/builtins/gen/min/c70bb7.wgsl.expected.glsl
index 84a8276..8c3ef08 100644
--- a/test/builtins/gen/min/c70bb7.wgsl.expected.glsl
+++ b/test/builtins/gen/min/c70bb7.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void min_c70bb7() {
   uvec3 res = min(uvec3(0u, 0u, 0u), uvec3(0u, 0u, 0u));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void min_c70bb7() {
   uvec3 res = min(uvec3(0u, 0u, 0u), uvec3(0u, 0u, 0u));
diff --git a/test/builtins/gen/min/c73147.wgsl.expected.glsl b/test/builtins/gen/min/c73147.wgsl.expected.glsl
index dc5d0a0..eed7a64 100644
--- a/test/builtins/gen/min/c73147.wgsl.expected.glsl
+++ b/test/builtins/gen/min/c73147.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void min_c73147() {
   int res = min(1, 1);
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void min_c73147() {
   int res = min(1, 1);
diff --git a/test/builtins/gen/min/c76fa6.wgsl.expected.glsl b/test/builtins/gen/min/c76fa6.wgsl.expected.glsl
index 5ac7d78..420193d 100644
--- a/test/builtins/gen/min/c76fa6.wgsl.expected.glsl
+++ b/test/builtins/gen/min/c76fa6.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void min_c76fa6() {
   vec4 res = min(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void min_c76fa6() {
   vec4 res = min(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
diff --git a/test/builtins/gen/mix/0c8c33.wgsl.expected.glsl b/test/builtins/gen/mix/0c8c33.wgsl.expected.glsl
index 9aa4a99..c3d0c30 100644
--- a/test/builtins/gen/mix/0c8c33.wgsl.expected.glsl
+++ b/test/builtins/gen/mix/0c8c33.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void mix_0c8c33() {
   vec3 res = mix(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void mix_0c8c33() {
   vec3 res = mix(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
diff --git a/test/builtins/gen/mix/1faeb1.wgsl.expected.glsl b/test/builtins/gen/mix/1faeb1.wgsl.expected.glsl
index 029fe15..7025293 100644
--- a/test/builtins/gen/mix/1faeb1.wgsl.expected.glsl
+++ b/test/builtins/gen/mix/1faeb1.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void mix_1faeb1() {
   vec4 res = mix(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), 1.0f);
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void mix_1faeb1() {
   vec4 res = mix(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), 1.0f);
diff --git a/test/builtins/gen/mix/2fadab.wgsl.expected.glsl b/test/builtins/gen/mix/2fadab.wgsl.expected.glsl
index 99c8c80..6118a46 100644
--- a/test/builtins/gen/mix/2fadab.wgsl.expected.glsl
+++ b/test/builtins/gen/mix/2fadab.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void mix_2fadab() {
   vec2 res = mix(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), 1.0f);
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void mix_2fadab() {
   vec2 res = mix(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), 1.0f);
diff --git a/test/builtins/gen/mix/315264.wgsl.expected.glsl b/test/builtins/gen/mix/315264.wgsl.expected.glsl
index 1b17454..b04c989 100644
--- a/test/builtins/gen/mix/315264.wgsl.expected.glsl
+++ b/test/builtins/gen/mix/315264.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void mix_315264() {
   vec3 res = mix(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), 1.0f);
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void mix_315264() {
   vec3 res = mix(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), 1.0f);
diff --git a/test/builtins/gen/mix/4f0b5e.wgsl.expected.glsl b/test/builtins/gen/mix/4f0b5e.wgsl.expected.glsl
index 076f4dc..a398812 100644
--- a/test/builtins/gen/mix/4f0b5e.wgsl.expected.glsl
+++ b/test/builtins/gen/mix/4f0b5e.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void mix_4f0b5e() {
   float res = mix(1.0f, 1.0f, 1.0f);
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void mix_4f0b5e() {
   float res = mix(1.0f, 1.0f, 1.0f);
diff --git a/test/builtins/gen/mix/6f8adc.wgsl.expected.glsl b/test/builtins/gen/mix/6f8adc.wgsl.expected.glsl
index b42cd3a..10fbb5b 100644
--- a/test/builtins/gen/mix/6f8adc.wgsl.expected.glsl
+++ b/test/builtins/gen/mix/6f8adc.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void mix_6f8adc() {
   vec2 res = mix(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void mix_6f8adc() {
   vec2 res = mix(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
diff --git a/test/builtins/gen/mix/c37ede.wgsl.expected.glsl b/test/builtins/gen/mix/c37ede.wgsl.expected.glsl
index 9b42c94..6b46b25 100644
--- a/test/builtins/gen/mix/c37ede.wgsl.expected.glsl
+++ b/test/builtins/gen/mix/c37ede.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void mix_c37ede() {
   vec4 res = mix(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void mix_c37ede() {
   vec4 res = mix(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
diff --git a/test/builtins/gen/modf/180fed.wgsl.expected.glsl b/test/builtins/gen/modf/180fed.wgsl.expected.glsl
index aa46a23..e99661d 100644
--- a/test/builtins/gen/modf/180fed.wgsl.expected.glsl
+++ b/test/builtins/gen/modf/180fed.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 struct modf_result {
   float fract;
@@ -33,8 +32,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:12: '{ } style initializers' : not supported with this profile: es
-ERROR: 0:12: '' : compilation terminated 
+ERROR: 0:11: '{ } style initializers' : not supported with this profile: es
+ERROR: 0:11: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -75,7 +74,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 struct modf_result {
   float fract;
@@ -104,8 +102,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:12: '{ } style initializers' : not supported with this profile: es
-ERROR: 0:12: '' : compilation terminated 
+ERROR: 0:11: '{ } style initializers' : not supported with this profile: es
+ERROR: 0:11: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/modf/9b75f7.wgsl.expected.glsl b/test/builtins/gen/modf/9b75f7.wgsl.expected.glsl
index 236dd37..9280f97 100644
--- a/test/builtins/gen/modf/9b75f7.wgsl.expected.glsl
+++ b/test/builtins/gen/modf/9b75f7.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 struct modf_result_vec3 {
   vec3 fract;
@@ -33,8 +32,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:10: 'float3' : undeclared identifier 
-ERROR: 0:10: '' : compilation terminated 
+ERROR: 0:9: 'float3' : undeclared identifier 
+ERROR: 0:9: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -75,7 +74,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 struct modf_result_vec3 {
   vec3 fract;
@@ -104,8 +102,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:10: 'float3' : undeclared identifier 
-ERROR: 0:10: '' : compilation terminated 
+ERROR: 0:9: 'float3' : undeclared identifier 
+ERROR: 0:9: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/modf/ec2dbc.wgsl.expected.glsl b/test/builtins/gen/modf/ec2dbc.wgsl.expected.glsl
index d4a28d0..eda1680 100644
--- a/test/builtins/gen/modf/ec2dbc.wgsl.expected.glsl
+++ b/test/builtins/gen/modf/ec2dbc.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 struct modf_result_vec4 {
   vec4 fract;
@@ -33,8 +32,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:10: 'float4' : undeclared identifier 
-ERROR: 0:10: '' : compilation terminated 
+ERROR: 0:9: 'float4' : undeclared identifier 
+ERROR: 0:9: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -75,7 +74,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 struct modf_result_vec4 {
   vec4 fract;
@@ -104,8 +102,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:10: 'float4' : undeclared identifier 
-ERROR: 0:10: '' : compilation terminated 
+ERROR: 0:9: 'float4' : undeclared identifier 
+ERROR: 0:9: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/modf/f5f20d.wgsl.expected.glsl b/test/builtins/gen/modf/f5f20d.wgsl.expected.glsl
index 5911f45..0e7f161 100644
--- a/test/builtins/gen/modf/f5f20d.wgsl.expected.glsl
+++ b/test/builtins/gen/modf/f5f20d.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 struct modf_result_vec2 {
   vec2 fract;
@@ -33,8 +32,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:10: 'float2' : undeclared identifier 
-ERROR: 0:10: '' : compilation terminated 
+ERROR: 0:9: 'float2' : undeclared identifier 
+ERROR: 0:9: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -75,7 +74,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 struct modf_result_vec2 {
   vec2 fract;
@@ -104,8 +102,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:10: 'float2' : undeclared identifier 
-ERROR: 0:10: '' : compilation terminated 
+ERROR: 0:9: 'float2' : undeclared identifier 
+ERROR: 0:9: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/normalize/64d8c0.wgsl.expected.glsl b/test/builtins/gen/normalize/64d8c0.wgsl.expected.glsl
index 80a6702..3077ff8 100644
--- a/test/builtins/gen/normalize/64d8c0.wgsl.expected.glsl
+++ b/test/builtins/gen/normalize/64d8c0.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void normalize_64d8c0() {
   vec3 res = normalize(vec3(0.0f, 0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void normalize_64d8c0() {
   vec3 res = normalize(vec3(0.0f, 0.0f, 0.0f));
diff --git a/test/builtins/gen/normalize/9a0aab.wgsl.expected.glsl b/test/builtins/gen/normalize/9a0aab.wgsl.expected.glsl
index 4b415e0..75e0551 100644
--- a/test/builtins/gen/normalize/9a0aab.wgsl.expected.glsl
+++ b/test/builtins/gen/normalize/9a0aab.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void normalize_9a0aab() {
   vec4 res = normalize(vec4(0.0f, 0.0f, 0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void normalize_9a0aab() {
   vec4 res = normalize(vec4(0.0f, 0.0f, 0.0f, 0.0f));
diff --git a/test/builtins/gen/normalize/fc2ef1.wgsl.expected.glsl b/test/builtins/gen/normalize/fc2ef1.wgsl.expected.glsl
index 572d2b3..12813ab 100644
--- a/test/builtins/gen/normalize/fc2ef1.wgsl.expected.glsl
+++ b/test/builtins/gen/normalize/fc2ef1.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void normalize_fc2ef1() {
   vec2 res = normalize(vec2(0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void normalize_fc2ef1() {
   vec2 res = normalize(vec2(0.0f, 0.0f));
diff --git a/test/builtins/gen/pack2x16float/0e97b3.wgsl.expected.glsl b/test/builtins/gen/pack2x16float/0e97b3.wgsl.expected.glsl
index e4afbe9..11af2ae 100644
--- a/test/builtins/gen/pack2x16float/0e97b3.wgsl.expected.glsl
+++ b/test/builtins/gen/pack2x16float/0e97b3.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 uint tint_pack2x16float(vec2 param_0) {
   uint2 i = f32tof16(param_0);
@@ -26,8 +25,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'uint2' : undeclared identifier 
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'uint2' : undeclared identifier 
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -61,7 +60,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 uint tint_pack2x16float(vec2 param_0) {
   uint2 i = f32tof16(param_0);
@@ -83,8 +81,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'uint2' : undeclared identifier 
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'uint2' : undeclared identifier 
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/pack2x16snorm/6c169b.wgsl.expected.glsl b/test/builtins/gen/pack2x16snorm/6c169b.wgsl.expected.glsl
index d96b685..e15e362 100644
--- a/test/builtins/gen/pack2x16snorm/6c169b.wgsl.expected.glsl
+++ b/test/builtins/gen/pack2x16snorm/6c169b.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 uint tint_pack2x16snorm(vec2 param_0) {
   int2 i = int2(round(clamp(param_0, -1.0, 1.0) * 32767.0)) & 0xffff;
@@ -26,8 +25,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'int2' : undeclared identifier 
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'int2' : undeclared identifier 
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -61,7 +60,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 uint tint_pack2x16snorm(vec2 param_0) {
   int2 i = int2(round(clamp(param_0, -1.0, 1.0) * 32767.0)) & 0xffff;
@@ -83,8 +81,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'int2' : undeclared identifier 
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'int2' : undeclared identifier 
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/pack2x16unorm/0f08e4.wgsl.expected.glsl b/test/builtins/gen/pack2x16unorm/0f08e4.wgsl.expected.glsl
index 0d07a9d..8f028de 100644
--- a/test/builtins/gen/pack2x16unorm/0f08e4.wgsl.expected.glsl
+++ b/test/builtins/gen/pack2x16unorm/0f08e4.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 uint tint_pack2x16unorm(vec2 param_0) {
   uint2 i = uint2(round(clamp(param_0, 0.0, 1.0) * 65535.0));
@@ -26,8 +25,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'uint2' : undeclared identifier 
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'uint2' : undeclared identifier 
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -61,7 +60,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 uint tint_pack2x16unorm(vec2 param_0) {
   uint2 i = uint2(round(clamp(param_0, 0.0, 1.0) * 65535.0));
@@ -83,8 +81,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'uint2' : undeclared identifier 
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'uint2' : undeclared identifier 
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/pack4x8snorm/4d22e7.wgsl.expected.glsl b/test/builtins/gen/pack4x8snorm/4d22e7.wgsl.expected.glsl
index 45a85c9..680b2c6 100644
--- a/test/builtins/gen/pack4x8snorm/4d22e7.wgsl.expected.glsl
+++ b/test/builtins/gen/pack4x8snorm/4d22e7.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 uint tint_pack4x8snorm(vec4 param_0) {
   int4 i = int4(round(clamp(param_0, -1.0, 1.0) * 127.0)) & 0xff;
@@ -26,8 +25,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'int4' : undeclared identifier 
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'int4' : undeclared identifier 
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -61,7 +60,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 uint tint_pack4x8snorm(vec4 param_0) {
   int4 i = int4(round(clamp(param_0, -1.0, 1.0) * 127.0)) & 0xff;
@@ -83,8 +81,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'int4' : undeclared identifier 
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'int4' : undeclared identifier 
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/pack4x8unorm/95c456.wgsl.expected.glsl b/test/builtins/gen/pack4x8unorm/95c456.wgsl.expected.glsl
index f624f5c..0cd9a8a 100644
--- a/test/builtins/gen/pack4x8unorm/95c456.wgsl.expected.glsl
+++ b/test/builtins/gen/pack4x8unorm/95c456.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 uint tint_pack4x8unorm(vec4 param_0) {
   uint4 i = uint4(round(clamp(param_0, 0.0, 1.0) * 255.0));
@@ -26,8 +25,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'uint4' : undeclared identifier 
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'uint4' : undeclared identifier 
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -61,7 +60,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 uint tint_pack4x8unorm(vec4 param_0) {
   uint4 i = uint4(round(clamp(param_0, 0.0, 1.0) * 255.0));
@@ -83,8 +81,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'uint4' : undeclared identifier 
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'uint4' : undeclared identifier 
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/pow/04a908.wgsl.expected.glsl b/test/builtins/gen/pow/04a908.wgsl.expected.glsl
index 10dfe85..e0e9f31 100644
--- a/test/builtins/gen/pow/04a908.wgsl.expected.glsl
+++ b/test/builtins/gen/pow/04a908.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void pow_04a908() {
   vec4 res = pow(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void pow_04a908() {
   vec4 res = pow(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
diff --git a/test/builtins/gen/pow/46e029.wgsl.expected.glsl b/test/builtins/gen/pow/46e029.wgsl.expected.glsl
index 9597554..cf440e4 100644
--- a/test/builtins/gen/pow/46e029.wgsl.expected.glsl
+++ b/test/builtins/gen/pow/46e029.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void pow_46e029() {
   float res = pow(1.0f, 1.0f);
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void pow_46e029() {
   float res = pow(1.0f, 1.0f);
diff --git a/test/builtins/gen/pow/4a46c9.wgsl.expected.glsl b/test/builtins/gen/pow/4a46c9.wgsl.expected.glsl
index 78d361b..014164e 100644
--- a/test/builtins/gen/pow/4a46c9.wgsl.expected.glsl
+++ b/test/builtins/gen/pow/4a46c9.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void pow_4a46c9() {
   vec3 res = pow(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void pow_4a46c9() {
   vec3 res = pow(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
diff --git a/test/builtins/gen/pow/e60ea5.wgsl.expected.glsl b/test/builtins/gen/pow/e60ea5.wgsl.expected.glsl
index d578be9..04d0a27 100644
--- a/test/builtins/gen/pow/e60ea5.wgsl.expected.glsl
+++ b/test/builtins/gen/pow/e60ea5.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void pow_e60ea5() {
   vec2 res = pow(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void pow_e60ea5() {
   vec2 res = pow(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
diff --git a/test/builtins/gen/radians/09b7fc.wgsl.expected.glsl b/test/builtins/gen/radians/09b7fc.wgsl.expected.glsl
index d2467bf..8cf9511 100644
--- a/test/builtins/gen/radians/09b7fc.wgsl.expected.glsl
+++ b/test/builtins/gen/radians/09b7fc.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 vec4 tint_radians(vec4 param_0) {
   return param_0 * 0.017453292519943295474;
@@ -43,7 +42,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 vec4 tint_radians(vec4 param_0) {
   return param_0 * 0.017453292519943295474;
diff --git a/test/builtins/gen/radians/61687a.wgsl.expected.glsl b/test/builtins/gen/radians/61687a.wgsl.expected.glsl
index 0894f0a..e3ecd21 100644
--- a/test/builtins/gen/radians/61687a.wgsl.expected.glsl
+++ b/test/builtins/gen/radians/61687a.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 vec2 tint_radians(vec2 param_0) {
   return param_0 * 0.017453292519943295474;
@@ -43,7 +42,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 vec2 tint_radians(vec2 param_0) {
   return param_0 * 0.017453292519943295474;
diff --git a/test/builtins/gen/radians/6b0ff2.wgsl.expected.glsl b/test/builtins/gen/radians/6b0ff2.wgsl.expected.glsl
index a5b5bb6..34cf707 100644
--- a/test/builtins/gen/radians/6b0ff2.wgsl.expected.glsl
+++ b/test/builtins/gen/radians/6b0ff2.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 float tint_radians(float param_0) {
   return param_0 * 0.017453292519943295474;
@@ -43,7 +42,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 float tint_radians(float param_0) {
   return param_0 * 0.017453292519943295474;
diff --git a/test/builtins/gen/radians/f96258.wgsl.expected.glsl b/test/builtins/gen/radians/f96258.wgsl.expected.glsl
index 729c8b5..6eec3f0 100644
--- a/test/builtins/gen/radians/f96258.wgsl.expected.glsl
+++ b/test/builtins/gen/radians/f96258.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 vec3 tint_radians(vec3 param_0) {
   return param_0 * 0.017453292519943295474;
@@ -43,7 +42,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 vec3 tint_radians(vec3 param_0) {
   return param_0 * 0.017453292519943295474;
diff --git a/test/builtins/gen/reflect/05357e.wgsl.expected.glsl b/test/builtins/gen/reflect/05357e.wgsl.expected.glsl
index 14f04b1..363f38f 100644
--- a/test/builtins/gen/reflect/05357e.wgsl.expected.glsl
+++ b/test/builtins/gen/reflect/05357e.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void reflect_05357e() {
   vec4 res = reflect(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void reflect_05357e() {
   vec4 res = reflect(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
diff --git a/test/builtins/gen/reflect/b61e10.wgsl.expected.glsl b/test/builtins/gen/reflect/b61e10.wgsl.expected.glsl
index 8aa0402..a63a549 100644
--- a/test/builtins/gen/reflect/b61e10.wgsl.expected.glsl
+++ b/test/builtins/gen/reflect/b61e10.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void reflect_b61e10() {
   vec2 res = reflect(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void reflect_b61e10() {
   vec2 res = reflect(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
diff --git a/test/builtins/gen/reflect/f47fdb.wgsl.expected.glsl b/test/builtins/gen/reflect/f47fdb.wgsl.expected.glsl
index 71cc9ec..23c4fef 100644
--- a/test/builtins/gen/reflect/f47fdb.wgsl.expected.glsl
+++ b/test/builtins/gen/reflect/f47fdb.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void reflect_f47fdb() {
   vec3 res = reflect(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void reflect_f47fdb() {
   vec3 res = reflect(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
diff --git a/test/builtins/gen/refract/7e02e6.wgsl.expected.glsl b/test/builtins/gen/refract/7e02e6.wgsl.expected.glsl
index 8e4be77..6f1f8b5 100644
--- a/test/builtins/gen/refract/7e02e6.wgsl.expected.glsl
+++ b/test/builtins/gen/refract/7e02e6.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void refract_7e02e6() {
   vec4 res = refract(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), 1.0f);
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void refract_7e02e6() {
   vec4 res = refract(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), 1.0f);
diff --git a/test/builtins/gen/refract/cbc1d2.wgsl.expected.glsl b/test/builtins/gen/refract/cbc1d2.wgsl.expected.glsl
index 37a29b5..53df9fe 100644
--- a/test/builtins/gen/refract/cbc1d2.wgsl.expected.glsl
+++ b/test/builtins/gen/refract/cbc1d2.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void refract_cbc1d2() {
   vec3 res = refract(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), 1.0f);
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void refract_cbc1d2() {
   vec3 res = refract(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), 1.0f);
diff --git a/test/builtins/gen/refract/cd905f.wgsl.expected.glsl b/test/builtins/gen/refract/cd905f.wgsl.expected.glsl
index 5742084..25223ff 100644
--- a/test/builtins/gen/refract/cd905f.wgsl.expected.glsl
+++ b/test/builtins/gen/refract/cd905f.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void refract_cd905f() {
   vec2 res = refract(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), 1.0f);
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void refract_cd905f() {
   vec2 res = refract(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), 1.0f);
diff --git a/test/builtins/gen/reverseBits/222177.wgsl.expected.glsl b/test/builtins/gen/reverseBits/222177.wgsl.expected.glsl
index 997a045..38d027f9 100644
--- a/test/builtins/gen/reverseBits/222177.wgsl.expected.glsl
+++ b/test/builtins/gen/reverseBits/222177.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 void reverseBits_222177() {
   ivec2 res = reversebits(ivec2(0, 0));
@@ -20,9 +19,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'reversebits' : no matching overloaded function found 
-ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp 2-component vector of int'
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'reversebits' : no matching overloaded function found 
+ERROR: 0:4: '=' :  cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
@@ -51,7 +50,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 void reverseBits_222177() {
   ivec2 res = reversebits(ivec2(0, 0));
@@ -67,9 +65,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'reversebits' : no matching overloaded function found 
-ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp 2-component vector of int'
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'reversebits' : no matching overloaded function found 
+ERROR: 0:4: '=' :  cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/reverseBits/35fea9.wgsl.expected.glsl b/test/builtins/gen/reverseBits/35fea9.wgsl.expected.glsl
index 1a6b1aa..dba2f0b 100644
--- a/test/builtins/gen/reverseBits/35fea9.wgsl.expected.glsl
+++ b/test/builtins/gen/reverseBits/35fea9.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 void reverseBits_35fea9() {
   uvec4 res = reversebits(uvec4(0u, 0u, 0u, 0u));
@@ -20,9 +19,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'reversebits' : no matching overloaded function found 
-ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp 4-component vector of uint'
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'reversebits' : no matching overloaded function found 
+ERROR: 0:4: '=' :  cannot convert from ' const float' to ' temp highp 4-component vector of uint'
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
@@ -51,7 +50,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 void reverseBits_35fea9() {
   uvec4 res = reversebits(uvec4(0u, 0u, 0u, 0u));
@@ -67,9 +65,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'reversebits' : no matching overloaded function found 
-ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp 4-component vector of uint'
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'reversebits' : no matching overloaded function found 
+ERROR: 0:4: '=' :  cannot convert from ' const float' to ' temp highp 4-component vector of uint'
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/reverseBits/4dbd6f.wgsl.expected.glsl b/test/builtins/gen/reverseBits/4dbd6f.wgsl.expected.glsl
index 1bb351a..0bd7700 100644
--- a/test/builtins/gen/reverseBits/4dbd6f.wgsl.expected.glsl
+++ b/test/builtins/gen/reverseBits/4dbd6f.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 void reverseBits_4dbd6f() {
   ivec4 res = reversebits(ivec4(0, 0, 0, 0));
@@ -20,9 +19,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'reversebits' : no matching overloaded function found 
-ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp 4-component vector of int'
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'reversebits' : no matching overloaded function found 
+ERROR: 0:4: '=' :  cannot convert from ' const float' to ' temp highp 4-component vector of int'
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
@@ -51,7 +50,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 void reverseBits_4dbd6f() {
   ivec4 res = reversebits(ivec4(0, 0, 0, 0));
@@ -67,9 +65,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'reversebits' : no matching overloaded function found 
-ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp 4-component vector of int'
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'reversebits' : no matching overloaded function found 
+ERROR: 0:4: '=' :  cannot convert from ' const float' to ' temp highp 4-component vector of int'
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/reverseBits/7c4269.wgsl.expected.glsl b/test/builtins/gen/reverseBits/7c4269.wgsl.expected.glsl
index dc56224..be1c701 100644
--- a/test/builtins/gen/reverseBits/7c4269.wgsl.expected.glsl
+++ b/test/builtins/gen/reverseBits/7c4269.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 void reverseBits_7c4269() {
   int res = reversebits(1);
@@ -20,9 +19,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'reversebits' : no matching overloaded function found 
-ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp int'
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'reversebits' : no matching overloaded function found 
+ERROR: 0:4: '=' :  cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
@@ -51,7 +50,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 void reverseBits_7c4269() {
   int res = reversebits(1);
@@ -67,9 +65,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'reversebits' : no matching overloaded function found 
-ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp int'
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'reversebits' : no matching overloaded function found 
+ERROR: 0:4: '=' :  cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/reverseBits/a6ccd4.wgsl.expected.glsl b/test/builtins/gen/reverseBits/a6ccd4.wgsl.expected.glsl
index 355b5fa..0458f71 100644
--- a/test/builtins/gen/reverseBits/a6ccd4.wgsl.expected.glsl
+++ b/test/builtins/gen/reverseBits/a6ccd4.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 void reverseBits_a6ccd4() {
   uvec3 res = reversebits(uvec3(0u, 0u, 0u));
@@ -20,9 +19,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'reversebits' : no matching overloaded function found 
-ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp 3-component vector of uint'
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'reversebits' : no matching overloaded function found 
+ERROR: 0:4: '=' :  cannot convert from ' const float' to ' temp highp 3-component vector of uint'
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
@@ -51,7 +50,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 void reverseBits_a6ccd4() {
   uvec3 res = reversebits(uvec3(0u, 0u, 0u));
@@ -67,9 +65,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'reversebits' : no matching overloaded function found 
-ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp 3-component vector of uint'
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'reversebits' : no matching overloaded function found 
+ERROR: 0:4: '=' :  cannot convert from ' const float' to ' temp highp 3-component vector of uint'
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/reverseBits/c21bc1.wgsl.expected.glsl b/test/builtins/gen/reverseBits/c21bc1.wgsl.expected.glsl
index 2132f70..a595a34 100644
--- a/test/builtins/gen/reverseBits/c21bc1.wgsl.expected.glsl
+++ b/test/builtins/gen/reverseBits/c21bc1.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 void reverseBits_c21bc1() {
   ivec3 res = reversebits(ivec3(0, 0, 0));
@@ -20,9 +19,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'reversebits' : no matching overloaded function found 
-ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp 3-component vector of int'
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'reversebits' : no matching overloaded function found 
+ERROR: 0:4: '=' :  cannot convert from ' const float' to ' temp highp 3-component vector of int'
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
@@ -51,7 +50,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 void reverseBits_c21bc1() {
   ivec3 res = reversebits(ivec3(0, 0, 0));
@@ -67,9 +65,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'reversebits' : no matching overloaded function found 
-ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp 3-component vector of int'
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'reversebits' : no matching overloaded function found 
+ERROR: 0:4: '=' :  cannot convert from ' const float' to ' temp highp 3-component vector of int'
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/reverseBits/e1f4c1.wgsl.expected.glsl b/test/builtins/gen/reverseBits/e1f4c1.wgsl.expected.glsl
index 77c6c6a..b9e7aa6 100644
--- a/test/builtins/gen/reverseBits/e1f4c1.wgsl.expected.glsl
+++ b/test/builtins/gen/reverseBits/e1f4c1.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 void reverseBits_e1f4c1() {
   uvec2 res = reversebits(uvec2(0u, 0u));
@@ -20,9 +19,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'reversebits' : no matching overloaded function found 
-ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp 2-component vector of uint'
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'reversebits' : no matching overloaded function found 
+ERROR: 0:4: '=' :  cannot convert from ' const float' to ' temp highp 2-component vector of uint'
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
@@ -51,7 +50,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 void reverseBits_e1f4c1() {
   uvec2 res = reversebits(uvec2(0u, 0u));
@@ -67,9 +65,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'reversebits' : no matching overloaded function found 
-ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp 2-component vector of uint'
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'reversebits' : no matching overloaded function found 
+ERROR: 0:4: '=' :  cannot convert from ' const float' to ' temp highp 2-component vector of uint'
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/reverseBits/e31adf.wgsl.expected.glsl b/test/builtins/gen/reverseBits/e31adf.wgsl.expected.glsl
index a30d33d..9e0c292 100644
--- a/test/builtins/gen/reverseBits/e31adf.wgsl.expected.glsl
+++ b/test/builtins/gen/reverseBits/e31adf.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 void reverseBits_e31adf() {
   uint res = reversebits(1u);
@@ -20,9 +19,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'reversebits' : no matching overloaded function found 
-ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp uint'
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'reversebits' : no matching overloaded function found 
+ERROR: 0:4: '=' :  cannot convert from ' const float' to ' temp highp uint'
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
@@ -51,7 +50,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 void reverseBits_e31adf() {
   uint res = reversebits(1u);
@@ -67,9 +65,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: 'reversebits' : no matching overloaded function found 
-ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp uint'
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: 'reversebits' : no matching overloaded function found 
+ERROR: 0:4: '=' :  cannot convert from ' const float' to ' temp highp uint'
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/round/106c0b.wgsl.expected.glsl b/test/builtins/gen/round/106c0b.wgsl.expected.glsl
index e970e88..af7bbae 100644
--- a/test/builtins/gen/round/106c0b.wgsl.expected.glsl
+++ b/test/builtins/gen/round/106c0b.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void round_106c0b() {
   vec4 res = round(vec4(0.0f, 0.0f, 0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void round_106c0b() {
   vec4 res = round(vec4(0.0f, 0.0f, 0.0f, 0.0f));
diff --git a/test/builtins/gen/round/1c7897.wgsl.expected.glsl b/test/builtins/gen/round/1c7897.wgsl.expected.glsl
index c506bac..78ef1c7 100644
--- a/test/builtins/gen/round/1c7897.wgsl.expected.glsl
+++ b/test/builtins/gen/round/1c7897.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void round_1c7897() {
   vec3 res = round(vec3(0.0f, 0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void round_1c7897() {
   vec3 res = round(vec3(0.0f, 0.0f, 0.0f));
diff --git a/test/builtins/gen/round/52c84d.wgsl.expected.glsl b/test/builtins/gen/round/52c84d.wgsl.expected.glsl
index 94b648b..82254c0 100644
--- a/test/builtins/gen/round/52c84d.wgsl.expected.glsl
+++ b/test/builtins/gen/round/52c84d.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void round_52c84d() {
   vec2 res = round(vec2(0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void round_52c84d() {
   vec2 res = round(vec2(0.0f, 0.0f));
diff --git a/test/builtins/gen/round/9edc38.wgsl.expected.glsl b/test/builtins/gen/round/9edc38.wgsl.expected.glsl
index e76ae77..ea0c194 100644
--- a/test/builtins/gen/round/9edc38.wgsl.expected.glsl
+++ b/test/builtins/gen/round/9edc38.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void round_9edc38() {
   float res = round(1.0f);
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void round_9edc38() {
   float res = round(1.0f);
diff --git a/test/builtins/gen/select/00b848.wgsl.expected.glsl b/test/builtins/gen/select/00b848.wgsl.expected.glsl
index 7b6954a..5e70f86 100644
--- a/test/builtins/gen/select/00b848.wgsl.expected.glsl
+++ b/test/builtins/gen/select/00b848.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 void select_00b848() {
   ivec2 res = (bvec2(false, false) ? ivec2(0, 0) : ivec2(0, 0));
@@ -20,8 +19,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: '' : boolean expression expected 
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: '' : boolean expression expected 
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -49,7 +48,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 void select_00b848() {
   ivec2 res = (bvec2(false, false) ? ivec2(0, 0) : ivec2(0, 0));
@@ -65,8 +63,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: '' : boolean expression expected 
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: '' : boolean expression expected 
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/select/01e2cd.wgsl.expected.glsl b/test/builtins/gen/select/01e2cd.wgsl.expected.glsl
index 477c925..3fcc3c7 100644
--- a/test/builtins/gen/select/01e2cd.wgsl.expected.glsl
+++ b/test/builtins/gen/select/01e2cd.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 void select_01e2cd() {
   ivec3 res = (bvec3(false, false, false) ? ivec3(0, 0, 0) : ivec3(0, 0, 0));
@@ -20,8 +19,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: '' : boolean expression expected 
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: '' : boolean expression expected 
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -49,7 +48,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 void select_01e2cd() {
   ivec3 res = (bvec3(false, false, false) ? ivec3(0, 0, 0) : ivec3(0, 0, 0));
@@ -65,8 +63,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: '' : boolean expression expected 
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: '' : boolean expression expected 
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/select/087ea4.wgsl.expected.glsl b/test/builtins/gen/select/087ea4.wgsl.expected.glsl
index 037a6a4..20a9426 100644
--- a/test/builtins/gen/select/087ea4.wgsl.expected.glsl
+++ b/test/builtins/gen/select/087ea4.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void select_087ea4() {
   uvec4 res = (false ? uvec4(0u, 0u, 0u, 0u) : uvec4(0u, 0u, 0u, 0u));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void select_087ea4() {
   uvec4 res = (false ? uvec4(0u, 0u, 0u, 0u) : uvec4(0u, 0u, 0u, 0u));
diff --git a/test/builtins/gen/select/1e960b.wgsl.expected.glsl b/test/builtins/gen/select/1e960b.wgsl.expected.glsl
index 0a06c7e..3046b79 100644
--- a/test/builtins/gen/select/1e960b.wgsl.expected.glsl
+++ b/test/builtins/gen/select/1e960b.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 void select_1e960b() {
   uvec2 res = (bvec2(false, false) ? uvec2(0u, 0u) : uvec2(0u, 0u));
@@ -20,8 +19,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: '' : boolean expression expected 
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: '' : boolean expression expected 
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -49,7 +48,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 void select_1e960b() {
   uvec2 res = (bvec2(false, false) ? uvec2(0u, 0u) : uvec2(0u, 0u));
@@ -65,8 +63,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: '' : boolean expression expected 
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: '' : boolean expression expected 
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/select/266aff.wgsl.expected.glsl b/test/builtins/gen/select/266aff.wgsl.expected.glsl
index 06c7dea..92a2d9a 100644
--- a/test/builtins/gen/select/266aff.wgsl.expected.glsl
+++ b/test/builtins/gen/select/266aff.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 void select_266aff() {
   vec2 res = (bvec2(false, false) ? vec2(0.0f, 0.0f) : vec2(0.0f, 0.0f));
@@ -20,8 +19,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: '' : boolean expression expected 
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: '' : boolean expression expected 
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -49,7 +48,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 void select_266aff() {
   vec2 res = (bvec2(false, false) ? vec2(0.0f, 0.0f) : vec2(0.0f, 0.0f));
@@ -65,8 +63,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: '' : boolean expression expected 
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: '' : boolean expression expected 
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/select/28a27e.wgsl.expected.glsl b/test/builtins/gen/select/28a27e.wgsl.expected.glsl
index 6ce8510..d9c1e4a 100644
--- a/test/builtins/gen/select/28a27e.wgsl.expected.glsl
+++ b/test/builtins/gen/select/28a27e.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 void select_28a27e() {
   uvec3 res = (bvec3(false, false, false) ? uvec3(0u, 0u, 0u) : uvec3(0u, 0u, 0u));
@@ -20,8 +19,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: '' : boolean expression expected 
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: '' : boolean expression expected 
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -49,7 +48,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 void select_28a27e() {
   uvec3 res = (bvec3(false, false, false) ? uvec3(0u, 0u, 0u) : uvec3(0u, 0u, 0u));
@@ -65,8 +63,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: '' : boolean expression expected 
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: '' : boolean expression expected 
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/select/3c25ce.wgsl.expected.glsl b/test/builtins/gen/select/3c25ce.wgsl.expected.glsl
index baca720..d2a0392 100644
--- a/test/builtins/gen/select/3c25ce.wgsl.expected.glsl
+++ b/test/builtins/gen/select/3c25ce.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void select_3c25ce() {
   bvec3 res = (false ? bvec3(false, false, false) : bvec3(false, false, false));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void select_3c25ce() {
   bvec3 res = (false ? bvec3(false, false, false) : bvec3(false, false, false));
diff --git a/test/builtins/gen/select/416e14.wgsl.expected.glsl b/test/builtins/gen/select/416e14.wgsl.expected.glsl
index 303e09a..755ca28 100644
--- a/test/builtins/gen/select/416e14.wgsl.expected.glsl
+++ b/test/builtins/gen/select/416e14.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void select_416e14() {
   float res = (false ? 1.0f : 1.0f);
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void select_416e14() {
   float res = (false ? 1.0f : 1.0f);
diff --git a/test/builtins/gen/select/51b047.wgsl.expected.glsl b/test/builtins/gen/select/51b047.wgsl.expected.glsl
index 1f2f26e..95cf7c9 100644
--- a/test/builtins/gen/select/51b047.wgsl.expected.glsl
+++ b/test/builtins/gen/select/51b047.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void select_51b047() {
   uvec2 res = (false ? uvec2(0u, 0u) : uvec2(0u, 0u));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void select_51b047() {
   uvec2 res = (false ? uvec2(0u, 0u) : uvec2(0u, 0u));
diff --git a/test/builtins/gen/select/713567.wgsl.expected.glsl b/test/builtins/gen/select/713567.wgsl.expected.glsl
index fd2bfec..5e4019b 100644
--- a/test/builtins/gen/select/713567.wgsl.expected.glsl
+++ b/test/builtins/gen/select/713567.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void select_713567() {
   vec4 res = (false ? vec4(0.0f, 0.0f, 0.0f, 0.0f) : vec4(0.0f, 0.0f, 0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void select_713567() {
   vec4 res = (false ? vec4(0.0f, 0.0f, 0.0f, 0.0f) : vec4(0.0f, 0.0f, 0.0f, 0.0f));
diff --git a/test/builtins/gen/select/78be5f.wgsl.expected.glsl b/test/builtins/gen/select/78be5f.wgsl.expected.glsl
index ff2b925..417df8a 100644
--- a/test/builtins/gen/select/78be5f.wgsl.expected.glsl
+++ b/test/builtins/gen/select/78be5f.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void select_78be5f() {
   vec3 res = (false ? vec3(0.0f, 0.0f, 0.0f) : vec3(0.0f, 0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void select_78be5f() {
   vec3 res = (false ? vec3(0.0f, 0.0f, 0.0f) : vec3(0.0f, 0.0f, 0.0f));
diff --git a/test/builtins/gen/select/80a9a9.wgsl.expected.glsl b/test/builtins/gen/select/80a9a9.wgsl.expected.glsl
index 2d43949..448ce6c1 100644
--- a/test/builtins/gen/select/80a9a9.wgsl.expected.glsl
+++ b/test/builtins/gen/select/80a9a9.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 void select_80a9a9() {
   bvec3 res = (bvec3(false, false, false) ? bvec3(false, false, false) : bvec3(false, false, false));
@@ -20,8 +19,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: '' : boolean expression expected 
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: '' : boolean expression expected 
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -49,7 +48,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 void select_80a9a9() {
   bvec3 res = (bvec3(false, false, false) ? bvec3(false, false, false) : bvec3(false, false, false));
@@ -65,8 +63,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: '' : boolean expression expected 
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: '' : boolean expression expected 
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/select/8fa62c.wgsl.expected.glsl b/test/builtins/gen/select/8fa62c.wgsl.expected.glsl
index 5914cdd..9a2fb83 100644
--- a/test/builtins/gen/select/8fa62c.wgsl.expected.glsl
+++ b/test/builtins/gen/select/8fa62c.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void select_8fa62c() {
   ivec3 res = (false ? ivec3(0, 0, 0) : ivec3(0, 0, 0));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void select_8fa62c() {
   ivec3 res = (false ? ivec3(0, 0, 0) : ivec3(0, 0, 0));
diff --git a/test/builtins/gen/select/99f883.wgsl.expected.glsl b/test/builtins/gen/select/99f883.wgsl.expected.glsl
index 7245819..d58e7ff 100644
--- a/test/builtins/gen/select/99f883.wgsl.expected.glsl
+++ b/test/builtins/gen/select/99f883.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void select_99f883() {
   uint res = (false ? 1u : 1u);
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void select_99f883() {
   uint res = (false ? 1u : 1u);
diff --git a/test/builtins/gen/select/a2860e.wgsl.expected.glsl b/test/builtins/gen/select/a2860e.wgsl.expected.glsl
index 3ca06e2..82f1419 100644
--- a/test/builtins/gen/select/a2860e.wgsl.expected.glsl
+++ b/test/builtins/gen/select/a2860e.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 void select_a2860e() {
   ivec4 res = (bvec4(false, false, false, false) ? ivec4(0, 0, 0, 0) : ivec4(0, 0, 0, 0));
@@ -20,8 +19,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: '' : boolean expression expected 
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: '' : boolean expression expected 
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -49,7 +48,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 void select_a2860e() {
   ivec4 res = (bvec4(false, false, false, false) ? ivec4(0, 0, 0, 0) : ivec4(0, 0, 0, 0));
@@ -65,8 +63,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: '' : boolean expression expected 
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: '' : boolean expression expected 
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/select/ab069f.wgsl.expected.glsl b/test/builtins/gen/select/ab069f.wgsl.expected.glsl
index 9127716..408828a 100644
--- a/test/builtins/gen/select/ab069f.wgsl.expected.glsl
+++ b/test/builtins/gen/select/ab069f.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void select_ab069f() {
   ivec4 res = (false ? ivec4(0, 0, 0, 0) : ivec4(0, 0, 0, 0));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void select_ab069f() {
   ivec4 res = (false ? ivec4(0, 0, 0, 0) : ivec4(0, 0, 0, 0));
diff --git a/test/builtins/gen/select/b04721.wgsl.expected.glsl b/test/builtins/gen/select/b04721.wgsl.expected.glsl
index a9e543e..6f73745 100644
--- a/test/builtins/gen/select/b04721.wgsl.expected.glsl
+++ b/test/builtins/gen/select/b04721.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void select_b04721() {
   uvec3 res = (false ? uvec3(0u, 0u, 0u) : uvec3(0u, 0u, 0u));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void select_b04721() {
   uvec3 res = (false ? uvec3(0u, 0u, 0u) : uvec3(0u, 0u, 0u));
diff --git a/test/builtins/gen/select/bb447f.wgsl.expected.glsl b/test/builtins/gen/select/bb447f.wgsl.expected.glsl
index 0ba7a30..3664c32 100644
--- a/test/builtins/gen/select/bb447f.wgsl.expected.glsl
+++ b/test/builtins/gen/select/bb447f.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void select_bb447f() {
   ivec2 res = (false ? ivec2(0, 0) : ivec2(0, 0));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void select_bb447f() {
   ivec2 res = (false ? ivec2(0, 0) : ivec2(0, 0));
diff --git a/test/builtins/gen/select/bb8aae.wgsl.expected.glsl b/test/builtins/gen/select/bb8aae.wgsl.expected.glsl
index 0e1a50e..45e3979 100644
--- a/test/builtins/gen/select/bb8aae.wgsl.expected.glsl
+++ b/test/builtins/gen/select/bb8aae.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 void select_bb8aae() {
   vec4 res = (bvec4(false, false, false, false) ? vec4(0.0f, 0.0f, 0.0f, 0.0f) : vec4(0.0f, 0.0f, 0.0f, 0.0f));
@@ -20,8 +19,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: '' : boolean expression expected 
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: '' : boolean expression expected 
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -49,7 +48,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 void select_bb8aae() {
   vec4 res = (bvec4(false, false, false, false) ? vec4(0.0f, 0.0f, 0.0f, 0.0f) : vec4(0.0f, 0.0f, 0.0f, 0.0f));
@@ -65,8 +63,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: '' : boolean expression expected 
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: '' : boolean expression expected 
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/select/bf3d29.wgsl.expected.glsl b/test/builtins/gen/select/bf3d29.wgsl.expected.glsl
index 697a02c..635f611 100644
--- a/test/builtins/gen/select/bf3d29.wgsl.expected.glsl
+++ b/test/builtins/gen/select/bf3d29.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void select_bf3d29() {
   vec2 res = (false ? vec2(0.0f, 0.0f) : vec2(0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void select_bf3d29() {
   vec2 res = (false ? vec2(0.0f, 0.0f) : vec2(0.0f, 0.0f));
diff --git a/test/builtins/gen/select/c31f9e.wgsl.expected.glsl b/test/builtins/gen/select/c31f9e.wgsl.expected.glsl
index 20c38f7..e789132 100644
--- a/test/builtins/gen/select/c31f9e.wgsl.expected.glsl
+++ b/test/builtins/gen/select/c31f9e.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void select_c31f9e() {
   bool res = (false ? false : false);
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void select_c31f9e() {
   bool res = (false ? false : false);
diff --git a/test/builtins/gen/select/c41bd1.wgsl.expected.glsl b/test/builtins/gen/select/c41bd1.wgsl.expected.glsl
index 926bbaf..2ea34b2 100644
--- a/test/builtins/gen/select/c41bd1.wgsl.expected.glsl
+++ b/test/builtins/gen/select/c41bd1.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void select_c41bd1() {
   bvec4 res = (false ? bvec4(false, false, false, false) : bvec4(false, false, false, false));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void select_c41bd1() {
   bvec4 res = (false ? bvec4(false, false, false, false) : bvec4(false, false, false, false));
diff --git a/test/builtins/gen/select/c4a4ef.wgsl.expected.glsl b/test/builtins/gen/select/c4a4ef.wgsl.expected.glsl
index 4ee2ee9..76187f1 100644
--- a/test/builtins/gen/select/c4a4ef.wgsl.expected.glsl
+++ b/test/builtins/gen/select/c4a4ef.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 void select_c4a4ef() {
   uvec4 res = (bvec4(false, false, false, false) ? uvec4(0u, 0u, 0u, 0u) : uvec4(0u, 0u, 0u, 0u));
@@ -20,8 +19,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: '' : boolean expression expected 
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: '' : boolean expression expected 
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -49,7 +48,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 void select_c4a4ef() {
   uvec4 res = (bvec4(false, false, false, false) ? uvec4(0u, 0u, 0u, 0u) : uvec4(0u, 0u, 0u, 0u));
@@ -65,8 +63,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: '' : boolean expression expected 
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: '' : boolean expression expected 
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/select/cb9301.wgsl.expected.glsl b/test/builtins/gen/select/cb9301.wgsl.expected.glsl
index 87502ee..5792eed 100644
--- a/test/builtins/gen/select/cb9301.wgsl.expected.glsl
+++ b/test/builtins/gen/select/cb9301.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 void select_cb9301() {
   bvec2 res = (bvec2(false, false) ? bvec2(false, false) : bvec2(false, false));
@@ -20,8 +19,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: '' : boolean expression expected 
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: '' : boolean expression expected 
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -49,7 +48,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 void select_cb9301() {
   bvec2 res = (bvec2(false, false) ? bvec2(false, false) : bvec2(false, false));
@@ -65,8 +63,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: '' : boolean expression expected 
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: '' : boolean expression expected 
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/select/e3e028.wgsl.expected.glsl b/test/builtins/gen/select/e3e028.wgsl.expected.glsl
index b8d0f12..372d40f 100644
--- a/test/builtins/gen/select/e3e028.wgsl.expected.glsl
+++ b/test/builtins/gen/select/e3e028.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 void select_e3e028() {
   bvec4 res = (bvec4(false, false, false, false) ? bvec4(false, false, false, false) : bvec4(false, false, false, false));
@@ -20,8 +19,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: '' : boolean expression expected 
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: '' : boolean expression expected 
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -49,7 +48,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 void select_e3e028() {
   bvec4 res = (bvec4(false, false, false, false) ? bvec4(false, false, false, false) : bvec4(false, false, false, false));
@@ -65,8 +63,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: '' : boolean expression expected 
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: '' : boolean expression expected 
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/select/ebfea2.wgsl.expected.glsl b/test/builtins/gen/select/ebfea2.wgsl.expected.glsl
index 4f56425e..e2174eb 100644
--- a/test/builtins/gen/select/ebfea2.wgsl.expected.glsl
+++ b/test/builtins/gen/select/ebfea2.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 void select_ebfea2() {
   vec3 res = (bvec3(false, false, false) ? vec3(0.0f, 0.0f, 0.0f) : vec3(0.0f, 0.0f, 0.0f));
@@ -20,8 +19,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: '' : boolean expression expected 
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: '' : boolean expression expected 
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -49,7 +48,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 void select_ebfea2() {
   vec3 res = (bvec3(false, false, false) ? vec3(0.0f, 0.0f, 0.0f) : vec3(0.0f, 0.0f, 0.0f));
@@ -65,8 +63,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:5: '' : boolean expression expected 
-ERROR: 0:5: '' : compilation terminated 
+ERROR: 0:4: '' : boolean expression expected 
+ERROR: 0:4: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/select/ed8a15.wgsl.expected.glsl b/test/builtins/gen/select/ed8a15.wgsl.expected.glsl
index c974822..aeeed7a 100644
--- a/test/builtins/gen/select/ed8a15.wgsl.expected.glsl
+++ b/test/builtins/gen/select/ed8a15.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void select_ed8a15() {
   int res = (false ? 1 : 1);
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void select_ed8a15() {
   int res = (false ? 1 : 1);
diff --git a/test/builtins/gen/select/fb7e53.wgsl.expected.glsl b/test/builtins/gen/select/fb7e53.wgsl.expected.glsl
index d3d31f8..f632b20 100644
--- a/test/builtins/gen/select/fb7e53.wgsl.expected.glsl
+++ b/test/builtins/gen/select/fb7e53.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void select_fb7e53() {
   bvec2 res = (false ? bvec2(false, false) : bvec2(false, false));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void select_fb7e53() {
   bvec2 res = (false ? bvec2(false, false) : bvec2(false, false));
diff --git a/test/builtins/gen/sign/159665.wgsl.expected.glsl b/test/builtins/gen/sign/159665.wgsl.expected.glsl
index 942f155..e912096 100644
--- a/test/builtins/gen/sign/159665.wgsl.expected.glsl
+++ b/test/builtins/gen/sign/159665.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void sign_159665() {
   vec3 res = sign(vec3(0.0f, 0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void sign_159665() {
   vec3 res = sign(vec3(0.0f, 0.0f, 0.0f));
diff --git a/test/builtins/gen/sign/b8f634.wgsl.expected.glsl b/test/builtins/gen/sign/b8f634.wgsl.expected.glsl
index 05137b1..41b9f79 100644
--- a/test/builtins/gen/sign/b8f634.wgsl.expected.glsl
+++ b/test/builtins/gen/sign/b8f634.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void sign_b8f634() {
   vec4 res = sign(vec4(0.0f, 0.0f, 0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void sign_b8f634() {
   vec4 res = sign(vec4(0.0f, 0.0f, 0.0f, 0.0f));
diff --git a/test/builtins/gen/sign/d065d8.wgsl.expected.glsl b/test/builtins/gen/sign/d065d8.wgsl.expected.glsl
index 8b415cb..873ebd9 100644
--- a/test/builtins/gen/sign/d065d8.wgsl.expected.glsl
+++ b/test/builtins/gen/sign/d065d8.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void sign_d065d8() {
   vec2 res = sign(vec2(0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void sign_d065d8() {
   vec2 res = sign(vec2(0.0f, 0.0f));
diff --git a/test/builtins/gen/sign/dd790e.wgsl.expected.glsl b/test/builtins/gen/sign/dd790e.wgsl.expected.glsl
index b880154..5230c82 100644
--- a/test/builtins/gen/sign/dd790e.wgsl.expected.glsl
+++ b/test/builtins/gen/sign/dd790e.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void sign_dd790e() {
   float res = sign(1.0f);
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void sign_dd790e() {
   float res = sign(1.0f);
diff --git a/test/builtins/gen/sin/01f241.wgsl.expected.glsl b/test/builtins/gen/sin/01f241.wgsl.expected.glsl
index 9c7240d..73c2e8c 100644
--- a/test/builtins/gen/sin/01f241.wgsl.expected.glsl
+++ b/test/builtins/gen/sin/01f241.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void sin_01f241() {
   vec3 res = sin(vec3(0.0f, 0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void sin_01f241() {
   vec3 res = sin(vec3(0.0f, 0.0f, 0.0f));
diff --git a/test/builtins/gen/sin/4e3979.wgsl.expected.glsl b/test/builtins/gen/sin/4e3979.wgsl.expected.glsl
index 1e5d135..d52bc07 100644
--- a/test/builtins/gen/sin/4e3979.wgsl.expected.glsl
+++ b/test/builtins/gen/sin/4e3979.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void sin_4e3979() {
   vec4 res = sin(vec4(0.0f, 0.0f, 0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void sin_4e3979() {
   vec4 res = sin(vec4(0.0f, 0.0f, 0.0f, 0.0f));
diff --git a/test/builtins/gen/sin/b78c91.wgsl.expected.glsl b/test/builtins/gen/sin/b78c91.wgsl.expected.glsl
index de61dcf..fecb9a3 100644
--- a/test/builtins/gen/sin/b78c91.wgsl.expected.glsl
+++ b/test/builtins/gen/sin/b78c91.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void sin_b78c91() {
   float res = sin(1.0f);
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void sin_b78c91() {
   float res = sin(1.0f);
diff --git a/test/builtins/gen/sin/fc8bc4.wgsl.expected.glsl b/test/builtins/gen/sin/fc8bc4.wgsl.expected.glsl
index d475617..dc7ed53 100644
--- a/test/builtins/gen/sin/fc8bc4.wgsl.expected.glsl
+++ b/test/builtins/gen/sin/fc8bc4.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void sin_fc8bc4() {
   vec2 res = sin(vec2(0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void sin_fc8bc4() {
   vec2 res = sin(vec2(0.0f, 0.0f));
diff --git a/test/builtins/gen/sinh/445e33.wgsl.expected.glsl b/test/builtins/gen/sinh/445e33.wgsl.expected.glsl
index c60e3ac..9e9ba0a 100644
--- a/test/builtins/gen/sinh/445e33.wgsl.expected.glsl
+++ b/test/builtins/gen/sinh/445e33.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void sinh_445e33() {
   vec4 res = sinh(vec4(0.0f, 0.0f, 0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void sinh_445e33() {
   vec4 res = sinh(vec4(0.0f, 0.0f, 0.0f, 0.0f));
diff --git a/test/builtins/gen/sinh/7bb598.wgsl.expected.glsl b/test/builtins/gen/sinh/7bb598.wgsl.expected.glsl
index 5f7835a..9eb7ed5 100644
--- a/test/builtins/gen/sinh/7bb598.wgsl.expected.glsl
+++ b/test/builtins/gen/sinh/7bb598.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void sinh_7bb598() {
   float res = sinh(1.0f);
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void sinh_7bb598() {
   float res = sinh(1.0f);
diff --git a/test/builtins/gen/sinh/b9860e.wgsl.expected.glsl b/test/builtins/gen/sinh/b9860e.wgsl.expected.glsl
index 1000a48..fc93b28 100644
--- a/test/builtins/gen/sinh/b9860e.wgsl.expected.glsl
+++ b/test/builtins/gen/sinh/b9860e.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void sinh_b9860e() {
   vec2 res = sinh(vec2(0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void sinh_b9860e() {
   vec2 res = sinh(vec2(0.0f, 0.0f));
diff --git a/test/builtins/gen/sinh/c9a5eb.wgsl.expected.glsl b/test/builtins/gen/sinh/c9a5eb.wgsl.expected.glsl
index bec04b2..0b6a169 100644
--- a/test/builtins/gen/sinh/c9a5eb.wgsl.expected.glsl
+++ b/test/builtins/gen/sinh/c9a5eb.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void sinh_c9a5eb() {
   vec3 res = sinh(vec3(0.0f, 0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void sinh_c9a5eb() {
   vec3 res = sinh(vec3(0.0f, 0.0f, 0.0f));
diff --git a/test/builtins/gen/smoothStep/5f615b.wgsl.expected.glsl b/test/builtins/gen/smoothStep/5f615b.wgsl.expected.glsl
index 0c40f90..c9222b8 100644
--- a/test/builtins/gen/smoothStep/5f615b.wgsl.expected.glsl
+++ b/test/builtins/gen/smoothStep/5f615b.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void smoothStep_5f615b() {
   vec4 res = smoothstep(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void smoothStep_5f615b() {
   vec4 res = smoothstep(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
diff --git a/test/builtins/gen/smoothStep/658be3.wgsl.expected.glsl b/test/builtins/gen/smoothStep/658be3.wgsl.expected.glsl
index e4f9bc9..8b7973c 100644
--- a/test/builtins/gen/smoothStep/658be3.wgsl.expected.glsl
+++ b/test/builtins/gen/smoothStep/658be3.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void smoothStep_658be3() {
   vec3 res = smoothstep(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void smoothStep_658be3() {
   vec3 res = smoothstep(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
diff --git a/test/builtins/gen/smoothStep/c11eef.wgsl.expected.glsl b/test/builtins/gen/smoothStep/c11eef.wgsl.expected.glsl
index f90da5a..a4840d7 100644
--- a/test/builtins/gen/smoothStep/c11eef.wgsl.expected.glsl
+++ b/test/builtins/gen/smoothStep/c11eef.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void smoothStep_c11eef() {
   vec2 res = smoothstep(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void smoothStep_c11eef() {
   vec2 res = smoothstep(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
diff --git a/test/builtins/gen/smoothStep/cb0bfb.wgsl.expected.glsl b/test/builtins/gen/smoothStep/cb0bfb.wgsl.expected.glsl
index 999364b..c3a4818 100644
--- a/test/builtins/gen/smoothStep/cb0bfb.wgsl.expected.glsl
+++ b/test/builtins/gen/smoothStep/cb0bfb.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void smoothStep_cb0bfb() {
   float res = smoothstep(1.0f, 1.0f, 1.0f);
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void smoothStep_cb0bfb() {
   float res = smoothstep(1.0f, 1.0f, 1.0f);
diff --git a/test/builtins/gen/sqrt/20c74e.wgsl.expected.glsl b/test/builtins/gen/sqrt/20c74e.wgsl.expected.glsl
index f619350..964290d 100644
--- a/test/builtins/gen/sqrt/20c74e.wgsl.expected.glsl
+++ b/test/builtins/gen/sqrt/20c74e.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void sqrt_20c74e() {
   float res = sqrt(1.0f);
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void sqrt_20c74e() {
   float res = sqrt(1.0f);
diff --git a/test/builtins/gen/sqrt/8c7024.wgsl.expected.glsl b/test/builtins/gen/sqrt/8c7024.wgsl.expected.glsl
index 2f4abe4..6b932bf 100644
--- a/test/builtins/gen/sqrt/8c7024.wgsl.expected.glsl
+++ b/test/builtins/gen/sqrt/8c7024.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void sqrt_8c7024() {
   vec2 res = sqrt(vec2(0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void sqrt_8c7024() {
   vec2 res = sqrt(vec2(0.0f, 0.0f));
diff --git a/test/builtins/gen/sqrt/aa0d7a.wgsl.expected.glsl b/test/builtins/gen/sqrt/aa0d7a.wgsl.expected.glsl
index 754492c..2052dfc 100644
--- a/test/builtins/gen/sqrt/aa0d7a.wgsl.expected.glsl
+++ b/test/builtins/gen/sqrt/aa0d7a.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void sqrt_aa0d7a() {
   vec4 res = sqrt(vec4(0.0f, 0.0f, 0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void sqrt_aa0d7a() {
   vec4 res = sqrt(vec4(0.0f, 0.0f, 0.0f, 0.0f));
diff --git a/test/builtins/gen/sqrt/f8c59a.wgsl.expected.glsl b/test/builtins/gen/sqrt/f8c59a.wgsl.expected.glsl
index efbb532..f7a7a3c 100644
--- a/test/builtins/gen/sqrt/f8c59a.wgsl.expected.glsl
+++ b/test/builtins/gen/sqrt/f8c59a.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void sqrt_f8c59a() {
   vec3 res = sqrt(vec3(0.0f, 0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void sqrt_f8c59a() {
   vec3 res = sqrt(vec3(0.0f, 0.0f, 0.0f));
diff --git a/test/builtins/gen/step/0b073b.wgsl.expected.glsl b/test/builtins/gen/step/0b073b.wgsl.expected.glsl
index 563e500..0ad385f 100644
--- a/test/builtins/gen/step/0b073b.wgsl.expected.glsl
+++ b/test/builtins/gen/step/0b073b.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void step_0b073b() {
   float res = step(1.0f, 1.0f);
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void step_0b073b() {
   float res = step(1.0f, 1.0f);
diff --git a/test/builtins/gen/step/19accd.wgsl.expected.glsl b/test/builtins/gen/step/19accd.wgsl.expected.glsl
index d339cac..99ce626 100644
--- a/test/builtins/gen/step/19accd.wgsl.expected.glsl
+++ b/test/builtins/gen/step/19accd.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void step_19accd() {
   vec2 res = step(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void step_19accd() {
   vec2 res = step(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
diff --git a/test/builtins/gen/step/334303.wgsl.expected.glsl b/test/builtins/gen/step/334303.wgsl.expected.glsl
index 786bc77..4eb968a 100644
--- a/test/builtins/gen/step/334303.wgsl.expected.glsl
+++ b/test/builtins/gen/step/334303.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void step_334303() {
   vec3 res = step(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void step_334303() {
   vec3 res = step(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
diff --git a/test/builtins/gen/step/e2b337.wgsl.expected.glsl b/test/builtins/gen/step/e2b337.wgsl.expected.glsl
index 157208e..1716190 100644
--- a/test/builtins/gen/step/e2b337.wgsl.expected.glsl
+++ b/test/builtins/gen/step/e2b337.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void step_e2b337() {
   vec4 res = step(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void step_e2b337() {
   vec4 res = step(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
diff --git a/test/builtins/gen/storageBarrier/d87211.wgsl.expected.glsl b/test/builtins/gen/storageBarrier/d87211.wgsl.expected.glsl
index a354c92..025e85c 100644
--- a/test/builtins/gen/storageBarrier/d87211.wgsl.expected.glsl
+++ b/test/builtins/gen/storageBarrier/d87211.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void storageBarrier_d87211() {
   { barrier(); memoryBarrierBuffer(); };
diff --git a/test/builtins/gen/tan/244e2a.wgsl.expected.glsl b/test/builtins/gen/tan/244e2a.wgsl.expected.glsl
index 0884a55..0351d57 100644
--- a/test/builtins/gen/tan/244e2a.wgsl.expected.glsl
+++ b/test/builtins/gen/tan/244e2a.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void tan_244e2a() {
   vec4 res = tan(vec4(0.0f, 0.0f, 0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void tan_244e2a() {
   vec4 res = tan(vec4(0.0f, 0.0f, 0.0f, 0.0f));
diff --git a/test/builtins/gen/tan/2f030e.wgsl.expected.glsl b/test/builtins/gen/tan/2f030e.wgsl.expected.glsl
index 46246dc..7cb064d 100644
--- a/test/builtins/gen/tan/2f030e.wgsl.expected.glsl
+++ b/test/builtins/gen/tan/2f030e.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void tan_2f030e() {
   float res = tan(1.0f);
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void tan_2f030e() {
   float res = tan(1.0f);
diff --git a/test/builtins/gen/tan/7ea104.wgsl.expected.glsl b/test/builtins/gen/tan/7ea104.wgsl.expected.glsl
index 4180b59..93614a6 100644
--- a/test/builtins/gen/tan/7ea104.wgsl.expected.glsl
+++ b/test/builtins/gen/tan/7ea104.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void tan_7ea104() {
   vec3 res = tan(vec3(0.0f, 0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void tan_7ea104() {
   vec3 res = tan(vec3(0.0f, 0.0f, 0.0f));
diff --git a/test/builtins/gen/tan/8ce3e9.wgsl.expected.glsl b/test/builtins/gen/tan/8ce3e9.wgsl.expected.glsl
index c5fda5d..830f1ff 100644
--- a/test/builtins/gen/tan/8ce3e9.wgsl.expected.glsl
+++ b/test/builtins/gen/tan/8ce3e9.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void tan_8ce3e9() {
   vec2 res = tan(vec2(0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void tan_8ce3e9() {
   vec2 res = tan(vec2(0.0f, 0.0f));
diff --git a/test/builtins/gen/tanh/5663c5.wgsl.expected.glsl b/test/builtins/gen/tanh/5663c5.wgsl.expected.glsl
index 827d00c..f3be98b 100644
--- a/test/builtins/gen/tanh/5663c5.wgsl.expected.glsl
+++ b/test/builtins/gen/tanh/5663c5.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void tanh_5663c5() {
   vec4 res = tanh(vec4(0.0f, 0.0f, 0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void tanh_5663c5() {
   vec4 res = tanh(vec4(0.0f, 0.0f, 0.0f, 0.0f));
diff --git a/test/builtins/gen/tanh/5724b3.wgsl.expected.glsl b/test/builtins/gen/tanh/5724b3.wgsl.expected.glsl
index 81165d1..703f1f6 100644
--- a/test/builtins/gen/tanh/5724b3.wgsl.expected.glsl
+++ b/test/builtins/gen/tanh/5724b3.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void tanh_5724b3() {
   vec2 res = tanh(vec2(0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void tanh_5724b3() {
   vec2 res = tanh(vec2(0.0f, 0.0f));
diff --git a/test/builtins/gen/tanh/9f9fb9.wgsl.expected.glsl b/test/builtins/gen/tanh/9f9fb9.wgsl.expected.glsl
index 81e516a..9ee2e81 100644
--- a/test/builtins/gen/tanh/9f9fb9.wgsl.expected.glsl
+++ b/test/builtins/gen/tanh/9f9fb9.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void tanh_9f9fb9() {
   vec3 res = tanh(vec3(0.0f, 0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void tanh_9f9fb9() {
   vec3 res = tanh(vec3(0.0f, 0.0f, 0.0f));
diff --git a/test/builtins/gen/tanh/c15fdb.wgsl.expected.glsl b/test/builtins/gen/tanh/c15fdb.wgsl.expected.glsl
index bbc7766..b6870b9 100644
--- a/test/builtins/gen/tanh/c15fdb.wgsl.expected.glsl
+++ b/test/builtins/gen/tanh/c15fdb.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void tanh_c15fdb() {
   float res = tanh(1.0f);
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void tanh_c15fdb() {
   float res = tanh(1.0f);
diff --git a/test/builtins/gen/textureDimensions/002b2a.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/002b2a.wgsl.expected.glsl
index 4918d10..c3bf448 100644
--- a/test/builtins/gen/textureDimensions/002b2a.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/002b2a.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 uniform highp sampler1D arg_0_1;
 void textureDimensions_002b2a() {
@@ -21,8 +20,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'sampler1D' : Reserved word. 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'sampler1D' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -51,7 +50,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 uniform highp sampler1D arg_0_1;
 void textureDimensions_002b2a() {
@@ -68,8 +66,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'sampler1D' : Reserved word. 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'sampler1D' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureDimensions/012b82.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/012b82.wgsl.expected.glsl
index b398f3c..40bc755 100644
--- a/test/builtins/gen/textureDimensions/012b82.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/012b82.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 layout(r32i) uniform highp writeonly iimage2DArray arg_0;
 void textureDimensions_012b82() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 layout(r32i) uniform highp writeonly iimage2DArray arg_0;
 void textureDimensions_012b82() {
diff --git a/test/builtins/gen/textureDimensions/08753d.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/08753d.wgsl.expected.glsl
index 4628b39..da47178 100644
--- a/test/builtins/gen/textureDimensions/08753d.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/08753d.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 layout(rgba16i) uniform highp writeonly iimage1D arg_0;
 void textureDimensions_08753d() {
@@ -21,9 +20,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'iimage1D' : Reserved word. 
-WARNING: 0:4: 'layout' : useless application of layout qualifier 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'iimage1D' : Reserved word. 
+WARNING: 0:3: 'layout' : useless application of layout qualifier 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -53,7 +52,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 layout(rgba16i) uniform highp writeonly iimage1D arg_0;
 void textureDimensions_08753d() {
@@ -70,9 +68,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'iimage1D' : Reserved word. 
-WARNING: 0:4: 'layout' : useless application of layout qualifier 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'iimage1D' : Reserved word. 
+WARNING: 0:3: 'layout' : useless application of layout qualifier 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureDimensions/0c4772.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/0c4772.wgsl.expected.glsl
index f6e58ee..0870be7 100644
--- a/test/builtins/gen/textureDimensions/0c4772.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/0c4772.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 layout(rgba16f) uniform highp writeonly image3D arg_0;
 void textureDimensions_0c4772() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 layout(rgba16f) uniform highp writeonly image3D arg_0;
 void textureDimensions_0c4772() {
diff --git a/test/builtins/gen/textureDimensions/0cce40.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/0cce40.wgsl.expected.glsl
index ccbf034..7a92020 100644
--- a/test/builtins/gen/textureDimensions/0cce40.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/0cce40.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 layout(r32i) uniform highp writeonly iimage1D arg_0;
 void textureDimensions_0cce40() {
@@ -21,9 +20,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'iimage1D' : Reserved word. 
-WARNING: 0:4: 'layout' : useless application of layout qualifier 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'iimage1D' : Reserved word. 
+WARNING: 0:3: 'layout' : useless application of layout qualifier 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -53,7 +52,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 layout(r32i) uniform highp writeonly iimage1D arg_0;
 void textureDimensions_0cce40() {
@@ -70,9 +68,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'iimage1D' : Reserved word. 
-WARNING: 0:4: 'layout' : useless application of layout qualifier 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'iimage1D' : Reserved word. 
+WARNING: 0:3: 'layout' : useless application of layout qualifier 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureDimensions/0cf2ff.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/0cf2ff.wgsl.expected.glsl
index 3813a6f..92eb5b0 100644
--- a/test/builtins/gen/textureDimensions/0cf2ff.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/0cf2ff.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 layout(rgba16ui) uniform highp writeonly uimage2D arg_0;
 void textureDimensions_0cf2ff() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 layout(rgba16ui) uniform highp writeonly uimage2D arg_0;
 void textureDimensions_0cf2ff() {
diff --git a/test/builtins/gen/textureDimensions/0d8b7e.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/0d8b7e.wgsl.expected.glsl
index d6996ef..d275e36 100644
--- a/test/builtins/gen/textureDimensions/0d8b7e.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/0d8b7e.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 layout(r32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureDimensions_0d8b7e() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 layout(r32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureDimensions_0d8b7e() {
diff --git a/test/builtins/gen/textureDimensions/0e32ee.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/0e32ee.wgsl.expected.glsl
index eea2fca..0f83215 100644
--- a/test/builtins/gen/textureDimensions/0e32ee.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/0e32ee.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 layout(rgba16ui) uniform highp writeonly uimage3D arg_0;
 void textureDimensions_0e32ee() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 layout(rgba16ui) uniform highp writeonly uimage3D arg_0;
 void textureDimensions_0e32ee() {
diff --git a/test/builtins/gen/textureDimensions/0f3c50.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/0f3c50.wgsl.expected.glsl
index c1f2ad3..d7fa180 100644
--- a/test/builtins/gen/textureDimensions/0f3c50.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/0f3c50.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp isampler2DArray arg_0_1;
 void textureDimensions_0f3c50() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp isampler2DArray arg_0_1;
 void textureDimensions_0f3c50() {
diff --git a/test/builtins/gen/textureDimensions/1191a5.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/1191a5.wgsl.expected.glsl
index 8c8905e..87fde35 100644
--- a/test/builtins/gen/textureDimensions/1191a5.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/1191a5.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp usampler2D arg_0_1;
 void textureDimensions_1191a5() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp usampler2D arg_0_1;
 void textureDimensions_1191a5() {
diff --git a/test/builtins/gen/textureDimensions/12c9bb.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/12c9bb.wgsl.expected.glsl
index d6210f5..888760c 100644
--- a/test/builtins/gen/textureDimensions/12c9bb.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/12c9bb.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2D arg_0_1;
 void textureDimensions_12c9bb() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2D arg_0_1;
 void textureDimensions_12c9bb() {
diff --git a/test/builtins/gen/textureDimensions/147998.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/147998.wgsl.expected.glsl
index 0aea927..d992aaa 100644
--- a/test/builtins/gen/textureDimensions/147998.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/147998.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 layout(rg32f) uniform highp writeonly image2D arg_0;
 void textureDimensions_147998() {
@@ -21,8 +20,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'image load-store format' : not supported with this profile: es
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'image load-store format' : not supported with this profile: es
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -51,7 +50,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 layout(rg32f) uniform highp writeonly image2D arg_0;
 void textureDimensions_147998() {
@@ -68,8 +66,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'image load-store format' : not supported with this profile: es
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'image load-store format' : not supported with this profile: es
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureDimensions/16036c.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/16036c.wgsl.expected.glsl
index 1716996..5608122 100644
--- a/test/builtins/gen/textureDimensions/16036c.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/16036c.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 layout(rgba8i) uniform highp writeonly iimage2DArray arg_0;
 void textureDimensions_16036c() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 layout(rgba8i) uniform highp writeonly iimage2DArray arg_0;
 void textureDimensions_16036c() {
diff --git a/test/builtins/gen/textureDimensions/1b71f0.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/1b71f0.wgsl.expected.glsl
index 6dceec2..4695e9b 100644
--- a/test/builtins/gen/textureDimensions/1b71f0.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/1b71f0.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 layout(rgba16i) uniform highp writeonly iimage3D arg_0;
 void textureDimensions_1b71f0() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 layout(rgba16i) uniform highp writeonly iimage3D arg_0;
 void textureDimensions_1b71f0() {
diff --git a/test/builtins/gen/textureDimensions/1d6c26.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/1d6c26.wgsl.expected.glsl
index 527af3e..36f5469 100644
--- a/test/builtins/gen/textureDimensions/1d6c26.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/1d6c26.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 layout(rgba8) uniform highp writeonly image2DArray arg_0;
 void textureDimensions_1d6c26() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 layout(rgba8) uniform highp writeonly image2DArray arg_0;
 void textureDimensions_1d6c26() {
diff --git a/test/builtins/gen/textureDimensions/1e9e39.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/1e9e39.wgsl.expected.glsl
index 77d49fe..9cfe2a9 100644
--- a/test/builtins/gen/textureDimensions/1e9e39.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/1e9e39.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 layout(rgba16f) uniform highp writeonly image1D arg_0;
 void textureDimensions_1e9e39() {
@@ -21,9 +20,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'image1D' : Reserved word. 
-WARNING: 0:4: 'layout' : useless application of layout qualifier 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'image1D' : Reserved word. 
+WARNING: 0:3: 'layout' : useless application of layout qualifier 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -53,7 +52,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 layout(rgba16f) uniform highp writeonly image1D arg_0;
 void textureDimensions_1e9e39() {
@@ -70,9 +68,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'image1D' : Reserved word. 
-WARNING: 0:4: 'layout' : useless application of layout qualifier 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'image1D' : Reserved word. 
+WARNING: 0:3: 'layout' : useless application of layout qualifier 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureDimensions/1f20c5.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/1f20c5.wgsl.expected.glsl
index eeb52a6..42973c0 100644
--- a/test/builtins/gen/textureDimensions/1f20c5.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/1f20c5.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp usampler2DArray arg_0_1;
 void textureDimensions_1f20c5() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp usampler2DArray arg_0_1;
 void textureDimensions_1f20c5() {
diff --git a/test/builtins/gen/textureDimensions/214dd4.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/214dd4.wgsl.expected.glsl
index 4af963c..896acdb 100644
--- a/test/builtins/gen/textureDimensions/214dd4.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/214dd4.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 layout(rgba8i) uniform highp writeonly iimage3D arg_0;
 void textureDimensions_214dd4() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 layout(rgba8i) uniform highp writeonly iimage3D arg_0;
 void textureDimensions_214dd4() {
diff --git a/test/builtins/gen/textureDimensions/221f22.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/221f22.wgsl.expected.glsl
index a162070..e94b6af 100644
--- a/test/builtins/gen/textureDimensions/221f22.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/221f22.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 uniform highp isamplerCubeArray arg_0_1;
 void textureDimensions_221f22() {
@@ -21,8 +20,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'isamplerCubeArray' : Reserved word. 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'isamplerCubeArray' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -51,7 +50,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 uniform highp isamplerCubeArray arg_0_1;
 void textureDimensions_221f22() {
@@ -68,8 +66,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'isamplerCubeArray' : Reserved word. 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'isamplerCubeArray' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureDimensions/267788.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/267788.wgsl.expected.glsl
index e9b6be0..4bc3c79 100644
--- a/test/builtins/gen/textureDimensions/267788.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/267788.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp usampler2DArray arg_0_1;
 void textureDimensions_267788() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp usampler2DArray arg_0_1;
 void textureDimensions_267788() {
diff --git a/test/builtins/gen/textureDimensions/26bdfa.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/26bdfa.wgsl.expected.glsl
index 7eeda4f..7d93b4f 100644
--- a/test/builtins/gen/textureDimensions/26bdfa.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/26bdfa.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp sampler3D arg_0_1;
 void textureDimensions_26bdfa() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp sampler3D arg_0_1;
 void textureDimensions_26bdfa() {
diff --git a/test/builtins/gen/textureDimensions/26ef6c.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/26ef6c.wgsl.expected.glsl
index 0828683..64ddeef 100644
--- a/test/builtins/gen/textureDimensions/26ef6c.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/26ef6c.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 layout(rgba8ui) uniform highp writeonly uimage2DArray arg_0;
 void textureDimensions_26ef6c() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 layout(rgba8ui) uniform highp writeonly uimage2DArray arg_0;
 void textureDimensions_26ef6c() {
diff --git a/test/builtins/gen/textureDimensions/2ad087.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/2ad087.wgsl.expected.glsl
index cbc46bd..ff3c181 100644
--- a/test/builtins/gen/textureDimensions/2ad087.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/2ad087.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 layout(rgba16i) uniform highp writeonly iimage2D arg_0;
 void textureDimensions_2ad087() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 layout(rgba16i) uniform highp writeonly iimage2D arg_0;
 void textureDimensions_2ad087() {
diff --git a/test/builtins/gen/textureDimensions/2efa05.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/2efa05.wgsl.expected.glsl
index 304e2ba..e9a5c09 100644
--- a/test/builtins/gen/textureDimensions/2efa05.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/2efa05.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp usampler3D arg_0_1;
 void textureDimensions_2efa05() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp usampler3D arg_0_1;
 void textureDimensions_2efa05() {
diff --git a/test/builtins/gen/textureDimensions/2f289f.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/2f289f.wgsl.expected.glsl
index e495dd9..2809100 100644
--- a/test/builtins/gen/textureDimensions/2f289f.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/2f289f.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 layout(r32i) uniform highp writeonly iimage3D arg_0;
 void textureDimensions_2f289f() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 layout(r32i) uniform highp writeonly iimage3D arg_0;
 void textureDimensions_2f289f() {
diff --git a/test/builtins/gen/textureDimensions/2fe1cc.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/2fe1cc.wgsl.expected.glsl
index 370e7c7..46aa25e 100644
--- a/test/builtins/gen/textureDimensions/2fe1cc.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/2fe1cc.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2D arg_0_1;
 void textureDimensions_2fe1cc() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2D arg_0_1;
 void textureDimensions_2fe1cc() {
diff --git a/test/builtins/gen/textureDimensions/318ecc.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/318ecc.wgsl.expected.glsl
index 6359cdd..cdf66f6 100644
--- a/test/builtins/gen/textureDimensions/318ecc.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/318ecc.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 layout(rgba16ui) uniform highp writeonly uimage1D arg_0;
 void textureDimensions_318ecc() {
@@ -21,9 +20,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'uimage1D' : Reserved word. 
-WARNING: 0:4: 'layout' : useless application of layout qualifier 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'uimage1D' : Reserved word. 
+WARNING: 0:3: 'layout' : useless application of layout qualifier 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -53,7 +52,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 layout(rgba16ui) uniform highp writeonly uimage1D arg_0;
 void textureDimensions_318ecc() {
@@ -70,9 +68,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'uimage1D' : Reserved word. 
-WARNING: 0:4: 'layout' : useless application of layout qualifier 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'uimage1D' : Reserved word. 
+WARNING: 0:3: 'layout' : useless application of layout qualifier 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureDimensions/340d06.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/340d06.wgsl.expected.glsl
index 91ce129..8e80499 100644
--- a/test/builtins/gen/textureDimensions/340d06.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/340d06.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 layout(r32ui) uniform highp writeonly uimage3D arg_0;
 void textureDimensions_340d06() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 layout(r32ui) uniform highp writeonly uimage3D arg_0;
 void textureDimensions_340d06() {
diff --git a/test/builtins/gen/textureDimensions/398e30.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/398e30.wgsl.expected.glsl
index addff99..2f1317e 100644
--- a/test/builtins/gen/textureDimensions/398e30.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/398e30.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 layout(rgba32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureDimensions_398e30() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 layout(rgba32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureDimensions_398e30() {
diff --git a/test/builtins/gen/textureDimensions/3a94ea.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/3a94ea.wgsl.expected.glsl
index 2bfba6f..81aa7f7 100644
--- a/test/builtins/gen/textureDimensions/3a94ea.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/3a94ea.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 layout(rg32ui) uniform highp writeonly uimage2D arg_0;
 void textureDimensions_3a94ea() {
@@ -21,8 +20,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'image load-store format' : not supported with this profile: es
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'image load-store format' : not supported with this profile: es
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -51,7 +50,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 layout(rg32ui) uniform highp writeonly uimage2D arg_0;
 void textureDimensions_3a94ea() {
@@ -68,8 +66,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'image load-store format' : not supported with this profile: es
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'image load-store format' : not supported with this profile: es
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureDimensions/3aca08.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/3aca08.wgsl.expected.glsl
index 38c917b..491a78b 100644
--- a/test/builtins/gen/textureDimensions/3aca08.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/3aca08.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 layout(rgba32f) uniform highp writeonly image1D arg_0;
 void textureDimensions_3aca08() {
@@ -21,9 +20,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'image1D' : Reserved word. 
-WARNING: 0:4: 'layout' : useless application of layout qualifier 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'image1D' : Reserved word. 
+WARNING: 0:3: 'layout' : useless application of layout qualifier 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -53,7 +52,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 layout(rgba32f) uniform highp writeonly image1D arg_0;
 void textureDimensions_3aca08() {
@@ -70,9 +68,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'image1D' : Reserved word. 
-WARNING: 0:4: 'layout' : useless application of layout qualifier 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'image1D' : Reserved word. 
+WARNING: 0:3: 'layout' : useless application of layout qualifier 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureDimensions/3c5ad8.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/3c5ad8.wgsl.expected.glsl
index f7625e2..20dfb90 100644
--- a/test/builtins/gen/textureDimensions/3c5ad8.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/3c5ad8.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 layout(rgba8i) uniform highp writeonly iimage2D arg_0;
 void textureDimensions_3c5ad8() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 layout(rgba8i) uniform highp writeonly iimage2D arg_0;
 void textureDimensions_3c5ad8() {
diff --git a/test/builtins/gen/textureDimensions/4152a6.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/4152a6.wgsl.expected.glsl
index 3ac20e9..04f0869 100644
--- a/test/builtins/gen/textureDimensions/4152a6.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/4152a6.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 uniform highp usamplerCubeArray arg_0_1;
 void textureDimensions_4152a6() {
@@ -21,8 +20,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'usamplerCubeArray' : Reserved word. 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'usamplerCubeArray' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -51,7 +50,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 uniform highp usamplerCubeArray arg_0_1;
 void textureDimensions_4152a6() {
@@ -68,8 +66,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'usamplerCubeArray' : Reserved word. 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'usamplerCubeArray' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureDimensions/423f99.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/423f99.wgsl.expected.glsl
index 488c424..d56e673 100644
--- a/test/builtins/gen/textureDimensions/423f99.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/423f99.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 uniform highp isampler1D arg_0_1;
 void textureDimensions_423f99() {
@@ -21,8 +20,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'isampler1D' : Reserved word. 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'isampler1D' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -51,7 +50,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 uniform highp isampler1D arg_0_1;
 void textureDimensions_423f99() {
@@ -68,8 +66,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'isampler1D' : Reserved word. 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'isampler1D' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureDimensions/4267ee.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/4267ee.wgsl.expected.glsl
index 7f165e1..b9953ea 100644
--- a/test/builtins/gen/textureDimensions/4267ee.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/4267ee.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 layout(rgba32f) uniform highp writeonly image2D arg_0;
 void textureDimensions_4267ee() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 layout(rgba32f) uniform highp writeonly image2D arg_0;
 void textureDimensions_4267ee() {
diff --git a/test/builtins/gen/textureDimensions/42d4e6.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/42d4e6.wgsl.expected.glsl
index 6bf3733..583c1cd 100644
--- a/test/builtins/gen/textureDimensions/42d4e6.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/42d4e6.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 layout(rgba8) uniform highp writeonly image1D arg_0;
 void textureDimensions_42d4e6() {
@@ -21,9 +20,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'image1D' : Reserved word. 
-WARNING: 0:4: 'layout' : useless application of layout qualifier 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'image1D' : Reserved word. 
+WARNING: 0:3: 'layout' : useless application of layout qualifier 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -53,7 +52,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 layout(rgba8) uniform highp writeonly image1D arg_0;
 void textureDimensions_42d4e6() {
@@ -70,9 +68,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'image1D' : Reserved word. 
-WARNING: 0:4: 'layout' : useless application of layout qualifier 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'image1D' : Reserved word. 
+WARNING: 0:3: 'layout' : useless application of layout qualifier 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureDimensions/48cb89.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/48cb89.wgsl.expected.glsl
index f932637..d90261f 100644
--- a/test/builtins/gen/textureDimensions/48cb89.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/48cb89.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 layout(rgba16f) uniform highp writeonly image2D arg_0;
 void textureDimensions_48cb89() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 layout(rgba16f) uniform highp writeonly image2D arg_0;
 void textureDimensions_48cb89() {
diff --git a/test/builtins/gen/textureDimensions/49d274.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/49d274.wgsl.expected.glsl
index 03fe18e..970735c 100644
--- a/test/builtins/gen/textureDimensions/49d274.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/49d274.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 layout(rg32i) uniform highp writeonly iimage2DArray arg_0;
 void textureDimensions_49d274() {
@@ -21,8 +20,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'image load-store format' : not supported with this profile: es
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'image load-store format' : not supported with this profile: es
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -51,7 +50,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 layout(rg32i) uniform highp writeonly iimage2DArray arg_0;
 void textureDimensions_49d274() {
@@ -68,8 +66,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'image load-store format' : not supported with this profile: es
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'image load-store format' : not supported with this profile: es
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureDimensions/4df9a8.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/4df9a8.wgsl.expected.glsl
index 97aa248..0a0aab2 100644
--- a/test/builtins/gen/textureDimensions/4df9a8.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/4df9a8.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 layout(rg32ui) uniform highp writeonly uimage1D arg_0;
 void textureDimensions_4df9a8() {
@@ -21,8 +20,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'image load-store format' : not supported with this profile: es
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'image load-store format' : not supported with this profile: es
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -51,7 +50,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 layout(rg32ui) uniform highp writeonly uimage1D arg_0;
 void textureDimensions_4df9a8() {
@@ -68,8 +66,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'image load-store format' : not supported with this profile: es
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'image load-store format' : not supported with this profile: es
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureDimensions/50a9ee.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/50a9ee.wgsl.expected.glsl
index 851d16c..61d47e0 100644
--- a/test/builtins/gen/textureDimensions/50a9ee.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/50a9ee.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 uniform highp samplerCubeArray arg_0_1;
 void textureDimensions_50a9ee() {
@@ -21,8 +20,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -51,7 +50,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 uniform highp samplerCubeArray arg_0_1;
 void textureDimensions_50a9ee() {
@@ -68,8 +66,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureDimensions/52045c.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/52045c.wgsl.expected.glsl
index eab1224..a96a560 100644
--- a/test/builtins/gen/textureDimensions/52045c.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/52045c.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 uniform highp isampler1D arg_0_1;
 void textureDimensions_52045c() {
@@ -21,8 +20,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'isampler1D' : Reserved word. 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'isampler1D' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -51,7 +50,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 uniform highp isampler1D arg_0_1;
 void textureDimensions_52045c() {
@@ -68,8 +66,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'isampler1D' : Reserved word. 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'isampler1D' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureDimensions/55b23e.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/55b23e.wgsl.expected.glsl
index ecd32f2..dca8ced 100644
--- a/test/builtins/gen/textureDimensions/55b23e.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/55b23e.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 layout(rg32f) uniform highp writeonly image1D arg_0;
 void textureDimensions_55b23e() {
@@ -21,8 +20,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'image load-store format' : not supported with this profile: es
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'image load-store format' : not supported with this profile: es
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -51,7 +50,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 layout(rg32f) uniform highp writeonly image1D arg_0;
 void textureDimensions_55b23e() {
@@ -68,8 +66,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'image load-store format' : not supported with this profile: es
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'image load-store format' : not supported with this profile: es
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureDimensions/579629.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/579629.wgsl.expected.glsl
index e36787d..da935e0 100644
--- a/test/builtins/gen/textureDimensions/579629.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/579629.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp usampler2DMS arg_0_1;
 void textureDimensions_579629() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp usampler2DMS arg_0_1;
 void textureDimensions_579629() {
diff --git a/test/builtins/gen/textureDimensions/57da0b.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/57da0b.wgsl.expected.glsl
index 4e2de72..9df17cc 100644
--- a/test/builtins/gen/textureDimensions/57da0b.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/57da0b.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 layout(r32ui) uniform highp writeonly uimage1D arg_0;
 void textureDimensions_57da0b() {
@@ -21,9 +20,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'uimage1D' : Reserved word. 
-WARNING: 0:4: 'layout' : useless application of layout qualifier 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'uimage1D' : Reserved word. 
+WARNING: 0:3: 'layout' : useless application of layout qualifier 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -53,7 +52,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 layout(r32ui) uniform highp writeonly uimage1D arg_0;
 void textureDimensions_57da0b() {
@@ -70,9 +68,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'uimage1D' : Reserved word. 
-WARNING: 0:4: 'layout' : useless application of layout qualifier 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'uimage1D' : Reserved word. 
+WARNING: 0:3: 'layout' : useless application of layout qualifier 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureDimensions/57e28f.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/57e28f.wgsl.expected.glsl
index 14c08b8..d42f45f 100644
--- a/test/builtins/gen/textureDimensions/57e28f.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/57e28f.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp samplerCube arg_0_1;
 void textureDimensions_57e28f() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp samplerCube arg_0_1;
 void textureDimensions_57e28f() {
diff --git a/test/builtins/gen/textureDimensions/58a515.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/58a515.wgsl.expected.glsl
index dfecef3..9e32de1 100644
--- a/test/builtins/gen/textureDimensions/58a515.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/58a515.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 layout(rgba16f) uniform highp writeonly image2DArray arg_0;
 void textureDimensions_58a515() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 layout(rgba16f) uniform highp writeonly image2DArray arg_0;
 void textureDimensions_58a515() {
diff --git a/test/builtins/gen/textureDimensions/5985f3.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/5985f3.wgsl.expected.glsl
index 3e91791..6554923 100644
--- a/test/builtins/gen/textureDimensions/5985f3.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/5985f3.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 layout(rgba32i) uniform highp writeonly iimage2DArray arg_0;
 void textureDimensions_5985f3() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 layout(rgba32i) uniform highp writeonly iimage2DArray arg_0;
 void textureDimensions_5985f3() {
diff --git a/test/builtins/gen/textureDimensions/5caa5e.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/5caa5e.wgsl.expected.glsl
index ee641ed..eb4f4bb 100644
--- a/test/builtins/gen/textureDimensions/5caa5e.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/5caa5e.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 layout(rgba32ui) uniform highp writeonly uimage1D arg_0;
 void textureDimensions_5caa5e() {
@@ -21,9 +20,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'uimage1D' : Reserved word. 
-WARNING: 0:4: 'layout' : useless application of layout qualifier 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'uimage1D' : Reserved word. 
+WARNING: 0:3: 'layout' : useless application of layout qualifier 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -53,7 +52,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 layout(rgba32ui) uniform highp writeonly uimage1D arg_0;
 void textureDimensions_5caa5e() {
@@ -70,9 +68,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'uimage1D' : Reserved word. 
-WARNING: 0:4: 'layout' : useless application of layout qualifier 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'uimage1D' : Reserved word. 
+WARNING: 0:3: 'layout' : useless application of layout qualifier 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureDimensions/5e295d.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/5e295d.wgsl.expected.glsl
index de8d76ae..59d9d05 100644
--- a/test/builtins/gen/textureDimensions/5e295d.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/5e295d.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 layout(rgba16ui) uniform highp writeonly uimage2DArray arg_0;
 void textureDimensions_5e295d() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 layout(rgba16ui) uniform highp writeonly uimage2DArray arg_0;
 void textureDimensions_5e295d() {
diff --git a/test/builtins/gen/textureDimensions/60bf54.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/60bf54.wgsl.expected.glsl
index bc6c73c..100cef4 100644
--- a/test/builtins/gen/textureDimensions/60bf54.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/60bf54.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 layout(rg32i) uniform highp writeonly iimage3D arg_0;
 void textureDimensions_60bf54() {
@@ -21,8 +20,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'image load-store format' : not supported with this profile: es
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'image load-store format' : not supported with this profile: es
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -51,7 +50,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 layout(rg32i) uniform highp writeonly iimage3D arg_0;
 void textureDimensions_60bf54() {
@@ -68,8 +66,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'image load-store format' : not supported with this profile: es
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'image load-store format' : not supported with this profile: es
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureDimensions/63f3cf.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/63f3cf.wgsl.expected.glsl
index 0df2672..a98b78b 100644
--- a/test/builtins/gen/textureDimensions/63f3cf.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/63f3cf.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 layout(rg32f) uniform highp writeonly image3D arg_0;
 void textureDimensions_63f3cf() {
@@ -21,8 +20,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'image load-store format' : not supported with this profile: es
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'image load-store format' : not supported with this profile: es
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -51,7 +50,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 layout(rg32f) uniform highp writeonly image3D arg_0;
 void textureDimensions_63f3cf() {
@@ -68,8 +66,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'image load-store format' : not supported with this profile: es
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'image load-store format' : not supported with this profile: es
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureDimensions/68105c.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/68105c.wgsl.expected.glsl
index 7c4a029..cb5bae6 100644
--- a/test/builtins/gen/textureDimensions/68105c.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/68105c.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 layout(rgba32ui) uniform highp writeonly uimage2D arg_0;
 void textureDimensions_68105c() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 layout(rgba32ui) uniform highp writeonly uimage2D arg_0;
 void textureDimensions_68105c() {
diff --git a/test/builtins/gen/textureDimensions/686ef2.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/686ef2.wgsl.expected.glsl
index 37a1df0..920d87d 100644
--- a/test/builtins/gen/textureDimensions/686ef2.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/686ef2.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp isamplerCube arg_0_1;
 void textureDimensions_686ef2() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp isamplerCube arg_0_1;
 void textureDimensions_686ef2() {
diff --git a/test/builtins/gen/textureDimensions/6adac6.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/6adac6.wgsl.expected.glsl
index 7504f68..3041b4c 100644
--- a/test/builtins/gen/textureDimensions/6adac6.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/6adac6.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 layout(rgba32i) uniform highp writeonly iimage1D arg_0;
 void textureDimensions_6adac6() {
@@ -21,9 +20,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'iimage1D' : Reserved word. 
-WARNING: 0:4: 'layout' : useless application of layout qualifier 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'iimage1D' : Reserved word. 
+WARNING: 0:3: 'layout' : useless application of layout qualifier 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -53,7 +52,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 layout(rgba32i) uniform highp writeonly iimage1D arg_0;
 void textureDimensions_6adac6() {
@@ -70,9 +68,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'iimage1D' : Reserved word. 
-WARNING: 0:4: 'layout' : useless application of layout qualifier 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'iimage1D' : Reserved word. 
+WARNING: 0:3: 'layout' : useless application of layout qualifier 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureDimensions/6ec1b4.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/6ec1b4.wgsl.expected.glsl
index 59ad4a5..a9bfcae 100644
--- a/test/builtins/gen/textureDimensions/6ec1b4.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/6ec1b4.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp usampler3D arg_0_1;
 void textureDimensions_6ec1b4() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp usampler3D arg_0_1;
 void textureDimensions_6ec1b4() {
diff --git a/test/builtins/gen/textureDimensions/6f0d79.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/6f0d79.wgsl.expected.glsl
index 8df1622..8becf34 100644
--- a/test/builtins/gen/textureDimensions/6f0d79.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/6f0d79.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 layout(rgba8_snorm) uniform highp writeonly image2DArray arg_0;
 void textureDimensions_6f0d79() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 layout(rgba8_snorm) uniform highp writeonly image2DArray arg_0;
 void textureDimensions_6f0d79() {
diff --git a/test/builtins/gen/textureDimensions/702c53.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/702c53.wgsl.expected.glsl
index e7ab534..43f8f54 100644
--- a/test/builtins/gen/textureDimensions/702c53.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/702c53.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 layout(rgba8) uniform highp writeonly image2D arg_0;
 void textureDimensions_702c53() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 layout(rgba8) uniform highp writeonly image2D arg_0;
 void textureDimensions_702c53() {
diff --git a/test/builtins/gen/textureDimensions/72e5d6.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/72e5d6.wgsl.expected.glsl
index 8831c41..8726204 100644
--- a/test/builtins/gen/textureDimensions/72e5d6.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/72e5d6.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2DArray arg_0_1;
 void textureDimensions_72e5d6() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2DArray arg_0_1;
 void textureDimensions_72e5d6() {
diff --git a/test/builtins/gen/textureDimensions/79df87.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/79df87.wgsl.expected.glsl
index b14a095..2a81bb5 100644
--- a/test/builtins/gen/textureDimensions/79df87.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/79df87.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 uniform highp usampler1D arg_0_1;
 void textureDimensions_79df87() {
@@ -21,8 +20,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'usampler1D' : Reserved word. 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'usampler1D' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -51,7 +50,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 uniform highp usampler1D arg_0_1;
 void textureDimensions_79df87() {
@@ -68,8 +66,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'usampler1D' : Reserved word. 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'usampler1D' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureDimensions/7bf826.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/7bf826.wgsl.expected.glsl
index 7e1e045..ce7e89d 100644
--- a/test/builtins/gen/textureDimensions/7bf826.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/7bf826.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2DArray arg_0_1;
 void textureDimensions_7bf826() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2DArray arg_0_1;
 void textureDimensions_7bf826() {
diff --git a/test/builtins/gen/textureDimensions/7f5c2e.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/7f5c2e.wgsl.expected.glsl
index 275c93f..b7146d2a 100644
--- a/test/builtins/gen/textureDimensions/7f5c2e.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/7f5c2e.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 layout(rg32i) uniform highp writeonly iimage2D arg_0;
 void textureDimensions_7f5c2e() {
@@ -21,8 +20,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'image load-store format' : not supported with this profile: es
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'image load-store format' : not supported with this profile: es
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -51,7 +50,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 layout(rg32i) uniform highp writeonly iimage2D arg_0;
 void textureDimensions_7f5c2e() {
@@ -68,8 +66,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'image load-store format' : not supported with this profile: es
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'image load-store format' : not supported with this profile: es
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureDimensions/8028f3.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/8028f3.wgsl.expected.glsl
index b87a01a..d24ac68 100644
--- a/test/builtins/gen/textureDimensions/8028f3.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/8028f3.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 layout(r32f) uniform highp writeonly image3D arg_0;
 void textureDimensions_8028f3() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 layout(r32f) uniform highp writeonly image3D arg_0;
 void textureDimensions_8028f3() {
diff --git a/test/builtins/gen/textureDimensions/811679.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/811679.wgsl.expected.glsl
index ac8f777..e8d1825 100644
--- a/test/builtins/gen/textureDimensions/811679.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/811679.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 layout(rgba32ui) uniform highp writeonly uimage3D arg_0;
 void textureDimensions_811679() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 layout(rgba32ui) uniform highp writeonly uimage3D arg_0;
 void textureDimensions_811679() {
diff --git a/test/builtins/gen/textureDimensions/820596.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/820596.wgsl.expected.glsl
index 03125d5..a2e9a72 100644
--- a/test/builtins/gen/textureDimensions/820596.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/820596.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 layout(rg32ui) uniform highp writeonly uimage3D arg_0;
 void textureDimensions_820596() {
@@ -21,8 +20,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'image load-store format' : not supported with this profile: es
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'image load-store format' : not supported with this profile: es
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -51,7 +50,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 layout(rg32ui) uniform highp writeonly uimage3D arg_0;
 void textureDimensions_820596() {
@@ -68,8 +66,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'image load-store format' : not supported with this profile: es
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'image load-store format' : not supported with this profile: es
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureDimensions/83ee5a.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/83ee5a.wgsl.expected.glsl
index 57dc03a..9e9ea30 100644
--- a/test/builtins/gen/textureDimensions/83ee5a.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/83ee5a.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 layout(rgba32i) uniform highp writeonly iimage2D arg_0;
 void textureDimensions_83ee5a() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 layout(rgba32i) uniform highp writeonly iimage2D arg_0;
 void textureDimensions_83ee5a() {
diff --git a/test/builtins/gen/textureDimensions/85d556.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/85d556.wgsl.expected.glsl
index 6082252..fca518e 100644
--- a/test/builtins/gen/textureDimensions/85d556.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/85d556.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2DArray arg_0_1;
 void textureDimensions_85d556() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2DArray arg_0_1;
 void textureDimensions_85d556() {
diff --git a/test/builtins/gen/textureDimensions/88ad17.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/88ad17.wgsl.expected.glsl
index 69ed057..e7c21ee 100644
--- a/test/builtins/gen/textureDimensions/88ad17.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/88ad17.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp usamplerCube arg_0_1;
 void textureDimensions_88ad17() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp usamplerCube arg_0_1;
 void textureDimensions_88ad17() {
diff --git a/test/builtins/gen/textureDimensions/8aa4c4.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/8aa4c4.wgsl.expected.glsl
index 537ae82..91b169f 100644
--- a/test/builtins/gen/textureDimensions/8aa4c4.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/8aa4c4.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp sampler3D arg_0_1;
 void textureDimensions_8aa4c4() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp sampler3D arg_0_1;
 void textureDimensions_8aa4c4() {
diff --git a/test/builtins/gen/textureDimensions/8deb5e.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/8deb5e.wgsl.expected.glsl
index c0c0a0d..48ceac9 100644
--- a/test/builtins/gen/textureDimensions/8deb5e.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/8deb5e.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp isampler3D arg_0_1;
 void textureDimensions_8deb5e() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp isampler3D arg_0_1;
 void textureDimensions_8deb5e() {
diff --git a/test/builtins/gen/textureDimensions/8f20bf.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/8f20bf.wgsl.expected.glsl
index 4de19af..192b65f 100644
--- a/test/builtins/gen/textureDimensions/8f20bf.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/8f20bf.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 uniform highp samplerCubeArray arg_0_1;
 void textureDimensions_8f20bf() {
@@ -21,8 +20,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -51,7 +50,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 uniform highp samplerCubeArray arg_0_1;
 void textureDimensions_8f20bf() {
@@ -68,8 +66,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureDimensions/8fca0f.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/8fca0f.wgsl.expected.glsl
index 535df78..f2a553d 100644
--- a/test/builtins/gen/textureDimensions/8fca0f.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/8fca0f.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 layout(rgba32f) uniform highp writeonly image3D arg_0;
 void textureDimensions_8fca0f() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 layout(rgba32f) uniform highp writeonly image3D arg_0;
 void textureDimensions_8fca0f() {
diff --git a/test/builtins/gen/textureDimensions/90340b.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/90340b.wgsl.expected.glsl
index 8085723..c524db9 100644
--- a/test/builtins/gen/textureDimensions/90340b.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/90340b.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 uniform highp samplerCubeArray arg_0_1;
 void textureDimensions_90340b() {
@@ -21,8 +20,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -51,7 +50,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 uniform highp samplerCubeArray arg_0_1;
 void textureDimensions_90340b() {
@@ -68,8 +66,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureDimensions/9042ab.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/9042ab.wgsl.expected.glsl
index 7ca3971..949fd48 100644
--- a/test/builtins/gen/textureDimensions/9042ab.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/9042ab.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 layout(rg32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureDimensions_9042ab() {
@@ -21,8 +20,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'image load-store format' : not supported with this profile: es
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'image load-store format' : not supported with this profile: es
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -51,7 +50,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 layout(rg32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureDimensions_9042ab() {
@@ -68,8 +66,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'image load-store format' : not supported with this profile: es
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'image load-store format' : not supported with this profile: es
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureDimensions/9393b0.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/9393b0.wgsl.expected.glsl
index e1b42df..f60cf40 100644
--- a/test/builtins/gen/textureDimensions/9393b0.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/9393b0.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp samplerCube arg_0_1;
 void textureDimensions_9393b0() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp samplerCube arg_0_1;
 void textureDimensions_9393b0() {
diff --git a/test/builtins/gen/textureDimensions/939fdb.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/939fdb.wgsl.expected.glsl
index b8fd95b..eda7b5e 100644
--- a/test/builtins/gen/textureDimensions/939fdb.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/939fdb.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2D arg_0_1;
 void textureDimensions_939fdb() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2D arg_0_1;
 void textureDimensions_939fdb() {
diff --git a/test/builtins/gen/textureDimensions/962dcd.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/962dcd.wgsl.expected.glsl
index c741061..762a7f1 100644
--- a/test/builtins/gen/textureDimensions/962dcd.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/962dcd.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp isamplerCube arg_0_1;
 void textureDimensions_962dcd() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp isamplerCube arg_0_1;
 void textureDimensions_962dcd() {
diff --git a/test/builtins/gen/textureDimensions/9abfe5.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/9abfe5.wgsl.expected.glsl
index 7818896..2a6d1d3 100644
--- a/test/builtins/gen/textureDimensions/9abfe5.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/9abfe5.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 layout(rgba32f) uniform highp writeonly image2DArray arg_0;
 void textureDimensions_9abfe5() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 layout(rgba32f) uniform highp writeonly image2DArray arg_0;
 void textureDimensions_9abfe5() {
diff --git a/test/builtins/gen/textureDimensions/9c9c57.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/9c9c57.wgsl.expected.glsl
index c7ae9b9..d919863 100644
--- a/test/builtins/gen/textureDimensions/9c9c57.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/9c9c57.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp isampler2DArray arg_0_1;
 void textureDimensions_9c9c57() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp isampler2DArray arg_0_1;
 void textureDimensions_9c9c57() {
diff --git a/test/builtins/gen/textureDimensions/9da9e2.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/9da9e2.wgsl.expected.glsl
index db2591c..e8dff5b 100644
--- a/test/builtins/gen/textureDimensions/9da9e2.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/9da9e2.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 layout(rgba8i) uniform highp writeonly iimage1D arg_0;
 void textureDimensions_9da9e2() {
@@ -21,9 +20,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'iimage1D' : Reserved word. 
-WARNING: 0:4: 'layout' : useless application of layout qualifier 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'iimage1D' : Reserved word. 
+WARNING: 0:3: 'layout' : useless application of layout qualifier 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -53,7 +52,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 layout(rgba8i) uniform highp writeonly iimage1D arg_0;
 void textureDimensions_9da9e2() {
@@ -70,9 +68,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'iimage1D' : Reserved word. 
-WARNING: 0:4: 'layout' : useless application of layout qualifier 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'iimage1D' : Reserved word. 
+WARNING: 0:3: 'layout' : useless application of layout qualifier 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureDimensions/9eb8d8.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/9eb8d8.wgsl.expected.glsl
index f3e5342..e20c02a 100644
--- a/test/builtins/gen/textureDimensions/9eb8d8.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/9eb8d8.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 layout(r32ui) uniform highp writeonly uimage2D arg_0;
 void textureDimensions_9eb8d8() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 layout(r32ui) uniform highp writeonly uimage2D arg_0;
 void textureDimensions_9eb8d8() {
diff --git a/test/builtins/gen/textureDimensions/9f8e46.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/9f8e46.wgsl.expected.glsl
index d319fe9..8a1224f 100644
--- a/test/builtins/gen/textureDimensions/9f8e46.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/9f8e46.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2D arg_0_1;
 void textureDimensions_9f8e46() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2D arg_0_1;
 void textureDimensions_9f8e46() {
diff --git a/test/builtins/gen/textureDimensions/a01845.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/a01845.wgsl.expected.glsl
index 2cedd1e..1be537d 100644
--- a/test/builtins/gen/textureDimensions/a01845.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/a01845.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 uniform highp samplerCubeArray arg_0_1;
 void textureDimensions_a01845() {
@@ -21,8 +20,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -51,7 +50,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 uniform highp samplerCubeArray arg_0_1;
 void textureDimensions_a01845() {
@@ -68,8 +66,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureDimensions/a7d565.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/a7d565.wgsl.expected.glsl
index 77348b5..c477090 100644
--- a/test/builtins/gen/textureDimensions/a7d565.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/a7d565.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 uniform highp usampler1D arg_0_1;
 void textureDimensions_a7d565() {
@@ -21,8 +20,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'usampler1D' : Reserved word. 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'usampler1D' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -51,7 +50,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 uniform highp usampler1D arg_0_1;
 void textureDimensions_a7d565() {
@@ -68,8 +66,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'usampler1D' : Reserved word. 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'usampler1D' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureDimensions/a863f2.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/a863f2.wgsl.expected.glsl
index 92ec47a..0d05642 100644
--- a/test/builtins/gen/textureDimensions/a863f2.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/a863f2.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 layout(r32f) uniform highp writeonly image1D arg_0;
 void textureDimensions_a863f2() {
@@ -21,9 +20,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'image1D' : Reserved word. 
-WARNING: 0:4: 'layout' : useless application of layout qualifier 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'image1D' : Reserved word. 
+WARNING: 0:3: 'layout' : useless application of layout qualifier 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -53,7 +52,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 layout(r32f) uniform highp writeonly image1D arg_0;
 void textureDimensions_a863f2() {
@@ -70,9 +68,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'image1D' : Reserved word. 
-WARNING: 0:4: 'layout' : useless application of layout qualifier 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'image1D' : Reserved word. 
+WARNING: 0:3: 'layout' : useless application of layout qualifier 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureDimensions/a9c9c1.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/a9c9c1.wgsl.expected.glsl
index 21da942..4f0bf6c 100644
--- a/test/builtins/gen/textureDimensions/a9c9c1.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/a9c9c1.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp samplerCube arg_0_1;
 void textureDimensions_a9c9c1() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp samplerCube arg_0_1;
 void textureDimensions_a9c9c1() {
diff --git a/test/builtins/gen/textureDimensions/b0e16d.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/b0e16d.wgsl.expected.glsl
index 1344198..91ba4bc 100644
--- a/test/builtins/gen/textureDimensions/b0e16d.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/b0e16d.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp isampler2D arg_0_1;
 void textureDimensions_b0e16d() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp isampler2D arg_0_1;
 void textureDimensions_b0e16d() {
diff --git a/test/builtins/gen/textureDimensions/b3c954.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/b3c954.wgsl.expected.glsl
index 1de7ad2..3db9432 100644
--- a/test/builtins/gen/textureDimensions/b3c954.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/b3c954.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp usamplerCube arg_0_1;
 void textureDimensions_b3c954() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp usamplerCube arg_0_1;
 void textureDimensions_b3c954() {
diff --git a/test/builtins/gen/textureDimensions/b3e407.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/b3e407.wgsl.expected.glsl
index a42f12c..16ac746 100644
--- a/test/builtins/gen/textureDimensions/b3e407.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/b3e407.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 uniform highp sampler1D arg_0_1;
 void textureDimensions_b3e407() {
@@ -21,8 +20,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'sampler1D' : Reserved word. 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'sampler1D' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -51,7 +50,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 uniform highp sampler1D arg_0_1;
 void textureDimensions_b3e407() {
@@ -68,8 +66,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'sampler1D' : Reserved word. 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'sampler1D' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureDimensions/b91240.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/b91240.wgsl.expected.glsl
index 5e463d0..577c854 100644
--- a/test/builtins/gen/textureDimensions/b91240.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/b91240.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 layout(rgba8_snorm) uniform highp writeonly image2D arg_0;
 void textureDimensions_b91240() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 layout(rgba8_snorm) uniform highp writeonly image2D arg_0;
 void textureDimensions_b91240() {
diff --git a/test/builtins/gen/textureDimensions/ba1481.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/ba1481.wgsl.expected.glsl
index 0dc8786..707e474 100644
--- a/test/builtins/gen/textureDimensions/ba1481.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/ba1481.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2D arg_0_1;
 void textureDimensions_ba1481() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2D arg_0_1;
 void textureDimensions_ba1481() {
diff --git a/test/builtins/gen/textureDimensions/bb3dde.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/bb3dde.wgsl.expected.glsl
index ad0aa59..9e532ec 100644
--- a/test/builtins/gen/textureDimensions/bb3dde.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/bb3dde.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 layout(rgba32i) uniform highp writeonly iimage3D arg_0;
 void textureDimensions_bb3dde() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 layout(rgba32i) uniform highp writeonly iimage3D arg_0;
 void textureDimensions_bb3dde() {
diff --git a/test/builtins/gen/textureDimensions/c30e75.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/c30e75.wgsl.expected.glsl
index 1e68fcd..aaeddd0 100644
--- a/test/builtins/gen/textureDimensions/c30e75.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/c30e75.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 layout(r32i) uniform highp writeonly iimage2D arg_0;
 void textureDimensions_c30e75() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 layout(r32i) uniform highp writeonly iimage2D arg_0;
 void textureDimensions_c30e75() {
diff --git a/test/builtins/gen/textureDimensions/c7943d.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/c7943d.wgsl.expected.glsl
index f1c07a5..940cde2 100644
--- a/test/builtins/gen/textureDimensions/c7943d.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/c7943d.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 layout(rgba8ui) uniform highp writeonly uimage2D arg_0;
 void textureDimensions_c7943d() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 layout(rgba8ui) uniform highp writeonly uimage2D arg_0;
 void textureDimensions_c7943d() {
diff --git a/test/builtins/gen/textureDimensions/cc968c.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/cc968c.wgsl.expected.glsl
index be2436f..75c2df2 100644
--- a/test/builtins/gen/textureDimensions/cc968c.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/cc968c.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 layout(rg32i) uniform highp writeonly iimage1D arg_0;
 void textureDimensions_cc968c() {
@@ -21,8 +20,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'image load-store format' : not supported with this profile: es
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'image load-store format' : not supported with this profile: es
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -51,7 +50,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 layout(rg32i) uniform highp writeonly iimage1D arg_0;
 void textureDimensions_cc968c() {
@@ -68,8 +66,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'image load-store format' : not supported with this profile: es
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'image load-store format' : not supported with this profile: es
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureDimensions/cccc8f.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/cccc8f.wgsl.expected.glsl
index dd69e9b..fc9b7da 100644
--- a/test/builtins/gen/textureDimensions/cccc8f.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/cccc8f.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 layout(rgba8_snorm) uniform highp writeonly image1D arg_0;
 void textureDimensions_cccc8f() {
@@ -21,9 +20,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'image1D' : Reserved word. 
-WARNING: 0:4: 'layout' : useless application of layout qualifier 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'image1D' : Reserved word. 
+WARNING: 0:3: 'layout' : useless application of layout qualifier 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -53,7 +52,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 layout(rgba8_snorm) uniform highp writeonly image1D arg_0;
 void textureDimensions_cccc8f() {
@@ -70,9 +68,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'image1D' : Reserved word. 
-WARNING: 0:4: 'layout' : useless application of layout qualifier 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'image1D' : Reserved word. 
+WARNING: 0:3: 'layout' : useless application of layout qualifier 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureDimensions/cd76a7.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/cd76a7.wgsl.expected.glsl
index dd5463b..25db1ac 100644
--- a/test/builtins/gen/textureDimensions/cd76a7.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/cd76a7.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 layout(rgba8) uniform highp writeonly image3D arg_0;
 void textureDimensions_cd76a7() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 layout(rgba8) uniform highp writeonly image3D arg_0;
 void textureDimensions_cd76a7() {
diff --git a/test/builtins/gen/textureDimensions/cdf473.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/cdf473.wgsl.expected.glsl
index fbf26b4..cdbc503 100644
--- a/test/builtins/gen/textureDimensions/cdf473.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/cdf473.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 layout(rgba16i) uniform highp writeonly iimage2DArray arg_0;
 void textureDimensions_cdf473() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 layout(rgba16i) uniform highp writeonly iimage2DArray arg_0;
 void textureDimensions_cdf473() {
diff --git a/test/builtins/gen/textureDimensions/cec841.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/cec841.wgsl.expected.glsl
index 9887c81..0a90340 100644
--- a/test/builtins/gen/textureDimensions/cec841.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/cec841.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2DArray arg_0_1;
 void textureDimensions_cec841() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2DArray arg_0_1;
 void textureDimensions_cec841() {
diff --git a/test/builtins/gen/textureDimensions/cf7e43.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/cf7e43.wgsl.expected.glsl
index 13ac3be..8d06e28 100644
--- a/test/builtins/gen/textureDimensions/cf7e43.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/cf7e43.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 layout(rgba8_snorm) uniform highp writeonly image3D arg_0;
 void textureDimensions_cf7e43() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 layout(rgba8_snorm) uniform highp writeonly image3D arg_0;
 void textureDimensions_cf7e43() {
diff --git a/test/builtins/gen/textureDimensions/d125bc.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/d125bc.wgsl.expected.glsl
index a7a7c00..9cbbba8 100644
--- a/test/builtins/gen/textureDimensions/d125bc.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/d125bc.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp samplerCube arg_0_1;
 void textureDimensions_d125bc() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp samplerCube arg_0_1;
 void textureDimensions_d125bc() {
diff --git a/test/builtins/gen/textureDimensions/d83c45.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/d83c45.wgsl.expected.glsl
index 8b5f070..74f97fd 100644
--- a/test/builtins/gen/textureDimensions/d83c45.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/d83c45.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 uniform highp usamplerCubeArray arg_0_1;
 void textureDimensions_d83c45() {
@@ -21,8 +20,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'usamplerCubeArray' : Reserved word. 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'usamplerCubeArray' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -51,7 +50,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 uniform highp usamplerCubeArray arg_0_1;
 void textureDimensions_d83c45() {
@@ -68,8 +66,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'usamplerCubeArray' : Reserved word. 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'usamplerCubeArray' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureDimensions/daf7c0.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/daf7c0.wgsl.expected.glsl
index ac91dcf..14444cc 100644
--- a/test/builtins/gen/textureDimensions/daf7c0.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/daf7c0.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp isampler2DMS arg_0_1;
 void textureDimensions_daf7c0() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp isampler2DMS arg_0_1;
 void textureDimensions_daf7c0() {
diff --git a/test/builtins/gen/textureDimensions/dc2dd0.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/dc2dd0.wgsl.expected.glsl
index 32cb914..3825f40 100644
--- a/test/builtins/gen/textureDimensions/dc2dd0.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/dc2dd0.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 layout(rgba8ui) uniform highp writeonly uimage1D arg_0;
 void textureDimensions_dc2dd0() {
@@ -21,9 +20,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'uimage1D' : Reserved word. 
-WARNING: 0:4: 'layout' : useless application of layout qualifier 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'uimage1D' : Reserved word. 
+WARNING: 0:3: 'layout' : useless application of layout qualifier 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -53,7 +52,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 layout(rgba8ui) uniform highp writeonly uimage1D arg_0;
 void textureDimensions_dc2dd0() {
@@ -70,9 +68,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'uimage1D' : Reserved word. 
-WARNING: 0:4: 'layout' : useless application of layout qualifier 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'uimage1D' : Reserved word. 
+WARNING: 0:3: 'layout' : useless application of layout qualifier 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureDimensions/e927be.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/e927be.wgsl.expected.glsl
index 6a36ed2..f579795 100644
--- a/test/builtins/gen/textureDimensions/e927be.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/e927be.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 uniform highp isamplerCubeArray arg_0_1;
 void textureDimensions_e927be() {
@@ -21,8 +20,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'isamplerCubeArray' : Reserved word. 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'isamplerCubeArray' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -51,7 +50,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 uniform highp isamplerCubeArray arg_0_1;
 void textureDimensions_e927be() {
@@ -68,8 +66,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'isamplerCubeArray' : Reserved word. 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'isamplerCubeArray' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureDimensions/e9e96c.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/e9e96c.wgsl.expected.glsl
index 1125475..6df13ab 100644
--- a/test/builtins/gen/textureDimensions/e9e96c.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/e9e96c.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 layout(r32f) uniform highp writeonly image2DArray arg_0;
 void textureDimensions_e9e96c() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 layout(r32f) uniform highp writeonly image2DArray arg_0;
 void textureDimensions_e9e96c() {
diff --git a/test/builtins/gen/textureDimensions/ef5b89.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/ef5b89.wgsl.expected.glsl
index 6081669..8ffbcc8 100644
--- a/test/builtins/gen/textureDimensions/ef5b89.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/ef5b89.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2DMS arg_0_1;
 void textureDimensions_ef5b89() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2DMS arg_0_1;
 void textureDimensions_ef5b89() {
diff --git a/test/builtins/gen/textureDimensions/efc8a4.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/efc8a4.wgsl.expected.glsl
index 263b1b4..3e01cb4 100644
--- a/test/builtins/gen/textureDimensions/efc8a4.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/efc8a4.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp isampler3D arg_0_1;
 void textureDimensions_efc8a4() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp isampler3D arg_0_1;
 void textureDimensions_efc8a4() {
diff --git a/test/builtins/gen/textureDimensions/f60bdb.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/f60bdb.wgsl.expected.glsl
index 5b44875..450b5b7 100644
--- a/test/builtins/gen/textureDimensions/f60bdb.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/f60bdb.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2DMS arg_0_1;
 void textureDimensions_f60bdb() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2DMS arg_0_1;
 void textureDimensions_f60bdb() {
diff --git a/test/builtins/gen/textureDimensions/f7145b.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/f7145b.wgsl.expected.glsl
index e64653c..539921e 100644
--- a/test/builtins/gen/textureDimensions/f7145b.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/f7145b.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp usampler2D arg_0_1;
 void textureDimensions_f7145b() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp usampler2D arg_0_1;
 void textureDimensions_f7145b() {
diff --git a/test/builtins/gen/textureDimensions/f931c7.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/f931c7.wgsl.expected.glsl
index 3aea52c..1bf64b3 100644
--- a/test/builtins/gen/textureDimensions/f931c7.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/f931c7.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 layout(r32f) uniform highp writeonly image2D arg_0;
 void textureDimensions_f931c7() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 layout(r32f) uniform highp writeonly image2D arg_0;
 void textureDimensions_f931c7() {
diff --git a/test/builtins/gen/textureDimensions/fa9859.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/fa9859.wgsl.expected.glsl
index 8d8a510b..912757c 100644
--- a/test/builtins/gen/textureDimensions/fa9859.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/fa9859.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp isampler2D arg_0_1;
 void textureDimensions_fa9859() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp isampler2D arg_0_1;
 void textureDimensions_fa9859() {
diff --git a/test/builtins/gen/textureDimensions/fb5670.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/fb5670.wgsl.expected.glsl
index 5265570..6e75ad4 100644
--- a/test/builtins/gen/textureDimensions/fb5670.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/fb5670.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 layout(rg32f) uniform highp writeonly image2DArray arg_0;
 void textureDimensions_fb5670() {
@@ -21,8 +20,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'image load-store format' : not supported with this profile: es
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'image load-store format' : not supported with this profile: es
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -51,7 +50,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 layout(rg32f) uniform highp writeonly image2DArray arg_0;
 void textureDimensions_fb5670() {
@@ -68,8 +66,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'image load-store format' : not supported with this profile: es
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'image load-store format' : not supported with this profile: es
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureDimensions/fcac78.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/fcac78.wgsl.expected.glsl
index f09c542..2a7b0c1 100644
--- a/test/builtins/gen/textureDimensions/fcac78.wgsl.expected.glsl
+++ b/test/builtins/gen/textureDimensions/fcac78.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 layout(rgba8ui) uniform highp writeonly uimage3D arg_0;
 void textureDimensions_fcac78() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 layout(rgba8ui) uniform highp writeonly uimage3D arg_0;
 void textureDimensions_fcac78() {
diff --git a/test/builtins/gen/textureGather/01305f.wgsl.expected.glsl b/test/builtins/gen/textureGather/01305f.wgsl.expected.glsl
index 5389a4c..1a3e90c 100644
--- a/test/builtins/gen/textureGather/01305f.wgsl.expected.glsl
+++ b/test/builtins/gen/textureGather/01305f.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp usampler2DArray arg_1_arg_2;
 
@@ -37,7 +36,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp usampler2DArray arg_1_arg_2;
 
diff --git a/test/builtins/gen/textureGather/06030a.wgsl.expected.glsl b/test/builtins/gen/textureGather/06030a.wgsl.expected.glsl
index 21b131e..ba3f33a 100644
--- a/test/builtins/gen/textureGather/06030a.wgsl.expected.glsl
+++ b/test/builtins/gen/textureGather/06030a.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2DArray arg_1_arg_2;
 
@@ -37,7 +36,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2DArray arg_1_arg_2;
 
diff --git a/test/builtins/gen/textureGather/10c554.wgsl.expected.glsl b/test/builtins/gen/textureGather/10c554.wgsl.expected.glsl
index 28babb5..b4d9a14 100644
--- a/test/builtins/gen/textureGather/10c554.wgsl.expected.glsl
+++ b/test/builtins/gen/textureGather/10c554.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp samplerCubeShadow arg_0_arg_1;
 
@@ -37,7 +36,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp samplerCubeShadow arg_0_arg_1;
 
diff --git a/test/builtins/gen/textureGather/15d79c.wgsl.expected.glsl b/test/builtins/gen/textureGather/15d79c.wgsl.expected.glsl
index 6954454..0c1a85e 100644
--- a/test/builtins/gen/textureGather/15d79c.wgsl.expected.glsl
+++ b/test/builtins/gen/textureGather/15d79c.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2D arg_1_arg_2;
 
@@ -37,7 +36,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2D arg_1_arg_2;
 
diff --git a/test/builtins/gen/textureGather/2e0ed5.wgsl.expected.glsl b/test/builtins/gen/textureGather/2e0ed5.wgsl.expected.glsl
index 9339d5e..853753e 100644
--- a/test/builtins/gen/textureGather/2e0ed5.wgsl.expected.glsl
+++ b/test/builtins/gen/textureGather/2e0ed5.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2DShadow arg_0_arg_1;
 
@@ -37,7 +36,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2DShadow arg_0_arg_1;
 
diff --git a/test/builtins/gen/textureGather/3112e8.wgsl.expected.glsl b/test/builtins/gen/textureGather/3112e8.wgsl.expected.glsl
index b9f564e..3b057f1 100644
--- a/test/builtins/gen/textureGather/3112e8.wgsl.expected.glsl
+++ b/test/builtins/gen/textureGather/3112e8.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 uniform highp samplerCubeArray arg_1_arg_2;
 
@@ -22,8 +21,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -53,7 +52,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 uniform highp samplerCubeArray arg_1_arg_2;
 
@@ -71,8 +69,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureGather/3c527e.wgsl.expected.glsl b/test/builtins/gen/textureGather/3c527e.wgsl.expected.glsl
index c909e1c..c0b14fa 100644
--- a/test/builtins/gen/textureGather/3c527e.wgsl.expected.glsl
+++ b/test/builtins/gen/textureGather/3c527e.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 uniform highp usamplerCubeArray arg_1_arg_2;
 
@@ -22,8 +21,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'usamplerCubeArray' : Reserved word. 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'usamplerCubeArray' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -53,7 +52,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 uniform highp usamplerCubeArray arg_1_arg_2;
 
@@ -71,8 +69,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'usamplerCubeArray' : Reserved word. 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'usamplerCubeArray' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureGather/43025d.wgsl.expected.glsl b/test/builtins/gen/textureGather/43025d.wgsl.expected.glsl
index 4ea4e1e..2639f6e 100644
--- a/test/builtins/gen/textureGather/43025d.wgsl.expected.glsl
+++ b/test/builtins/gen/textureGather/43025d.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 uniform highp samplerCubeArrayShadow arg_0_arg_1;
 
@@ -22,8 +21,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'samplerCubeArrayShadow' : Reserved word. 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'samplerCubeArrayShadow' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -53,7 +52,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 uniform highp samplerCubeArrayShadow arg_0_arg_1;
 
@@ -71,8 +69,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'samplerCubeArrayShadow' : Reserved word. 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'samplerCubeArrayShadow' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureGather/4f2350.wgsl.expected.glsl b/test/builtins/gen/textureGather/4f2350.wgsl.expected.glsl
index ac23239..900d250 100644
--- a/test/builtins/gen/textureGather/4f2350.wgsl.expected.glsl
+++ b/test/builtins/gen/textureGather/4f2350.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp isampler2DArray arg_1_arg_2;
 
@@ -37,7 +36,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp isampler2DArray arg_1_arg_2;
 
diff --git a/test/builtins/gen/textureGather/51cf0b.wgsl.expected.glsl b/test/builtins/gen/textureGather/51cf0b.wgsl.expected.glsl
index 1ff6742..f07deb6 100644
--- a/test/builtins/gen/textureGather/51cf0b.wgsl.expected.glsl
+++ b/test/builtins/gen/textureGather/51cf0b.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp isampler2DArray arg_1_arg_2;
 
@@ -37,7 +36,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp isampler2DArray arg_1_arg_2;
 
diff --git a/test/builtins/gen/textureGather/53ece6.wgsl.expected.glsl b/test/builtins/gen/textureGather/53ece6.wgsl.expected.glsl
index 4b25344..20e2020 100644
--- a/test/builtins/gen/textureGather/53ece6.wgsl.expected.glsl
+++ b/test/builtins/gen/textureGather/53ece6.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
@@ -37,7 +36,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
diff --git a/test/builtins/gen/textureGather/57bfc6.wgsl.expected.glsl b/test/builtins/gen/textureGather/57bfc6.wgsl.expected.glsl
index 8eb8983..dcfe1d0 100644
--- a/test/builtins/gen/textureGather/57bfc6.wgsl.expected.glsl
+++ b/test/builtins/gen/textureGather/57bfc6.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp samplerCube arg_1_arg_2;
 
@@ -37,7 +36,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp samplerCube arg_1_arg_2;
 
diff --git a/test/builtins/gen/textureGather/587ba3.wgsl.expected.glsl b/test/builtins/gen/textureGather/587ba3.wgsl.expected.glsl
index ecb1131..c5aa251 100644
--- a/test/builtins/gen/textureGather/587ba3.wgsl.expected.glsl
+++ b/test/builtins/gen/textureGather/587ba3.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp isampler2D arg_1_arg_2;
 
@@ -37,7 +36,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp isampler2D arg_1_arg_2;
 
diff --git a/test/builtins/gen/textureGather/69e0fb.wgsl.expected.glsl b/test/builtins/gen/textureGather/69e0fb.wgsl.expected.glsl
index 060919e..f75dbec 100644
--- a/test/builtins/gen/textureGather/69e0fb.wgsl.expected.glsl
+++ b/test/builtins/gen/textureGather/69e0fb.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp isampler2D arg_1_arg_2;
 
@@ -37,7 +36,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp isampler2D arg_1_arg_2;
 
diff --git a/test/builtins/gen/textureGather/93003d.wgsl.expected.glsl b/test/builtins/gen/textureGather/93003d.wgsl.expected.glsl
index bd5c8b6..811f4ea 100644
--- a/test/builtins/gen/textureGather/93003d.wgsl.expected.glsl
+++ b/test/builtins/gen/textureGather/93003d.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp usampler2D arg_1_arg_2;
 
@@ -37,7 +36,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp usampler2D arg_1_arg_2;
 
diff --git a/test/builtins/gen/textureGather/9a6358.wgsl.expected.glsl b/test/builtins/gen/textureGather/9a6358.wgsl.expected.glsl
index 8a59c9d..64f8730 100644
--- a/test/builtins/gen/textureGather/9a6358.wgsl.expected.glsl
+++ b/test/builtins/gen/textureGather/9a6358.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
@@ -37,7 +36,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
diff --git a/test/builtins/gen/textureGather/9efca2.wgsl.expected.glsl b/test/builtins/gen/textureGather/9efca2.wgsl.expected.glsl
index 49c5e4f..0cf402f 100644
--- a/test/builtins/gen/textureGather/9efca2.wgsl.expected.glsl
+++ b/test/builtins/gen/textureGather/9efca2.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2DArray arg_1_arg_2;
 
@@ -37,7 +36,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2DArray arg_1_arg_2;
 
diff --git a/test/builtins/gen/textureGather/bd0b1e.wgsl.expected.glsl b/test/builtins/gen/textureGather/bd0b1e.wgsl.expected.glsl
index ecfe863..4cb88c7 100644
--- a/test/builtins/gen/textureGather/bd0b1e.wgsl.expected.glsl
+++ b/test/builtins/gen/textureGather/bd0b1e.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2D arg_1_arg_2;
 
@@ -37,7 +36,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2D arg_1_arg_2;
 
diff --git a/test/builtins/gen/textureGather/c409ae.wgsl.expected.glsl b/test/builtins/gen/textureGather/c409ae.wgsl.expected.glsl
index a5a1a5b..5c2364f 100644
--- a/test/builtins/gen/textureGather/c409ae.wgsl.expected.glsl
+++ b/test/builtins/gen/textureGather/c409ae.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2DShadow arg_0_arg_1;
 
@@ -37,7 +36,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2DShadow arg_0_arg_1;
 
diff --git a/test/builtins/gen/textureGather/c55822.wgsl.expected.glsl b/test/builtins/gen/textureGather/c55822.wgsl.expected.glsl
index c376ef6..bf03a3c 100644
--- a/test/builtins/gen/textureGather/c55822.wgsl.expected.glsl
+++ b/test/builtins/gen/textureGather/c55822.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 uniform highp isamplerCubeArray arg_1_arg_2;
 
@@ -22,8 +21,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'isamplerCubeArray' : Reserved word. 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'isamplerCubeArray' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -53,7 +52,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 uniform highp isamplerCubeArray arg_1_arg_2;
 
@@ -71,8 +69,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'isamplerCubeArray' : Reserved word. 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'isamplerCubeArray' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureGather/e1b67d.wgsl.expected.glsl b/test/builtins/gen/textureGather/e1b67d.wgsl.expected.glsl
index 63bf56c..8ddb8df 100644
--- a/test/builtins/gen/textureGather/e1b67d.wgsl.expected.glsl
+++ b/test/builtins/gen/textureGather/e1b67d.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp usamplerCube arg_1_arg_2;
 
@@ -37,7 +36,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp usamplerCube arg_1_arg_2;
 
diff --git a/test/builtins/gen/textureGather/e9eff6.wgsl.expected.glsl b/test/builtins/gen/textureGather/e9eff6.wgsl.expected.glsl
index 543a238..c4a8386 100644
--- a/test/builtins/gen/textureGather/e9eff6.wgsl.expected.glsl
+++ b/test/builtins/gen/textureGather/e9eff6.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp usampler2D arg_1_arg_2;
 
@@ -37,7 +36,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp usampler2D arg_1_arg_2;
 
diff --git a/test/builtins/gen/textureGather/f5f3ba.wgsl.expected.glsl b/test/builtins/gen/textureGather/f5f3ba.wgsl.expected.glsl
index 7039398..9d2b1cd 100644
--- a/test/builtins/gen/textureGather/f5f3ba.wgsl.expected.glsl
+++ b/test/builtins/gen/textureGather/f5f3ba.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp usampler2DArray arg_1_arg_2;
 
@@ -37,7 +36,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp usampler2DArray arg_1_arg_2;
 
diff --git a/test/builtins/gen/textureGather/f7995a.wgsl.expected.glsl b/test/builtins/gen/textureGather/f7995a.wgsl.expected.glsl
index 6d73a72..428e504 100644
--- a/test/builtins/gen/textureGather/f7995a.wgsl.expected.glsl
+++ b/test/builtins/gen/textureGather/f7995a.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp isamplerCube arg_1_arg_2;
 
@@ -37,7 +36,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp isamplerCube arg_1_arg_2;
 
diff --git a/test/builtins/gen/textureGatherCompare/182fd4.wgsl.expected.glsl b/test/builtins/gen/textureGatherCompare/182fd4.wgsl.expected.glsl
index a201e81..703dc75 100644
--- a/test/builtins/gen/textureGatherCompare/182fd4.wgsl.expected.glsl
+++ b/test/builtins/gen/textureGatherCompare/182fd4.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 uniform highp samplerCubeShadow arg_0_arg_1;
 
@@ -22,9 +21,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:7: 'textureGather' : no matching overloaded function found 
-ERROR: 0:7: '=' :  cannot convert from ' const float' to ' temp mediump 4-component vector of float'
-ERROR: 0:7: '' : compilation terminated 
+ERROR: 0:6: 'textureGather' : no matching overloaded function found 
+ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp 4-component vector of float'
+ERROR: 0:6: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
@@ -55,7 +54,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 uniform highp samplerCubeShadow arg_0_arg_1;
 
@@ -73,9 +71,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:7: 'textureGather' : no matching overloaded function found 
-ERROR: 0:7: '=' :  cannot convert from ' const float' to ' temp mediump 4-component vector of float'
-ERROR: 0:7: '' : compilation terminated 
+ERROR: 0:6: 'textureGather' : no matching overloaded function found 
+ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp 4-component vector of float'
+ERROR: 0:6: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureGatherCompare/60d2d1.wgsl.expected.glsl b/test/builtins/gen/textureGatherCompare/60d2d1.wgsl.expected.glsl
index 45a3533..c04c977 100644
--- a/test/builtins/gen/textureGatherCompare/60d2d1.wgsl.expected.glsl
+++ b/test/builtins/gen/textureGatherCompare/60d2d1.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 uniform highp samplerCubeArrayShadow arg_0_arg_1;
 
@@ -22,8 +21,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'samplerCubeArrayShadow' : Reserved word. 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'samplerCubeArrayShadow' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -53,7 +52,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 uniform highp samplerCubeArrayShadow arg_0_arg_1;
 
@@ -71,8 +69,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'samplerCubeArrayShadow' : Reserved word. 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'samplerCubeArrayShadow' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureGatherCompare/6d9352.wgsl.expected.glsl b/test/builtins/gen/textureGatherCompare/6d9352.wgsl.expected.glsl
index 8a77fa3..723f83e 100644
--- a/test/builtins/gen/textureGatherCompare/6d9352.wgsl.expected.glsl
+++ b/test/builtins/gen/textureGatherCompare/6d9352.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2DShadow arg_0_arg_1;
 
@@ -22,9 +21,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:7: 'textureGather' : no matching overloaded function found 
-ERROR: 0:7: '=' :  cannot convert from ' const float' to ' temp mediump 4-component vector of float'
-ERROR: 0:7: '' : compilation terminated 
+ERROR: 0:6: 'textureGather' : no matching overloaded function found 
+ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp 4-component vector of float'
+ERROR: 0:6: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
@@ -55,7 +54,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2DShadow arg_0_arg_1;
 
@@ -73,9 +71,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:7: 'textureGather' : no matching overloaded function found 
-ERROR: 0:7: '=' :  cannot convert from ' const float' to ' temp mediump 4-component vector of float'
-ERROR: 0:7: '' : compilation terminated 
+ERROR: 0:6: 'textureGather' : no matching overloaded function found 
+ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp 4-component vector of float'
+ERROR: 0:6: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureGatherCompare/6f1267.wgsl.expected.glsl b/test/builtins/gen/textureGatherCompare/6f1267.wgsl.expected.glsl
index 82b518d..4012e12 100644
--- a/test/builtins/gen/textureGatherCompare/6f1267.wgsl.expected.glsl
+++ b/test/builtins/gen/textureGatherCompare/6f1267.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
@@ -22,9 +21,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:7: 'textureGatherOffset' : no matching overloaded function found 
-ERROR: 0:7: '=' :  cannot convert from ' const float' to ' temp mediump 4-component vector of float'
-ERROR: 0:7: '' : compilation terminated 
+ERROR: 0:6: 'textureGatherOffset' : no matching overloaded function found 
+ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp 4-component vector of float'
+ERROR: 0:6: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
@@ -55,7 +54,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
@@ -73,9 +71,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:7: 'textureGatherOffset' : no matching overloaded function found 
-ERROR: 0:7: '=' :  cannot convert from ' const float' to ' temp mediump 4-component vector of float'
-ERROR: 0:7: '' : compilation terminated 
+ERROR: 0:6: 'textureGatherOffset' : no matching overloaded function found 
+ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp 4-component vector of float'
+ERROR: 0:6: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureGatherCompare/783e65.wgsl.expected.glsl b/test/builtins/gen/textureGatherCompare/783e65.wgsl.expected.glsl
index dda9b95..07f87a2 100644
--- a/test/builtins/gen/textureGatherCompare/783e65.wgsl.expected.glsl
+++ b/test/builtins/gen/textureGatherCompare/783e65.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
@@ -22,9 +21,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:7: 'textureGather' : no matching overloaded function found 
-ERROR: 0:7: '=' :  cannot convert from ' const float' to ' temp mediump 4-component vector of float'
-ERROR: 0:7: '' : compilation terminated 
+ERROR: 0:6: 'textureGather' : no matching overloaded function found 
+ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp 4-component vector of float'
+ERROR: 0:6: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
@@ -55,7 +54,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
@@ -73,9 +71,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:7: 'textureGather' : no matching overloaded function found 
-ERROR: 0:7: '=' :  cannot convert from ' const float' to ' temp mediump 4-component vector of float'
-ERROR: 0:7: '' : compilation terminated 
+ERROR: 0:6: 'textureGather' : no matching overloaded function found 
+ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp 4-component vector of float'
+ERROR: 0:6: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureGatherCompare/a5f587.wgsl.expected.glsl b/test/builtins/gen/textureGatherCompare/a5f587.wgsl.expected.glsl
index e5bca3d..890c346 100644
--- a/test/builtins/gen/textureGatherCompare/a5f587.wgsl.expected.glsl
+++ b/test/builtins/gen/textureGatherCompare/a5f587.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2DShadow arg_0_arg_1;
 
@@ -22,9 +21,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:7: 'textureGatherOffset' : no matching overloaded function found 
-ERROR: 0:7: '=' :  cannot convert from ' const float' to ' temp mediump 4-component vector of float'
-ERROR: 0:7: '' : compilation terminated 
+ERROR: 0:6: 'textureGatherOffset' : no matching overloaded function found 
+ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp 4-component vector of float'
+ERROR: 0:6: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
@@ -55,7 +54,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2DShadow arg_0_arg_1;
 
@@ -73,9 +71,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:7: 'textureGatherOffset' : no matching overloaded function found 
-ERROR: 0:7: '=' :  cannot convert from ' const float' to ' temp mediump 4-component vector of float'
-ERROR: 0:7: '' : compilation terminated 
+ERROR: 0:6: 'textureGatherOffset' : no matching overloaded function found 
+ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp 4-component vector of float'
+ERROR: 0:6: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureLoad/19cf87.wgsl.expected.glsl b/test/builtins/gen/textureLoad/19cf87.wgsl.expected.glsl
index 8e1ff9d..f2b0f22 100644
--- a/test/builtins/gen/textureLoad/19cf87.wgsl.expected.glsl
+++ b/test/builtins/gen/textureLoad/19cf87.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2D arg_0_1;
 void textureLoad_19cf87() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2D arg_0_1;
 void textureLoad_19cf87() {
diff --git a/test/builtins/gen/textureLoad/1b8588.wgsl.expected.glsl b/test/builtins/gen/textureLoad/1b8588.wgsl.expected.glsl
index d4c7cc9..f524108 100644
--- a/test/builtins/gen/textureLoad/1b8588.wgsl.expected.glsl
+++ b/test/builtins/gen/textureLoad/1b8588.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 uniform highp usampler1D arg_0_1;
 void textureLoad_1b8588() {
@@ -21,8 +20,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'usampler1D' : Reserved word. 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'usampler1D' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -51,7 +50,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 uniform highp usampler1D arg_0_1;
 void textureLoad_1b8588() {
@@ -68,8 +66,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'usampler1D' : Reserved word. 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'usampler1D' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureLoad/1f2016.wgsl.expected.glsl b/test/builtins/gen/textureLoad/1f2016.wgsl.expected.glsl
index 6defceb..afa5229 100644
--- a/test/builtins/gen/textureLoad/1f2016.wgsl.expected.glsl
+++ b/test/builtins/gen/textureLoad/1f2016.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp sampler3D arg_0_1;
 void textureLoad_1f2016() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp sampler3D arg_0_1;
 void textureLoad_1f2016() {
diff --git a/test/builtins/gen/textureLoad/484344.wgsl.expected.glsl b/test/builtins/gen/textureLoad/484344.wgsl.expected.glsl
index f0ecc81..b354b88 100644
--- a/test/builtins/gen/textureLoad/484344.wgsl.expected.glsl
+++ b/test/builtins/gen/textureLoad/484344.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2D arg_0_1;
 void textureLoad_484344() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2D arg_0_1;
 void textureLoad_484344() {
diff --git a/test/builtins/gen/textureLoad/4fd803.wgsl.expected.glsl b/test/builtins/gen/textureLoad/4fd803.wgsl.expected.glsl
index dac7902..91c43e9 100644
--- a/test/builtins/gen/textureLoad/4fd803.wgsl.expected.glsl
+++ b/test/builtins/gen/textureLoad/4fd803.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp isampler3D arg_0_1;
 void textureLoad_4fd803() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp isampler3D arg_0_1;
 void textureLoad_4fd803() {
diff --git a/test/builtins/gen/textureLoad/5a2f9d.wgsl.expected.glsl b/test/builtins/gen/textureLoad/5a2f9d.wgsl.expected.glsl
index 753b79b..edb8c3c 100644
--- a/test/builtins/gen/textureLoad/5a2f9d.wgsl.expected.glsl
+++ b/test/builtins/gen/textureLoad/5a2f9d.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 uniform highp isampler1D arg_0_1;
 void textureLoad_5a2f9d() {
@@ -21,8 +20,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'isampler1D' : Reserved word. 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'isampler1D' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -51,7 +50,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 uniform highp isampler1D arg_0_1;
 void textureLoad_5a2f9d() {
@@ -68,8 +66,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'isampler1D' : Reserved word. 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'isampler1D' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureLoad/6154d4.wgsl.expected.glsl b/test/builtins/gen/textureLoad/6154d4.wgsl.expected.glsl
index 8e43537e..44ad4e7 100644
--- a/test/builtins/gen/textureLoad/6154d4.wgsl.expected.glsl
+++ b/test/builtins/gen/textureLoad/6154d4.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp usampler2D arg_0_1;
 void textureLoad_6154d4() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp usampler2D arg_0_1;
 void textureLoad_6154d4() {
diff --git a/test/builtins/gen/textureLoad/6273b1.wgsl.expected.glsl b/test/builtins/gen/textureLoad/6273b1.wgsl.expected.glsl
index 7416ba2..0e1b6bb 100644
--- a/test/builtins/gen/textureLoad/6273b1.wgsl.expected.glsl
+++ b/test/builtins/gen/textureLoad/6273b1.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2DMS arg_0_1;
 void textureLoad_6273b1() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2DMS arg_0_1;
 void textureLoad_6273b1() {
diff --git a/test/builtins/gen/textureLoad/79e697.wgsl.expected.glsl b/test/builtins/gen/textureLoad/79e697.wgsl.expected.glsl
index 9c762cc..393f9f8 100644
--- a/test/builtins/gen/textureLoad/79e697.wgsl.expected.glsl
+++ b/test/builtins/gen/textureLoad/79e697.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp isampler2DArray arg_0_1;
 void textureLoad_79e697() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp isampler2DArray arg_0_1;
 void textureLoad_79e697() {
diff --git a/test/builtins/gen/textureLoad/7c90e5.wgsl.expected.glsl b/test/builtins/gen/textureLoad/7c90e5.wgsl.expected.glsl
index 9689042..7361ffe 100644
--- a/test/builtins/gen/textureLoad/7c90e5.wgsl.expected.glsl
+++ b/test/builtins/gen/textureLoad/7c90e5.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp usampler2DArray arg_0_1;
 void textureLoad_7c90e5() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp usampler2DArray arg_0_1;
 void textureLoad_7c90e5() {
diff --git a/test/builtins/gen/textureLoad/81c381.wgsl.expected.glsl b/test/builtins/gen/textureLoad/81c381.wgsl.expected.glsl
index fc474bd..484d9bf 100644
--- a/test/builtins/gen/textureLoad/81c381.wgsl.expected.glsl
+++ b/test/builtins/gen/textureLoad/81c381.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 uniform highp sampler1D arg_0_1;
 void textureLoad_81c381() {
@@ -21,8 +20,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'sampler1D' : Reserved word. 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'sampler1D' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -51,7 +50,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 uniform highp sampler1D arg_0_1;
 void textureLoad_81c381() {
@@ -68,8 +66,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'sampler1D' : Reserved word. 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'sampler1D' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureLoad/87be85.wgsl.expected.glsl b/test/builtins/gen/textureLoad/87be85.wgsl.expected.glsl
index 16aca94..98d4375 100644
--- a/test/builtins/gen/textureLoad/87be85.wgsl.expected.glsl
+++ b/test/builtins/gen/textureLoad/87be85.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_87be85() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_87be85() {
diff --git a/test/builtins/gen/textureLoad/8acf41.wgsl.expected.glsl b/test/builtins/gen/textureLoad/8acf41.wgsl.expected.glsl
index 98bc6a3..3e78a01 100644
--- a/test/builtins/gen/textureLoad/8acf41.wgsl.expected.glsl
+++ b/test/builtins/gen/textureLoad/8acf41.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2D arg_0_1;
 void textureLoad_8acf41() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2D arg_0_1;
 void textureLoad_8acf41() {
diff --git a/test/builtins/gen/textureLoad/9b2667.wgsl.expected.glsl b/test/builtins/gen/textureLoad/9b2667.wgsl.expected.glsl
index 74b106d..ec714c1 100644
--- a/test/builtins/gen/textureLoad/9b2667.wgsl.expected.glsl
+++ b/test/builtins/gen/textureLoad/9b2667.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_9b2667() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_9b2667() {
diff --git a/test/builtins/gen/textureLoad/a583c9.wgsl.expected.glsl b/test/builtins/gen/textureLoad/a583c9.wgsl.expected.glsl
index d328ec0..e215d92 100644
--- a/test/builtins/gen/textureLoad/a583c9.wgsl.expected.glsl
+++ b/test/builtins/gen/textureLoad/a583c9.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2DMS arg_0_1;
 void textureLoad_a583c9() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2DMS arg_0_1;
 void textureLoad_a583c9() {
diff --git a/test/builtins/gen/textureLoad/a9a9f5.wgsl.expected.glsl b/test/builtins/gen/textureLoad/a9a9f5.wgsl.expected.glsl
index 37197ae..8d628a6 100644
--- a/test/builtins/gen/textureLoad/a9a9f5.wgsl.expected.glsl
+++ b/test/builtins/gen/textureLoad/a9a9f5.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp usampler3D arg_0_1;
 void textureLoad_a9a9f5() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp usampler3D arg_0_1;
 void textureLoad_a9a9f5() {
diff --git a/test/builtins/gen/textureLoad/c2a480.wgsl.expected.glsl b/test/builtins/gen/textureLoad/c2a480.wgsl.expected.glsl
index a60ce49..41bfacc 100644
--- a/test/builtins/gen/textureLoad/c2a480.wgsl.expected.glsl
+++ b/test/builtins/gen/textureLoad/c2a480.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp isampler2D arg_0_1;
 void textureLoad_c2a480() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp isampler2D arg_0_1;
 void textureLoad_c2a480() {
diff --git a/test/builtins/gen/textureLoad/c378ee.wgsl.expected.glsl b/test/builtins/gen/textureLoad/c378ee.wgsl.expected.glsl
index 384dc44..1eb010c 100644
--- a/test/builtins/gen/textureLoad/c378ee.wgsl.expected.glsl
+++ b/test/builtins/gen/textureLoad/c378ee.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp usampler2DMS arg_0_1;
 void textureLoad_c378ee() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp usampler2DMS arg_0_1;
 void textureLoad_c378ee() {
diff --git a/test/builtins/gen/textureLoad/e3d2cc.wgsl.expected.glsl b/test/builtins/gen/textureLoad/e3d2cc.wgsl.expected.glsl
index 898cd99..4eaf8a3 100644
--- a/test/builtins/gen/textureLoad/e3d2cc.wgsl.expected.glsl
+++ b/test/builtins/gen/textureLoad/e3d2cc.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp isampler2DMS arg_0_1;
 void textureLoad_e3d2cc() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp isampler2DMS arg_0_1;
 void textureLoad_e3d2cc() {
diff --git a/test/builtins/gen/textureNumLayers/024820.wgsl.expected.glsl b/test/builtins/gen/textureNumLayers/024820.wgsl.expected.glsl
index f8331b3..9aaedbf 100644
--- a/test/builtins/gen/textureNumLayers/024820.wgsl.expected.glsl
+++ b/test/builtins/gen/textureNumLayers/024820.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2DArray arg_0_1;
 void textureNumLayers_024820() {
@@ -21,9 +20,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
-ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
-ERROR: 0:6: '' : compilation terminated 
+ERROR: 0:5: 'textureQueryLevels' : no matching overloaded function found 
+ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
@@ -53,7 +52,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2DArray arg_0_1;
 void textureNumLayers_024820() {
@@ -70,9 +68,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
-ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
-ERROR: 0:6: '' : compilation terminated 
+ERROR: 0:5: 'textureQueryLevels' : no matching overloaded function found 
+ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureNumLayers/053df7.wgsl.expected.glsl b/test/builtins/gen/textureNumLayers/053df7.wgsl.expected.glsl
index f3f2b38..a413d26 100644
--- a/test/builtins/gen/textureNumLayers/053df7.wgsl.expected.glsl
+++ b/test/builtins/gen/textureNumLayers/053df7.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 uniform highp usamplerCubeArray arg_0_1;
 void textureNumLayers_053df7() {
@@ -21,8 +20,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'usamplerCubeArray' : Reserved word. 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'usamplerCubeArray' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -51,7 +50,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 uniform highp usamplerCubeArray arg_0_1;
 void textureNumLayers_053df7() {
@@ -68,8 +66,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'usamplerCubeArray' : Reserved word. 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'usamplerCubeArray' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureNumLayers/058cc3.wgsl.expected.glsl b/test/builtins/gen/textureNumLayers/058cc3.wgsl.expected.glsl
index 211fe20..6470356 100644
--- a/test/builtins/gen/textureNumLayers/058cc3.wgsl.expected.glsl
+++ b/test/builtins/gen/textureNumLayers/058cc3.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 layout(rg32i) uniform highp writeonly iimage2DArray arg_0;
 void textureNumLayers_058cc3() {
@@ -21,8 +20,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'image load-store format' : not supported with this profile: es
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'image load-store format' : not supported with this profile: es
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -51,7 +50,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 layout(rg32i) uniform highp writeonly iimage2DArray arg_0;
 void textureNumLayers_058cc3() {
@@ -68,8 +66,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'image load-store format' : not supported with this profile: es
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'image load-store format' : not supported with this profile: es
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureNumLayers/09d05d.wgsl.expected.glsl b/test/builtins/gen/textureNumLayers/09d05d.wgsl.expected.glsl
index 7514327..703e836 100644
--- a/test/builtins/gen/textureNumLayers/09d05d.wgsl.expected.glsl
+++ b/test/builtins/gen/textureNumLayers/09d05d.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 layout(rgba8) uniform highp writeonly image2DArray arg_0;
 void textureNumLayers_09d05d() {
@@ -21,9 +20,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
-ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
-ERROR: 0:6: '' : compilation terminated 
+ERROR: 0:5: 'textureQueryLevels' : no matching overloaded function found 
+ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
@@ -53,7 +52,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 layout(rgba8) uniform highp writeonly image2DArray arg_0;
 void textureNumLayers_09d05d() {
@@ -70,9 +68,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
-ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
-ERROR: 0:6: '' : compilation terminated 
+ERROR: 0:5: 'textureQueryLevels' : no matching overloaded function found 
+ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureNumLayers/13b4ce.wgsl.expected.glsl b/test/builtins/gen/textureNumLayers/13b4ce.wgsl.expected.glsl
index 8f83293..43a852b 100644
--- a/test/builtins/gen/textureNumLayers/13b4ce.wgsl.expected.glsl
+++ b/test/builtins/gen/textureNumLayers/13b4ce.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 layout(rgba32i) uniform highp writeonly iimage2DArray arg_0;
 void textureNumLayers_13b4ce() {
@@ -21,9 +20,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
-ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
-ERROR: 0:6: '' : compilation terminated 
+ERROR: 0:5: 'textureQueryLevels' : no matching overloaded function found 
+ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
@@ -53,7 +52,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 layout(rgba32i) uniform highp writeonly iimage2DArray arg_0;
 void textureNumLayers_13b4ce() {
@@ -70,9 +68,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
-ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
-ERROR: 0:6: '' : compilation terminated 
+ERROR: 0:5: 'textureQueryLevels' : no matching overloaded function found 
+ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureNumLayers/22e53b.wgsl.expected.glsl b/test/builtins/gen/textureNumLayers/22e53b.wgsl.expected.glsl
index 2054fd0..3ca623d 100644
--- a/test/builtins/gen/textureNumLayers/22e53b.wgsl.expected.glsl
+++ b/test/builtins/gen/textureNumLayers/22e53b.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 layout(r32i) uniform highp writeonly iimage2DArray arg_0;
 void textureNumLayers_22e53b() {
@@ -21,9 +20,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
-ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
-ERROR: 0:6: '' : compilation terminated 
+ERROR: 0:5: 'textureQueryLevels' : no matching overloaded function found 
+ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
@@ -53,7 +52,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 layout(r32i) uniform highp writeonly iimage2DArray arg_0;
 void textureNumLayers_22e53b() {
@@ -70,9 +68,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
-ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
-ERROR: 0:6: '' : compilation terminated 
+ERROR: 0:5: 'textureQueryLevels' : no matching overloaded function found 
+ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureNumLayers/562013.wgsl.expected.glsl b/test/builtins/gen/textureNumLayers/562013.wgsl.expected.glsl
index 7b42821..d01feaa 100644
--- a/test/builtins/gen/textureNumLayers/562013.wgsl.expected.glsl
+++ b/test/builtins/gen/textureNumLayers/562013.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 layout(rgba16f) uniform highp writeonly image2DArray arg_0;
 void textureNumLayers_562013() {
@@ -21,9 +20,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
-ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
-ERROR: 0:6: '' : compilation terminated 
+ERROR: 0:5: 'textureQueryLevels' : no matching overloaded function found 
+ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
@@ -53,7 +52,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 layout(rgba16f) uniform highp writeonly image2DArray arg_0;
 void textureNumLayers_562013() {
@@ -70,9 +68,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
-ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
-ERROR: 0:6: '' : compilation terminated 
+ERROR: 0:5: 'textureQueryLevels' : no matching overloaded function found 
+ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureNumLayers/5d59cd.wgsl.expected.glsl b/test/builtins/gen/textureNumLayers/5d59cd.wgsl.expected.glsl
index ff2a74e..dbd8565 100644
--- a/test/builtins/gen/textureNumLayers/5d59cd.wgsl.expected.glsl
+++ b/test/builtins/gen/textureNumLayers/5d59cd.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 uniform highp samplerCubeArray arg_0_1;
 void textureNumLayers_5d59cd() {
@@ -21,8 +20,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -51,7 +50,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 uniform highp samplerCubeArray arg_0_1;
 void textureNumLayers_5d59cd() {
@@ -68,8 +66,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureNumLayers/68a65b.wgsl.expected.glsl b/test/builtins/gen/textureNumLayers/68a65b.wgsl.expected.glsl
index d1f1df7..452dfdc 100644
--- a/test/builtins/gen/textureNumLayers/68a65b.wgsl.expected.glsl
+++ b/test/builtins/gen/textureNumLayers/68a65b.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 layout(rgba32f) uniform highp writeonly image2DArray arg_0;
 void textureNumLayers_68a65b() {
@@ -21,9 +20,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
-ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
-ERROR: 0:6: '' : compilation terminated 
+ERROR: 0:5: 'textureQueryLevels' : no matching overloaded function found 
+ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
@@ -53,7 +52,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 layout(rgba32f) uniform highp writeonly image2DArray arg_0;
 void textureNumLayers_68a65b() {
@@ -70,9 +68,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
-ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
-ERROR: 0:6: '' : compilation terminated 
+ERROR: 0:5: 'textureQueryLevels' : no matching overloaded function found 
+ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureNumLayers/778bd1.wgsl.expected.glsl b/test/builtins/gen/textureNumLayers/778bd1.wgsl.expected.glsl
index 87da8dc..125cf2d 100644
--- a/test/builtins/gen/textureNumLayers/778bd1.wgsl.expected.glsl
+++ b/test/builtins/gen/textureNumLayers/778bd1.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 uniform highp samplerCubeArray arg_0_1;
 void textureNumLayers_778bd1() {
@@ -21,8 +20,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -51,7 +50,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 uniform highp samplerCubeArray arg_0_1;
 void textureNumLayers_778bd1() {
@@ -68,8 +66,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureNumLayers/7f1937.wgsl.expected.glsl b/test/builtins/gen/textureNumLayers/7f1937.wgsl.expected.glsl
index bf92d0e..28b99e8 100644
--- a/test/builtins/gen/textureNumLayers/7f1937.wgsl.expected.glsl
+++ b/test/builtins/gen/textureNumLayers/7f1937.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 layout(rg32f) uniform highp writeonly image2DArray arg_0;
 void textureNumLayers_7f1937() {
@@ -21,8 +20,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'image load-store format' : not supported with this profile: es
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'image load-store format' : not supported with this profile: es
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -51,7 +50,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 layout(rg32f) uniform highp writeonly image2DArray arg_0;
 void textureNumLayers_7f1937() {
@@ -68,8 +66,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'image load-store format' : not supported with this profile: es
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'image load-store format' : not supported with this profile: es
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureNumLayers/85f980.wgsl.expected.glsl b/test/builtins/gen/textureNumLayers/85f980.wgsl.expected.glsl
index a96bc51..399cdf3 100644
--- a/test/builtins/gen/textureNumLayers/85f980.wgsl.expected.glsl
+++ b/test/builtins/gen/textureNumLayers/85f980.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 uniform highp isamplerCubeArray arg_0_1;
 void textureNumLayers_85f980() {
@@ -21,8 +20,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'isamplerCubeArray' : Reserved word. 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'isamplerCubeArray' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -51,7 +50,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 uniform highp isamplerCubeArray arg_0_1;
 void textureNumLayers_85f980() {
@@ -68,8 +66,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'isamplerCubeArray' : Reserved word. 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'isamplerCubeArray' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureNumLayers/87953e.wgsl.expected.glsl b/test/builtins/gen/textureNumLayers/87953e.wgsl.expected.glsl
index 1575baa..c010813 100644
--- a/test/builtins/gen/textureNumLayers/87953e.wgsl.expected.glsl
+++ b/test/builtins/gen/textureNumLayers/87953e.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 uniform highp usampler2DArray arg_0_1;
 void textureNumLayers_87953e() {
@@ -21,9 +20,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
-ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
-ERROR: 0:6: '' : compilation terminated 
+ERROR: 0:5: 'textureQueryLevels' : no matching overloaded function found 
+ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
@@ -53,7 +52,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 uniform highp usampler2DArray arg_0_1;
 void textureNumLayers_87953e() {
@@ -70,9 +68,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
-ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
-ERROR: 0:6: '' : compilation terminated 
+ERROR: 0:5: 'textureQueryLevels' : no matching overloaded function found 
+ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureNumLayers/893e7c.wgsl.expected.glsl b/test/builtins/gen/textureNumLayers/893e7c.wgsl.expected.glsl
index b9f782c..8f091a4 100644
--- a/test/builtins/gen/textureNumLayers/893e7c.wgsl.expected.glsl
+++ b/test/builtins/gen/textureNumLayers/893e7c.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 uniform highp isampler2DArray arg_0_1;
 void textureNumLayers_893e7c() {
@@ -21,9 +20,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
-ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
-ERROR: 0:6: '' : compilation terminated 
+ERROR: 0:5: 'textureQueryLevels' : no matching overloaded function found 
+ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
@@ -53,7 +52,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 uniform highp isampler2DArray arg_0_1;
 void textureNumLayers_893e7c() {
@@ -70,9 +68,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
-ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
-ERROR: 0:6: '' : compilation terminated 
+ERROR: 0:5: 'textureQueryLevels' : no matching overloaded function found 
+ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureNumLayers/9700fb.wgsl.expected.glsl b/test/builtins/gen/textureNumLayers/9700fb.wgsl.expected.glsl
index e7716df..92e6b9f 100644
--- a/test/builtins/gen/textureNumLayers/9700fb.wgsl.expected.glsl
+++ b/test/builtins/gen/textureNumLayers/9700fb.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 layout(rgba16ui) uniform highp writeonly uimage2DArray arg_0;
 void textureNumLayers_9700fb() {
@@ -21,9 +20,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
-ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
-ERROR: 0:6: '' : compilation terminated 
+ERROR: 0:5: 'textureQueryLevels' : no matching overloaded function found 
+ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
@@ -53,7 +52,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 layout(rgba16ui) uniform highp writeonly uimage2DArray arg_0;
 void textureNumLayers_9700fb() {
@@ -70,9 +68,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
-ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
-ERROR: 0:6: '' : compilation terminated 
+ERROR: 0:5: 'textureQueryLevels' : no matching overloaded function found 
+ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureNumLayers/a216d2.wgsl.expected.glsl b/test/builtins/gen/textureNumLayers/a216d2.wgsl.expected.glsl
index ef6661f..bb9a35d 100644
--- a/test/builtins/gen/textureNumLayers/a216d2.wgsl.expected.glsl
+++ b/test/builtins/gen/textureNumLayers/a216d2.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 layout(rgba8i) uniform highp writeonly iimage2DArray arg_0;
 void textureNumLayers_a216d2() {
@@ -21,9 +20,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
-ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
-ERROR: 0:6: '' : compilation terminated 
+ERROR: 0:5: 'textureQueryLevels' : no matching overloaded function found 
+ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
@@ -53,7 +52,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 layout(rgba8i) uniform highp writeonly iimage2DArray arg_0;
 void textureNumLayers_a216d2() {
@@ -70,9 +68,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
-ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
-ERROR: 0:6: '' : compilation terminated 
+ERROR: 0:5: 'textureQueryLevels' : no matching overloaded function found 
+ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureNumLayers/cd5dc8.wgsl.expected.glsl b/test/builtins/gen/textureNumLayers/cd5dc8.wgsl.expected.glsl
index 4273229..0dbc40b 100644
--- a/test/builtins/gen/textureNumLayers/cd5dc8.wgsl.expected.glsl
+++ b/test/builtins/gen/textureNumLayers/cd5dc8.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 layout(rgba32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureNumLayers_cd5dc8() {
@@ -21,9 +20,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
-ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
-ERROR: 0:6: '' : compilation terminated 
+ERROR: 0:5: 'textureQueryLevels' : no matching overloaded function found 
+ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
@@ -53,7 +52,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 layout(rgba32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureNumLayers_cd5dc8() {
@@ -70,9 +68,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
-ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
-ERROR: 0:6: '' : compilation terminated 
+ERROR: 0:5: 'textureQueryLevels' : no matching overloaded function found 
+ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureNumLayers/d5b228.wgsl.expected.glsl b/test/builtins/gen/textureNumLayers/d5b228.wgsl.expected.glsl
index 73f68d22..1c335a5 100644
--- a/test/builtins/gen/textureNumLayers/d5b228.wgsl.expected.glsl
+++ b/test/builtins/gen/textureNumLayers/d5b228.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 layout(r32f) uniform highp writeonly image2DArray arg_0;
 void textureNumLayers_d5b228() {
@@ -21,9 +20,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
-ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
-ERROR: 0:6: '' : compilation terminated 
+ERROR: 0:5: 'textureQueryLevels' : no matching overloaded function found 
+ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
@@ -53,7 +52,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 layout(r32f) uniform highp writeonly image2DArray arg_0;
 void textureNumLayers_d5b228() {
@@ -70,9 +68,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
-ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
-ERROR: 0:6: '' : compilation terminated 
+ERROR: 0:5: 'textureQueryLevels' : no matching overloaded function found 
+ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureNumLayers/e31be1.wgsl.expected.glsl b/test/builtins/gen/textureNumLayers/e31be1.wgsl.expected.glsl
index c8ab7f0..caf4bee 100644
--- a/test/builtins/gen/textureNumLayers/e31be1.wgsl.expected.glsl
+++ b/test/builtins/gen/textureNumLayers/e31be1.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 layout(rgba8_snorm) uniform highp writeonly image2DArray arg_0;
 void textureNumLayers_e31be1() {
@@ -21,9 +20,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
-ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
-ERROR: 0:6: '' : compilation terminated 
+ERROR: 0:5: 'textureQueryLevels' : no matching overloaded function found 
+ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
@@ -53,7 +52,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 layout(rgba8_snorm) uniform highp writeonly image2DArray arg_0;
 void textureNumLayers_e31be1() {
@@ -70,9 +68,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
-ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
-ERROR: 0:6: '' : compilation terminated 
+ERROR: 0:5: 'textureQueryLevels' : no matching overloaded function found 
+ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureNumLayers/e653c0.wgsl.expected.glsl b/test/builtins/gen/textureNumLayers/e653c0.wgsl.expected.glsl
index a50d766..ba34f64 100644
--- a/test/builtins/gen/textureNumLayers/e653c0.wgsl.expected.glsl
+++ b/test/builtins/gen/textureNumLayers/e653c0.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2DArray arg_0_1;
 void textureNumLayers_e653c0() {
@@ -21,9 +20,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
-ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
-ERROR: 0:6: '' : compilation terminated 
+ERROR: 0:5: 'textureQueryLevels' : no matching overloaded function found 
+ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
@@ -53,7 +52,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2DArray arg_0_1;
 void textureNumLayers_e653c0() {
@@ -70,9 +68,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
-ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
-ERROR: 0:6: '' : compilation terminated 
+ERROR: 0:5: 'textureQueryLevels' : no matching overloaded function found 
+ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureNumLayers/ee942f.wgsl.expected.glsl b/test/builtins/gen/textureNumLayers/ee942f.wgsl.expected.glsl
index 5b59b4d..03aa7e9 100644
--- a/test/builtins/gen/textureNumLayers/ee942f.wgsl.expected.glsl
+++ b/test/builtins/gen/textureNumLayers/ee942f.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 layout(r32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureNumLayers_ee942f() {
@@ -21,9 +20,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
-ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
-ERROR: 0:6: '' : compilation terminated 
+ERROR: 0:5: 'textureQueryLevels' : no matching overloaded function found 
+ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
@@ -53,7 +52,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 layout(r32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureNumLayers_ee942f() {
@@ -70,9 +68,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
-ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
-ERROR: 0:6: '' : compilation terminated 
+ERROR: 0:5: 'textureQueryLevels' : no matching overloaded function found 
+ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureNumLayers/f33005.wgsl.expected.glsl b/test/builtins/gen/textureNumLayers/f33005.wgsl.expected.glsl
index eb79af8..c2d1263 100644
--- a/test/builtins/gen/textureNumLayers/f33005.wgsl.expected.glsl
+++ b/test/builtins/gen/textureNumLayers/f33005.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 layout(rgba16i) uniform highp writeonly iimage2DArray arg_0;
 void textureNumLayers_f33005() {
@@ -21,9 +20,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
-ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
-ERROR: 0:6: '' : compilation terminated 
+ERROR: 0:5: 'textureQueryLevels' : no matching overloaded function found 
+ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
@@ -53,7 +52,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 layout(rgba16i) uniform highp writeonly iimage2DArray arg_0;
 void textureNumLayers_f33005() {
@@ -70,9 +68,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
-ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
-ERROR: 0:6: '' : compilation terminated 
+ERROR: 0:5: 'textureQueryLevels' : no matching overloaded function found 
+ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureNumLayers/fcec98.wgsl.expected.glsl b/test/builtins/gen/textureNumLayers/fcec98.wgsl.expected.glsl
index 4ea4371..cf93720 100644
--- a/test/builtins/gen/textureNumLayers/fcec98.wgsl.expected.glsl
+++ b/test/builtins/gen/textureNumLayers/fcec98.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 layout(rg32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureNumLayers_fcec98() {
@@ -21,8 +20,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'image load-store format' : not supported with this profile: es
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'image load-store format' : not supported with this profile: es
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -51,7 +50,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 layout(rg32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureNumLayers_fcec98() {
@@ -68,8 +66,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'image load-store format' : not supported with this profile: es
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'image load-store format' : not supported with this profile: es
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureNumLayers/ff5e89.wgsl.expected.glsl b/test/builtins/gen/textureNumLayers/ff5e89.wgsl.expected.glsl
index 8fb106e..f08c258 100644
--- a/test/builtins/gen/textureNumLayers/ff5e89.wgsl.expected.glsl
+++ b/test/builtins/gen/textureNumLayers/ff5e89.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 layout(rgba8ui) uniform highp writeonly uimage2DArray arg_0;
 void textureNumLayers_ff5e89() {
@@ -21,9 +20,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
-ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
-ERROR: 0:6: '' : compilation terminated 
+ERROR: 0:5: 'textureQueryLevels' : no matching overloaded function found 
+ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
@@ -53,7 +52,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 layout(rgba8ui) uniform highp writeonly uimage2DArray arg_0;
 void textureNumLayers_ff5e89() {
@@ -70,9 +68,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
-ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
-ERROR: 0:6: '' : compilation terminated 
+ERROR: 0:5: 'textureQueryLevels' : no matching overloaded function found 
+ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureNumLevels/076cb5.wgsl.expected.glsl b/test/builtins/gen/textureNumLevels/076cb5.wgsl.expected.glsl
index 8277c6d..363c8fd 100644
--- a/test/builtins/gen/textureNumLevels/076cb5.wgsl.expected.glsl
+++ b/test/builtins/gen/textureNumLevels/076cb5.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 uniform highp samplerCube arg_0_1;
 void textureNumLevels_076cb5() {
@@ -21,9 +20,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
-ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
-ERROR: 0:6: '' : compilation terminated 
+ERROR: 0:5: 'textureQueryLevels' : no matching overloaded function found 
+ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
@@ -53,7 +52,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 uniform highp samplerCube arg_0_1;
 void textureNumLevels_076cb5() {
@@ -70,9 +68,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
-ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
-ERROR: 0:6: '' : compilation terminated 
+ERROR: 0:5: 'textureQueryLevels' : no matching overloaded function found 
+ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureNumLevels/080d95.wgsl.expected.glsl b/test/builtins/gen/textureNumLevels/080d95.wgsl.expected.glsl
index 96eaa13..9dc59aa 100644
--- a/test/builtins/gen/textureNumLevels/080d95.wgsl.expected.glsl
+++ b/test/builtins/gen/textureNumLevels/080d95.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 uniform highp isamplerCube arg_0_1;
 void textureNumLevels_080d95() {
@@ -21,9 +20,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
-ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
-ERROR: 0:6: '' : compilation terminated 
+ERROR: 0:5: 'textureQueryLevels' : no matching overloaded function found 
+ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
@@ -53,7 +52,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 uniform highp isamplerCube arg_0_1;
 void textureNumLevels_080d95() {
@@ -70,9 +68,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
-ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
-ERROR: 0:6: '' : compilation terminated 
+ERROR: 0:5: 'textureQueryLevels' : no matching overloaded function found 
+ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureNumLevels/09ddd0.wgsl.expected.glsl b/test/builtins/gen/textureNumLevels/09ddd0.wgsl.expected.glsl
index 17125a0..e177a2d 100644
--- a/test/builtins/gen/textureNumLevels/09ddd0.wgsl.expected.glsl
+++ b/test/builtins/gen/textureNumLevels/09ddd0.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 uniform highp usampler2D arg_0_1;
 void textureNumLevels_09ddd0() {
@@ -21,9 +20,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
-ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
-ERROR: 0:6: '' : compilation terminated 
+ERROR: 0:5: 'textureQueryLevels' : no matching overloaded function found 
+ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
@@ -53,7 +52,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 uniform highp usampler2D arg_0_1;
 void textureNumLevels_09ddd0() {
@@ -70,9 +68,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
-ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
-ERROR: 0:6: '' : compilation terminated 
+ERROR: 0:5: 'textureQueryLevels' : no matching overloaded function found 
+ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureNumLevels/105988.wgsl.expected.glsl b/test/builtins/gen/textureNumLevels/105988.wgsl.expected.glsl
index 42ddf8c..ee2c95d 100644
--- a/test/builtins/gen/textureNumLevels/105988.wgsl.expected.glsl
+++ b/test/builtins/gen/textureNumLevels/105988.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2DArray arg_0_1;
 void textureNumLevels_105988() {
@@ -21,9 +20,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
-ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
-ERROR: 0:6: '' : compilation terminated 
+ERROR: 0:5: 'textureQueryLevels' : no matching overloaded function found 
+ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
@@ -53,7 +52,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2DArray arg_0_1;
 void textureNumLevels_105988() {
@@ -70,9 +68,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
-ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
-ERROR: 0:6: '' : compilation terminated 
+ERROR: 0:5: 'textureQueryLevels' : no matching overloaded function found 
+ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureNumLevels/1e6f3b.wgsl.expected.glsl b/test/builtins/gen/textureNumLevels/1e6f3b.wgsl.expected.glsl
index 91180d5..08010f6 100644
--- a/test/builtins/gen/textureNumLevels/1e6f3b.wgsl.expected.glsl
+++ b/test/builtins/gen/textureNumLevels/1e6f3b.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 uniform highp usampler1D arg_0_1;
 void textureNumLevels_1e6f3b() {
@@ -21,8 +20,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'usampler1D' : Reserved word. 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'usampler1D' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -51,7 +50,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 uniform highp usampler1D arg_0_1;
 void textureNumLevels_1e6f3b() {
@@ -68,8 +66,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'usampler1D' : Reserved word. 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'usampler1D' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureNumLevels/23f750.wgsl.expected.glsl b/test/builtins/gen/textureNumLevels/23f750.wgsl.expected.glsl
index f3c86f5..68f1997 100644
--- a/test/builtins/gen/textureNumLevels/23f750.wgsl.expected.glsl
+++ b/test/builtins/gen/textureNumLevels/23f750.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 uniform highp isampler2D arg_0_1;
 void textureNumLevels_23f750() {
@@ -21,9 +20,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
-ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
-ERROR: 0:6: '' : compilation terminated 
+ERROR: 0:5: 'textureQueryLevels' : no matching overloaded function found 
+ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
@@ -53,7 +52,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 uniform highp isampler2D arg_0_1;
 void textureNumLevels_23f750() {
@@ -70,9 +68,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
-ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
-ERROR: 0:6: '' : compilation terminated 
+ERROR: 0:5: 'textureQueryLevels' : no matching overloaded function found 
+ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureNumLevels/2c3575.wgsl.expected.glsl b/test/builtins/gen/textureNumLevels/2c3575.wgsl.expected.glsl
index 6194cd1..994f888 100644
--- a/test/builtins/gen/textureNumLevels/2c3575.wgsl.expected.glsl
+++ b/test/builtins/gen/textureNumLevels/2c3575.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 uniform highp samplerCubeArray arg_0_1;
 void textureNumLevels_2c3575() {
@@ -21,8 +20,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -51,7 +50,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 uniform highp samplerCubeArray arg_0_1;
 void textureNumLevels_2c3575() {
@@ -68,8 +66,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureNumLevels/32a0ae.wgsl.expected.glsl b/test/builtins/gen/textureNumLevels/32a0ae.wgsl.expected.glsl
index b09220a..c0f0a6e 100644
--- a/test/builtins/gen/textureNumLevels/32a0ae.wgsl.expected.glsl
+++ b/test/builtins/gen/textureNumLevels/32a0ae.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 uniform highp isampler1D arg_0_1;
 void textureNumLevels_32a0ae() {
@@ -21,8 +20,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'isampler1D' : Reserved word. 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'isampler1D' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -51,7 +50,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 uniform highp isampler1D arg_0_1;
 void textureNumLevels_32a0ae() {
@@ -68,8 +66,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'isampler1D' : Reserved word. 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'isampler1D' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureNumLevels/5101cf.wgsl.expected.glsl b/test/builtins/gen/textureNumLevels/5101cf.wgsl.expected.glsl
index 238271d..3aef60b 100644
--- a/test/builtins/gen/textureNumLevels/5101cf.wgsl.expected.glsl
+++ b/test/builtins/gen/textureNumLevels/5101cf.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 uniform highp usampler2DArray arg_0_1;
 void textureNumLevels_5101cf() {
@@ -21,9 +20,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
-ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
-ERROR: 0:6: '' : compilation terminated 
+ERROR: 0:5: 'textureQueryLevels' : no matching overloaded function found 
+ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
@@ -53,7 +52,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 uniform highp usampler2DArray arg_0_1;
 void textureNumLevels_5101cf() {
@@ -70,9 +68,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
-ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
-ERROR: 0:6: '' : compilation terminated 
+ERROR: 0:5: 'textureQueryLevels' : no matching overloaded function found 
+ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureNumLevels/51b5bb.wgsl.expected.glsl b/test/builtins/gen/textureNumLevels/51b5bb.wgsl.expected.glsl
index 77fc6a5..8de7b76 100644
--- a/test/builtins/gen/textureNumLevels/51b5bb.wgsl.expected.glsl
+++ b/test/builtins/gen/textureNumLevels/51b5bb.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 uniform highp sampler1D arg_0_1;
 void textureNumLevels_51b5bb() {
@@ -21,8 +20,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'sampler1D' : Reserved word. 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'sampler1D' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -51,7 +50,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 uniform highp sampler1D arg_0_1;
 void textureNumLevels_51b5bb() {
@@ -68,8 +66,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'sampler1D' : Reserved word. 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'sampler1D' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureNumLevels/897aaf.wgsl.expected.glsl b/test/builtins/gen/textureNumLevels/897aaf.wgsl.expected.glsl
index f7d9e09..e2fc0ee 100644
--- a/test/builtins/gen/textureNumLevels/897aaf.wgsl.expected.glsl
+++ b/test/builtins/gen/textureNumLevels/897aaf.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 uniform highp samplerCube arg_0_1;
 void textureNumLevels_897aaf() {
@@ -21,9 +20,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
-ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
-ERROR: 0:6: '' : compilation terminated 
+ERROR: 0:5: 'textureQueryLevels' : no matching overloaded function found 
+ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
@@ -53,7 +52,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 uniform highp samplerCube arg_0_1;
 void textureNumLevels_897aaf() {
@@ -70,9 +68,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
-ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
-ERROR: 0:6: '' : compilation terminated 
+ERROR: 0:5: 'textureQueryLevels' : no matching overloaded function found 
+ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureNumLevels/9da7a5.wgsl.expected.glsl b/test/builtins/gen/textureNumLevels/9da7a5.wgsl.expected.glsl
index 9489c31..f1226e8 100644
--- a/test/builtins/gen/textureNumLevels/9da7a5.wgsl.expected.glsl
+++ b/test/builtins/gen/textureNumLevels/9da7a5.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 uniform highp isampler3D arg_0_1;
 void textureNumLevels_9da7a5() {
@@ -21,9 +20,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
-ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
-ERROR: 0:6: '' : compilation terminated 
+ERROR: 0:5: 'textureQueryLevels' : no matching overloaded function found 
+ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
@@ -53,7 +52,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 uniform highp isampler3D arg_0_1;
 void textureNumLevels_9da7a5() {
@@ -70,9 +68,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
-ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
-ERROR: 0:6: '' : compilation terminated 
+ERROR: 0:5: 'textureQueryLevels' : no matching overloaded function found 
+ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureNumLevels/a91c03.wgsl.expected.glsl b/test/builtins/gen/textureNumLevels/a91c03.wgsl.expected.glsl
index 90a7081..db6bc66 100644
--- a/test/builtins/gen/textureNumLevels/a91c03.wgsl.expected.glsl
+++ b/test/builtins/gen/textureNumLevels/a91c03.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 uniform highp isamplerCubeArray arg_0_1;
 void textureNumLevels_a91c03() {
@@ -21,8 +20,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'isamplerCubeArray' : Reserved word. 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'isamplerCubeArray' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -51,7 +50,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 uniform highp isamplerCubeArray arg_0_1;
 void textureNumLevels_a91c03() {
@@ -68,8 +66,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'isamplerCubeArray' : Reserved word. 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'isamplerCubeArray' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureNumLevels/aee7c8.wgsl.expected.glsl b/test/builtins/gen/textureNumLevels/aee7c8.wgsl.expected.glsl
index a366ac0..08525ba 100644
--- a/test/builtins/gen/textureNumLevels/aee7c8.wgsl.expected.glsl
+++ b/test/builtins/gen/textureNumLevels/aee7c8.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 uniform highp samplerCubeArray arg_0_1;
 void textureNumLevels_aee7c8() {
@@ -21,8 +20,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -51,7 +50,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 uniform highp samplerCubeArray arg_0_1;
 void textureNumLevels_aee7c8() {
@@ -68,8 +66,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureNumLevels/b1b12b.wgsl.expected.glsl b/test/builtins/gen/textureNumLevels/b1b12b.wgsl.expected.glsl
index cc6f345..c45e256 100644
--- a/test/builtins/gen/textureNumLevels/b1b12b.wgsl.expected.glsl
+++ b/test/builtins/gen/textureNumLevels/b1b12b.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2D arg_0_1;
 void textureNumLevels_b1b12b() {
@@ -21,9 +20,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
-ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
-ERROR: 0:6: '' : compilation terminated 
+ERROR: 0:5: 'textureQueryLevels' : no matching overloaded function found 
+ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
@@ -53,7 +52,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2D arg_0_1;
 void textureNumLevels_b1b12b() {
@@ -70,9 +68,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
-ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
-ERROR: 0:6: '' : compilation terminated 
+ERROR: 0:5: 'textureQueryLevels' : no matching overloaded function found 
+ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureNumLevels/b4f5ea.wgsl.expected.glsl b/test/builtins/gen/textureNumLevels/b4f5ea.wgsl.expected.glsl
index 78da5ea..b6c55fb 100644
--- a/test/builtins/gen/textureNumLevels/b4f5ea.wgsl.expected.glsl
+++ b/test/builtins/gen/textureNumLevels/b4f5ea.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 uniform highp usampler3D arg_0_1;
 void textureNumLevels_b4f5ea() {
@@ -21,9 +20,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
-ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
-ERROR: 0:6: '' : compilation terminated 
+ERROR: 0:5: 'textureQueryLevels' : no matching overloaded function found 
+ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
@@ -53,7 +52,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 uniform highp usampler3D arg_0_1;
 void textureNumLevels_b4f5ea() {
@@ -70,9 +68,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
-ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
-ERROR: 0:6: '' : compilation terminated 
+ERROR: 0:5: 'textureQueryLevels' : no matching overloaded function found 
+ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureNumLevels/d004a9.wgsl.expected.glsl b/test/builtins/gen/textureNumLevels/d004a9.wgsl.expected.glsl
index 929a3df..60d7c42 100644
--- a/test/builtins/gen/textureNumLevels/d004a9.wgsl.expected.glsl
+++ b/test/builtins/gen/textureNumLevels/d004a9.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 uniform highp isampler2DArray arg_0_1;
 void textureNumLevels_d004a9() {
@@ -21,9 +20,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
-ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
-ERROR: 0:6: '' : compilation terminated 
+ERROR: 0:5: 'textureQueryLevels' : no matching overloaded function found 
+ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
@@ -53,7 +52,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 uniform highp isampler2DArray arg_0_1;
 void textureNumLevels_d004a9() {
@@ -70,9 +68,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
-ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
-ERROR: 0:6: '' : compilation terminated 
+ERROR: 0:5: 'textureQueryLevels' : no matching overloaded function found 
+ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureNumLevels/dca09e.wgsl.expected.glsl b/test/builtins/gen/textureNumLevels/dca09e.wgsl.expected.glsl
index cb28270..53548f0 100644
--- a/test/builtins/gen/textureNumLevels/dca09e.wgsl.expected.glsl
+++ b/test/builtins/gen/textureNumLevels/dca09e.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 uniform highp sampler3D arg_0_1;
 void textureNumLevels_dca09e() {
@@ -21,9 +20,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
-ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
-ERROR: 0:6: '' : compilation terminated 
+ERROR: 0:5: 'textureQueryLevels' : no matching overloaded function found 
+ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
@@ -53,7 +52,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 uniform highp sampler3D arg_0_1;
 void textureNumLevels_dca09e() {
@@ -70,9 +68,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
-ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
-ERROR: 0:6: '' : compilation terminated 
+ERROR: 0:5: 'textureQueryLevels' : no matching overloaded function found 
+ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureNumLevels/e67231.wgsl.expected.glsl b/test/builtins/gen/textureNumLevels/e67231.wgsl.expected.glsl
index b2827d2..6b5a17e 100644
--- a/test/builtins/gen/textureNumLevels/e67231.wgsl.expected.glsl
+++ b/test/builtins/gen/textureNumLevels/e67231.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2D arg_0_1;
 void textureNumLevels_e67231() {
@@ -21,9 +20,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
-ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
-ERROR: 0:6: '' : compilation terminated 
+ERROR: 0:5: 'textureQueryLevels' : no matching overloaded function found 
+ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
@@ -53,7 +52,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2D arg_0_1;
 void textureNumLevels_e67231() {
@@ -70,9 +68,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
-ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
-ERROR: 0:6: '' : compilation terminated 
+ERROR: 0:5: 'textureQueryLevels' : no matching overloaded function found 
+ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureNumLevels/ed078b.wgsl.expected.glsl b/test/builtins/gen/textureNumLevels/ed078b.wgsl.expected.glsl
index 2ff2192..781d655 100644
--- a/test/builtins/gen/textureNumLevels/ed078b.wgsl.expected.glsl
+++ b/test/builtins/gen/textureNumLevels/ed078b.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 uniform highp usamplerCube arg_0_1;
 void textureNumLevels_ed078b() {
@@ -21,9 +20,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
-ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
-ERROR: 0:6: '' : compilation terminated 
+ERROR: 0:5: 'textureQueryLevels' : no matching overloaded function found 
+ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
@@ -53,7 +52,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 uniform highp usamplerCube arg_0_1;
 void textureNumLevels_ed078b() {
@@ -70,9 +68,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
-ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
-ERROR: 0:6: '' : compilation terminated 
+ERROR: 0:5: 'textureQueryLevels' : no matching overloaded function found 
+ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureNumLevels/f46ec6.wgsl.expected.glsl b/test/builtins/gen/textureNumLevels/f46ec6.wgsl.expected.glsl
index a1af03c..74c3c18 100644
--- a/test/builtins/gen/textureNumLevels/f46ec6.wgsl.expected.glsl
+++ b/test/builtins/gen/textureNumLevels/f46ec6.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 uniform highp usamplerCubeArray arg_0_1;
 void textureNumLevels_f46ec6() {
@@ -21,8 +20,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'usamplerCubeArray' : Reserved word. 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'usamplerCubeArray' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -51,7 +50,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 uniform highp usamplerCubeArray arg_0_1;
 void textureNumLevels_f46ec6() {
@@ -68,8 +66,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'usamplerCubeArray' : Reserved word. 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'usamplerCubeArray' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureNumLevels/f5828d.wgsl.expected.glsl b/test/builtins/gen/textureNumLevels/f5828d.wgsl.expected.glsl
index 17944a8..03a7528 100644
--- a/test/builtins/gen/textureNumLevels/f5828d.wgsl.expected.glsl
+++ b/test/builtins/gen/textureNumLevels/f5828d.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2DArray arg_0_1;
 void textureNumLevels_f5828d() {
@@ -21,9 +20,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
-ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
-ERROR: 0:6: '' : compilation terminated 
+ERROR: 0:5: 'textureQueryLevels' : no matching overloaded function found 
+ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
@@ -53,7 +52,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2DArray arg_0_1;
 void textureNumLevels_f5828d() {
@@ -70,9 +68,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
-ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
-ERROR: 0:6: '' : compilation terminated 
+ERROR: 0:5: 'textureQueryLevels' : no matching overloaded function found 
+ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureNumSamples/2c6f14.wgsl.expected.glsl b/test/builtins/gen/textureNumSamples/2c6f14.wgsl.expected.glsl
index fe9aef9..ff0f7ab 100644
--- a/test/builtins/gen/textureNumSamples/2c6f14.wgsl.expected.glsl
+++ b/test/builtins/gen/textureNumSamples/2c6f14.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2DMS arg_0_1;
 void textureNumSamples_2c6f14() {
@@ -21,9 +20,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:6: 'textureSamples' : no matching overloaded function found 
-ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
-ERROR: 0:6: '' : compilation terminated 
+ERROR: 0:5: 'textureSamples' : no matching overloaded function found 
+ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
@@ -53,7 +52,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2DMS arg_0_1;
 void textureNumSamples_2c6f14() {
@@ -70,9 +68,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:6: 'textureSamples' : no matching overloaded function found 
-ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
-ERROR: 0:6: '' : compilation terminated 
+ERROR: 0:5: 'textureSamples' : no matching overloaded function found 
+ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureNumSamples/42f8bb.wgsl.expected.glsl b/test/builtins/gen/textureNumSamples/42f8bb.wgsl.expected.glsl
index 47d488a..be3a261 100644
--- a/test/builtins/gen/textureNumSamples/42f8bb.wgsl.expected.glsl
+++ b/test/builtins/gen/textureNumSamples/42f8bb.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 uniform highp usampler2DMS arg_0_1;
 void textureNumSamples_42f8bb() {
@@ -21,9 +20,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:6: 'textureSamples' : no matching overloaded function found 
-ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
-ERROR: 0:6: '' : compilation terminated 
+ERROR: 0:5: 'textureSamples' : no matching overloaded function found 
+ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
@@ -53,7 +52,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 uniform highp usampler2DMS arg_0_1;
 void textureNumSamples_42f8bb() {
@@ -70,9 +68,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:6: 'textureSamples' : no matching overloaded function found 
-ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
-ERROR: 0:6: '' : compilation terminated 
+ERROR: 0:5: 'textureSamples' : no matching overloaded function found 
+ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureNumSamples/449d23.wgsl.expected.glsl b/test/builtins/gen/textureNumSamples/449d23.wgsl.expected.glsl
index 709034e..d0fd60f 100644
--- a/test/builtins/gen/textureNumSamples/449d23.wgsl.expected.glsl
+++ b/test/builtins/gen/textureNumSamples/449d23.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 uniform highp isampler2DMS arg_0_1;
 void textureNumSamples_449d23() {
@@ -21,9 +20,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:6: 'textureSamples' : no matching overloaded function found 
-ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
-ERROR: 0:6: '' : compilation terminated 
+ERROR: 0:5: 'textureSamples' : no matching overloaded function found 
+ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
@@ -53,7 +52,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 uniform highp isampler2DMS arg_0_1;
 void textureNumSamples_449d23() {
@@ -70,9 +68,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:6: 'textureSamples' : no matching overloaded function found 
-ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
-ERROR: 0:6: '' : compilation terminated 
+ERROR: 0:5: 'textureSamples' : no matching overloaded function found 
+ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureNumSamples/a3c8a0.wgsl.expected.glsl b/test/builtins/gen/textureNumSamples/a3c8a0.wgsl.expected.glsl
index 516bc30e..6352893 100644
--- a/test/builtins/gen/textureNumSamples/a3c8a0.wgsl.expected.glsl
+++ b/test/builtins/gen/textureNumSamples/a3c8a0.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2DMS arg_0_1;
 void textureNumSamples_a3c8a0() {
@@ -21,9 +20,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:6: 'textureSamples' : no matching overloaded function found 
-ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
-ERROR: 0:6: '' : compilation terminated 
+ERROR: 0:5: 'textureSamples' : no matching overloaded function found 
+ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
@@ -53,7 +52,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2DMS arg_0_1;
 void textureNumSamples_a3c8a0() {
@@ -70,9 +68,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:6: 'textureSamples' : no matching overloaded function found 
-ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
-ERROR: 0:6: '' : compilation terminated 
+ERROR: 0:5: 'textureSamples' : no matching overloaded function found 
+ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureSampleCompareLevel/011a8f.wgsl.expected.glsl b/test/builtins/gen/textureSampleCompareLevel/011a8f.wgsl.expected.glsl
index 92ebaf2..d77eba3 100644
--- a/test/builtins/gen/textureSampleCompareLevel/011a8f.wgsl.expected.glsl
+++ b/test/builtins/gen/textureSampleCompareLevel/011a8f.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
@@ -22,8 +21,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:7: 'sampler' : TextureOffset does not support sampler2DArrayShadow :  ES Profile
-ERROR: 0:7: '' : compilation terminated 
+ERROR: 0:6: 'sampler' : TextureOffset does not support sampler2DArrayShadow :  ES Profile
+ERROR: 0:6: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -53,7 +52,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
@@ -71,8 +69,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:7: 'sampler' : TextureOffset does not support sampler2DArrayShadow :  ES Profile
-ERROR: 0:7: '' : compilation terminated 
+ERROR: 0:6: 'sampler' : TextureOffset does not support sampler2DArrayShadow :  ES Profile
+ERROR: 0:6: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureSampleCompareLevel/1116ed.wgsl.expected.glsl b/test/builtins/gen/textureSampleCompareLevel/1116ed.wgsl.expected.glsl
index 40a0692..f3807dc 100644
--- a/test/builtins/gen/textureSampleCompareLevel/1116ed.wgsl.expected.glsl
+++ b/test/builtins/gen/textureSampleCompareLevel/1116ed.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
@@ -37,7 +36,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
diff --git a/test/builtins/gen/textureSampleCompareLevel/1568e3.wgsl.expected.glsl b/test/builtins/gen/textureSampleCompareLevel/1568e3.wgsl.expected.glsl
index 5c32b88..1b08dc2 100644
--- a/test/builtins/gen/textureSampleCompareLevel/1568e3.wgsl.expected.glsl
+++ b/test/builtins/gen/textureSampleCompareLevel/1568e3.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp samplerCubeShadow arg_0_arg_1;
 
@@ -37,7 +36,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp samplerCubeShadow arg_0_arg_1;
 
diff --git a/test/builtins/gen/textureSampleCompareLevel/2ad2b1.wgsl.expected.glsl b/test/builtins/gen/textureSampleCompareLevel/2ad2b1.wgsl.expected.glsl
index ef5bda4..9616fe4 100644
--- a/test/builtins/gen/textureSampleCompareLevel/2ad2b1.wgsl.expected.glsl
+++ b/test/builtins/gen/textureSampleCompareLevel/2ad2b1.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2DShadow arg_0_arg_1;
 
@@ -37,7 +36,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2DShadow arg_0_arg_1;
 
diff --git a/test/builtins/gen/textureSampleCompareLevel/4cf3a2.wgsl.expected.glsl b/test/builtins/gen/textureSampleCompareLevel/4cf3a2.wgsl.expected.glsl
index aba1bb7..b6cc31c 100644
--- a/test/builtins/gen/textureSampleCompareLevel/4cf3a2.wgsl.expected.glsl
+++ b/test/builtins/gen/textureSampleCompareLevel/4cf3a2.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 uniform highp samplerCubeArrayShadow arg_0_arg_1;
 
@@ -22,8 +21,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'samplerCubeArrayShadow' : Reserved word. 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'samplerCubeArrayShadow' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -53,7 +52,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 uniform highp samplerCubeArrayShadow arg_0_arg_1;
 
@@ -71,8 +69,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'samplerCubeArrayShadow' : Reserved word. 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'samplerCubeArrayShadow' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureSampleCompareLevel/f8121c.wgsl.expected.glsl b/test/builtins/gen/textureSampleCompareLevel/f8121c.wgsl.expected.glsl
index cf7b97e..9f4355b 100644
--- a/test/builtins/gen/textureSampleCompareLevel/f8121c.wgsl.expected.glsl
+++ b/test/builtins/gen/textureSampleCompareLevel/f8121c.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2DShadow arg_0_arg_1;
 
@@ -37,7 +36,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2DShadow arg_0_arg_1;
 
diff --git a/test/builtins/gen/textureSampleGrad/21402b.wgsl.expected.glsl b/test/builtins/gen/textureSampleGrad/21402b.wgsl.expected.glsl
index d998ea6..497ddfc 100644
--- a/test/builtins/gen/textureSampleGrad/21402b.wgsl.expected.glsl
+++ b/test/builtins/gen/textureSampleGrad/21402b.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp sampler3D arg_0_arg_1;
 
@@ -37,7 +36,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp sampler3D arg_0_arg_1;
 
diff --git a/test/builtins/gen/textureSampleGrad/2ecd8f.wgsl.expected.glsl b/test/builtins/gen/textureSampleGrad/2ecd8f.wgsl.expected.glsl
index dca9e6a..fe578d5 100644
--- a/test/builtins/gen/textureSampleGrad/2ecd8f.wgsl.expected.glsl
+++ b/test/builtins/gen/textureSampleGrad/2ecd8f.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2DArray arg_0_arg_1;
 
@@ -37,7 +36,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2DArray arg_0_arg_1;
 
diff --git a/test/builtins/gen/textureSampleGrad/468f88.wgsl.expected.glsl b/test/builtins/gen/textureSampleGrad/468f88.wgsl.expected.glsl
index 6c41e56..316a4c2 100644
--- a/test/builtins/gen/textureSampleGrad/468f88.wgsl.expected.glsl
+++ b/test/builtins/gen/textureSampleGrad/468f88.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2D arg_0_arg_1;
 
@@ -37,7 +36,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2D arg_0_arg_1;
 
diff --git a/test/builtins/gen/textureSampleGrad/521263.wgsl.expected.glsl b/test/builtins/gen/textureSampleGrad/521263.wgsl.expected.glsl
index 2eaa867..76c3c2e 100644
--- a/test/builtins/gen/textureSampleGrad/521263.wgsl.expected.glsl
+++ b/test/builtins/gen/textureSampleGrad/521263.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2D arg_0_arg_1;
 
@@ -37,7 +36,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2D arg_0_arg_1;
 
diff --git a/test/builtins/gen/textureSampleGrad/5312f4.wgsl.expected.glsl b/test/builtins/gen/textureSampleGrad/5312f4.wgsl.expected.glsl
index 82e4113..99bc614 100644
--- a/test/builtins/gen/textureSampleGrad/5312f4.wgsl.expected.glsl
+++ b/test/builtins/gen/textureSampleGrad/5312f4.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp samplerCube arg_0_arg_1;
 
@@ -37,7 +36,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp samplerCube arg_0_arg_1;
 
diff --git a/test/builtins/gen/textureSampleGrad/872f00.wgsl.expected.glsl b/test/builtins/gen/textureSampleGrad/872f00.wgsl.expected.glsl
index dd67af7..36ef066 100644
--- a/test/builtins/gen/textureSampleGrad/872f00.wgsl.expected.glsl
+++ b/test/builtins/gen/textureSampleGrad/872f00.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2DArray arg_0_arg_1;
 
@@ -37,7 +36,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2DArray arg_0_arg_1;
 
diff --git a/test/builtins/gen/textureSampleGrad/e383db.wgsl.expected.glsl b/test/builtins/gen/textureSampleGrad/e383db.wgsl.expected.glsl
index 76bfe69..cf09a0a 100644
--- a/test/builtins/gen/textureSampleGrad/e383db.wgsl.expected.glsl
+++ b/test/builtins/gen/textureSampleGrad/e383db.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 uniform highp samplerCubeArray arg_0_arg_1;
 
@@ -22,8 +21,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -53,7 +52,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 uniform highp samplerCubeArray arg_0_arg_1;
 
@@ -71,8 +69,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureSampleGrad/e9a2f7.wgsl.expected.glsl b/test/builtins/gen/textureSampleGrad/e9a2f7.wgsl.expected.glsl
index 320cb92..e186f48 100644
--- a/test/builtins/gen/textureSampleGrad/e9a2f7.wgsl.expected.glsl
+++ b/test/builtins/gen/textureSampleGrad/e9a2f7.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp sampler3D arg_0_arg_1;
 
@@ -37,7 +36,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp sampler3D arg_0_arg_1;
 
diff --git a/test/builtins/gen/textureSampleLevel/02be59.wgsl.expected.glsl b/test/builtins/gen/textureSampleLevel/02be59.wgsl.expected.glsl
index 78593fb..73e17ed 100644
--- a/test/builtins/gen/textureSampleLevel/02be59.wgsl.expected.glsl
+++ b/test/builtins/gen/textureSampleLevel/02be59.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2DShadow arg_0_arg_1;
 
@@ -22,8 +21,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:7: 'textureLod' : no matching overloaded function found 
-ERROR: 0:7: '' : compilation terminated 
+ERROR: 0:6: 'textureLod' : no matching overloaded function found 
+ERROR: 0:6: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -53,7 +52,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2DShadow arg_0_arg_1;
 
@@ -71,8 +69,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:7: 'textureLod' : no matching overloaded function found 
-ERROR: 0:7: '' : compilation terminated 
+ERROR: 0:6: 'textureLod' : no matching overloaded function found 
+ERROR: 0:6: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureSampleLevel/0bdd9a.wgsl.expected.glsl b/test/builtins/gen/textureSampleLevel/0bdd9a.wgsl.expected.glsl
index c78abca..f1c697c 100644
--- a/test/builtins/gen/textureSampleLevel/0bdd9a.wgsl.expected.glsl
+++ b/test/builtins/gen/textureSampleLevel/0bdd9a.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 uniform highp samplerCubeArray arg_0_arg_1;
 
@@ -22,8 +21,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -53,7 +52,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 uniform highp samplerCubeArray arg_0_arg_1;
 
@@ -71,8 +69,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureSampleLevel/1b0291.wgsl.expected.glsl b/test/builtins/gen/textureSampleLevel/1b0291.wgsl.expected.glsl
index d214205..09bec15 100644
--- a/test/builtins/gen/textureSampleLevel/1b0291.wgsl.expected.glsl
+++ b/test/builtins/gen/textureSampleLevel/1b0291.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 uniform highp samplerCubeShadow arg_0_arg_1;
 
@@ -22,8 +21,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:7: 'textureLod' : no matching overloaded function found 
-ERROR: 0:7: '' : compilation terminated 
+ERROR: 0:6: 'textureLod' : no matching overloaded function found 
+ERROR: 0:6: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -53,7 +52,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 uniform highp samplerCubeShadow arg_0_arg_1;
 
@@ -71,8 +69,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:7: 'textureLod' : no matching overloaded function found 
-ERROR: 0:7: '' : compilation terminated 
+ERROR: 0:6: 'textureLod' : no matching overloaded function found 
+ERROR: 0:6: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureSampleLevel/1bf73e.wgsl.expected.glsl b/test/builtins/gen/textureSampleLevel/1bf73e.wgsl.expected.glsl
index 086ea29..64e0b83 100644
--- a/test/builtins/gen/textureSampleLevel/1bf73e.wgsl.expected.glsl
+++ b/test/builtins/gen/textureSampleLevel/1bf73e.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
@@ -22,8 +21,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:7: 'textureLod' : no matching overloaded function found 
-ERROR: 0:7: '' : compilation terminated 
+ERROR: 0:6: 'textureLod' : no matching overloaded function found 
+ERROR: 0:6: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -53,7 +52,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
@@ -71,8 +69,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:7: 'textureLod' : no matching overloaded function found 
-ERROR: 0:7: '' : compilation terminated 
+ERROR: 0:6: 'textureLod' : no matching overloaded function found 
+ERROR: 0:6: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureSampleLevel/302be4.wgsl.expected.glsl b/test/builtins/gen/textureSampleLevel/302be4.wgsl.expected.glsl
index 8a12180..70b2052 100644
--- a/test/builtins/gen/textureSampleLevel/302be4.wgsl.expected.glsl
+++ b/test/builtins/gen/textureSampleLevel/302be4.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2DArray arg_0_arg_1;
 
@@ -37,7 +36,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2DArray arg_0_arg_1;
 
diff --git a/test/builtins/gen/textureSampleLevel/47daa4.wgsl.expected.glsl b/test/builtins/gen/textureSampleLevel/47daa4.wgsl.expected.glsl
index 3c0c6ed..f5f4d2d 100644
--- a/test/builtins/gen/textureSampleLevel/47daa4.wgsl.expected.glsl
+++ b/test/builtins/gen/textureSampleLevel/47daa4.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2DShadow arg_0_arg_1;
 
@@ -22,8 +21,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:7: 'textureLodOffset' : no matching overloaded function found 
-ERROR: 0:7: '' : compilation terminated 
+ERROR: 0:6: 'textureLodOffset' : no matching overloaded function found 
+ERROR: 0:6: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -53,7 +52,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2DShadow arg_0_arg_1;
 
@@ -71,8 +69,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:7: 'textureLodOffset' : no matching overloaded function found 
-ERROR: 0:7: '' : compilation terminated 
+ERROR: 0:6: 'textureLodOffset' : no matching overloaded function found 
+ERROR: 0:6: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureSampleLevel/690d95.wgsl.expected.glsl b/test/builtins/gen/textureSampleLevel/690d95.wgsl.expected.glsl
index b316472..89f0a86 100644
--- a/test/builtins/gen/textureSampleLevel/690d95.wgsl.expected.glsl
+++ b/test/builtins/gen/textureSampleLevel/690d95.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2D arg_0_arg_1;
 
@@ -37,7 +36,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2D arg_0_arg_1;
 
diff --git a/test/builtins/gen/textureSampleLevel/979816.wgsl.expected.glsl b/test/builtins/gen/textureSampleLevel/979816.wgsl.expected.glsl
index 74de764..0f3fecc 100644
--- a/test/builtins/gen/textureSampleLevel/979816.wgsl.expected.glsl
+++ b/test/builtins/gen/textureSampleLevel/979816.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2D arg_0_arg_1;
 
@@ -37,7 +36,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2D arg_0_arg_1;
 
diff --git a/test/builtins/gen/textureSampleLevel/9bd37b.wgsl.expected.glsl b/test/builtins/gen/textureSampleLevel/9bd37b.wgsl.expected.glsl
index 579f820..2d3a492 100644
--- a/test/builtins/gen/textureSampleLevel/9bd37b.wgsl.expected.glsl
+++ b/test/builtins/gen/textureSampleLevel/9bd37b.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp sampler3D arg_0_arg_1;
 
@@ -37,7 +36,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp sampler3D arg_0_arg_1;
 
diff --git a/test/builtins/gen/textureSampleLevel/a4af26.wgsl.expected.glsl b/test/builtins/gen/textureSampleLevel/a4af26.wgsl.expected.glsl
index b50f062..7adfafa 100644
--- a/test/builtins/gen/textureSampleLevel/a4af26.wgsl.expected.glsl
+++ b/test/builtins/gen/textureSampleLevel/a4af26.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2DArray arg_0_arg_1;
 
@@ -37,7 +36,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2DArray arg_0_arg_1;
 
diff --git a/test/builtins/gen/textureSampleLevel/abfcc0.wgsl.expected.glsl b/test/builtins/gen/textureSampleLevel/abfcc0.wgsl.expected.glsl
index af97c44..e336b57 100644
--- a/test/builtins/gen/textureSampleLevel/abfcc0.wgsl.expected.glsl
+++ b/test/builtins/gen/textureSampleLevel/abfcc0.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp sampler3D arg_0_arg_1;
 
@@ -37,7 +36,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp sampler3D arg_0_arg_1;
 
diff --git a/test/builtins/gen/textureSampleLevel/ae5e39.wgsl.expected.glsl b/test/builtins/gen/textureSampleLevel/ae5e39.wgsl.expected.glsl
index e3da837..eea7343 100644
--- a/test/builtins/gen/textureSampleLevel/ae5e39.wgsl.expected.glsl
+++ b/test/builtins/gen/textureSampleLevel/ae5e39.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 uniform highp samplerCubeArrayShadow arg_0_arg_1;
 
@@ -22,8 +21,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'samplerCubeArrayShadow' : Reserved word. 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'samplerCubeArrayShadow' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -53,7 +52,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 uniform highp samplerCubeArrayShadow arg_0_arg_1;
 
@@ -71,8 +69,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'samplerCubeArrayShadow' : Reserved word. 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'samplerCubeArrayShadow' : Reserved word. 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureSampleLevel/ba93b3.wgsl.expected.glsl b/test/builtins/gen/textureSampleLevel/ba93b3.wgsl.expected.glsl
index e6d7019..53360a2 100644
--- a/test/builtins/gen/textureSampleLevel/ba93b3.wgsl.expected.glsl
+++ b/test/builtins/gen/textureSampleLevel/ba93b3.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
@@ -22,8 +21,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:7: 'textureLodOffset' : no matching overloaded function found 
-ERROR: 0:7: '' : compilation terminated 
+ERROR: 0:6: 'textureLodOffset' : no matching overloaded function found 
+ERROR: 0:6: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -53,7 +52,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
@@ -71,8 +69,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:7: 'textureLodOffset' : no matching overloaded function found 
-ERROR: 0:7: '' : compilation terminated 
+ERROR: 0:6: 'textureLodOffset' : no matching overloaded function found 
+ERROR: 0:6: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureSampleLevel/c32df7.wgsl.expected.glsl b/test/builtins/gen/textureSampleLevel/c32df7.wgsl.expected.glsl
index bb08590..49feeca 100644
--- a/test/builtins/gen/textureSampleLevel/c32df7.wgsl.expected.glsl
+++ b/test/builtins/gen/textureSampleLevel/c32df7.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp samplerCube arg_0_arg_1;
 
@@ -37,7 +36,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp samplerCube arg_0_arg_1;
 
diff --git a/test/builtins/gen/textureSampleLevel/c6aca6.wgsl.expected.glsl b/test/builtins/gen/textureSampleLevel/c6aca6.wgsl.expected.glsl
index ce9d413..44466ff 100644
--- a/test/builtins/gen/textureSampleLevel/c6aca6.wgsl.expected.glsl
+++ b/test/builtins/gen/textureSampleLevel/c6aca6.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2D arg_0_arg_1;
 
@@ -37,7 +36,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 uniform highp sampler2D arg_0_arg_1;
 
diff --git a/test/builtins/gen/textureStore/05ce15.wgsl.expected.glsl b/test/builtins/gen/textureStore/05ce15.wgsl.expected.glsl
index e761fa1..d46f8c9 100644
--- a/test/builtins/gen/textureStore/05ce15.wgsl.expected.glsl
+++ b/test/builtins/gen/textureStore/05ce15.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 layout(rgba32f) uniform highp writeonly image2D arg_0;
 void textureStore_05ce15() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 layout(rgba32f) uniform highp writeonly image2D arg_0;
 void textureStore_05ce15() {
diff --git a/test/builtins/gen/textureStore/064c7f.wgsl.expected.glsl b/test/builtins/gen/textureStore/064c7f.wgsl.expected.glsl
index 9de3dd3..4f0bfaf 100644
--- a/test/builtins/gen/textureStore/064c7f.wgsl.expected.glsl
+++ b/test/builtins/gen/textureStore/064c7f.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 layout(rg32f) uniform highp writeonly image2D arg_0;
 void textureStore_064c7f() {
@@ -21,8 +20,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'image load-store format' : not supported with this profile: es
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'image load-store format' : not supported with this profile: es
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -51,7 +50,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 layout(rg32f) uniform highp writeonly image2D arg_0;
 void textureStore_064c7f() {
@@ -68,8 +66,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'image load-store format' : not supported with this profile: es
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'image load-store format' : not supported with this profile: es
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureStore/068641.wgsl.expected.glsl b/test/builtins/gen/textureStore/068641.wgsl.expected.glsl
index 5b252d0..8f83cee 100644
--- a/test/builtins/gen/textureStore/068641.wgsl.expected.glsl
+++ b/test/builtins/gen/textureStore/068641.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 layout(rgba16ui) uniform highp writeonly uimage3D arg_0;
 void textureStore_068641() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 layout(rgba16ui) uniform highp writeonly uimage3D arg_0;
 void textureStore_068641() {
diff --git a/test/builtins/gen/textureStore/0af6b5.wgsl.expected.glsl b/test/builtins/gen/textureStore/0af6b5.wgsl.expected.glsl
index fc7e462..da58072 100644
--- a/test/builtins/gen/textureStore/0af6b5.wgsl.expected.glsl
+++ b/test/builtins/gen/textureStore/0af6b5.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 layout(r32f) uniform highp writeonly image2D arg_0;
 void textureStore_0af6b5() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 layout(r32f) uniform highp writeonly image2D arg_0;
 void textureStore_0af6b5() {
diff --git a/test/builtins/gen/textureStore/0c3dff.wgsl.expected.glsl b/test/builtins/gen/textureStore/0c3dff.wgsl.expected.glsl
index 5075440..d0a54dd 100644
--- a/test/builtins/gen/textureStore/0c3dff.wgsl.expected.glsl
+++ b/test/builtins/gen/textureStore/0c3dff.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 layout(rgba16ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_0c3dff() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 layout(rgba16ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_0c3dff() {
diff --git a/test/builtins/gen/textureStore/102722.wgsl.expected.glsl b/test/builtins/gen/textureStore/102722.wgsl.expected.glsl
index 010cc1e..450e249 100644
--- a/test/builtins/gen/textureStore/102722.wgsl.expected.glsl
+++ b/test/builtins/gen/textureStore/102722.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 layout(r32ui) uniform highp writeonly uimage1D arg_0;
 void textureStore_102722() {
@@ -21,9 +20,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'uimage1D' : Reserved word. 
-WARNING: 0:4: 'layout' : useless application of layout qualifier 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'uimage1D' : Reserved word. 
+WARNING: 0:3: 'layout' : useless application of layout qualifier 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -53,7 +52,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 layout(r32ui) uniform highp writeonly uimage1D arg_0;
 void textureStore_102722() {
@@ -70,9 +68,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'uimage1D' : Reserved word. 
-WARNING: 0:4: 'layout' : useless application of layout qualifier 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'uimage1D' : Reserved word. 
+WARNING: 0:3: 'layout' : useless application of layout qualifier 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureStore/1bbd08.wgsl.expected.glsl b/test/builtins/gen/textureStore/1bbd08.wgsl.expected.glsl
index f287b3b..ebd4439 100644
--- a/test/builtins/gen/textureStore/1bbd08.wgsl.expected.glsl
+++ b/test/builtins/gen/textureStore/1bbd08.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 layout(rgba8) uniform highp writeonly image3D arg_0;
 void textureStore_1bbd08() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 layout(rgba8) uniform highp writeonly image3D arg_0;
 void textureStore_1bbd08() {
diff --git a/test/builtins/gen/textureStore/1c02e7.wgsl.expected.glsl b/test/builtins/gen/textureStore/1c02e7.wgsl.expected.glsl
index c49356b..324b095 100644
--- a/test/builtins/gen/textureStore/1c02e7.wgsl.expected.glsl
+++ b/test/builtins/gen/textureStore/1c02e7.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 layout(r32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_1c02e7() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 layout(r32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_1c02e7() {
diff --git a/test/builtins/gen/textureStore/22d955.wgsl.expected.glsl b/test/builtins/gen/textureStore/22d955.wgsl.expected.glsl
index 99b8c67..9d6a2e8 100644
--- a/test/builtins/gen/textureStore/22d955.wgsl.expected.glsl
+++ b/test/builtins/gen/textureStore/22d955.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 layout(rgba8ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_22d955() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 layout(rgba8ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_22d955() {
diff --git a/test/builtins/gen/textureStore/26bf70.wgsl.expected.glsl b/test/builtins/gen/textureStore/26bf70.wgsl.expected.glsl
index fe46fd4..bb2492c 100644
--- a/test/builtins/gen/textureStore/26bf70.wgsl.expected.glsl
+++ b/test/builtins/gen/textureStore/26bf70.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 layout(rgba32ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_26bf70() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 layout(rgba32ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_26bf70() {
diff --git a/test/builtins/gen/textureStore/2796b4.wgsl.expected.glsl b/test/builtins/gen/textureStore/2796b4.wgsl.expected.glsl
index c58558d..7ee8309 100644
--- a/test/builtins/gen/textureStore/2796b4.wgsl.expected.glsl
+++ b/test/builtins/gen/textureStore/2796b4.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 layout(rg32i) uniform highp writeonly iimage3D arg_0;
 void textureStore_2796b4() {
@@ -21,8 +20,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'image load-store format' : not supported with this profile: es
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'image load-store format' : not supported with this profile: es
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -51,7 +50,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 layout(rg32i) uniform highp writeonly iimage3D arg_0;
 void textureStore_2796b4() {
@@ -68,8 +66,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'image load-store format' : not supported with this profile: es
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'image load-store format' : not supported with this profile: es
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureStore/2ac6c7.wgsl.expected.glsl b/test/builtins/gen/textureStore/2ac6c7.wgsl.expected.glsl
index b6932ec..a88bc72 100644
--- a/test/builtins/gen/textureStore/2ac6c7.wgsl.expected.glsl
+++ b/test/builtins/gen/textureStore/2ac6c7.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 layout(r32f) uniform highp writeonly image1D arg_0;
 void textureStore_2ac6c7() {
@@ -21,9 +20,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'image1D' : Reserved word. 
-WARNING: 0:4: 'layout' : useless application of layout qualifier 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'image1D' : Reserved word. 
+WARNING: 0:3: 'layout' : useless application of layout qualifier 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -53,7 +52,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 layout(r32f) uniform highp writeonly image1D arg_0;
 void textureStore_2ac6c7() {
@@ -70,9 +68,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'image1D' : Reserved word. 
-WARNING: 0:4: 'layout' : useless application of layout qualifier 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'image1D' : Reserved word. 
+WARNING: 0:3: 'layout' : useless application of layout qualifier 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureStore/2eb2a4.wgsl.expected.glsl b/test/builtins/gen/textureStore/2eb2a4.wgsl.expected.glsl
index 1d5de9c..d538b8b 100644
--- a/test/builtins/gen/textureStore/2eb2a4.wgsl.expected.glsl
+++ b/test/builtins/gen/textureStore/2eb2a4.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 layout(rgba16ui) uniform highp writeonly uimage1D arg_0;
 void textureStore_2eb2a4() {
@@ -21,9 +20,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'uimage1D' : Reserved word. 
-WARNING: 0:4: 'layout' : useless application of layout qualifier 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'uimage1D' : Reserved word. 
+WARNING: 0:3: 'layout' : useless application of layout qualifier 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -53,7 +52,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 layout(rgba16ui) uniform highp writeonly uimage1D arg_0;
 void textureStore_2eb2a4() {
@@ -70,9 +68,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'uimage1D' : Reserved word. 
-WARNING: 0:4: 'layout' : useless application of layout qualifier 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'uimage1D' : Reserved word. 
+WARNING: 0:3: 'layout' : useless application of layout qualifier 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureStore/2ed2a3.wgsl.expected.glsl b/test/builtins/gen/textureStore/2ed2a3.wgsl.expected.glsl
index e2a59ce..51fe02f 100644
--- a/test/builtins/gen/textureStore/2ed2a3.wgsl.expected.glsl
+++ b/test/builtins/gen/textureStore/2ed2a3.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 layout(rgba8_snorm) uniform highp writeonly image1D arg_0;
 void textureStore_2ed2a3() {
@@ -21,9 +20,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'image1D' : Reserved word. 
-WARNING: 0:4: 'layout' : useless application of layout qualifier 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'image1D' : Reserved word. 
+WARNING: 0:3: 'layout' : useless application of layout qualifier 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -53,7 +52,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 layout(rgba8_snorm) uniform highp writeonly image1D arg_0;
 void textureStore_2ed2a3() {
@@ -70,9 +68,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'image1D' : Reserved word. 
-WARNING: 0:4: 'layout' : useless application of layout qualifier 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'image1D' : Reserved word. 
+WARNING: 0:3: 'layout' : useless application of layout qualifier 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureStore/31745b.wgsl.expected.glsl b/test/builtins/gen/textureStore/31745b.wgsl.expected.glsl
index ec65a13..29e3b15 100644
--- a/test/builtins/gen/textureStore/31745b.wgsl.expected.glsl
+++ b/test/builtins/gen/textureStore/31745b.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 layout(rg32i) uniform highp writeonly iimage2D arg_0;
 void textureStore_31745b() {
@@ -21,8 +20,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'image load-store format' : not supported with this profile: es
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'image load-store format' : not supported with this profile: es
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -51,7 +50,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 layout(rg32i) uniform highp writeonly iimage2D arg_0;
 void textureStore_31745b() {
@@ -68,8 +66,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'image load-store format' : not supported with this profile: es
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'image load-store format' : not supported with this profile: es
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureStore/32f368.wgsl.expected.glsl b/test/builtins/gen/textureStore/32f368.wgsl.expected.glsl
index b870d88..0002931 100644
--- a/test/builtins/gen/textureStore/32f368.wgsl.expected.glsl
+++ b/test/builtins/gen/textureStore/32f368.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 layout(rgba16f) uniform highp writeonly image2DArray arg_0;
 void textureStore_32f368() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 layout(rgba16f) uniform highp writeonly image2DArray arg_0;
 void textureStore_32f368() {
diff --git a/test/builtins/gen/textureStore/331aee.wgsl.expected.glsl b/test/builtins/gen/textureStore/331aee.wgsl.expected.glsl
index c72697b..bb2e0cc 100644
--- a/test/builtins/gen/textureStore/331aee.wgsl.expected.glsl
+++ b/test/builtins/gen/textureStore/331aee.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 layout(rgba32f) uniform highp writeonly image3D arg_0;
 void textureStore_331aee() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 layout(rgba32f) uniform highp writeonly image3D arg_0;
 void textureStore_331aee() {
diff --git a/test/builtins/gen/textureStore/38e8d7.wgsl.expected.glsl b/test/builtins/gen/textureStore/38e8d7.wgsl.expected.glsl
index 6a7e715..bee6a95 100644
--- a/test/builtins/gen/textureStore/38e8d7.wgsl.expected.glsl
+++ b/test/builtins/gen/textureStore/38e8d7.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 layout(r32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_38e8d7() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 layout(r32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_38e8d7() {
diff --git a/test/builtins/gen/textureStore/3a52ac.wgsl.expected.glsl b/test/builtins/gen/textureStore/3a52ac.wgsl.expected.glsl
index b0bbeb3..8411c37 100644
--- a/test/builtins/gen/textureStore/3a52ac.wgsl.expected.glsl
+++ b/test/builtins/gen/textureStore/3a52ac.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 layout(rgba16i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_3a52ac() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 layout(rgba16i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_3a52ac() {
diff --git a/test/builtins/gen/textureStore/3bb7a1.wgsl.expected.glsl b/test/builtins/gen/textureStore/3bb7a1.wgsl.expected.glsl
index ebb322b..b1d02c3 100644
--- a/test/builtins/gen/textureStore/3bb7a1.wgsl.expected.glsl
+++ b/test/builtins/gen/textureStore/3bb7a1.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 layout(r32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_3bb7a1() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 layout(r32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_3bb7a1() {
diff --git a/test/builtins/gen/textureStore/3bec15.wgsl.expected.glsl b/test/builtins/gen/textureStore/3bec15.wgsl.expected.glsl
index 510a69b..bf3cdf9 100644
--- a/test/builtins/gen/textureStore/3bec15.wgsl.expected.glsl
+++ b/test/builtins/gen/textureStore/3bec15.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 layout(rgba8ui) uniform highp writeonly uimage1D arg_0;
 void textureStore_3bec15() {
@@ -21,9 +20,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'uimage1D' : Reserved word. 
-WARNING: 0:4: 'layout' : useless application of layout qualifier 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'uimage1D' : Reserved word. 
+WARNING: 0:3: 'layout' : useless application of layout qualifier 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -53,7 +52,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 layout(rgba8ui) uniform highp writeonly uimage1D arg_0;
 void textureStore_3bec15() {
@@ -70,9 +68,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'uimage1D' : Reserved word. 
-WARNING: 0:4: 'layout' : useless application of layout qualifier 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'uimage1D' : Reserved word. 
+WARNING: 0:3: 'layout' : useless application of layout qualifier 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureStore/441ba8.wgsl.expected.glsl b/test/builtins/gen/textureStore/441ba8.wgsl.expected.glsl
index 093d1e7..bdb41ad 100644
--- a/test/builtins/gen/textureStore/441ba8.wgsl.expected.glsl
+++ b/test/builtins/gen/textureStore/441ba8.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 layout(rgba32ui) uniform highp writeonly uimage3D arg_0;
 void textureStore_441ba8() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 layout(rgba32ui) uniform highp writeonly uimage3D arg_0;
 void textureStore_441ba8() {
diff --git a/test/builtins/gen/textureStore/4fc057.wgsl.expected.glsl b/test/builtins/gen/textureStore/4fc057.wgsl.expected.glsl
index 3567c60..a1c87e4 100644
--- a/test/builtins/gen/textureStore/4fc057.wgsl.expected.glsl
+++ b/test/builtins/gen/textureStore/4fc057.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 layout(rgba8_snorm) uniform highp writeonly image2DArray arg_0;
 void textureStore_4fc057() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 layout(rgba8_snorm) uniform highp writeonly image2DArray arg_0;
 void textureStore_4fc057() {
diff --git a/test/builtins/gen/textureStore/5a2f8f.wgsl.expected.glsl b/test/builtins/gen/textureStore/5a2f8f.wgsl.expected.glsl
index a8df1a3..f42d0ac 100644
--- a/test/builtins/gen/textureStore/5a2f8f.wgsl.expected.glsl
+++ b/test/builtins/gen/textureStore/5a2f8f.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 layout(rgba16i) uniform highp writeonly iimage1D arg_0;
 void textureStore_5a2f8f() {
@@ -21,9 +20,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'iimage1D' : Reserved word. 
-WARNING: 0:4: 'layout' : useless application of layout qualifier 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'iimage1D' : Reserved word. 
+WARNING: 0:3: 'layout' : useless application of layout qualifier 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -53,7 +52,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 layout(rgba16i) uniform highp writeonly iimage1D arg_0;
 void textureStore_5a2f8f() {
@@ -70,9 +68,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'iimage1D' : Reserved word. 
-WARNING: 0:4: 'layout' : useless application of layout qualifier 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'iimage1D' : Reserved word. 
+WARNING: 0:3: 'layout' : useless application of layout qualifier 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureStore/60975f.wgsl.expected.glsl b/test/builtins/gen/textureStore/60975f.wgsl.expected.glsl
index 68788fc..a4939ba 100644
--- a/test/builtins/gen/textureStore/60975f.wgsl.expected.glsl
+++ b/test/builtins/gen/textureStore/60975f.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 layout(rgba8) uniform highp writeonly image2DArray arg_0;
 void textureStore_60975f() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 layout(rgba8) uniform highp writeonly image2DArray arg_0;
 void textureStore_60975f() {
diff --git a/test/builtins/gen/textureStore/682fd6.wgsl.expected.glsl b/test/builtins/gen/textureStore/682fd6.wgsl.expected.glsl
index d24e17d..3aaf942 100644
--- a/test/builtins/gen/textureStore/682fd6.wgsl.expected.glsl
+++ b/test/builtins/gen/textureStore/682fd6.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 layout(rg32ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_682fd6() {
@@ -21,8 +20,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'image load-store format' : not supported with this profile: es
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'image load-store format' : not supported with this profile: es
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -51,7 +50,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 layout(rg32ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_682fd6() {
@@ -68,8 +66,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'image load-store format' : not supported with this profile: es
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'image load-store format' : not supported with this profile: es
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureStore/6b75c3.wgsl.expected.glsl b/test/builtins/gen/textureStore/6b75c3.wgsl.expected.glsl
index 482d701..8f9a70e 100644
--- a/test/builtins/gen/textureStore/6b75c3.wgsl.expected.glsl
+++ b/test/builtins/gen/textureStore/6b75c3.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 layout(rgba32f) uniform highp writeonly image1D arg_0;
 void textureStore_6b75c3() {
@@ -21,9 +20,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'image1D' : Reserved word. 
-WARNING: 0:4: 'layout' : useless application of layout qualifier 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'image1D' : Reserved word. 
+WARNING: 0:3: 'layout' : useless application of layout qualifier 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -53,7 +52,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 layout(rgba32f) uniform highp writeonly image1D arg_0;
 void textureStore_6b75c3() {
@@ -70,9 +68,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'image1D' : Reserved word. 
-WARNING: 0:4: 'layout' : useless application of layout qualifier 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'image1D' : Reserved word. 
+WARNING: 0:3: 'layout' : useless application of layout qualifier 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureStore/6b80d2.wgsl.expected.glsl b/test/builtins/gen/textureStore/6b80d2.wgsl.expected.glsl
index 6191846..b0dbac4 100644
--- a/test/builtins/gen/textureStore/6b80d2.wgsl.expected.glsl
+++ b/test/builtins/gen/textureStore/6b80d2.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 layout(r32i) uniform highp writeonly iimage1D arg_0;
 void textureStore_6b80d2() {
@@ -21,9 +20,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'iimage1D' : Reserved word. 
-WARNING: 0:4: 'layout' : useless application of layout qualifier 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'iimage1D' : Reserved word. 
+WARNING: 0:3: 'layout' : useless application of layout qualifier 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -53,7 +52,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 layout(r32i) uniform highp writeonly iimage1D arg_0;
 void textureStore_6b80d2() {
@@ -70,9 +68,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'iimage1D' : Reserved word. 
-WARNING: 0:4: 'layout' : useless application of layout qualifier 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'iimage1D' : Reserved word. 
+WARNING: 0:3: 'layout' : useless application of layout qualifier 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureStore/6cff2e.wgsl.expected.glsl b/test/builtins/gen/textureStore/6cff2e.wgsl.expected.glsl
index c495ac7..5a4c478 100644
--- a/test/builtins/gen/textureStore/6cff2e.wgsl.expected.glsl
+++ b/test/builtins/gen/textureStore/6cff2e.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 layout(r32ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_6cff2e() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 layout(r32ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_6cff2e() {
diff --git a/test/builtins/gen/textureStore/6da692.wgsl.expected.glsl b/test/builtins/gen/textureStore/6da692.wgsl.expected.glsl
index a96a9aa..eac9dd4 100644
--- a/test/builtins/gen/textureStore/6da692.wgsl.expected.glsl
+++ b/test/builtins/gen/textureStore/6da692.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 layout(rgba16ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_6da692() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 layout(rgba16ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_6da692() {
diff --git a/test/builtins/gen/textureStore/731349.wgsl.expected.glsl b/test/builtins/gen/textureStore/731349.wgsl.expected.glsl
index b46bfce..13d37b0 100644
--- a/test/builtins/gen/textureStore/731349.wgsl.expected.glsl
+++ b/test/builtins/gen/textureStore/731349.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 layout(rgba8) uniform highp writeonly image2D arg_0;
 void textureStore_731349() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 layout(rgba8) uniform highp writeonly image2D arg_0;
 void textureStore_731349() {
diff --git a/test/builtins/gen/textureStore/752da6.wgsl.expected.glsl b/test/builtins/gen/textureStore/752da6.wgsl.expected.glsl
index 81a93b0..d507001 100644
--- a/test/builtins/gen/textureStore/752da6.wgsl.expected.glsl
+++ b/test/builtins/gen/textureStore/752da6.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 layout(rgba32i) uniform highp writeonly iimage2D arg_0;
 void textureStore_752da6() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 layout(rgba32i) uniform highp writeonly iimage2D arg_0;
 void textureStore_752da6() {
diff --git a/test/builtins/gen/textureStore/77c0ae.wgsl.expected.glsl b/test/builtins/gen/textureStore/77c0ae.wgsl.expected.glsl
index 178d229..19ce722 100644
--- a/test/builtins/gen/textureStore/77c0ae.wgsl.expected.glsl
+++ b/test/builtins/gen/textureStore/77c0ae.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 layout(rgba8ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_77c0ae() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 layout(rgba8ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_77c0ae() {
diff --git a/test/builtins/gen/textureStore/7cec8d.wgsl.expected.glsl b/test/builtins/gen/textureStore/7cec8d.wgsl.expected.glsl
index 7edc2e9..abec31d 100644
--- a/test/builtins/gen/textureStore/7cec8d.wgsl.expected.glsl
+++ b/test/builtins/gen/textureStore/7cec8d.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 layout(rgba32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_7cec8d() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 layout(rgba32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_7cec8d() {
diff --git a/test/builtins/gen/textureStore/7f7fae.wgsl.expected.glsl b/test/builtins/gen/textureStore/7f7fae.wgsl.expected.glsl
index 7c9e2c5..a4d5587 100644
--- a/test/builtins/gen/textureStore/7f7fae.wgsl.expected.glsl
+++ b/test/builtins/gen/textureStore/7f7fae.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 layout(rgba8) uniform highp writeonly image1D arg_0;
 void textureStore_7f7fae() {
@@ -21,9 +20,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'image1D' : Reserved word. 
-WARNING: 0:4: 'layout' : useless application of layout qualifier 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'image1D' : Reserved word. 
+WARNING: 0:3: 'layout' : useless application of layout qualifier 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -53,7 +52,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 layout(rgba8) uniform highp writeonly image1D arg_0;
 void textureStore_7f7fae() {
@@ -70,9 +68,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'image1D' : Reserved word. 
-WARNING: 0:4: 'layout' : useless application of layout qualifier 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'image1D' : Reserved word. 
+WARNING: 0:3: 'layout' : useless application of layout qualifier 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureStore/804942.wgsl.expected.glsl b/test/builtins/gen/textureStore/804942.wgsl.expected.glsl
index 81c53d4..4bc0f5e 100644
--- a/test/builtins/gen/textureStore/804942.wgsl.expected.glsl
+++ b/test/builtins/gen/textureStore/804942.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 layout(r32i) uniform highp writeonly iimage2D arg_0;
 void textureStore_804942() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 layout(r32i) uniform highp writeonly iimage2D arg_0;
 void textureStore_804942() {
diff --git a/test/builtins/gen/textureStore/805dae.wgsl.expected.glsl b/test/builtins/gen/textureStore/805dae.wgsl.expected.glsl
index ca08766..efadfdd 100644
--- a/test/builtins/gen/textureStore/805dae.wgsl.expected.glsl
+++ b/test/builtins/gen/textureStore/805dae.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 layout(rgba8_snorm) uniform highp writeonly image2D arg_0;
 void textureStore_805dae() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 layout(rgba8_snorm) uniform highp writeonly image2D arg_0;
 void textureStore_805dae() {
diff --git a/test/builtins/gen/textureStore/83bcc1.wgsl.expected.glsl b/test/builtins/gen/textureStore/83bcc1.wgsl.expected.glsl
index 8bce545..143268d 100644
--- a/test/builtins/gen/textureStore/83bcc1.wgsl.expected.glsl
+++ b/test/builtins/gen/textureStore/83bcc1.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 layout(rg32ui) uniform highp writeonly uimage1D arg_0;
 void textureStore_83bcc1() {
@@ -21,8 +20,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'image load-store format' : not supported with this profile: es
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'image load-store format' : not supported with this profile: es
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -51,7 +50,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 layout(rg32ui) uniform highp writeonly uimage1D arg_0;
 void textureStore_83bcc1() {
@@ -68,8 +66,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'image load-store format' : not supported with this profile: es
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'image load-store format' : not supported with this profile: es
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureStore/872747.wgsl.expected.glsl b/test/builtins/gen/textureStore/872747.wgsl.expected.glsl
index 0b05efc..eee0cc1 100644
--- a/test/builtins/gen/textureStore/872747.wgsl.expected.glsl
+++ b/test/builtins/gen/textureStore/872747.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 layout(rg32f) uniform highp writeonly image1D arg_0;
 void textureStore_872747() {
@@ -21,8 +20,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'image load-store format' : not supported with this profile: es
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'image load-store format' : not supported with this profile: es
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -51,7 +50,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 layout(rg32f) uniform highp writeonly image1D arg_0;
 void textureStore_872747() {
@@ -68,8 +66,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'image load-store format' : not supported with this profile: es
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'image load-store format' : not supported with this profile: es
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureStore/8e0479.wgsl.expected.glsl b/test/builtins/gen/textureStore/8e0479.wgsl.expected.glsl
index ef71d32..4d70e0c 100644
--- a/test/builtins/gen/textureStore/8e0479.wgsl.expected.glsl
+++ b/test/builtins/gen/textureStore/8e0479.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 layout(rgba32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_8e0479() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 layout(rgba32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_8e0479() {
diff --git a/test/builtins/gen/textureStore/8f71a1.wgsl.expected.glsl b/test/builtins/gen/textureStore/8f71a1.wgsl.expected.glsl
index 84785e7..81d589e 100644
--- a/test/builtins/gen/textureStore/8f71a1.wgsl.expected.glsl
+++ b/test/builtins/gen/textureStore/8f71a1.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 layout(rgba16i) uniform highp writeonly iimage3D arg_0;
 void textureStore_8f71a1() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 layout(rgba16i) uniform highp writeonly iimage3D arg_0;
 void textureStore_8f71a1() {
diff --git a/test/builtins/gen/textureStore/969534.wgsl.expected.glsl b/test/builtins/gen/textureStore/969534.wgsl.expected.glsl
index 0298f44..b449934 100644
--- a/test/builtins/gen/textureStore/969534.wgsl.expected.glsl
+++ b/test/builtins/gen/textureStore/969534.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 layout(rgba32i) uniform highp writeonly iimage1D arg_0;
 void textureStore_969534() {
@@ -21,9 +20,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'iimage1D' : Reserved word. 
-WARNING: 0:4: 'layout' : useless application of layout qualifier 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'iimage1D' : Reserved word. 
+WARNING: 0:3: 'layout' : useless application of layout qualifier 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -53,7 +52,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 layout(rgba32i) uniform highp writeonly iimage1D arg_0;
 void textureStore_969534() {
@@ -70,9 +68,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'iimage1D' : Reserved word. 
-WARNING: 0:4: 'layout' : useless application of layout qualifier 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'iimage1D' : Reserved word. 
+WARNING: 0:3: 'layout' : useless application of layout qualifier 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureStore/9a3ecc.wgsl.expected.glsl b/test/builtins/gen/textureStore/9a3ecc.wgsl.expected.glsl
index 8822b79..793c5c2 100644
--- a/test/builtins/gen/textureStore/9a3ecc.wgsl.expected.glsl
+++ b/test/builtins/gen/textureStore/9a3ecc.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 layout(rgba32i) uniform highp writeonly iimage3D arg_0;
 void textureStore_9a3ecc() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 layout(rgba32i) uniform highp writeonly iimage3D arg_0;
 void textureStore_9a3ecc() {
diff --git a/test/builtins/gen/textureStore/9d9cd5.wgsl.expected.glsl b/test/builtins/gen/textureStore/9d9cd5.wgsl.expected.glsl
index 5791826..20ab30b 100644
--- a/test/builtins/gen/textureStore/9d9cd5.wgsl.expected.glsl
+++ b/test/builtins/gen/textureStore/9d9cd5.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 layout(rgba32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_9d9cd5() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 layout(rgba32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_9d9cd5() {
diff --git a/test/builtins/gen/textureStore/9e3ec5.wgsl.expected.glsl b/test/builtins/gen/textureStore/9e3ec5.wgsl.expected.glsl
index 34b1685..dae92cc 100644
--- a/test/builtins/gen/textureStore/9e3ec5.wgsl.expected.glsl
+++ b/test/builtins/gen/textureStore/9e3ec5.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 layout(rgba16i) uniform highp writeonly iimage2D arg_0;
 void textureStore_9e3ec5() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 layout(rgba16i) uniform highp writeonly iimage2D arg_0;
 void textureStore_9e3ec5() {
diff --git a/test/builtins/gen/textureStore/ac67aa.wgsl.expected.glsl b/test/builtins/gen/textureStore/ac67aa.wgsl.expected.glsl
index e29fe60..552ca56 100644
--- a/test/builtins/gen/textureStore/ac67aa.wgsl.expected.glsl
+++ b/test/builtins/gen/textureStore/ac67aa.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 layout(rg32ui) uniform highp writeonly uimage3D arg_0;
 void textureStore_ac67aa() {
@@ -21,8 +20,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'image load-store format' : not supported with this profile: es
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'image load-store format' : not supported with this profile: es
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -51,7 +50,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 layout(rg32ui) uniform highp writeonly uimage3D arg_0;
 void textureStore_ac67aa() {
@@ -68,8 +66,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'image load-store format' : not supported with this profile: es
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'image load-store format' : not supported with this profile: es
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureStore/b706b1.wgsl.expected.glsl b/test/builtins/gen/textureStore/b706b1.wgsl.expected.glsl
index f2f9552..ea818a1 100644
--- a/test/builtins/gen/textureStore/b706b1.wgsl.expected.glsl
+++ b/test/builtins/gen/textureStore/b706b1.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 layout(rgba8i) uniform highp writeonly iimage3D arg_0;
 void textureStore_b706b1() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 layout(rgba8i) uniform highp writeonly iimage3D arg_0;
 void textureStore_b706b1() {
diff --git a/test/builtins/gen/textureStore/bbcb7f.wgsl.expected.glsl b/test/builtins/gen/textureStore/bbcb7f.wgsl.expected.glsl
index 431c833..70921e7 100644
--- a/test/builtins/gen/textureStore/bbcb7f.wgsl.expected.glsl
+++ b/test/builtins/gen/textureStore/bbcb7f.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 layout(rgba8i) uniform highp writeonly iimage2D arg_0;
 void textureStore_bbcb7f() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 layout(rgba8i) uniform highp writeonly iimage2D arg_0;
 void textureStore_bbcb7f() {
diff --git a/test/builtins/gen/textureStore/be6e30.wgsl.expected.glsl b/test/builtins/gen/textureStore/be6e30.wgsl.expected.glsl
index 90c0b7c..cf2a7b5 100644
--- a/test/builtins/gen/textureStore/be6e30.wgsl.expected.glsl
+++ b/test/builtins/gen/textureStore/be6e30.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 layout(rgba16f) uniform highp writeonly image2D arg_0;
 void textureStore_be6e30() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 layout(rgba16f) uniform highp writeonly image2D arg_0;
 void textureStore_be6e30() {
diff --git a/test/builtins/gen/textureStore/bf775c.wgsl.expected.glsl b/test/builtins/gen/textureStore/bf775c.wgsl.expected.glsl
index 6ced595..2c6af4e 100644
--- a/test/builtins/gen/textureStore/bf775c.wgsl.expected.glsl
+++ b/test/builtins/gen/textureStore/bf775c.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 layout(rgba8i) uniform highp writeonly iimage1D arg_0;
 void textureStore_bf775c() {
@@ -21,9 +20,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'iimage1D' : Reserved word. 
-WARNING: 0:4: 'layout' : useless application of layout qualifier 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'iimage1D' : Reserved word. 
+WARNING: 0:3: 'layout' : useless application of layout qualifier 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -53,7 +52,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 layout(rgba8i) uniform highp writeonly iimage1D arg_0;
 void textureStore_bf775c() {
@@ -70,9 +68,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'iimage1D' : Reserved word. 
-WARNING: 0:4: 'layout' : useless application of layout qualifier 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'iimage1D' : Reserved word. 
+WARNING: 0:3: 'layout' : useless application of layout qualifier 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureStore/c5af1e.wgsl.expected.glsl b/test/builtins/gen/textureStore/c5af1e.wgsl.expected.glsl
index d62dab1..c800da3 100644
--- a/test/builtins/gen/textureStore/c5af1e.wgsl.expected.glsl
+++ b/test/builtins/gen/textureStore/c5af1e.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 layout(rgba16f) uniform highp writeonly image3D arg_0;
 void textureStore_c5af1e() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 layout(rgba16f) uniform highp writeonly image3D arg_0;
 void textureStore_c5af1e() {
diff --git a/test/builtins/gen/textureStore/c863be.wgsl.expected.glsl b/test/builtins/gen/textureStore/c863be.wgsl.expected.glsl
index 13741d4..6e37d95 100644
--- a/test/builtins/gen/textureStore/c863be.wgsl.expected.glsl
+++ b/test/builtins/gen/textureStore/c863be.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 layout(rg32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_c863be() {
@@ -21,8 +20,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'image load-store format' : not supported with this profile: es
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'image load-store format' : not supported with this profile: es
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -51,7 +50,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 layout(rg32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_c863be() {
@@ -68,8 +66,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'image load-store format' : not supported with this profile: es
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'image load-store format' : not supported with this profile: es
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureStore/d73b5c.wgsl.expected.glsl b/test/builtins/gen/textureStore/d73b5c.wgsl.expected.glsl
index 0a47dde..8f00363 100644
--- a/test/builtins/gen/textureStore/d73b5c.wgsl.expected.glsl
+++ b/test/builtins/gen/textureStore/d73b5c.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 layout(rg32i) uniform highp writeonly iimage1D arg_0;
 void textureStore_d73b5c() {
@@ -21,8 +20,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'image load-store format' : not supported with this profile: es
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'image load-store format' : not supported with this profile: es
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -51,7 +50,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 layout(rg32i) uniform highp writeonly iimage1D arg_0;
 void textureStore_d73b5c() {
@@ -68,8 +66,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'image load-store format' : not supported with this profile: es
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'image load-store format' : not supported with this profile: es
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureStore/dd7d81.wgsl.expected.glsl b/test/builtins/gen/textureStore/dd7d81.wgsl.expected.glsl
index 101a03d..8ff92b4 100644
--- a/test/builtins/gen/textureStore/dd7d81.wgsl.expected.glsl
+++ b/test/builtins/gen/textureStore/dd7d81.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 layout(rgba8_snorm) uniform highp writeonly image3D arg_0;
 void textureStore_dd7d81() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 layout(rgba8_snorm) uniform highp writeonly image3D arg_0;
 void textureStore_dd7d81() {
diff --git a/test/builtins/gen/textureStore/dde364.wgsl.expected.glsl b/test/builtins/gen/textureStore/dde364.wgsl.expected.glsl
index a878ba5..5da47a5 100644
--- a/test/builtins/gen/textureStore/dde364.wgsl.expected.glsl
+++ b/test/builtins/gen/textureStore/dde364.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 layout(rg32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_dde364() {
@@ -21,8 +20,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'image load-store format' : not supported with this profile: es
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'image load-store format' : not supported with this profile: es
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -51,7 +50,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 layout(rg32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_dde364() {
@@ -68,8 +66,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'image load-store format' : not supported with this profile: es
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'image load-store format' : not supported with this profile: es
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureStore/e885e8.wgsl.expected.glsl b/test/builtins/gen/textureStore/e885e8.wgsl.expected.glsl
index b77adfc..4c385b2 100644
--- a/test/builtins/gen/textureStore/e885e8.wgsl.expected.glsl
+++ b/test/builtins/gen/textureStore/e885e8.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 layout(rgba16f) uniform highp writeonly image1D arg_0;
 void textureStore_e885e8() {
@@ -21,9 +20,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'image1D' : Reserved word. 
-WARNING: 0:4: 'layout' : useless application of layout qualifier 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'image1D' : Reserved word. 
+WARNING: 0:3: 'layout' : useless application of layout qualifier 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -53,7 +52,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 layout(rgba16f) uniform highp writeonly image1D arg_0;
 void textureStore_e885e8() {
@@ -70,9 +68,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'image1D' : Reserved word. 
-WARNING: 0:4: 'layout' : useless application of layout qualifier 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'image1D' : Reserved word. 
+WARNING: 0:3: 'layout' : useless application of layout qualifier 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureStore/eb702f.wgsl.expected.glsl b/test/builtins/gen/textureStore/eb702f.wgsl.expected.glsl
index 6ba53e8..13e49bf 100644
--- a/test/builtins/gen/textureStore/eb702f.wgsl.expected.glsl
+++ b/test/builtins/gen/textureStore/eb702f.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 layout(r32f) uniform highp writeonly image3D arg_0;
 void textureStore_eb702f() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 layout(r32f) uniform highp writeonly image3D arg_0;
 void textureStore_eb702f() {
diff --git a/test/builtins/gen/textureStore/eb78b9.wgsl.expected.glsl b/test/builtins/gen/textureStore/eb78b9.wgsl.expected.glsl
index d57fcfd..b9490fa 100644
--- a/test/builtins/gen/textureStore/eb78b9.wgsl.expected.glsl
+++ b/test/builtins/gen/textureStore/eb78b9.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 layout(r32i) uniform highp writeonly iimage3D arg_0;
 void textureStore_eb78b9() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 layout(r32i) uniform highp writeonly iimage3D arg_0;
 void textureStore_eb78b9() {
diff --git a/test/builtins/gen/textureStore/ee6acc.wgsl.expected.glsl b/test/builtins/gen/textureStore/ee6acc.wgsl.expected.glsl
index 8ad1b75..69222ed 100644
--- a/test/builtins/gen/textureStore/ee6acc.wgsl.expected.glsl
+++ b/test/builtins/gen/textureStore/ee6acc.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 layout(rg32f) uniform highp writeonly image3D arg_0;
 void textureStore_ee6acc() {
@@ -21,8 +20,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'image load-store format' : not supported with this profile: es
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'image load-store format' : not supported with this profile: es
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -51,7 +50,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 layout(rg32f) uniform highp writeonly image3D arg_0;
 void textureStore_ee6acc() {
@@ -68,8 +66,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'image load-store format' : not supported with this profile: es
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'image load-store format' : not supported with this profile: es
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureStore/ef9f2f.wgsl.expected.glsl b/test/builtins/gen/textureStore/ef9f2f.wgsl.expected.glsl
index c04636e..39d86ca 100644
--- a/test/builtins/gen/textureStore/ef9f2f.wgsl.expected.glsl
+++ b/test/builtins/gen/textureStore/ef9f2f.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 layout(r32ui) uniform highp writeonly uimage3D arg_0;
 void textureStore_ef9f2f() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 layout(r32ui) uniform highp writeonly uimage3D arg_0;
 void textureStore_ef9f2f() {
diff --git a/test/builtins/gen/textureStore/f8dead.wgsl.expected.glsl b/test/builtins/gen/textureStore/f8dead.wgsl.expected.glsl
index 205cec7..6fc0296 100644
--- a/test/builtins/gen/textureStore/f8dead.wgsl.expected.glsl
+++ b/test/builtins/gen/textureStore/f8dead.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 layout(rgba8ui) uniform highp writeonly uimage3D arg_0;
 void textureStore_f8dead() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 layout(rgba8ui) uniform highp writeonly uimage3D arg_0;
 void textureStore_f8dead() {
diff --git a/test/builtins/gen/textureStore/f9be83.wgsl.expected.glsl b/test/builtins/gen/textureStore/f9be83.wgsl.expected.glsl
index b2ea0c7..27e7863 100644
--- a/test/builtins/gen/textureStore/f9be83.wgsl.expected.glsl
+++ b/test/builtins/gen/textureStore/f9be83.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 layout(rg32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_f9be83() {
@@ -21,8 +20,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'image load-store format' : not supported with this profile: es
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'image load-store format' : not supported with this profile: es
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -51,7 +50,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 layout(rg32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_f9be83() {
@@ -68,8 +66,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'image load-store format' : not supported with this profile: es
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'image load-store format' : not supported with this profile: es
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureStore/fb9a8f.wgsl.expected.glsl b/test/builtins/gen/textureStore/fb9a8f.wgsl.expected.glsl
index 0a25bad..299c395 100644
--- a/test/builtins/gen/textureStore/fb9a8f.wgsl.expected.glsl
+++ b/test/builtins/gen/textureStore/fb9a8f.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 layout(rgba32ui) uniform highp writeonly uimage1D arg_0;
 void textureStore_fb9a8f() {
@@ -21,9 +20,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'uimage1D' : Reserved word. 
-WARNING: 0:4: 'layout' : useless application of layout qualifier 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'uimage1D' : Reserved word. 
+WARNING: 0:3: 'layout' : useless application of layout qualifier 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -53,7 +52,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 layout(rgba32ui) uniform highp writeonly uimage1D arg_0;
 void textureStore_fb9a8f() {
@@ -70,9 +68,9 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:4: 'uimage1D' : Reserved word. 
-WARNING: 0:4: 'layout' : useless application of layout qualifier 
-ERROR: 0:4: '' : compilation terminated 
+ERROR: 0:3: 'uimage1D' : Reserved word. 
+WARNING: 0:3: 'layout' : useless application of layout qualifier 
+ERROR: 0:3: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/textureStore/fbf53f.wgsl.expected.glsl b/test/builtins/gen/textureStore/fbf53f.wgsl.expected.glsl
index 3eb54d3..2f24e56 100644
--- a/test/builtins/gen/textureStore/fbf53f.wgsl.expected.glsl
+++ b/test/builtins/gen/textureStore/fbf53f.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 layout(rgba8i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_fbf53f() {
@@ -35,7 +34,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 layout(rgba8i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_fbf53f() {
diff --git a/test/builtins/gen/transpose/2585cd.wgsl.expected.glsl b/test/builtins/gen/transpose/2585cd.wgsl.expected.glsl
index 7bae060..c77e3fa 100644
--- a/test/builtins/gen/transpose/2585cd.wgsl.expected.glsl
+++ b/test/builtins/gen/transpose/2585cd.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void transpose_2585cd() {
   mat3x4 res = transpose(mat4x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void transpose_2585cd() {
   mat3x4 res = transpose(mat4x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
diff --git a/test/builtins/gen/transpose/31d679.wgsl.expected.glsl b/test/builtins/gen/transpose/31d679.wgsl.expected.glsl
index d4d80d9..7cf3c23 100644
--- a/test/builtins/gen/transpose/31d679.wgsl.expected.glsl
+++ b/test/builtins/gen/transpose/31d679.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void transpose_31d679() {
   mat2 res = transpose(mat2(0.0f, 0.0f, 0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void transpose_31d679() {
   mat2 res = transpose(mat2(0.0f, 0.0f, 0.0f, 0.0f));
diff --git a/test/builtins/gen/transpose/31e37e.wgsl.expected.glsl b/test/builtins/gen/transpose/31e37e.wgsl.expected.glsl
index 881af10..0e8009f 100644
--- a/test/builtins/gen/transpose/31e37e.wgsl.expected.glsl
+++ b/test/builtins/gen/transpose/31e37e.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void transpose_31e37e() {
   mat2x4 res = transpose(mat4x2(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void transpose_31e37e() {
   mat2x4 res = transpose(mat4x2(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
diff --git a/test/builtins/gen/transpose/4ce359.wgsl.expected.glsl b/test/builtins/gen/transpose/4ce359.wgsl.expected.glsl
index a476a04..972ed17 100644
--- a/test/builtins/gen/transpose/4ce359.wgsl.expected.glsl
+++ b/test/builtins/gen/transpose/4ce359.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void transpose_4ce359() {
   mat4x2 res = transpose(mat2x4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void transpose_4ce359() {
   mat4x2 res = transpose(mat2x4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
diff --git a/test/builtins/gen/transpose/4dc9a1.wgsl.expected.glsl b/test/builtins/gen/transpose/4dc9a1.wgsl.expected.glsl
index e981ed7..82b81fc 100644
--- a/test/builtins/gen/transpose/4dc9a1.wgsl.expected.glsl
+++ b/test/builtins/gen/transpose/4dc9a1.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void transpose_4dc9a1() {
   mat3x2 res = transpose(mat2x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void transpose_4dc9a1() {
   mat3x2 res = transpose(mat2x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
diff --git a/test/builtins/gen/transpose/854336.wgsl.expected.glsl b/test/builtins/gen/transpose/854336.wgsl.expected.glsl
index 5daee5d..7720ee6 100644
--- a/test/builtins/gen/transpose/854336.wgsl.expected.glsl
+++ b/test/builtins/gen/transpose/854336.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void transpose_854336() {
   mat3 res = transpose(mat3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void transpose_854336() {
   mat3 res = transpose(mat3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
diff --git a/test/builtins/gen/transpose/c1b600.wgsl.expected.glsl b/test/builtins/gen/transpose/c1b600.wgsl.expected.glsl
index b905fd6..f2efd11 100644
--- a/test/builtins/gen/transpose/c1b600.wgsl.expected.glsl
+++ b/test/builtins/gen/transpose/c1b600.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void transpose_c1b600() {
   mat4 res = transpose(mat4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void transpose_c1b600() {
   mat4 res = transpose(mat4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
diff --git a/test/builtins/gen/transpose/d8f8ba.wgsl.expected.glsl b/test/builtins/gen/transpose/d8f8ba.wgsl.expected.glsl
index 86c06ad..f89279f 100644
--- a/test/builtins/gen/transpose/d8f8ba.wgsl.expected.glsl
+++ b/test/builtins/gen/transpose/d8f8ba.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void transpose_d8f8ba() {
   mat4x3 res = transpose(mat3x4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void transpose_d8f8ba() {
   mat4x3 res = transpose(mat3x4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
diff --git a/test/builtins/gen/transpose/ed4bdc.wgsl.expected.glsl b/test/builtins/gen/transpose/ed4bdc.wgsl.expected.glsl
index 338112d..031f2d1 100644
--- a/test/builtins/gen/transpose/ed4bdc.wgsl.expected.glsl
+++ b/test/builtins/gen/transpose/ed4bdc.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void transpose_ed4bdc() {
   mat2x3 res = transpose(mat3x2(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void transpose_ed4bdc() {
   mat2x3 res = transpose(mat3x2(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
diff --git a/test/builtins/gen/trunc/562d05.wgsl.expected.glsl b/test/builtins/gen/trunc/562d05.wgsl.expected.glsl
index 64d05c9..b0f1bf6 100644
--- a/test/builtins/gen/trunc/562d05.wgsl.expected.glsl
+++ b/test/builtins/gen/trunc/562d05.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void trunc_562d05() {
   vec3 res = trunc(vec3(0.0f, 0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void trunc_562d05() {
   vec3 res = trunc(vec3(0.0f, 0.0f, 0.0f));
diff --git a/test/builtins/gen/trunc/e183aa.wgsl.expected.glsl b/test/builtins/gen/trunc/e183aa.wgsl.expected.glsl
index 3241d0b..c4a9fca 100644
--- a/test/builtins/gen/trunc/e183aa.wgsl.expected.glsl
+++ b/test/builtins/gen/trunc/e183aa.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void trunc_e183aa() {
   vec4 res = trunc(vec4(0.0f, 0.0f, 0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void trunc_e183aa() {
   vec4 res = trunc(vec4(0.0f, 0.0f, 0.0f, 0.0f));
diff --git a/test/builtins/gen/trunc/eb83df.wgsl.expected.glsl b/test/builtins/gen/trunc/eb83df.wgsl.expected.glsl
index 160d8cf..4fee3d9 100644
--- a/test/builtins/gen/trunc/eb83df.wgsl.expected.glsl
+++ b/test/builtins/gen/trunc/eb83df.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void trunc_eb83df() {
   float res = trunc(1.0f);
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void trunc_eb83df() {
   float res = trunc(1.0f);
diff --git a/test/builtins/gen/trunc/f370d3.wgsl.expected.glsl b/test/builtins/gen/trunc/f370d3.wgsl.expected.glsl
index c3e3eee..5b18a38 100644
--- a/test/builtins/gen/trunc/f370d3.wgsl.expected.glsl
+++ b/test/builtins/gen/trunc/f370d3.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void trunc_f370d3() {
   vec2 res = trunc(vec2(0.0f, 0.0f));
@@ -33,7 +32,6 @@
   return;
 }
 #version 310 es
-precision mediump float;
 
 void trunc_f370d3() {
   vec2 res = trunc(vec2(0.0f, 0.0f));
diff --git a/test/builtins/gen/unpack2x16float/32a5cf.wgsl.expected.glsl b/test/builtins/gen/unpack2x16float/32a5cf.wgsl.expected.glsl
index e3911b0..9d16a42 100644
--- a/test/builtins/gen/unpack2x16float/32a5cf.wgsl.expected.glsl
+++ b/test/builtins/gen/unpack2x16float/32a5cf.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 vec2 tint_unpack2x16float(uint param_0) {
   uint i = param_0;
@@ -26,8 +25,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:6: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp highp uint' and a right operand of type ' const int' (or there is no acceptable conversion)
-ERROR: 0:6: '' : compilation terminated 
+ERROR: 0:5: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp highp uint' and a right operand of type ' const int' (or there is no acceptable conversion)
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -61,7 +60,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 vec2 tint_unpack2x16float(uint param_0) {
   uint i = param_0;
@@ -83,8 +81,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:6: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp highp uint' and a right operand of type ' const int' (or there is no acceptable conversion)
-ERROR: 0:6: '' : compilation terminated 
+ERROR: 0:5: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp highp uint' and a right operand of type ' const int' (or there is no acceptable conversion)
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/unpack2x16snorm/b4aea6.wgsl.expected.glsl b/test/builtins/gen/unpack2x16snorm/b4aea6.wgsl.expected.glsl
index ea62982..f46f307 100644
--- a/test/builtins/gen/unpack2x16snorm/b4aea6.wgsl.expected.glsl
+++ b/test/builtins/gen/unpack2x16snorm/b4aea6.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 vec2 tint_unpack2x16snorm(uint param_0) {
   int j = int(param_0);
@@ -27,8 +26,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:6: 'int2' : undeclared identifier 
-ERROR: 0:6: '' : compilation terminated 
+ERROR: 0:5: 'int2' : undeclared identifier 
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -63,7 +62,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 vec2 tint_unpack2x16snorm(uint param_0) {
   int j = int(param_0);
@@ -86,8 +84,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:6: 'int2' : undeclared identifier 
-ERROR: 0:6: '' : compilation terminated 
+ERROR: 0:5: 'int2' : undeclared identifier 
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/unpack2x16unorm/7699c0.wgsl.expected.glsl b/test/builtins/gen/unpack2x16unorm/7699c0.wgsl.expected.glsl
index 6c41b74..152e9ed 100644
--- a/test/builtins/gen/unpack2x16unorm/7699c0.wgsl.expected.glsl
+++ b/test/builtins/gen/unpack2x16unorm/7699c0.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 vec2 tint_unpack2x16unorm(uint param_0) {
   uint j = param_0;
@@ -27,8 +26,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:6: 'uint2' : undeclared identifier 
-ERROR: 0:6: '' : compilation terminated 
+ERROR: 0:5: 'uint2' : undeclared identifier 
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -63,7 +62,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 vec2 tint_unpack2x16unorm(uint param_0) {
   uint j = param_0;
@@ -86,8 +84,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:6: 'uint2' : undeclared identifier 
-ERROR: 0:6: '' : compilation terminated 
+ERROR: 0:5: 'uint2' : undeclared identifier 
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/unpack4x8snorm/523fb3.wgsl.expected.glsl b/test/builtins/gen/unpack4x8snorm/523fb3.wgsl.expected.glsl
index 8f3ec12..dd61808 100644
--- a/test/builtins/gen/unpack4x8snorm/523fb3.wgsl.expected.glsl
+++ b/test/builtins/gen/unpack4x8snorm/523fb3.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 vec4 tint_unpack4x8snorm(uint param_0) {
   int j = int(param_0);
@@ -27,8 +26,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:6: 'int4' : undeclared identifier 
-ERROR: 0:6: '' : compilation terminated 
+ERROR: 0:5: 'int4' : undeclared identifier 
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -63,7 +62,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 vec4 tint_unpack4x8snorm(uint param_0) {
   int j = int(param_0);
@@ -86,8 +84,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:6: 'int4' : undeclared identifier 
-ERROR: 0:6: '' : compilation terminated 
+ERROR: 0:5: 'int4' : undeclared identifier 
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/unpack4x8unorm/750c74.wgsl.expected.glsl b/test/builtins/gen/unpack4x8unorm/750c74.wgsl.expected.glsl
index 369b226..86df709 100644
--- a/test/builtins/gen/unpack4x8unorm/750c74.wgsl.expected.glsl
+++ b/test/builtins/gen/unpack4x8unorm/750c74.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 SKIP: FAILED
 
 #version 310 es
-precision mediump float;
 
 vec4 tint_unpack4x8unorm(uint param_0) {
   uint j = param_0;
@@ -27,8 +26,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:6: 'uint4' : undeclared identifier 
-ERROR: 0:6: '' : compilation terminated 
+ERROR: 0:5: 'uint4' : undeclared identifier 
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -63,7 +62,6 @@
 
 
 #version 310 es
-precision mediump float;
 
 vec4 tint_unpack4x8unorm(uint param_0) {
   uint j = param_0;
@@ -86,8 +84,8 @@
   return;
 }
 Error parsing GLSL shader:
-ERROR: 0:6: 'uint4' : undeclared identifier 
-ERROR: 0:6: '' : compilation terminated 
+ERROR: 0:5: 'uint4' : undeclared identifier 
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/builtins/gen/workgroupBarrier/a17f7f.wgsl.expected.glsl b/test/builtins/gen/workgroupBarrier/a17f7f.wgsl.expected.glsl
index 1355106..677f05b 100644
--- a/test/builtins/gen/workgroupBarrier/a17f7f.wgsl.expected.glsl
+++ b/test/builtins/gen/workgroupBarrier/a17f7f.wgsl.expected.glsl
@@ -1,5 +1,4 @@
 #version 310 es
-precision mediump float;
 
 void workgroupBarrier_a17f7f() {
   barrier();
