[tint] Update generator to add GLSL desktop flag

For the tint end2end tests which will only run on GLSL desktop (storage
to an `rg` format or a `cube_array`) we add the flag to enable desktop
generation mode so the expectations will generate without error.

Bug: 42251044
Change-Id: I26b83dc3bb85ac4805c3143503883ce94391277e
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/207194
Reviewed-by: James Price <jrprice@google.com>
Commit-Queue: dan sinclair <dsinclair@chromium.org>
diff --git a/test/tint/builtins/gen/gen.wgsl.tmpl b/test/tint/builtins/gen/gen.wgsl.tmpl
index 8cec768..341c5d3 100644
--- a/test/tint/builtins/gen/gen.wgsl.tmpl
+++ b/test/tint/builtins/gen/gen.wgsl.tmpl
@@ -43,6 +43,8 @@
 
 {{- /* Generate the optional flag on HLSL shader model */ -}}
 {{- template "HLSLShaderModel" $overload -}}
+{{- /* Generate the optional flag for GLSL desktop */ -}}
+{{- template "GLSLShaderModel" $overload -}}
 
 {{- /* Generate enable directives */ -}}
 {{- template "EnableDirectives" $overload -}}
@@ -236,6 +238,21 @@
 
 
 {{- /* ------------------------------------------------------------------ */ -}}
+{{-                        define "GLSLShaderModel"                          -}}
+{{- /* Emits the optional GLSL shader model for a given overload          */ -}}
+{{- /* ------------------------------------------------------------------ */ -}}
+{{-   $permutation  := . -}}
+{{-   $overload := $permutation.Overload -}}
+{{-   $builtin_name := $permutation.Intrinsic.Name -}}
+
+{{-   if OverloadNeedsDesktopGLSL $overload }}
+// flags: --glsl-desktop
+{{    end -}}
+
+{{- end -}}
+
+
+{{- /* ------------------------------------------------------------------ */ -}}
 {{-                        define "HLSLShaderModel"                          -}}
 {{- /* Emits the optional HLSL shader model for a given overload          */ -}}
 {{- /* ------------------------------------------------------------------ */ -}}
diff --git a/test/tint/builtins/gen/literal/textureDimensions/00229f.wgsl b/test/tint/builtins/gen/literal/textureDimensions/00229f.wgsl
index f443996..83d66f9 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/00229f.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/00229f.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/00229f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/00229f.wgsl.expected.glsl
index 8fa9903..b20e3d1 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/00229f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/00229f.wgsl.expected.glsl
@@ -1,83 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp readonly image3D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec3 inner;
-  uint pad;
 } prevent_dce;
 
-void textureDimensions_00229f() {
+layout(binding = 0, r8) uniform highp readonly image3D arg_0;
+uvec3 textureDimensions_00229f() {
   uvec3 res = uvec3(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureDimensions_00229f();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp readonly image3D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
-void textureDimensions_00229f() {
-  uvec3 res = uvec3(imageSize(arg_0));
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  uvec3 prevent_dce;
+};
 
 void fragment_main() {
-  textureDimensions_00229f();
+  prevent_dce.inner = textureDimensions_00229f();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp readonly image3D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec3 inner;
-  uint pad;
 } prevent_dce;
 
-void textureDimensions_00229f() {
+layout(binding = 0, r8) uniform highp readonly image3D arg_0;
+uvec3 textureDimensions_00229f() {
   uvec3 res = uvec3(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec3 prevent_dce;
+};
+
 void compute_main() {
-  textureDimensions_00229f();
+  prevent_dce.inner = textureDimensions_00229f();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out uvec3 prevent_dce_1;
+layout(binding = 0, r8) uniform highp readonly image3D arg_0;
+uvec3 textureDimensions_00229f() {
+  uvec3 res = uvec3(imageSize(arg_0));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uvec3 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), uvec3(0u, 0u, 0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_00229f();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureDimensions/00229f.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureDimensions/00229f.wgsl.expected.ir.glsl
index fbd651e..aa518a0 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/00229f.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/00229f.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec3 tint_symbol;
+} v;
+layout(binding = 0, r8) uniform highp readonly image3D arg_0;
+uvec3 textureDimensions_00229f() {
+  uvec3 res = uvec3(imageSize(arg_0));
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_00229f();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec3 tint_symbol;
+} v;
+layout(binding = 0, r8) uniform highp readonly image3D arg_0;
+uvec3 textureDimensions_00229f() {
+  uvec3 res = uvec3(imageSize(arg_0));
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureDimensions_00229f();
+}
+#version 460
+
+
+struct VertexOutput {
+  vec4 pos;
+  uvec3 prevent_dce;
+};
+
+layout(binding = 0, r8) uniform highp readonly image3D arg_0;
+layout(location = 0) flat out uvec3 vertex_main_loc0_Output;
+uvec3 textureDimensions_00229f() {
+  uvec3 res = uvec3(imageSize(arg_0));
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), uvec3(0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_00229f();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/literal/textureDimensions/01e21e.wgsl b/test/tint/builtins/gen/literal/textureDimensions/01e21e.wgsl
index ad4b8e5..13d2140 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/01e21e.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/01e21e.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
 
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32uint, read_write>;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/01e21e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/01e21e.wgsl.expected.glsl
index bb83cc6..196e85a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/01e21e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/01e21e.wgsl.expected.glsl
@@ -1,80 +1,37 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureDimensions_01e21e() {
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2D arg_0;
+uint textureDimensions_01e21e() {
   uint res = uvec2(imageSize(arg_0)).x;
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureDimensions_01e21e();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp writeonly uimage2D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
-void textureDimensions_01e21e() {
-  uint res = uvec2(imageSize(arg_0)).x;
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureDimensions_01e21e();
+  prevent_dce.inner = textureDimensions_01e21e();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureDimensions_01e21e() {
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2D arg_0;
+uint textureDimensions_01e21e() {
   uint res = uvec2(imageSize(arg_0)).x;
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureDimensions_01e21e();
+  prevent_dce.inner = textureDimensions_01e21e();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +39,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureDimensions/029589.wgsl b/test/tint/builtins/gen/literal/textureDimensions/029589.wgsl
index c26ada3..7d05927 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/029589.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/029589.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32float, read_write>;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/029589.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/029589.wgsl.expected.glsl
index 997a1c6..c3786dd 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/029589.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/029589.wgsl.expected.glsl
@@ -1,80 +1,37 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_029589() {
+layout(binding = 0, rg32f) uniform highp writeonly image2DArray arg_0;
+uvec2 textureDimensions_029589() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureDimensions_029589();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp writeonly image2DArray arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
-void textureDimensions_029589() {
-  uvec2 res = uvec2(imageSize(arg_0).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureDimensions_029589();
+  prevent_dce.inner = textureDimensions_029589();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_029589() {
+layout(binding = 0, rg32f) uniform highp writeonly image2DArray arg_0;
+uvec2 textureDimensions_029589() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureDimensions_029589();
+  prevent_dce.inner = textureDimensions_029589();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +39,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureDimensions/08e371.wgsl b/test/tint/builtins/gen/literal/textureDimensions/08e371.wgsl
index d46661b..d920e84 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/08e371.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/08e371.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32sint, read>;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/08e371.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/08e371.wgsl.expected.glsl
index f721462..9117696 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/08e371.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/08e371.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp readonly iimage2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_08e371() {
+layout(binding = 0, rg32i) uniform highp readonly iimage2D arg_0;
+uvec2 textureDimensions_08e371() {
   uvec2 res = uvec2(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureDimensions_08e371();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp readonly iimage2D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
-void textureDimensions_08e371() {
-  uvec2 res = uvec2(imageSize(arg_0));
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
 
 void fragment_main() {
-  textureDimensions_08e371();
+  prevent_dce.inner = textureDimensions_08e371();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp readonly iimage2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_08e371() {
+layout(binding = 0, rg32i) uniform highp readonly iimage2D arg_0;
+uvec2 textureDimensions_08e371() {
   uvec2 res = uvec2(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
 void compute_main() {
-  textureDimensions_08e371();
+  prevent_dce.inner = textureDimensions_08e371();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out uvec2 prevent_dce_1;
+layout(binding = 0, rg32i) uniform highp readonly iimage2D arg_0;
+uvec2 textureDimensions_08e371() {
+  uvec2 res = uvec2(imageSize(arg_0));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), uvec2(0u, 0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_08e371();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureDimensions/08e371.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureDimensions/08e371.wgsl.expected.ir.glsl
index fbd651e..d7abc69 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/08e371.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/08e371.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+layout(binding = 0, rg32i) uniform highp readonly iimage2D arg_0;
+uvec2 textureDimensions_08e371() {
+  uvec2 res = uvec2(imageSize(arg_0));
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_08e371();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+layout(binding = 0, rg32i) uniform highp readonly iimage2D arg_0;
+uvec2 textureDimensions_08e371() {
+  uvec2 res = uvec2(imageSize(arg_0));
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureDimensions_08e371();
+}
+#version 460
+
+
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
+layout(binding = 0, rg32i) uniform highp readonly iimage2D arg_0;
+layout(location = 0) flat out uvec2 vertex_main_loc0_Output;
+uvec2 textureDimensions_08e371() {
+  uvec2 res = uvec2(imageSize(arg_0));
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), uvec2(0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_08e371();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0ff9a4.wgsl b/test/tint/builtins/gen/literal/textureDimensions/0ff9a4.wgsl
index c6c080e..8cbf11a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0ff9a4.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/0ff9a4.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
 
 @group(1) @binding(0) var arg_0: texture_depth_cube_array;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0ff9a4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/0ff9a4.wgsl.expected.glsl
index 4b8396e..d933912 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0ff9a4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/0ff9a4.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-uniform highp samplerCubeArray arg_0_1;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_0ff9a4() {
-  uvec2 res = uvec2(textureSize(arg_0_1, 1).xy);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureDimensions_0ff9a4();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
 uniform highp samplerCubeArray arg_0_1;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
-void textureDimensions_0ff9a4() {
+uvec2 textureDimensions_0ff9a4() {
   uvec2 res = uvec2(textureSize(arg_0_1, 1).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
 void fragment_main() {
-  textureDimensions_0ff9a4();
+  prevent_dce.inner = textureDimensions_0ff9a4();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-uniform highp samplerCubeArray arg_0_1;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_0ff9a4() {
+uniform highp samplerCubeArray arg_0_1;
+uvec2 textureDimensions_0ff9a4() {
   uvec2 res = uvec2(textureSize(arg_0_1, 1).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
 void compute_main() {
-  textureDimensions_0ff9a4();
+  prevent_dce.inner = textureDimensions_0ff9a4();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
+layout(location = 0) flat out uvec2 prevent_dce_1;
+uniform highp samplerCubeArray arg_0_1;
+uvec2 textureDimensions_0ff9a4() {
+  uvec2 res = uvec2(textureSize(arg_0_1, 1).xy);
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), uvec2(0u, 0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_0ff9a4();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0ff9a4.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureDimensions/0ff9a4.wgsl.expected.ir.glsl
index fbd651e..cd1540d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0ff9a4.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/0ff9a4.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+uniform highp samplerCubeArrayShadow arg_0;
+uvec2 textureDimensions_0ff9a4() {
+  uvec2 res = uvec2(textureSize(arg_0, 1).xy);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_0ff9a4();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+uniform highp samplerCubeArrayShadow arg_0;
+uvec2 textureDimensions_0ff9a4() {
+  uvec2 res = uvec2(textureSize(arg_0, 1).xy);
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureDimensions_0ff9a4();
+}
+#version 460
+
+
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
+uniform highp samplerCubeArrayShadow arg_0;
+layout(location = 0) flat out uvec2 vertex_main_loc0_Output;
+uvec2 textureDimensions_0ff9a4() {
+  uvec2 res = uvec2(textureSize(arg_0, 1).xy);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), uvec2(0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_0ff9a4();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/literal/textureDimensions/18160d.wgsl b/test/tint/builtins/gen/literal/textureDimensions/18160d.wgsl
index 7d24858..0e1ef94 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/18160d.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/18160d.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/18160d.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/18160d.wgsl.expected.glsl
index 6899921..4fa929d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/18160d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/18160d.wgsl.expected.glsl
@@ -1,80 +1,37 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp writeonly image2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_18160d() {
+layout(binding = 0, r8) uniform highp writeonly image2D arg_0;
+uvec2 textureDimensions_18160d() {
   uvec2 res = uvec2(imageSize(arg_0));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureDimensions_18160d();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp writeonly image2D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
-void textureDimensions_18160d() {
-  uvec2 res = uvec2(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureDimensions_18160d();
+  prevent_dce.inner = textureDimensions_18160d();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp writeonly image2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_18160d() {
+layout(binding = 0, r8) uniform highp writeonly image2D arg_0;
+uvec2 textureDimensions_18160d() {
   uvec2 res = uvec2(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureDimensions_18160d();
+  prevent_dce.inner = textureDimensions_18160d();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +39,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureDimensions/18f19f.wgsl b/test/tint/builtins/gen/literal/textureDimensions/18f19f.wgsl
index e670c04..649c8ad 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/18f19f.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/18f19f.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/18f19f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/18f19f.wgsl.expected.glsl
index 8ad231d..0611532 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/18f19f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/18f19f.wgsl.expected.glsl
@@ -1,80 +1,37 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp writeonly image2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_18f19f() {
+layout(binding = 0, r8) uniform highp writeonly image2D arg_0;
+uvec2 textureDimensions_18f19f() {
   uvec2 res = uvec2(imageSize(arg_0));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureDimensions_18f19f();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp writeonly image2D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
-void textureDimensions_18f19f() {
-  uvec2 res = uvec2(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureDimensions_18f19f();
+  prevent_dce.inner = textureDimensions_18f19f();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp writeonly image2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_18f19f() {
+layout(binding = 0, r8) uniform highp writeonly image2D arg_0;
+uvec2 textureDimensions_18f19f() {
   uvec2 res = uvec2(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureDimensions_18f19f();
+  prevent_dce.inner = textureDimensions_18f19f();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +39,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureDimensions/18f19f.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureDimensions/18f19f.wgsl.expected.ir.glsl
index fbd651e..a58c2ed 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/18f19f.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/18f19f.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+layout(binding = 0, r8) uniform highp writeonly image2D arg_0;
+uvec2 textureDimensions_18f19f() {
+  uvec2 res = uvec2(imageSize(arg_0));
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_18f19f();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+layout(binding = 0, r8) uniform highp writeonly image2D arg_0;
+uvec2 textureDimensions_18f19f() {
+  uvec2 res = uvec2(imageSize(arg_0));
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureDimensions_18f19f();
+}
diff --git a/test/tint/builtins/gen/literal/textureDimensions/22b5b6.wgsl b/test/tint/builtins/gen/literal/textureDimensions/22b5b6.wgsl
index 4bd2dd6..0401d0d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/22b5b6.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/22b5b6.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
 
 @group(1) @binding(0) var arg_0: texture_cube_array<u32>;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/22b5b6.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/22b5b6.wgsl.expected.glsl
index f62c83e..71ad44b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/22b5b6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/22b5b6.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-uniform highp usamplerCubeArray arg_0_1;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_22b5b6() {
-  uvec2 res = uvec2(textureSize(arg_0_1, 1).xy);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureDimensions_22b5b6();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'usamplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
 uniform highp usamplerCubeArray arg_0_1;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
-void textureDimensions_22b5b6() {
+uvec2 textureDimensions_22b5b6() {
   uvec2 res = uvec2(textureSize(arg_0_1, 1).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
 void fragment_main() {
-  textureDimensions_22b5b6();
+  prevent_dce.inner = textureDimensions_22b5b6();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'usamplerCubeArray' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-uniform highp usamplerCubeArray arg_0_1;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_22b5b6() {
+uniform highp usamplerCubeArray arg_0_1;
+uvec2 textureDimensions_22b5b6() {
   uvec2 res = uvec2(textureSize(arg_0_1, 1).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
 void compute_main() {
-  textureDimensions_22b5b6();
+  prevent_dce.inner = textureDimensions_22b5b6();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'usamplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
+layout(location = 0) flat out uvec2 prevent_dce_1;
+uniform highp usamplerCubeArray arg_0_1;
+uvec2 textureDimensions_22b5b6() {
+  uvec2 res = uvec2(textureSize(arg_0_1, 1).xy);
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), uvec2(0u, 0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_22b5b6();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureDimensions/22b5b6.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureDimensions/22b5b6.wgsl.expected.ir.glsl
index fbd651e..3e5ba34 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/22b5b6.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/22b5b6.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+uniform highp usamplerCubeArray arg_0;
+uvec2 textureDimensions_22b5b6() {
+  uvec2 res = uvec2(textureSize(arg_0, 1).xy);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_22b5b6();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+uniform highp usamplerCubeArray arg_0;
+uvec2 textureDimensions_22b5b6() {
+  uvec2 res = uvec2(textureSize(arg_0, 1).xy);
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureDimensions_22b5b6();
+}
+#version 460
+
+
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
+uniform highp usamplerCubeArray arg_0;
+layout(location = 0) flat out uvec2 vertex_main_loc0_Output;
+uvec2 textureDimensions_22b5b6() {
+  uvec2 res = uvec2(textureSize(arg_0, 1).xy);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), uvec2(0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_22b5b6();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/literal/textureDimensions/25d284.wgsl b/test/tint/builtins/gen/literal/textureDimensions/25d284.wgsl
index 60268dd..ce5b81b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/25d284.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/25d284.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/25d284.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/25d284.wgsl.expected.glsl
index 530a42f..34e322d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/25d284.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/25d284.wgsl.expected.glsl
@@ -1,80 +1,37 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp writeonly image2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_25d284() {
+layout(binding = 0, r8) uniform highp writeonly image2DArray arg_0;
+uvec2 textureDimensions_25d284() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureDimensions_25d284();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp writeonly image2DArray arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
-void textureDimensions_25d284() {
-  uvec2 res = uvec2(imageSize(arg_0).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureDimensions_25d284();
+  prevent_dce.inner = textureDimensions_25d284();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp writeonly image2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_25d284() {
+layout(binding = 0, r8) uniform highp writeonly image2DArray arg_0;
+uvec2 textureDimensions_25d284() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureDimensions_25d284();
+  prevent_dce.inner = textureDimensions_25d284();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +39,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureDimensions/25d284.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureDimensions/25d284.wgsl.expected.ir.glsl
index fbd651e..d7bf203 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/25d284.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/25d284.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+layout(binding = 0, r8) uniform highp writeonly image2DArray arg_0;
+uvec2 textureDimensions_25d284() {
+  uvec2 res = uvec2(imageSize(arg_0).xy);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_25d284();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+layout(binding = 0, r8) uniform highp writeonly image2DArray arg_0;
+uvec2 textureDimensions_25d284() {
+  uvec2 res = uvec2(imageSize(arg_0).xy);
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureDimensions_25d284();
+}
diff --git a/test/tint/builtins/gen/literal/textureDimensions/2674d8.wgsl b/test/tint/builtins/gen/literal/textureDimensions/2674d8.wgsl
index 0f95733..e93fe7f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/2674d8.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/2674d8.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32uint, write>;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/2674d8.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/2674d8.wgsl.expected.glsl
index bd21c27..a4bbdeb 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/2674d8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/2674d8.wgsl.expected.glsl
@@ -1,80 +1,37 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_2674d8() {
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2DArray arg_0;
+uvec2 textureDimensions_2674d8() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureDimensions_2674d8();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp writeonly uimage2DArray arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
-void textureDimensions_2674d8() {
-  uvec2 res = uvec2(imageSize(arg_0).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureDimensions_2674d8();
+  prevent_dce.inner = textureDimensions_2674d8();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_2674d8() {
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2DArray arg_0;
+uvec2 textureDimensions_2674d8() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureDimensions_2674d8();
+  prevent_dce.inner = textureDimensions_2674d8();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +39,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureDimensions/2674d8.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureDimensions/2674d8.wgsl.expected.ir.glsl
index fbd651e..77edd35 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/2674d8.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/2674d8.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2DArray arg_0;
+uvec2 textureDimensions_2674d8() {
+  uvec2 res = uvec2(imageSize(arg_0).xy);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_2674d8();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2DArray arg_0;
+uvec2 textureDimensions_2674d8() {
+  uvec2 res = uvec2(imageSize(arg_0).xy);
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureDimensions_2674d8();
+}
diff --git a/test/tint/builtins/gen/literal/textureDimensions/282978.wgsl b/test/tint/builtins/gen/literal/textureDimensions/282978.wgsl
index 0cb7319..e49b770 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/282978.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/282978.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/282978.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/282978.wgsl.expected.glsl
index 5448d1d..5159002 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/282978.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/282978.wgsl.expected.glsl
@@ -1,83 +1,37 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp writeonly image3D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec3 inner;
-  uint pad;
 } prevent_dce;
 
-void textureDimensions_282978() {
+layout(binding = 0, r8) uniform highp writeonly image3D arg_0;
+uvec3 textureDimensions_282978() {
   uvec3 res = uvec3(imageSize(arg_0));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureDimensions_282978();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp writeonly image3D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
-void textureDimensions_282978() {
-  uvec3 res = uvec3(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureDimensions_282978();
+  prevent_dce.inner = textureDimensions_282978();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp writeonly image3D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec3 inner;
-  uint pad;
 } prevent_dce;
 
-void textureDimensions_282978() {
+layout(binding = 0, r8) uniform highp writeonly image3D arg_0;
+uvec3 textureDimensions_282978() {
   uvec3 res = uvec3(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureDimensions_282978();
+  prevent_dce.inner = textureDimensions_282978();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +39,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureDimensions/284c27.wgsl b/test/tint/builtins/gen/literal/textureDimensions/284c27.wgsl
index 9e09d21..e289900 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/284c27.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/284c27.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
 
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32float, read>;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/284c27.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/284c27.wgsl.expected.glsl
index 9ffb020..9c476ff 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/284c27.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/284c27.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp readonly image2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureDimensions_284c27() {
+layout(binding = 0, rg32f) uniform highp readonly image2D arg_0;
+uint textureDimensions_284c27() {
   uint res = uvec2(imageSize(arg_0)).x;
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureDimensions_284c27();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp readonly image2D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
-void textureDimensions_284c27() {
-  uint res = uvec2(imageSize(arg_0)).x;
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
 
 void fragment_main() {
-  textureDimensions_284c27();
+  prevent_dce.inner = textureDimensions_284c27();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp readonly image2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureDimensions_284c27() {
+layout(binding = 0, rg32f) uniform highp readonly image2D arg_0;
+uint textureDimensions_284c27() {
   uint res = uvec2(imageSize(arg_0)).x;
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
 void compute_main() {
-  textureDimensions_284c27();
+  prevent_dce.inner = textureDimensions_284c27();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out uint prevent_dce_1;
+layout(binding = 0, rg32f) uniform highp readonly image2D arg_0;
+uint textureDimensions_284c27() {
+  uint res = uvec2(imageSize(arg_0)).x;
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), 0u);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_284c27();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureDimensions/284c27.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureDimensions/284c27.wgsl.expected.ir.glsl
index fbd651e..ee62b99 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/284c27.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/284c27.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, rg32f) uniform highp readonly image1D arg_0;
+uint textureDimensions_284c27() {
+  uint res = uint(imageSize(arg_0));
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_284c27();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, rg32f) uniform highp readonly image1D arg_0;
+uint textureDimensions_284c27() {
+  uint res = uint(imageSize(arg_0));
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureDimensions_284c27();
+}
+#version 460
+
+
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
+layout(binding = 0, rg32f) uniform highp readonly image1D arg_0;
+layout(location = 0) flat out uint vertex_main_loc0_Output;
+uint textureDimensions_284c27() {
+  uint res = uint(imageSize(arg_0));
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), 0u);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_284c27();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/literal/textureDimensions/346fee.wgsl b/test/tint/builtins/gen/literal/textureDimensions/346fee.wgsl
index ea20605..01de471 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/346fee.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/346fee.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
 
 @group(1) @binding(0) var arg_0: texture_cube_array<u32>;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/346fee.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/346fee.wgsl.expected.glsl
index 3a8eb2b..d822fe7 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/346fee.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/346fee.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-uniform highp usamplerCubeArray arg_0_1;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_346fee() {
-  uvec2 res = uvec2(textureSize(arg_0_1, int(1u)).xy);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureDimensions_346fee();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'usamplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
 uniform highp usamplerCubeArray arg_0_1;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
-void textureDimensions_346fee() {
+uvec2 textureDimensions_346fee() {
   uvec2 res = uvec2(textureSize(arg_0_1, int(1u)).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
 void fragment_main() {
-  textureDimensions_346fee();
+  prevent_dce.inner = textureDimensions_346fee();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'usamplerCubeArray' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-uniform highp usamplerCubeArray arg_0_1;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_346fee() {
+uniform highp usamplerCubeArray arg_0_1;
+uvec2 textureDimensions_346fee() {
   uvec2 res = uvec2(textureSize(arg_0_1, int(1u)).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
 void compute_main() {
-  textureDimensions_346fee();
+  prevent_dce.inner = textureDimensions_346fee();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'usamplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
+layout(location = 0) flat out uvec2 prevent_dce_1;
+uniform highp usamplerCubeArray arg_0_1;
+uvec2 textureDimensions_346fee() {
+  uvec2 res = uvec2(textureSize(arg_0_1, int(1u)).xy);
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), uvec2(0u, 0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_346fee();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureDimensions/35ee69.wgsl b/test/tint/builtins/gen/literal/textureDimensions/35ee69.wgsl
index e076f79..57b85f5 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/35ee69.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/35ee69.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32uint, write>;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/35ee69.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/35ee69.wgsl.expected.glsl
index c0d15ec..80fe4c8 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/35ee69.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/35ee69.wgsl.expected.glsl
@@ -1,83 +1,37 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage3D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec3 inner;
-  uint pad;
 } prevent_dce;
 
-void textureDimensions_35ee69() {
+layout(binding = 0, rg32ui) uniform highp writeonly uimage3D arg_0;
+uvec3 textureDimensions_35ee69() {
   uvec3 res = uvec3(imageSize(arg_0));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureDimensions_35ee69();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp writeonly uimage3D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
-void textureDimensions_35ee69() {
-  uvec3 res = uvec3(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureDimensions_35ee69();
+  prevent_dce.inner = textureDimensions_35ee69();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage3D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec3 inner;
-  uint pad;
 } prevent_dce;
 
-void textureDimensions_35ee69() {
+layout(binding = 0, rg32ui) uniform highp writeonly uimage3D arg_0;
+uvec3 textureDimensions_35ee69() {
   uvec3 res = uvec3(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureDimensions_35ee69();
+  prevent_dce.inner = textureDimensions_35ee69();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +39,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureDimensions/35ee69.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureDimensions/35ee69.wgsl.expected.ir.glsl
index fbd651e..d4953ff 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/35ee69.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/35ee69.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec3 tint_symbol;
+} v;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage3D arg_0;
+uvec3 textureDimensions_35ee69() {
+  uvec3 res = uvec3(imageSize(arg_0));
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_35ee69();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec3 tint_symbol;
+} v;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage3D arg_0;
+uvec3 textureDimensions_35ee69() {
+  uvec3 res = uvec3(imageSize(arg_0));
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureDimensions_35ee69();
+}
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3963d0.wgsl b/test/tint/builtins/gen/literal/textureDimensions/3963d0.wgsl
index 7e0e9e1..25f3ff8 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3963d0.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3963d0.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
 
 @group(1) @binding(0) var arg_0: texture_cube_array<i32>;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3963d0.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/3963d0.wgsl.expected.glsl
index fd67867..013787d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3963d0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3963d0.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-uniform highp isamplerCubeArray arg_0_1;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_3963d0() {
-  uvec2 res = uvec2(textureSize(arg_0_1, int(1u)).xy);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureDimensions_3963d0();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'isamplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
 uniform highp isamplerCubeArray arg_0_1;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
-void textureDimensions_3963d0() {
+uvec2 textureDimensions_3963d0() {
   uvec2 res = uvec2(textureSize(arg_0_1, int(1u)).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
 void fragment_main() {
-  textureDimensions_3963d0();
+  prevent_dce.inner = textureDimensions_3963d0();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'isamplerCubeArray' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-uniform highp isamplerCubeArray arg_0_1;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_3963d0() {
+uniform highp isamplerCubeArray arg_0_1;
+uvec2 textureDimensions_3963d0() {
   uvec2 res = uvec2(textureSize(arg_0_1, int(1u)).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
 void compute_main() {
-  textureDimensions_3963d0();
+  prevent_dce.inner = textureDimensions_3963d0();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'isamplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
+layout(location = 0) flat out uvec2 prevent_dce_1;
+uniform highp isamplerCubeArray arg_0_1;
+uvec2 textureDimensions_3963d0() {
+  uvec2 res = uvec2(textureSize(arg_0_1, int(1u)).xy);
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), uvec2(0u, 0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_3963d0();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3c66f0.wgsl b/test/tint/builtins/gen/literal/textureDimensions/3c66f0.wgsl
index fc1a991..aef0bba 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3c66f0.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3c66f0.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
 
 @group(1) @binding(0) var arg_0: texture_cube_array<i32>;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3c66f0.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/3c66f0.wgsl.expected.glsl
index 103debc..132c7fc 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3c66f0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3c66f0.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-uniform highp isamplerCubeArray arg_0_1;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_3c66f0() {
-  uvec2 res = uvec2(textureSize(arg_0_1, 1).xy);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureDimensions_3c66f0();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'isamplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
 uniform highp isamplerCubeArray arg_0_1;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
-void textureDimensions_3c66f0() {
+uvec2 textureDimensions_3c66f0() {
   uvec2 res = uvec2(textureSize(arg_0_1, 1).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
 void fragment_main() {
-  textureDimensions_3c66f0();
+  prevent_dce.inner = textureDimensions_3c66f0();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'isamplerCubeArray' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-uniform highp isamplerCubeArray arg_0_1;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_3c66f0() {
+uniform highp isamplerCubeArray arg_0_1;
+uvec2 textureDimensions_3c66f0() {
   uvec2 res = uvec2(textureSize(arg_0_1, 1).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
 void compute_main() {
-  textureDimensions_3c66f0();
+  prevent_dce.inner = textureDimensions_3c66f0();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'isamplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
+layout(location = 0) flat out uvec2 prevent_dce_1;
+uniform highp isamplerCubeArray arg_0_1;
+uvec2 textureDimensions_3c66f0() {
+  uvec2 res = uvec2(textureSize(arg_0_1, 1).xy);
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), uvec2(0u, 0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_3c66f0();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3c66f0.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureDimensions/3c66f0.wgsl.expected.ir.glsl
index fbd651e..22feaee 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3c66f0.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3c66f0.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+uniform highp isamplerCubeArray arg_0;
+uvec2 textureDimensions_3c66f0() {
+  uvec2 res = uvec2(textureSize(arg_0, 1).xy);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_3c66f0();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+uniform highp isamplerCubeArray arg_0;
+uvec2 textureDimensions_3c66f0() {
+  uvec2 res = uvec2(textureSize(arg_0, 1).xy);
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureDimensions_3c66f0();
+}
+#version 460
+
+
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
+uniform highp isamplerCubeArray arg_0;
+layout(location = 0) flat out uvec2 vertex_main_loc0_Output;
+uvec2 textureDimensions_3c66f0() {
+  uvec2 res = uvec2(textureSize(arg_0, 1).xy);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), uvec2(0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_3c66f0();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/literal/textureDimensions/40da20.wgsl b/test/tint/builtins/gen/literal/textureDimensions/40da20.wgsl
index b83f38f..4bca472 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/40da20.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/40da20.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/40da20.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/40da20.wgsl.expected.glsl
index ae8a8360..6a71452 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/40da20.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/40da20.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp readonly image2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_40da20() {
+layout(binding = 0, r8) uniform highp readonly image2D arg_0;
+uvec2 textureDimensions_40da20() {
   uvec2 res = uvec2(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureDimensions_40da20();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp readonly image2D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
-void textureDimensions_40da20() {
-  uvec2 res = uvec2(imageSize(arg_0));
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
 
 void fragment_main() {
-  textureDimensions_40da20();
+  prevent_dce.inner = textureDimensions_40da20();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp readonly image2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_40da20() {
+layout(binding = 0, r8) uniform highp readonly image2D arg_0;
+uvec2 textureDimensions_40da20() {
   uvec2 res = uvec2(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
 void compute_main() {
-  textureDimensions_40da20();
+  prevent_dce.inner = textureDimensions_40da20();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out uvec2 prevent_dce_1;
+layout(binding = 0, r8) uniform highp readonly image2D arg_0;
+uvec2 textureDimensions_40da20() {
+  uvec2 res = uvec2(imageSize(arg_0));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), uvec2(0u, 0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_40da20();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureDimensions/40da20.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureDimensions/40da20.wgsl.expected.ir.glsl
index fbd651e..9070745 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/40da20.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/40da20.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+layout(binding = 0, r8) uniform highp readonly image2D arg_0;
+uvec2 textureDimensions_40da20() {
+  uvec2 res = uvec2(imageSize(arg_0));
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_40da20();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+layout(binding = 0, r8) uniform highp readonly image2D arg_0;
+uvec2 textureDimensions_40da20() {
+  uvec2 res = uvec2(imageSize(arg_0));
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureDimensions_40da20();
+}
+#version 460
+
+
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
+layout(binding = 0, r8) uniform highp readonly image2D arg_0;
+layout(location = 0) flat out uvec2 vertex_main_loc0_Output;
+uvec2 textureDimensions_40da20() {
+  uvec2 res = uvec2(imageSize(arg_0));
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), uvec2(0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_40da20();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/literal/textureDimensions/439651.wgsl b/test/tint/builtins/gen/literal/textureDimensions/439651.wgsl
index 1b45987..ef6699e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/439651.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/439651.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32sint, write>;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/439651.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/439651.wgsl.expected.glsl
index a762619..892bdbe 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/439651.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/439651.wgsl.expected.glsl
@@ -1,80 +1,37 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_439651() {
+layout(binding = 0, rg32i) uniform highp writeonly iimage2D arg_0;
+uvec2 textureDimensions_439651() {
   uvec2 res = uvec2(imageSize(arg_0));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureDimensions_439651();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp writeonly iimage2D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
-void textureDimensions_439651() {
-  uvec2 res = uvec2(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureDimensions_439651();
+  prevent_dce.inner = textureDimensions_439651();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_439651() {
+layout(binding = 0, rg32i) uniform highp writeonly iimage2D arg_0;
+uvec2 textureDimensions_439651() {
   uvec2 res = uvec2(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureDimensions_439651();
+  prevent_dce.inner = textureDimensions_439651();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +39,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureDimensions/439651.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureDimensions/439651.wgsl.expected.ir.glsl
index fbd651e..e7a4a4e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/439651.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/439651.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+layout(binding = 0, rg32i) uniform highp writeonly iimage2D arg_0;
+uvec2 textureDimensions_439651() {
+  uvec2 res = uvec2(imageSize(arg_0));
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_439651();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+layout(binding = 0, rg32i) uniform highp writeonly iimage2D arg_0;
+uvec2 textureDimensions_439651() {
+  uvec2 res = uvec2(imageSize(arg_0));
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureDimensions_439651();
+}
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4acec7.wgsl b/test/tint/builtins/gen/literal/textureDimensions/4acec7.wgsl
index 499acef..21b8410 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4acec7.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/4acec7.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32float, write>;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4acec7.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/4acec7.wgsl.expected.glsl
index 0c893b0..1c7c809 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4acec7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/4acec7.wgsl.expected.glsl
@@ -1,80 +1,37 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_4acec7() {
+layout(binding = 0, rg32f) uniform highp writeonly image2DArray arg_0;
+uvec2 textureDimensions_4acec7() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureDimensions_4acec7();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp writeonly image2DArray arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
-void textureDimensions_4acec7() {
-  uvec2 res = uvec2(imageSize(arg_0).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureDimensions_4acec7();
+  prevent_dce.inner = textureDimensions_4acec7();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_4acec7() {
+layout(binding = 0, rg32f) uniform highp writeonly image2DArray arg_0;
+uvec2 textureDimensions_4acec7() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureDimensions_4acec7();
+  prevent_dce.inner = textureDimensions_4acec7();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +39,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureDimensions/4acec7.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureDimensions/4acec7.wgsl.expected.ir.glsl
index fbd651e..2602efa 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4acec7.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/4acec7.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+layout(binding = 0, rg32f) uniform highp writeonly image2DArray arg_0;
+uvec2 textureDimensions_4acec7() {
+  uvec2 res = uvec2(imageSize(arg_0).xy);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_4acec7();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+layout(binding = 0, rg32f) uniform highp writeonly image2DArray arg_0;
+uvec2 textureDimensions_4acec7() {
+  uvec2 res = uvec2(imageSize(arg_0).xy);
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureDimensions_4acec7();
+}
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4d1f71.wgsl b/test/tint/builtins/gen/literal/textureDimensions/4d1f71.wgsl
index 631d653..b7002d3 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4d1f71.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/4d1f71.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32uint, read>;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4d1f71.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/4d1f71.wgsl.expected.glsl
index 85348c2..a22877a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4d1f71.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/4d1f71.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp readonly uimage2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_4d1f71() {
+layout(binding = 0, rg32ui) uniform highp readonly uimage2DArray arg_0;
+uvec2 textureDimensions_4d1f71() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureDimensions_4d1f71();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp readonly uimage2DArray arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
-void textureDimensions_4d1f71() {
-  uvec2 res = uvec2(imageSize(arg_0).xy);
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
 
 void fragment_main() {
-  textureDimensions_4d1f71();
+  prevent_dce.inner = textureDimensions_4d1f71();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp readonly uimage2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_4d1f71() {
+layout(binding = 0, rg32ui) uniform highp readonly uimage2DArray arg_0;
+uvec2 textureDimensions_4d1f71() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
 void compute_main() {
-  textureDimensions_4d1f71();
+  prevent_dce.inner = textureDimensions_4d1f71();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out uvec2 prevent_dce_1;
+layout(binding = 0, rg32ui) uniform highp readonly uimage2DArray arg_0;
+uvec2 textureDimensions_4d1f71() {
+  uvec2 res = uvec2(imageSize(arg_0).xy);
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), uvec2(0u, 0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_4d1f71();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4d1f71.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureDimensions/4d1f71.wgsl.expected.ir.glsl
index fbd651e..07495fa 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4d1f71.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/4d1f71.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+layout(binding = 0, rg32ui) uniform highp readonly uimage2DArray arg_0;
+uvec2 textureDimensions_4d1f71() {
+  uvec2 res = uvec2(imageSize(arg_0).xy);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_4d1f71();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+layout(binding = 0, rg32ui) uniform highp readonly uimage2DArray arg_0;
+uvec2 textureDimensions_4d1f71() {
+  uvec2 res = uvec2(imageSize(arg_0).xy);
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureDimensions_4d1f71();
+}
+#version 460
+
+
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
+layout(binding = 0, rg32ui) uniform highp readonly uimage2DArray arg_0;
+layout(location = 0) flat out uvec2 vertex_main_loc0_Output;
+uvec2 textureDimensions_4d1f71() {
+  uvec2 res = uvec2(imageSize(arg_0).xy);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), uvec2(0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_4d1f71();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4df14c.wgsl b/test/tint/builtins/gen/literal/textureDimensions/4df14c.wgsl
index fe679ab..8b78c21 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4df14c.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/4df14c.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32uint, read_write>;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4df14c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/4df14c.wgsl.expected.glsl
index 9956046..a6a41aa 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4df14c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/4df14c.wgsl.expected.glsl
@@ -1,83 +1,37 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage3D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec3 inner;
-  uint pad;
 } prevent_dce;
 
-void textureDimensions_4df14c() {
+layout(binding = 0, rg32ui) uniform highp writeonly uimage3D arg_0;
+uvec3 textureDimensions_4df14c() {
   uvec3 res = uvec3(imageSize(arg_0));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureDimensions_4df14c();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp writeonly uimage3D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
-void textureDimensions_4df14c() {
-  uvec3 res = uvec3(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureDimensions_4df14c();
+  prevent_dce.inner = textureDimensions_4df14c();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage3D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec3 inner;
-  uint pad;
 } prevent_dce;
 
-void textureDimensions_4df14c() {
+layout(binding = 0, rg32ui) uniform highp writeonly uimage3D arg_0;
+uvec3 textureDimensions_4df14c() {
   uvec3 res = uvec3(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureDimensions_4df14c();
+  prevent_dce.inner = textureDimensions_4df14c();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +39,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureDimensions/52cf60.wgsl b/test/tint/builtins/gen/literal/textureDimensions/52cf60.wgsl
index da953dd..0bbc3e5 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/52cf60.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/52cf60.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32float, read>;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/52cf60.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/52cf60.wgsl.expected.glsl
index 69c3fc5..7bf70b2 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/52cf60.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/52cf60.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp readonly image2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_52cf60() {
+layout(binding = 0, rg32f) uniform highp readonly image2D arg_0;
+uvec2 textureDimensions_52cf60() {
   uvec2 res = uvec2(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureDimensions_52cf60();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp readonly image2D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
-void textureDimensions_52cf60() {
-  uvec2 res = uvec2(imageSize(arg_0));
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
 
 void fragment_main() {
-  textureDimensions_52cf60();
+  prevent_dce.inner = textureDimensions_52cf60();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp readonly image2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_52cf60() {
+layout(binding = 0, rg32f) uniform highp readonly image2D arg_0;
+uvec2 textureDimensions_52cf60() {
   uvec2 res = uvec2(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
 void compute_main() {
-  textureDimensions_52cf60();
+  prevent_dce.inner = textureDimensions_52cf60();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out uvec2 prevent_dce_1;
+layout(binding = 0, rg32f) uniform highp readonly image2D arg_0;
+uvec2 textureDimensions_52cf60() {
+  uvec2 res = uvec2(imageSize(arg_0));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), uvec2(0u, 0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_52cf60();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureDimensions/52cf60.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureDimensions/52cf60.wgsl.expected.ir.glsl
index fbd651e..c42e9ea 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/52cf60.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/52cf60.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+layout(binding = 0, rg32f) uniform highp readonly image2D arg_0;
+uvec2 textureDimensions_52cf60() {
+  uvec2 res = uvec2(imageSize(arg_0));
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_52cf60();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+layout(binding = 0, rg32f) uniform highp readonly image2D arg_0;
+uvec2 textureDimensions_52cf60() {
+  uvec2 res = uvec2(imageSize(arg_0));
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureDimensions_52cf60();
+}
+#version 460
+
+
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
+layout(binding = 0, rg32f) uniform highp readonly image2D arg_0;
+layout(location = 0) flat out uvec2 vertex_main_loc0_Output;
+uvec2 textureDimensions_52cf60() {
+  uvec2 res = uvec2(imageSize(arg_0));
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), uvec2(0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_52cf60();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/literal/textureDimensions/542c62.wgsl b/test/tint/builtins/gen/literal/textureDimensions/542c62.wgsl
index 1a757ca..84be12e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/542c62.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/542c62.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 
 @group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/542c62.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/542c62.wgsl.expected.glsl
index e436c5e..45c6e2a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/542c62.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/542c62.wgsl.expected.glsl
@@ -1,80 +1,37 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp writeonly image2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureDimensions_542c62() {
+layout(binding = 0, r8) uniform highp writeonly image2D arg_0;
+uint textureDimensions_542c62() {
   uint res = uvec2(imageSize(arg_0)).x;
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureDimensions_542c62();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp writeonly image2D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
-void textureDimensions_542c62() {
-  uint res = uvec2(imageSize(arg_0)).x;
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureDimensions_542c62();
+  prevent_dce.inner = textureDimensions_542c62();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp writeonly image2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureDimensions_542c62() {
+layout(binding = 0, r8) uniform highp writeonly image2D arg_0;
+uint textureDimensions_542c62() {
   uint res = uvec2(imageSize(arg_0)).x;
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureDimensions_542c62();
+  prevent_dce.inner = textureDimensions_542c62();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +39,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureDimensions/542c62.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureDimensions/542c62.wgsl.expected.ir.glsl
index fbd651e..52e135b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/542c62.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/542c62.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, r8) uniform highp writeonly image1D arg_0;
+uint textureDimensions_542c62() {
+  uint res = uint(imageSize(arg_0));
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_542c62();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, r8) uniform highp writeonly image1D arg_0;
+uint textureDimensions_542c62() {
+  uint res = uint(imageSize(arg_0));
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureDimensions_542c62();
+}
diff --git a/test/tint/builtins/gen/literal/textureDimensions/578e75.wgsl b/test/tint/builtins/gen/literal/textureDimensions/578e75.wgsl
index 8a0af2e..faf6a85 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/578e75.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/578e75.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/578e75.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/578e75.wgsl.expected.glsl
index 45c3096..a0e39bc 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/578e75.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/578e75.wgsl.expected.glsl
@@ -1,80 +1,37 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp writeonly image2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_578e75() {
+layout(binding = 0, r8) uniform highp writeonly image2DArray arg_0;
+uvec2 textureDimensions_578e75() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureDimensions_578e75();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp writeonly image2DArray arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
-void textureDimensions_578e75() {
-  uvec2 res = uvec2(imageSize(arg_0).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureDimensions_578e75();
+  prevent_dce.inner = textureDimensions_578e75();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp writeonly image2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_578e75() {
+layout(binding = 0, r8) uniform highp writeonly image2DArray arg_0;
+uvec2 textureDimensions_578e75() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureDimensions_578e75();
+  prevent_dce.inner = textureDimensions_578e75();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +39,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureDimensions/6dae40.wgsl b/test/tint/builtins/gen/literal/textureDimensions/6dae40.wgsl
index 38b8251..f785127 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/6dae40.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/6dae40.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32float, read>;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/6dae40.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/6dae40.wgsl.expected.glsl
index 8815615..0fa5ad6 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/6dae40.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/6dae40.wgsl.expected.glsl
@@ -1,83 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp readonly image3D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec3 inner;
-  uint pad;
 } prevent_dce;
 
-void textureDimensions_6dae40() {
+layout(binding = 0, rg32f) uniform highp readonly image3D arg_0;
+uvec3 textureDimensions_6dae40() {
   uvec3 res = uvec3(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureDimensions_6dae40();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp readonly image3D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
-void textureDimensions_6dae40() {
-  uvec3 res = uvec3(imageSize(arg_0));
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  uvec3 prevent_dce;
+};
 
 void fragment_main() {
-  textureDimensions_6dae40();
+  prevent_dce.inner = textureDimensions_6dae40();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp readonly image3D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec3 inner;
-  uint pad;
 } prevent_dce;
 
-void textureDimensions_6dae40() {
+layout(binding = 0, rg32f) uniform highp readonly image3D arg_0;
+uvec3 textureDimensions_6dae40() {
   uvec3 res = uvec3(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec3 prevent_dce;
+};
+
 void compute_main() {
-  textureDimensions_6dae40();
+  prevent_dce.inner = textureDimensions_6dae40();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out uvec3 prevent_dce_1;
+layout(binding = 0, rg32f) uniform highp readonly image3D arg_0;
+uvec3 textureDimensions_6dae40() {
+  uvec3 res = uvec3(imageSize(arg_0));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uvec3 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), uvec3(0u, 0u, 0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_6dae40();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureDimensions/6dae40.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureDimensions/6dae40.wgsl.expected.ir.glsl
index fbd651e..027d283 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/6dae40.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/6dae40.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec3 tint_symbol;
+} v;
+layout(binding = 0, rg32f) uniform highp readonly image3D arg_0;
+uvec3 textureDimensions_6dae40() {
+  uvec3 res = uvec3(imageSize(arg_0));
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_6dae40();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec3 tint_symbol;
+} v;
+layout(binding = 0, rg32f) uniform highp readonly image3D arg_0;
+uvec3 textureDimensions_6dae40() {
+  uvec3 res = uvec3(imageSize(arg_0));
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureDimensions_6dae40();
+}
+#version 460
+
+
+struct VertexOutput {
+  vec4 pos;
+  uvec3 prevent_dce;
+};
+
+layout(binding = 0, rg32f) uniform highp readonly image3D arg_0;
+layout(location = 0) flat out uvec3 vertex_main_loc0_Output;
+uvec3 textureDimensions_6dae40() {
+  uvec3 res = uvec3(imageSize(arg_0));
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), uvec3(0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_6dae40();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/literal/textureDimensions/6dbef4.wgsl b/test/tint/builtins/gen/literal/textureDimensions/6dbef4.wgsl
index ed4e13f..07f19dc 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/6dbef4.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/6dbef4.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32sint, read>;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/6dbef4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/6dbef4.wgsl.expected.glsl
index 1ee6bbb..e3fcf20 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/6dbef4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/6dbef4.wgsl.expected.glsl
@@ -1,83 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp readonly iimage3D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec3 inner;
-  uint pad;
 } prevent_dce;
 
-void textureDimensions_6dbef4() {
+layout(binding = 0, rg32i) uniform highp readonly iimage3D arg_0;
+uvec3 textureDimensions_6dbef4() {
   uvec3 res = uvec3(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureDimensions_6dbef4();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp readonly iimage3D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
-void textureDimensions_6dbef4() {
-  uvec3 res = uvec3(imageSize(arg_0));
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  uvec3 prevent_dce;
+};
 
 void fragment_main() {
-  textureDimensions_6dbef4();
+  prevent_dce.inner = textureDimensions_6dbef4();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp readonly iimage3D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec3 inner;
-  uint pad;
 } prevent_dce;
 
-void textureDimensions_6dbef4() {
+layout(binding = 0, rg32i) uniform highp readonly iimage3D arg_0;
+uvec3 textureDimensions_6dbef4() {
   uvec3 res = uvec3(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec3 prevent_dce;
+};
+
 void compute_main() {
-  textureDimensions_6dbef4();
+  prevent_dce.inner = textureDimensions_6dbef4();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out uvec3 prevent_dce_1;
+layout(binding = 0, rg32i) uniform highp readonly iimage3D arg_0;
+uvec3 textureDimensions_6dbef4() {
+  uvec3 res = uvec3(imageSize(arg_0));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uvec3 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), uvec3(0u, 0u, 0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_6dbef4();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureDimensions/6dbef4.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureDimensions/6dbef4.wgsl.expected.ir.glsl
index fbd651e..a062ff2 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/6dbef4.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/6dbef4.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec3 tint_symbol;
+} v;
+layout(binding = 0, rg32i) uniform highp readonly iimage3D arg_0;
+uvec3 textureDimensions_6dbef4() {
+  uvec3 res = uvec3(imageSize(arg_0));
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_6dbef4();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec3 tint_symbol;
+} v;
+layout(binding = 0, rg32i) uniform highp readonly iimage3D arg_0;
+uvec3 textureDimensions_6dbef4() {
+  uvec3 res = uvec3(imageSize(arg_0));
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureDimensions_6dbef4();
+}
+#version 460
+
+
+struct VertexOutput {
+  vec4 pos;
+  uvec3 prevent_dce;
+};
+
+layout(binding = 0, rg32i) uniform highp readonly iimage3D arg_0;
+layout(location = 0) flat out uvec3 vertex_main_loc0_Output;
+uvec3 textureDimensions_6dbef4() {
+  uvec3 res = uvec3(imageSize(arg_0));
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), uvec3(0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_6dbef4();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/literal/textureDimensions/740e7c.wgsl b/test/tint/builtins/gen/literal/textureDimensions/740e7c.wgsl
index 75d9159..b656a8e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/740e7c.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/740e7c.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
 
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32sint, read_write>;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/740e7c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/740e7c.wgsl.expected.glsl
index 83e274d..7928ecb 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/740e7c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/740e7c.wgsl.expected.glsl
@@ -1,80 +1,37 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureDimensions_740e7c() {
+layout(binding = 0, rg32i) uniform highp writeonly iimage2D arg_0;
+uint textureDimensions_740e7c() {
   uint res = uvec2(imageSize(arg_0)).x;
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureDimensions_740e7c();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp writeonly iimage2D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
-void textureDimensions_740e7c() {
-  uint res = uvec2(imageSize(arg_0)).x;
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureDimensions_740e7c();
+  prevent_dce.inner = textureDimensions_740e7c();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureDimensions_740e7c() {
+layout(binding = 0, rg32i) uniform highp writeonly iimage2D arg_0;
+uint textureDimensions_740e7c() {
   uint res = uvec2(imageSize(arg_0)).x;
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureDimensions_740e7c();
+  prevent_dce.inner = textureDimensions_740e7c();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +39,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureDimensions/7c7c64.wgsl b/test/tint/builtins/gen/literal/textureDimensions/7c7c64.wgsl
index cc7f3f7..59d281d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7c7c64.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7c7c64.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32sint, read_write>;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7c7c64.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/7c7c64.wgsl.expected.glsl
index 917fe4e..6a1332c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7c7c64.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7c7c64.wgsl.expected.glsl
@@ -1,80 +1,37 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_7c7c64() {
+layout(binding = 0, rg32i) uniform highp writeonly iimage2DArray arg_0;
+uvec2 textureDimensions_7c7c64() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureDimensions_7c7c64();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp writeonly iimage2DArray arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
-void textureDimensions_7c7c64() {
-  uvec2 res = uvec2(imageSize(arg_0).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureDimensions_7c7c64();
+  prevent_dce.inner = textureDimensions_7c7c64();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_7c7c64() {
+layout(binding = 0, rg32i) uniform highp writeonly iimage2DArray arg_0;
+uvec2 textureDimensions_7c7c64() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureDimensions_7c7c64();
+  prevent_dce.inner = textureDimensions_7c7c64();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +39,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureDimensions/7d8439.wgsl b/test/tint/builtins/gen/literal/textureDimensions/7d8439.wgsl
index 3277696..594c2fb 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7d8439.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7d8439.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
 
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32uint, read>;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7d8439.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/7d8439.wgsl.expected.glsl
index 9af6882..c3d1668 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7d8439.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7d8439.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp readonly uimage2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureDimensions_7d8439() {
+layout(binding = 0, rg32ui) uniform highp readonly uimage2D arg_0;
+uint textureDimensions_7d8439() {
   uint res = uvec2(imageSize(arg_0)).x;
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureDimensions_7d8439();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp readonly uimage2D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
-void textureDimensions_7d8439() {
-  uint res = uvec2(imageSize(arg_0)).x;
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
 
 void fragment_main() {
-  textureDimensions_7d8439();
+  prevent_dce.inner = textureDimensions_7d8439();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp readonly uimage2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureDimensions_7d8439() {
+layout(binding = 0, rg32ui) uniform highp readonly uimage2D arg_0;
+uint textureDimensions_7d8439() {
   uint res = uvec2(imageSize(arg_0)).x;
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
 void compute_main() {
-  textureDimensions_7d8439();
+  prevent_dce.inner = textureDimensions_7d8439();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out uint prevent_dce_1;
+layout(binding = 0, rg32ui) uniform highp readonly uimage2D arg_0;
+uint textureDimensions_7d8439() {
+  uint res = uvec2(imageSize(arg_0)).x;
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), 0u);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_7d8439();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7d8439.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureDimensions/7d8439.wgsl.expected.ir.glsl
index fbd651e..f9412ab 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7d8439.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7d8439.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, rg32ui) uniform highp readonly uimage1D arg_0;
+uint textureDimensions_7d8439() {
+  uint res = uint(imageSize(arg_0));
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_7d8439();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, rg32ui) uniform highp readonly uimage1D arg_0;
+uint textureDimensions_7d8439() {
+  uint res = uint(imageSize(arg_0));
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureDimensions_7d8439();
+}
+#version 460
+
+
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
+layout(binding = 0, rg32ui) uniform highp readonly uimage1D arg_0;
+layout(location = 0) flat out uint vertex_main_loc0_Output;
+uint textureDimensions_7d8439() {
+  uint res = uint(imageSize(arg_0));
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), 0u);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_7d8439();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/literal/textureDimensions/835f90.wgsl b/test/tint/builtins/gen/literal/textureDimensions/835f90.wgsl
index 77ea6df..e1f4079 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/835f90.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/835f90.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32sint, read_write>;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/835f90.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/835f90.wgsl.expected.glsl
index 00ddd2c..166b1b5 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/835f90.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/835f90.wgsl.expected.glsl
@@ -1,80 +1,37 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_835f90() {
+layout(binding = 0, rg32i) uniform highp writeonly iimage2D arg_0;
+uvec2 textureDimensions_835f90() {
   uvec2 res = uvec2(imageSize(arg_0));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureDimensions_835f90();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp writeonly iimage2D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
-void textureDimensions_835f90() {
-  uvec2 res = uvec2(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureDimensions_835f90();
+  prevent_dce.inner = textureDimensions_835f90();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_835f90() {
+layout(binding = 0, rg32i) uniform highp writeonly iimage2D arg_0;
+uvec2 textureDimensions_835f90() {
   uvec2 res = uvec2(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureDimensions_835f90();
+  prevent_dce.inner = textureDimensions_835f90();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +39,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureDimensions/879b73.wgsl b/test/tint/builtins/gen/literal/textureDimensions/879b73.wgsl
index 45bd2b9..6b078ce 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/879b73.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/879b73.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
 
 @group(1) @binding(0) var arg_0: texture_cube_array<f32>;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/879b73.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/879b73.wgsl.expected.glsl
index 7b5f46b..f643ca5 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/879b73.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/879b73.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-uniform highp samplerCubeArray arg_0_1;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_879b73() {
-  uvec2 res = uvec2(textureSize(arg_0_1, 0).xy);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureDimensions_879b73();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
 uniform highp samplerCubeArray arg_0_1;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
-void textureDimensions_879b73() {
+uvec2 textureDimensions_879b73() {
   uvec2 res = uvec2(textureSize(arg_0_1, 0).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
 void fragment_main() {
-  textureDimensions_879b73();
+  prevent_dce.inner = textureDimensions_879b73();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-uniform highp samplerCubeArray arg_0_1;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_879b73() {
+uniform highp samplerCubeArray arg_0_1;
+uvec2 textureDimensions_879b73() {
   uvec2 res = uvec2(textureSize(arg_0_1, 0).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
 void compute_main() {
-  textureDimensions_879b73();
+  prevent_dce.inner = textureDimensions_879b73();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
+layout(location = 0) flat out uvec2 prevent_dce_1;
+uniform highp samplerCubeArray arg_0_1;
+uvec2 textureDimensions_879b73() {
+  uvec2 res = uvec2(textureSize(arg_0_1, 0).xy);
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), uvec2(0u, 0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_879b73();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureDimensions/879b73.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureDimensions/879b73.wgsl.expected.ir.glsl
index fbd651e..6dcee45 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/879b73.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/879b73.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+uniform highp samplerCubeArray arg_0;
+uvec2 textureDimensions_879b73() {
+  uvec2 res = uvec2(textureSize(arg_0, 0).xy);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_879b73();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+uniform highp samplerCubeArray arg_0;
+uvec2 textureDimensions_879b73() {
+  uvec2 res = uvec2(textureSize(arg_0, 0).xy);
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureDimensions_879b73();
+}
+#version 460
+
+
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
+uniform highp samplerCubeArray arg_0;
+layout(location = 0) flat out uvec2 vertex_main_loc0_Output;
+uvec2 textureDimensions_879b73() {
+  uvec2 res = uvec2(textureSize(arg_0, 0).xy);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), uvec2(0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_879b73();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8a35f9.wgsl b/test/tint/builtins/gen/literal/textureDimensions/8a35f9.wgsl
index 730c8f4..8380bb4 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8a35f9.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8a35f9.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32float, write>;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8a35f9.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/8a35f9.wgsl.expected.glsl
index 87202cb..cb3566b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8a35f9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8a35f9.wgsl.expected.glsl
@@ -1,80 +1,37 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_8a35f9() {
+layout(binding = 0, rg32f) uniform highp writeonly image2D arg_0;
+uvec2 textureDimensions_8a35f9() {
   uvec2 res = uvec2(imageSize(arg_0));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureDimensions_8a35f9();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp writeonly image2D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
-void textureDimensions_8a35f9() {
-  uvec2 res = uvec2(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureDimensions_8a35f9();
+  prevent_dce.inner = textureDimensions_8a35f9();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_8a35f9() {
+layout(binding = 0, rg32f) uniform highp writeonly image2D arg_0;
+uvec2 textureDimensions_8a35f9() {
   uvec2 res = uvec2(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureDimensions_8a35f9();
+  prevent_dce.inner = textureDimensions_8a35f9();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +39,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureDimensions/8a35f9.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureDimensions/8a35f9.wgsl.expected.ir.glsl
index fbd651e..8276eb8 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8a35f9.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8a35f9.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+layout(binding = 0, rg32f) uniform highp writeonly image2D arg_0;
+uvec2 textureDimensions_8a35f9() {
+  uvec2 res = uvec2(imageSize(arg_0));
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_8a35f9();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+layout(binding = 0, rg32f) uniform highp writeonly image2D arg_0;
+uvec2 textureDimensions_8a35f9() {
+  uvec2 res = uvec2(imageSize(arg_0));
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureDimensions_8a35f9();
+}
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8af728.wgsl b/test/tint/builtins/gen/literal/textureDimensions/8af728.wgsl
index 441575d..6415f32 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8af728.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8af728.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8af728.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/8af728.wgsl.expected.glsl
index 07cf06e..621da02 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8af728.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8af728.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp readonly image2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_8af728() {
+layout(binding = 0, r8) uniform highp readonly image2DArray arg_0;
+uvec2 textureDimensions_8af728() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureDimensions_8af728();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp readonly image2DArray arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
-void textureDimensions_8af728() {
-  uvec2 res = uvec2(imageSize(arg_0).xy);
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
 
 void fragment_main() {
-  textureDimensions_8af728();
+  prevent_dce.inner = textureDimensions_8af728();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp readonly image2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_8af728() {
+layout(binding = 0, r8) uniform highp readonly image2DArray arg_0;
+uvec2 textureDimensions_8af728() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
 void compute_main() {
-  textureDimensions_8af728();
+  prevent_dce.inner = textureDimensions_8af728();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out uvec2 prevent_dce_1;
+layout(binding = 0, r8) uniform highp readonly image2DArray arg_0;
+uvec2 textureDimensions_8af728() {
+  uvec2 res = uvec2(imageSize(arg_0).xy);
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), uvec2(0u, 0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_8af728();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8af728.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureDimensions/8af728.wgsl.expected.ir.glsl
index fbd651e..d811e99 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8af728.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8af728.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+layout(binding = 0, r8) uniform highp readonly image2DArray arg_0;
+uvec2 textureDimensions_8af728() {
+  uvec2 res = uvec2(imageSize(arg_0).xy);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_8af728();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+layout(binding = 0, r8) uniform highp readonly image2DArray arg_0;
+uvec2 textureDimensions_8af728() {
+  uvec2 res = uvec2(imageSize(arg_0).xy);
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureDimensions_8af728();
+}
+#version 460
+
+
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
+layout(binding = 0, r8) uniform highp readonly image2DArray arg_0;
+layout(location = 0) flat out uvec2 vertex_main_loc0_Output;
+uvec2 textureDimensions_8af728() {
+  uvec2 res = uvec2(imageSize(arg_0).xy);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), uvec2(0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_8af728();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8e15f4.wgsl b/test/tint/builtins/gen/literal/textureDimensions/8e15f4.wgsl
index 89e5ba9..ad74ff0 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8e15f4.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8e15f4.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32uint, read>;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8e15f4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/8e15f4.wgsl.expected.glsl
index bfebfb4..b6eb1ef 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8e15f4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8e15f4.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp readonly uimage2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_8e15f4() {
+layout(binding = 0, rg32ui) uniform highp readonly uimage2D arg_0;
+uvec2 textureDimensions_8e15f4() {
   uvec2 res = uvec2(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureDimensions_8e15f4();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp readonly uimage2D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
-void textureDimensions_8e15f4() {
-  uvec2 res = uvec2(imageSize(arg_0));
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
 
 void fragment_main() {
-  textureDimensions_8e15f4();
+  prevent_dce.inner = textureDimensions_8e15f4();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp readonly uimage2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_8e15f4() {
+layout(binding = 0, rg32ui) uniform highp readonly uimage2D arg_0;
+uvec2 textureDimensions_8e15f4() {
   uvec2 res = uvec2(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
 void compute_main() {
-  textureDimensions_8e15f4();
+  prevent_dce.inner = textureDimensions_8e15f4();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out uvec2 prevent_dce_1;
+layout(binding = 0, rg32ui) uniform highp readonly uimage2D arg_0;
+uvec2 textureDimensions_8e15f4() {
+  uvec2 res = uvec2(imageSize(arg_0));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), uvec2(0u, 0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_8e15f4();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8e15f4.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureDimensions/8e15f4.wgsl.expected.ir.glsl
index fbd651e..4b593b6 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8e15f4.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8e15f4.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+layout(binding = 0, rg32ui) uniform highp readonly uimage2D arg_0;
+uvec2 textureDimensions_8e15f4() {
+  uvec2 res = uvec2(imageSize(arg_0));
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_8e15f4();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+layout(binding = 0, rg32ui) uniform highp readonly uimage2D arg_0;
+uvec2 textureDimensions_8e15f4() {
+  uvec2 res = uvec2(imageSize(arg_0));
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureDimensions_8e15f4();
+}
+#version 460
+
+
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
+layout(binding = 0, rg32ui) uniform highp readonly uimage2D arg_0;
+layout(location = 0) flat out uvec2 vertex_main_loc0_Output;
+uvec2 textureDimensions_8e15f4() {
+  uvec2 res = uvec2(imageSize(arg_0));
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), uvec2(0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_8e15f4();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/literal/textureDimensions/91e3b4.wgsl b/test/tint/builtins/gen/literal/textureDimensions/91e3b4.wgsl
index 47cc311..9aae4f3 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/91e3b4.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/91e3b4.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32sint, read_write>;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/91e3b4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/91e3b4.wgsl.expected.glsl
index 071973d..29ecd2d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/91e3b4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/91e3b4.wgsl.expected.glsl
@@ -1,83 +1,37 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage3D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec3 inner;
-  uint pad;
 } prevent_dce;
 
-void textureDimensions_91e3b4() {
+layout(binding = 0, rg32i) uniform highp writeonly iimage3D arg_0;
+uvec3 textureDimensions_91e3b4() {
   uvec3 res = uvec3(imageSize(arg_0));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureDimensions_91e3b4();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp writeonly iimage3D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
-void textureDimensions_91e3b4() {
-  uvec3 res = uvec3(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureDimensions_91e3b4();
+  prevent_dce.inner = textureDimensions_91e3b4();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage3D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec3 inner;
-  uint pad;
 } prevent_dce;
 
-void textureDimensions_91e3b4() {
+layout(binding = 0, rg32i) uniform highp writeonly iimage3D arg_0;
+uvec3 textureDimensions_91e3b4() {
   uvec3 res = uvec3(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureDimensions_91e3b4();
+  prevent_dce.inner = textureDimensions_91e3b4();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +39,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureDimensions/9573f3.wgsl b/test/tint/builtins/gen/literal/textureDimensions/9573f3.wgsl
index 806df68..9892b98 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9573f3.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9573f3.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32uint, write>;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9573f3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/9573f3.wgsl.expected.glsl
index 21fdf97..64163cf 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9573f3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9573f3.wgsl.expected.glsl
@@ -1,80 +1,37 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_9573f3() {
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2D arg_0;
+uvec2 textureDimensions_9573f3() {
   uvec2 res = uvec2(imageSize(arg_0));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureDimensions_9573f3();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp writeonly uimage2D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
-void textureDimensions_9573f3() {
-  uvec2 res = uvec2(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureDimensions_9573f3();
+  prevent_dce.inner = textureDimensions_9573f3();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_9573f3() {
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2D arg_0;
+uvec2 textureDimensions_9573f3() {
   uvec2 res = uvec2(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureDimensions_9573f3();
+  prevent_dce.inner = textureDimensions_9573f3();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +39,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureDimensions/9573f3.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureDimensions/9573f3.wgsl.expected.ir.glsl
index fbd651e..e4ee6f5 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9573f3.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9573f3.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2D arg_0;
+uvec2 textureDimensions_9573f3() {
+  uvec2 res = uvec2(imageSize(arg_0));
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_9573f3();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2D arg_0;
+uvec2 textureDimensions_9573f3() {
+  uvec2 res = uvec2(imageSize(arg_0));
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureDimensions_9573f3();
+}
diff --git a/test/tint/builtins/gen/literal/textureDimensions/98b2d3.wgsl b/test/tint/builtins/gen/literal/textureDimensions/98b2d3.wgsl
index 5e2ff2c..525cc86 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/98b2d3.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/98b2d3.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
 
 @group(1) @binding(0) var arg_0: texture_cube_array<i32>;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/98b2d3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/98b2d3.wgsl.expected.glsl
index 3701429..03f7c84 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/98b2d3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/98b2d3.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-uniform highp isamplerCubeArray arg_0_1;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_98b2d3() {
-  uvec2 res = uvec2(textureSize(arg_0_1, 0).xy);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureDimensions_98b2d3();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'isamplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
 uniform highp isamplerCubeArray arg_0_1;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
-void textureDimensions_98b2d3() {
+uvec2 textureDimensions_98b2d3() {
   uvec2 res = uvec2(textureSize(arg_0_1, 0).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
 void fragment_main() {
-  textureDimensions_98b2d3();
+  prevent_dce.inner = textureDimensions_98b2d3();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'isamplerCubeArray' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-uniform highp isamplerCubeArray arg_0_1;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_98b2d3() {
+uniform highp isamplerCubeArray arg_0_1;
+uvec2 textureDimensions_98b2d3() {
   uvec2 res = uvec2(textureSize(arg_0_1, 0).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
 void compute_main() {
-  textureDimensions_98b2d3();
+  prevent_dce.inner = textureDimensions_98b2d3();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'isamplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
+layout(location = 0) flat out uvec2 prevent_dce_1;
+uniform highp isamplerCubeArray arg_0_1;
+uvec2 textureDimensions_98b2d3() {
+  uvec2 res = uvec2(textureSize(arg_0_1, 0).xy);
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), uvec2(0u, 0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_98b2d3();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureDimensions/98b2d3.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureDimensions/98b2d3.wgsl.expected.ir.glsl
index fbd651e..daee8d7 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/98b2d3.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/98b2d3.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+uniform highp isamplerCubeArray arg_0;
+uvec2 textureDimensions_98b2d3() {
+  uvec2 res = uvec2(textureSize(arg_0, 0).xy);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_98b2d3();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+uniform highp isamplerCubeArray arg_0;
+uvec2 textureDimensions_98b2d3() {
+  uvec2 res = uvec2(textureSize(arg_0, 0).xy);
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureDimensions_98b2d3();
+}
+#version 460
+
+
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
+uniform highp isamplerCubeArray arg_0;
+layout(location = 0) flat out uvec2 vertex_main_loc0_Output;
+uvec2 textureDimensions_98b2d3() {
+  uvec2 res = uvec2(textureSize(arg_0, 0).xy);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), uvec2(0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_98b2d3();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9cd8ad.wgsl b/test/tint/builtins/gen/literal/textureDimensions/9cd8ad.wgsl
index 3efbe5e..409b6c0 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9cd8ad.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9cd8ad.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32float, write>;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9cd8ad.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/9cd8ad.wgsl.expected.glsl
index d2c96d0..6de2615 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9cd8ad.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9cd8ad.wgsl.expected.glsl
@@ -1,83 +1,37 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image3D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec3 inner;
-  uint pad;
 } prevent_dce;
 
-void textureDimensions_9cd8ad() {
+layout(binding = 0, rg32f) uniform highp writeonly image3D arg_0;
+uvec3 textureDimensions_9cd8ad() {
   uvec3 res = uvec3(imageSize(arg_0));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureDimensions_9cd8ad();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp writeonly image3D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
-void textureDimensions_9cd8ad() {
-  uvec3 res = uvec3(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureDimensions_9cd8ad();
+  prevent_dce.inner = textureDimensions_9cd8ad();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image3D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec3 inner;
-  uint pad;
 } prevent_dce;
 
-void textureDimensions_9cd8ad() {
+layout(binding = 0, rg32f) uniform highp writeonly image3D arg_0;
+uvec3 textureDimensions_9cd8ad() {
   uvec3 res = uvec3(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureDimensions_9cd8ad();
+  prevent_dce.inner = textureDimensions_9cd8ad();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +39,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureDimensions/9cd8ad.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureDimensions/9cd8ad.wgsl.expected.ir.glsl
index fbd651e..6b48a7b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9cd8ad.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9cd8ad.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec3 tint_symbol;
+} v;
+layout(binding = 0, rg32f) uniform highp writeonly image3D arg_0;
+uvec3 textureDimensions_9cd8ad() {
+  uvec3 res = uvec3(imageSize(arg_0));
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_9cd8ad();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec3 tint_symbol;
+} v;
+layout(binding = 0, rg32f) uniform highp writeonly image3D arg_0;
+uvec3 textureDimensions_9cd8ad() {
+  uvec3 res = uvec3(imageSize(arg_0));
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureDimensions_9cd8ad();
+}
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9dc27a.wgsl b/test/tint/builtins/gen/literal/textureDimensions/9dc27a.wgsl
index b834457..5ba4661 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9dc27a.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9dc27a.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32float, read>;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9dc27a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/9dc27a.wgsl.expected.glsl
index aa32982..b1e73d9 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9dc27a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9dc27a.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp readonly image2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_9dc27a() {
+layout(binding = 0, rg32f) uniform highp readonly image2DArray arg_0;
+uvec2 textureDimensions_9dc27a() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureDimensions_9dc27a();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp readonly image2DArray arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
-void textureDimensions_9dc27a() {
-  uvec2 res = uvec2(imageSize(arg_0).xy);
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
 
 void fragment_main() {
-  textureDimensions_9dc27a();
+  prevent_dce.inner = textureDimensions_9dc27a();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp readonly image2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_9dc27a() {
+layout(binding = 0, rg32f) uniform highp readonly image2DArray arg_0;
+uvec2 textureDimensions_9dc27a() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
 void compute_main() {
-  textureDimensions_9dc27a();
+  prevent_dce.inner = textureDimensions_9dc27a();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out uvec2 prevent_dce_1;
+layout(binding = 0, rg32f) uniform highp readonly image2DArray arg_0;
+uvec2 textureDimensions_9dc27a() {
+  uvec2 res = uvec2(imageSize(arg_0).xy);
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), uvec2(0u, 0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_9dc27a();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9dc27a.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureDimensions/9dc27a.wgsl.expected.ir.glsl
index fbd651e..435c762 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9dc27a.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9dc27a.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+layout(binding = 0, rg32f) uniform highp readonly image2DArray arg_0;
+uvec2 textureDimensions_9dc27a() {
+  uvec2 res = uvec2(imageSize(arg_0).xy);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_9dc27a();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+layout(binding = 0, rg32f) uniform highp readonly image2DArray arg_0;
+uvec2 textureDimensions_9dc27a() {
+  uvec2 res = uvec2(imageSize(arg_0).xy);
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureDimensions_9dc27a();
+}
+#version 460
+
+
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
+layout(binding = 0, rg32f) uniform highp readonly image2DArray arg_0;
+layout(location = 0) flat out uvec2 vertex_main_loc0_Output;
+uvec2 textureDimensions_9dc27a() {
+  uvec2 res = uvec2(imageSize(arg_0).xy);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), uvec2(0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_9dc27a();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9fcc3b.wgsl b/test/tint/builtins/gen/literal/textureDimensions/9fcc3b.wgsl
index 80ef7ed..611282d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9fcc3b.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9fcc3b.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
 
 @group(1) @binding(0) var arg_0: texture_depth_cube_array;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9fcc3b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/9fcc3b.wgsl.expected.glsl
index 7b65160..86a5546 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9fcc3b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9fcc3b.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-uniform highp samplerCubeArray arg_0_1;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_9fcc3b() {
-  uvec2 res = uvec2(textureSize(arg_0_1, 0).xy);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureDimensions_9fcc3b();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
 uniform highp samplerCubeArray arg_0_1;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
-void textureDimensions_9fcc3b() {
+uvec2 textureDimensions_9fcc3b() {
   uvec2 res = uvec2(textureSize(arg_0_1, 0).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
 void fragment_main() {
-  textureDimensions_9fcc3b();
+  prevent_dce.inner = textureDimensions_9fcc3b();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-uniform highp samplerCubeArray arg_0_1;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_9fcc3b() {
+uniform highp samplerCubeArray arg_0_1;
+uvec2 textureDimensions_9fcc3b() {
   uvec2 res = uvec2(textureSize(arg_0_1, 0).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
 void compute_main() {
-  textureDimensions_9fcc3b();
+  prevent_dce.inner = textureDimensions_9fcc3b();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
+layout(location = 0) flat out uvec2 prevent_dce_1;
+uniform highp samplerCubeArray arg_0_1;
+uvec2 textureDimensions_9fcc3b() {
+  uvec2 res = uvec2(textureSize(arg_0_1, 0).xy);
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), uvec2(0u, 0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_9fcc3b();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9fcc3b.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureDimensions/9fcc3b.wgsl.expected.ir.glsl
index fbd651e..9c87f72 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9fcc3b.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9fcc3b.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+uniform highp samplerCubeArrayShadow arg_0;
+uvec2 textureDimensions_9fcc3b() {
+  uvec2 res = uvec2(textureSize(arg_0, 0).xy);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_9fcc3b();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+uniform highp samplerCubeArrayShadow arg_0;
+uvec2 textureDimensions_9fcc3b() {
+  uvec2 res = uvec2(textureSize(arg_0, 0).xy);
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureDimensions_9fcc3b();
+}
+#version 460
+
+
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
+uniform highp samplerCubeArrayShadow arg_0;
+layout(location = 0) flat out uvec2 vertex_main_loc0_Output;
+uvec2 textureDimensions_9fcc3b() {
+  uvec2 res = uvec2(textureSize(arg_0, 0).xy);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), uvec2(0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_9fcc3b();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a1598a.wgsl b/test/tint/builtins/gen/literal/textureDimensions/a1598a.wgsl
index 2285a61..18256e4 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a1598a.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a1598a.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
 
 @group(1) @binding(0) var arg_0: texture_cube_array<u32>;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a1598a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/a1598a.wgsl.expected.glsl
index f572dc0..e306113 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a1598a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a1598a.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-uniform highp usamplerCubeArray arg_0_1;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_a1598a() {
-  uvec2 res = uvec2(textureSize(arg_0_1, 0).xy);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureDimensions_a1598a();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'usamplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
 uniform highp usamplerCubeArray arg_0_1;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
-void textureDimensions_a1598a() {
+uvec2 textureDimensions_a1598a() {
   uvec2 res = uvec2(textureSize(arg_0_1, 0).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
 void fragment_main() {
-  textureDimensions_a1598a();
+  prevent_dce.inner = textureDimensions_a1598a();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'usamplerCubeArray' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-uniform highp usamplerCubeArray arg_0_1;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_a1598a() {
+uniform highp usamplerCubeArray arg_0_1;
+uvec2 textureDimensions_a1598a() {
   uvec2 res = uvec2(textureSize(arg_0_1, 0).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
 void compute_main() {
-  textureDimensions_a1598a();
+  prevent_dce.inner = textureDimensions_a1598a();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'usamplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
+layout(location = 0) flat out uvec2 prevent_dce_1;
+uniform highp usamplerCubeArray arg_0_1;
+uvec2 textureDimensions_a1598a() {
+  uvec2 res = uvec2(textureSize(arg_0_1, 0).xy);
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), uvec2(0u, 0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_a1598a();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a1598a.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureDimensions/a1598a.wgsl.expected.ir.glsl
index fbd651e..160b643 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a1598a.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a1598a.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+uniform highp usamplerCubeArray arg_0;
+uvec2 textureDimensions_a1598a() {
+  uvec2 res = uvec2(textureSize(arg_0, 0).xy);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_a1598a();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+uniform highp usamplerCubeArray arg_0;
+uvec2 textureDimensions_a1598a() {
+  uvec2 res = uvec2(textureSize(arg_0, 0).xy);
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureDimensions_a1598a();
+}
+#version 460
+
+
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
+uniform highp usamplerCubeArray arg_0;
+layout(location = 0) flat out uvec2 vertex_main_loc0_Output;
+uvec2 textureDimensions_a1598a() {
+  uvec2 res = uvec2(textureSize(arg_0, 0).xy);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), uvec2(0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_a1598a();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a20ba2.wgsl b/test/tint/builtins/gen/literal/textureDimensions/a20ba2.wgsl
index e0e9681..eeb8c28 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a20ba2.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a20ba2.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a20ba2.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/a20ba2.wgsl.expected.glsl
index 414da05..738297d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a20ba2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a20ba2.wgsl.expected.glsl
@@ -1,83 +1,37 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp writeonly image3D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec3 inner;
-  uint pad;
 } prevent_dce;
 
-void textureDimensions_a20ba2() {
+layout(binding = 0, r8) uniform highp writeonly image3D arg_0;
+uvec3 textureDimensions_a20ba2() {
   uvec3 res = uvec3(imageSize(arg_0));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureDimensions_a20ba2();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp writeonly image3D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
-void textureDimensions_a20ba2() {
-  uvec3 res = uvec3(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureDimensions_a20ba2();
+  prevent_dce.inner = textureDimensions_a20ba2();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp writeonly image3D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec3 inner;
-  uint pad;
 } prevent_dce;
 
-void textureDimensions_a20ba2() {
+layout(binding = 0, r8) uniform highp writeonly image3D arg_0;
+uvec3 textureDimensions_a20ba2() {
   uvec3 res = uvec3(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureDimensions_a20ba2();
+  prevent_dce.inner = textureDimensions_a20ba2();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +39,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureDimensions/a20ba2.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureDimensions/a20ba2.wgsl.expected.ir.glsl
index fbd651e..95e8d14 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a20ba2.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a20ba2.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec3 tint_symbol;
+} v;
+layout(binding = 0, r8) uniform highp writeonly image3D arg_0;
+uvec3 textureDimensions_a20ba2() {
+  uvec3 res = uvec3(imageSize(arg_0));
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_a20ba2();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec3 tint_symbol;
+} v;
+layout(binding = 0, r8) uniform highp writeonly image3D arg_0;
+uvec3 textureDimensions_a20ba2() {
+  uvec3 res = uvec3(imageSize(arg_0));
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureDimensions_a20ba2();
+}
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ae4595.wgsl b/test/tint/builtins/gen/literal/textureDimensions/ae4595.wgsl
index fe08dfd..961d1b2 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ae4595.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/ae4595.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32float, read_write>;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ae4595.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/ae4595.wgsl.expected.glsl
index 4a9b48a..62cdc74 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ae4595.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/ae4595.wgsl.expected.glsl
@@ -1,83 +1,37 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image3D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec3 inner;
-  uint pad;
 } prevent_dce;
 
-void textureDimensions_ae4595() {
+layout(binding = 0, rg32f) uniform highp writeonly image3D arg_0;
+uvec3 textureDimensions_ae4595() {
   uvec3 res = uvec3(imageSize(arg_0));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureDimensions_ae4595();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp writeonly image3D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
-void textureDimensions_ae4595() {
-  uvec3 res = uvec3(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureDimensions_ae4595();
+  prevent_dce.inner = textureDimensions_ae4595();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image3D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec3 inner;
-  uint pad;
 } prevent_dce;
 
-void textureDimensions_ae4595() {
+layout(binding = 0, rg32f) uniform highp writeonly image3D arg_0;
+uvec3 textureDimensions_ae4595() {
   uvec3 res = uvec3(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureDimensions_ae4595();
+  prevent_dce.inner = textureDimensions_ae4595();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +39,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureDimensions/af46ab.wgsl b/test/tint/builtins/gen/literal/textureDimensions/af46ab.wgsl
index d13fcfa..6024308 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/af46ab.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/af46ab.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32sint, write>;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/af46ab.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/af46ab.wgsl.expected.glsl
index 65a6963..3fd9414 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/af46ab.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/af46ab.wgsl.expected.glsl
@@ -1,80 +1,37 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_af46ab() {
+layout(binding = 0, rg32i) uniform highp writeonly iimage2DArray arg_0;
+uvec2 textureDimensions_af46ab() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureDimensions_af46ab();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp writeonly iimage2DArray arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
-void textureDimensions_af46ab() {
-  uvec2 res = uvec2(imageSize(arg_0).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureDimensions_af46ab();
+  prevent_dce.inner = textureDimensions_af46ab();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_af46ab() {
+layout(binding = 0, rg32i) uniform highp writeonly iimage2DArray arg_0;
+uvec2 textureDimensions_af46ab() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureDimensions_af46ab();
+  prevent_dce.inner = textureDimensions_af46ab();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +39,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureDimensions/af46ab.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureDimensions/af46ab.wgsl.expected.ir.glsl
index fbd651e..a124789 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/af46ab.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/af46ab.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+layout(binding = 0, rg32i) uniform highp writeonly iimage2DArray arg_0;
+uvec2 textureDimensions_af46ab() {
+  uvec2 res = uvec2(imageSize(arg_0).xy);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_af46ab();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+layout(binding = 0, rg32i) uniform highp writeonly iimage2DArray arg_0;
+uvec2 textureDimensions_af46ab() {
+  uvec2 res = uvec2(imageSize(arg_0).xy);
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureDimensions_af46ab();
+}
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b3ab5e.wgsl b/test/tint/builtins/gen/literal/textureDimensions/b3ab5e.wgsl
index 45c8898..7977cc5 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b3ab5e.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b3ab5e.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
 
 @group(1) @binding(0) var arg_0: texture_cube_array<f32>;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b3ab5e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/b3ab5e.wgsl.expected.glsl
index 02fd61d..d46e42b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b3ab5e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b3ab5e.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-uniform highp samplerCubeArray arg_0_1;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_b3ab5e() {
-  uvec2 res = uvec2(textureSize(arg_0_1, 1).xy);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureDimensions_b3ab5e();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
 uniform highp samplerCubeArray arg_0_1;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
-void textureDimensions_b3ab5e() {
+uvec2 textureDimensions_b3ab5e() {
   uvec2 res = uvec2(textureSize(arg_0_1, 1).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
 void fragment_main() {
-  textureDimensions_b3ab5e();
+  prevent_dce.inner = textureDimensions_b3ab5e();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-uniform highp samplerCubeArray arg_0_1;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_b3ab5e() {
+uniform highp samplerCubeArray arg_0_1;
+uvec2 textureDimensions_b3ab5e() {
   uvec2 res = uvec2(textureSize(arg_0_1, 1).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
 void compute_main() {
-  textureDimensions_b3ab5e();
+  prevent_dce.inner = textureDimensions_b3ab5e();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
+layout(location = 0) flat out uvec2 prevent_dce_1;
+uniform highp samplerCubeArray arg_0_1;
+uvec2 textureDimensions_b3ab5e() {
+  uvec2 res = uvec2(textureSize(arg_0_1, 1).xy);
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), uvec2(0u, 0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_b3ab5e();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b3ab5e.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureDimensions/b3ab5e.wgsl.expected.ir.glsl
index fbd651e..b27ae71 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b3ab5e.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b3ab5e.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+uniform highp samplerCubeArray arg_0;
+uvec2 textureDimensions_b3ab5e() {
+  uvec2 res = uvec2(textureSize(arg_0, 1).xy);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_b3ab5e();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+uniform highp samplerCubeArray arg_0;
+uvec2 textureDimensions_b3ab5e() {
+  uvec2 res = uvec2(textureSize(arg_0, 1).xy);
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureDimensions_b3ab5e();
+}
+#version 460
+
+
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
+uniform highp samplerCubeArray arg_0;
+layout(location = 0) flat out uvec2 vertex_main_loc0_Output;
+uvec2 textureDimensions_b3ab5e() {
+  uvec2 res = uvec2(textureSize(arg_0, 1).xy);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), uvec2(0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_b3ab5e();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b51345.wgsl b/test/tint/builtins/gen/literal/textureDimensions/b51345.wgsl
index e0a9f0c..55a03dd 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b51345.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b51345.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
 
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32float, write>;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b51345.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/b51345.wgsl.expected.glsl
index 2d351f2..b63fb7e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b51345.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b51345.wgsl.expected.glsl
@@ -1,80 +1,37 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureDimensions_b51345() {
+layout(binding = 0, rg32f) uniform highp writeonly image2D arg_0;
+uint textureDimensions_b51345() {
   uint res = uvec2(imageSize(arg_0)).x;
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureDimensions_b51345();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp writeonly image2D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
-void textureDimensions_b51345() {
-  uint res = uvec2(imageSize(arg_0)).x;
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureDimensions_b51345();
+  prevent_dce.inner = textureDimensions_b51345();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureDimensions_b51345() {
+layout(binding = 0, rg32f) uniform highp writeonly image2D arg_0;
+uint textureDimensions_b51345() {
   uint res = uvec2(imageSize(arg_0)).x;
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureDimensions_b51345();
+  prevent_dce.inner = textureDimensions_b51345();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +39,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureDimensions/b51345.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureDimensions/b51345.wgsl.expected.ir.glsl
index fbd651e..57d0907 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b51345.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b51345.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, rg32f) uniform highp writeonly image1D arg_0;
+uint textureDimensions_b51345() {
+  uint res = uint(imageSize(arg_0));
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_b51345();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, rg32f) uniform highp writeonly image1D arg_0;
+uint textureDimensions_b51345() {
+  uint res = uint(imageSize(arg_0));
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureDimensions_b51345();
+}
diff --git a/test/tint/builtins/gen/literal/textureDimensions/bd94c8.wgsl b/test/tint/builtins/gen/literal/textureDimensions/bd94c8.wgsl
index dba7fc9..3715087 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/bd94c8.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/bd94c8.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
 
 @group(1) @binding(0) var arg_0: texture_depth_cube_array;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/bd94c8.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/bd94c8.wgsl.expected.glsl
index 9c25506..1478ae4 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/bd94c8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/bd94c8.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-uniform highp samplerCubeArray arg_0_1;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_bd94c8() {
-  uvec2 res = uvec2(textureSize(arg_0_1, int(1u)).xy);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureDimensions_bd94c8();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
 uniform highp samplerCubeArray arg_0_1;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
-void textureDimensions_bd94c8() {
+uvec2 textureDimensions_bd94c8() {
   uvec2 res = uvec2(textureSize(arg_0_1, int(1u)).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
 void fragment_main() {
-  textureDimensions_bd94c8();
+  prevent_dce.inner = textureDimensions_bd94c8();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-uniform highp samplerCubeArray arg_0_1;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_bd94c8() {
+uniform highp samplerCubeArray arg_0_1;
+uvec2 textureDimensions_bd94c8() {
   uvec2 res = uvec2(textureSize(arg_0_1, int(1u)).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
 void compute_main() {
-  textureDimensions_bd94c8();
+  prevent_dce.inner = textureDimensions_bd94c8();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
+layout(location = 0) flat out uvec2 prevent_dce_1;
+uniform highp samplerCubeArray arg_0_1;
+uvec2 textureDimensions_bd94c8() {
+  uvec2 res = uvec2(textureSize(arg_0_1, int(1u)).xy);
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), uvec2(0u, 0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_bd94c8();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c6b985.wgsl b/test/tint/builtins/gen/literal/textureDimensions/c6b985.wgsl
index 736bc22..2e53f9e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c6b985.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c6b985.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 
 @group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c6b985.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/c6b985.wgsl.expected.glsl
index 8c574c9..fe85124 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c6b985.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c6b985.wgsl.expected.glsl
@@ -1,80 +1,37 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp writeonly image2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureDimensions_c6b985() {
+layout(binding = 0, r8) uniform highp writeonly image2D arg_0;
+uint textureDimensions_c6b985() {
   uint res = uvec2(imageSize(arg_0)).x;
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureDimensions_c6b985();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp writeonly image2D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
-void textureDimensions_c6b985() {
-  uint res = uvec2(imageSize(arg_0)).x;
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureDimensions_c6b985();
+  prevent_dce.inner = textureDimensions_c6b985();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp writeonly image2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureDimensions_c6b985() {
+layout(binding = 0, r8) uniform highp writeonly image2D arg_0;
+uint textureDimensions_c6b985() {
   uint res = uvec2(imageSize(arg_0)).x;
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureDimensions_c6b985();
+  prevent_dce.inner = textureDimensions_c6b985();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +39,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureDimensions/c7ea63.wgsl b/test/tint/builtins/gen/literal/textureDimensions/c7ea63.wgsl
index 20b8d28..bdf133f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c7ea63.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c7ea63.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
 
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32float, read_write>;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c7ea63.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/c7ea63.wgsl.expected.glsl
index a0e13a8..48eefeb 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c7ea63.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c7ea63.wgsl.expected.glsl
@@ -1,80 +1,37 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureDimensions_c7ea63() {
+layout(binding = 0, rg32f) uniform highp writeonly image2D arg_0;
+uint textureDimensions_c7ea63() {
   uint res = uvec2(imageSize(arg_0)).x;
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureDimensions_c7ea63();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp writeonly image2D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
-void textureDimensions_c7ea63() {
-  uint res = uvec2(imageSize(arg_0)).x;
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureDimensions_c7ea63();
+  prevent_dce.inner = textureDimensions_c7ea63();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureDimensions_c7ea63() {
+layout(binding = 0, rg32f) uniform highp writeonly image2D arg_0;
+uint textureDimensions_c7ea63() {
   uint res = uvec2(imageSize(arg_0)).x;
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureDimensions_c7ea63();
+  prevent_dce.inner = textureDimensions_c7ea63();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +39,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureDimensions/c82420.wgsl b/test/tint/builtins/gen/literal/textureDimensions/c82420.wgsl
index 8274347..8483c1e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c82420.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c82420.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32uint, read_write>;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c82420.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/c82420.wgsl.expected.glsl
index 7330a10..31b62cc 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c82420.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c82420.wgsl.expected.glsl
@@ -1,80 +1,37 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_c82420() {
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2D arg_0;
+uvec2 textureDimensions_c82420() {
   uvec2 res = uvec2(imageSize(arg_0));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureDimensions_c82420();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp writeonly uimage2D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
-void textureDimensions_c82420() {
-  uvec2 res = uvec2(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureDimensions_c82420();
+  prevent_dce.inner = textureDimensions_c82420();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_c82420() {
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2D arg_0;
+uvec2 textureDimensions_c82420() {
   uvec2 res = uvec2(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureDimensions_c82420();
+  prevent_dce.inner = textureDimensions_c82420();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +39,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureDimensions/cd3033.wgsl b/test/tint/builtins/gen/literal/textureDimensions/cd3033.wgsl
index 30060eb..7cc6f16 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/cd3033.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/cd3033.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32sint, read>;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/cd3033.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/cd3033.wgsl.expected.glsl
index d80d06f..341b98e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/cd3033.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/cd3033.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp readonly iimage2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_cd3033() {
+layout(binding = 0, rg32i) uniform highp readonly iimage2DArray arg_0;
+uvec2 textureDimensions_cd3033() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureDimensions_cd3033();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp readonly iimage2DArray arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
-void textureDimensions_cd3033() {
-  uvec2 res = uvec2(imageSize(arg_0).xy);
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
 
 void fragment_main() {
-  textureDimensions_cd3033();
+  prevent_dce.inner = textureDimensions_cd3033();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp readonly iimage2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_cd3033() {
+layout(binding = 0, rg32i) uniform highp readonly iimage2DArray arg_0;
+uvec2 textureDimensions_cd3033() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
 void compute_main() {
-  textureDimensions_cd3033();
+  prevent_dce.inner = textureDimensions_cd3033();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out uvec2 prevent_dce_1;
+layout(binding = 0, rg32i) uniform highp readonly iimage2DArray arg_0;
+uvec2 textureDimensions_cd3033() {
+  uvec2 res = uvec2(imageSize(arg_0).xy);
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), uvec2(0u, 0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_cd3033();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureDimensions/cd3033.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureDimensions/cd3033.wgsl.expected.ir.glsl
index fbd651e..bbc1642 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/cd3033.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/cd3033.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+layout(binding = 0, rg32i) uniform highp readonly iimage2DArray arg_0;
+uvec2 textureDimensions_cd3033() {
+  uvec2 res = uvec2(imageSize(arg_0).xy);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_cd3033();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+layout(binding = 0, rg32i) uniform highp readonly iimage2DArray arg_0;
+uvec2 textureDimensions_cd3033() {
+  uvec2 res = uvec2(imageSize(arg_0).xy);
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureDimensions_cd3033();
+}
+#version 460
+
+
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
+layout(binding = 0, rg32i) uniform highp readonly iimage2DArray arg_0;
+layout(location = 0) flat out uvec2 vertex_main_loc0_Output;
+uvec2 textureDimensions_cd3033() {
+  uvec2 res = uvec2(imageSize(arg_0).xy);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), uvec2(0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_cd3033();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/literal/textureDimensions/cedabd.wgsl b/test/tint/builtins/gen/literal/textureDimensions/cedabd.wgsl
index 16165ef..34f8167 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/cedabd.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/cedabd.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
 
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32sint, read>;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/cedabd.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/cedabd.wgsl.expected.glsl
index 660ac58..4ff4ab1 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/cedabd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/cedabd.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp readonly iimage2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureDimensions_cedabd() {
+layout(binding = 0, rg32i) uniform highp readonly iimage2D arg_0;
+uint textureDimensions_cedabd() {
   uint res = uvec2(imageSize(arg_0)).x;
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureDimensions_cedabd();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp readonly iimage2D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
-void textureDimensions_cedabd() {
-  uint res = uvec2(imageSize(arg_0)).x;
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
 
 void fragment_main() {
-  textureDimensions_cedabd();
+  prevent_dce.inner = textureDimensions_cedabd();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp readonly iimage2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureDimensions_cedabd() {
+layout(binding = 0, rg32i) uniform highp readonly iimage2D arg_0;
+uint textureDimensions_cedabd() {
   uint res = uvec2(imageSize(arg_0)).x;
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
 void compute_main() {
-  textureDimensions_cedabd();
+  prevent_dce.inner = textureDimensions_cedabd();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out uint prevent_dce_1;
+layout(binding = 0, rg32i) uniform highp readonly iimage2D arg_0;
+uint textureDimensions_cedabd() {
+  uint res = uvec2(imageSize(arg_0)).x;
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), 0u);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_cedabd();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureDimensions/cedabd.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureDimensions/cedabd.wgsl.expected.ir.glsl
index fbd651e..3859f2b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/cedabd.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/cedabd.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, rg32i) uniform highp readonly iimage1D arg_0;
+uint textureDimensions_cedabd() {
+  uint res = uint(imageSize(arg_0));
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_cedabd();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, rg32i) uniform highp readonly iimage1D arg_0;
+uint textureDimensions_cedabd() {
+  uint res = uint(imageSize(arg_0));
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureDimensions_cedabd();
+}
+#version 460
+
+
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
+layout(binding = 0, rg32i) uniform highp readonly iimage1D arg_0;
+layout(location = 0) flat out uint vertex_main_loc0_Output;
+uint textureDimensions_cedabd() {
+  uint res = uint(imageSize(arg_0));
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), 0u);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_cedabd();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/literal/textureDimensions/cf2b50.wgsl b/test/tint/builtins/gen/literal/textureDimensions/cf2b50.wgsl
index 8cafc08..d0ea294 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/cf2b50.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/cf2b50.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
 
 @group(1) @binding(0) var arg_0: texture_cube_array<f32>;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/cf2b50.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/cf2b50.wgsl.expected.glsl
index ea96983..7138e4d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/cf2b50.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/cf2b50.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-uniform highp samplerCubeArray arg_0_1;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_cf2b50() {
-  uvec2 res = uvec2(textureSize(arg_0_1, int(1u)).xy);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureDimensions_cf2b50();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
 uniform highp samplerCubeArray arg_0_1;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
-void textureDimensions_cf2b50() {
+uvec2 textureDimensions_cf2b50() {
   uvec2 res = uvec2(textureSize(arg_0_1, int(1u)).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
 void fragment_main() {
-  textureDimensions_cf2b50();
+  prevent_dce.inner = textureDimensions_cf2b50();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-uniform highp samplerCubeArray arg_0_1;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_cf2b50() {
+uniform highp samplerCubeArray arg_0_1;
+uvec2 textureDimensions_cf2b50() {
   uvec2 res = uvec2(textureSize(arg_0_1, int(1u)).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
 void compute_main() {
-  textureDimensions_cf2b50();
+  prevent_dce.inner = textureDimensions_cf2b50();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
+layout(location = 0) flat out uvec2 prevent_dce_1;
+uniform highp samplerCubeArray arg_0_1;
+uvec2 textureDimensions_cf2b50() {
+  uvec2 res = uvec2(textureSize(arg_0_1, int(1u)).xy);
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), uvec2(0u, 0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_cf2b50();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d0778e.wgsl b/test/tint/builtins/gen/literal/textureDimensions/d0778e.wgsl
index c8395d1..1ec6fec 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d0778e.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d0778e.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32uint, read>;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d0778e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/d0778e.wgsl.expected.glsl
index 231c1ff..3df4e37 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d0778e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d0778e.wgsl.expected.glsl
@@ -1,83 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp readonly uimage3D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec3 inner;
-  uint pad;
 } prevent_dce;
 
-void textureDimensions_d0778e() {
+layout(binding = 0, rg32ui) uniform highp readonly uimage3D arg_0;
+uvec3 textureDimensions_d0778e() {
   uvec3 res = uvec3(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureDimensions_d0778e();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp readonly uimage3D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
-void textureDimensions_d0778e() {
-  uvec3 res = uvec3(imageSize(arg_0));
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  uvec3 prevent_dce;
+};
 
 void fragment_main() {
-  textureDimensions_d0778e();
+  prevent_dce.inner = textureDimensions_d0778e();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp readonly uimage3D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec3 inner;
-  uint pad;
 } prevent_dce;
 
-void textureDimensions_d0778e() {
+layout(binding = 0, rg32ui) uniform highp readonly uimage3D arg_0;
+uvec3 textureDimensions_d0778e() {
   uvec3 res = uvec3(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec3 prevent_dce;
+};
+
 void compute_main() {
-  textureDimensions_d0778e();
+  prevent_dce.inner = textureDimensions_d0778e();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out uvec3 prevent_dce_1;
+layout(binding = 0, rg32ui) uniform highp readonly uimage3D arg_0;
+uvec3 textureDimensions_d0778e() {
+  uvec3 res = uvec3(imageSize(arg_0));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uvec3 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), uvec3(0u, 0u, 0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_d0778e();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d0778e.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureDimensions/d0778e.wgsl.expected.ir.glsl
index fbd651e..e49cc13 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d0778e.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d0778e.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec3 tint_symbol;
+} v;
+layout(binding = 0, rg32ui) uniform highp readonly uimage3D arg_0;
+uvec3 textureDimensions_d0778e() {
+  uvec3 res = uvec3(imageSize(arg_0));
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_d0778e();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec3 tint_symbol;
+} v;
+layout(binding = 0, rg32ui) uniform highp readonly uimage3D arg_0;
+uvec3 textureDimensions_d0778e() {
+  uvec3 res = uvec3(imageSize(arg_0));
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureDimensions_d0778e();
+}
+#version 460
+
+
+struct VertexOutput {
+  vec4 pos;
+  uvec3 prevent_dce;
+};
+
+layout(binding = 0, rg32ui) uniform highp readonly uimage3D arg_0;
+layout(location = 0) flat out uvec3 vertex_main_loc0_Output;
+uvec3 textureDimensions_d0778e() {
+  uvec3 res = uvec3(imageSize(arg_0));
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), uvec3(0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_d0778e();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e738f4.wgsl b/test/tint/builtins/gen/literal/textureDimensions/e738f4.wgsl
index 31c7532..70b1a64 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e738f4.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e738f4.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32sint, write>;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e738f4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/e738f4.wgsl.expected.glsl
index 4af55e0..65d6c92 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e738f4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e738f4.wgsl.expected.glsl
@@ -1,83 +1,37 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage3D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec3 inner;
-  uint pad;
 } prevent_dce;
 
-void textureDimensions_e738f4() {
+layout(binding = 0, rg32i) uniform highp writeonly iimage3D arg_0;
+uvec3 textureDimensions_e738f4() {
   uvec3 res = uvec3(imageSize(arg_0));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureDimensions_e738f4();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp writeonly iimage3D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
-void textureDimensions_e738f4() {
-  uvec3 res = uvec3(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureDimensions_e738f4();
+  prevent_dce.inner = textureDimensions_e738f4();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage3D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec3 inner;
-  uint pad;
 } prevent_dce;
 
-void textureDimensions_e738f4() {
+layout(binding = 0, rg32i) uniform highp writeonly iimage3D arg_0;
+uvec3 textureDimensions_e738f4() {
   uvec3 res = uvec3(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureDimensions_e738f4();
+  prevent_dce.inner = textureDimensions_e738f4();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +39,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureDimensions/e738f4.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureDimensions/e738f4.wgsl.expected.ir.glsl
index fbd651e..fc1cf5e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e738f4.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e738f4.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec3 tint_symbol;
+} v;
+layout(binding = 0, rg32i) uniform highp writeonly iimage3D arg_0;
+uvec3 textureDimensions_e738f4() {
+  uvec3 res = uvec3(imageSize(arg_0));
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_e738f4();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec3 tint_symbol;
+} v;
+layout(binding = 0, rg32i) uniform highp writeonly iimage3D arg_0;
+uvec3 textureDimensions_e738f4() {
+  uvec3 res = uvec3(imageSize(arg_0));
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureDimensions_e738f4();
+}
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e824b6.wgsl b/test/tint/builtins/gen/literal/textureDimensions/e824b6.wgsl
index 37266e7..db180ea 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e824b6.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e824b6.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32uint, read_write>;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e824b6.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/e824b6.wgsl.expected.glsl
index cf97acc..683b868 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e824b6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e824b6.wgsl.expected.glsl
@@ -1,80 +1,37 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_e824b6() {
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2DArray arg_0;
+uvec2 textureDimensions_e824b6() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureDimensions_e824b6();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp writeonly uimage2DArray arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
-void textureDimensions_e824b6() {
-  uvec2 res = uvec2(imageSize(arg_0).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureDimensions_e824b6();
+  prevent_dce.inner = textureDimensions_e824b6();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_e824b6() {
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2DArray arg_0;
+uvec2 textureDimensions_e824b6() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureDimensions_e824b6();
+  prevent_dce.inner = textureDimensions_e824b6();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +39,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureDimensions/ea25bc.wgsl b/test/tint/builtins/gen/literal/textureDimensions/ea25bc.wgsl
index 850d2d9..a5c47df 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ea25bc.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/ea25bc.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
 
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32uint, write>;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ea25bc.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/ea25bc.wgsl.expected.glsl
index 51b9660..4a707fc 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ea25bc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/ea25bc.wgsl.expected.glsl
@@ -1,80 +1,37 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureDimensions_ea25bc() {
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2D arg_0;
+uint textureDimensions_ea25bc() {
   uint res = uvec2(imageSize(arg_0)).x;
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureDimensions_ea25bc();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp writeonly uimage2D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
-void textureDimensions_ea25bc() {
-  uint res = uvec2(imageSize(arg_0)).x;
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureDimensions_ea25bc();
+  prevent_dce.inner = textureDimensions_ea25bc();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureDimensions_ea25bc() {
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2D arg_0;
+uint textureDimensions_ea25bc() {
   uint res = uvec2(imageSize(arg_0)).x;
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureDimensions_ea25bc();
+  prevent_dce.inner = textureDimensions_ea25bc();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +39,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureDimensions/ea25bc.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureDimensions/ea25bc.wgsl.expected.ir.glsl
index fbd651e..71e39f9 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ea25bc.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/ea25bc.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage1D arg_0;
+uint textureDimensions_ea25bc() {
+  uint res = uint(imageSize(arg_0));
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_ea25bc();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage1D arg_0;
+uint textureDimensions_ea25bc() {
+  uint res = uint(imageSize(arg_0));
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureDimensions_ea25bc();
+}
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f264a3.wgsl b/test/tint/builtins/gen/literal/textureDimensions/f264a3.wgsl
index a95cec4..72ea6f5 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f264a3.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f264a3.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
 
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32sint, write>;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f264a3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/f264a3.wgsl.expected.glsl
index 309208d..02c584b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f264a3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f264a3.wgsl.expected.glsl
@@ -1,80 +1,37 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureDimensions_f264a3() {
+layout(binding = 0, rg32i) uniform highp writeonly iimage2D arg_0;
+uint textureDimensions_f264a3() {
   uint res = uvec2(imageSize(arg_0)).x;
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureDimensions_f264a3();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp writeonly iimage2D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
-void textureDimensions_f264a3() {
-  uint res = uvec2(imageSize(arg_0)).x;
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureDimensions_f264a3();
+  prevent_dce.inner = textureDimensions_f264a3();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureDimensions_f264a3() {
+layout(binding = 0, rg32i) uniform highp writeonly iimage2D arg_0;
+uint textureDimensions_f264a3() {
   uint res = uvec2(imageSize(arg_0)).x;
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureDimensions_f264a3();
+  prevent_dce.inner = textureDimensions_f264a3();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +39,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureDimensions/f264a3.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureDimensions/f264a3.wgsl.expected.ir.glsl
index fbd651e..a5fe970 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f264a3.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f264a3.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, rg32i) uniform highp writeonly iimage1D arg_0;
+uint textureDimensions_f264a3() {
+  uint res = uint(imageSize(arg_0));
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_f264a3();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, rg32i) uniform highp writeonly iimage1D arg_0;
+uint textureDimensions_f264a3() {
+  uint res = uint(imageSize(arg_0));
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureDimensions_f264a3();
+}
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f94e55.wgsl b/test/tint/builtins/gen/literal/textureDimensions/f94e55.wgsl
index 132261c..f747e58 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f94e55.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f94e55.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32float, read_write>;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f94e55.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/f94e55.wgsl.expected.glsl
index fc0773e..0b4df6b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f94e55.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f94e55.wgsl.expected.glsl
@@ -1,80 +1,37 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_f94e55() {
+layout(binding = 0, rg32f) uniform highp writeonly image2D arg_0;
+uvec2 textureDimensions_f94e55() {
   uvec2 res = uvec2(imageSize(arg_0));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureDimensions_f94e55();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp writeonly image2D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
-void textureDimensions_f94e55() {
-  uvec2 res = uvec2(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureDimensions_f94e55();
+  prevent_dce.inner = textureDimensions_f94e55();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_f94e55() {
+layout(binding = 0, rg32f) uniform highp writeonly image2D arg_0;
+uvec2 textureDimensions_f94e55() {
   uvec2 res = uvec2(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureDimensions_f94e55();
+  prevent_dce.inner = textureDimensions_f94e55();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +39,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureDimensions/fdbae8.wgsl b/test/tint/builtins/gen/literal/textureDimensions/fdbae8.wgsl
index 19e97e4..841e1ce 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/fdbae8.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/fdbae8.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 
 @group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/fdbae8.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/fdbae8.wgsl.expected.glsl
index 190fbcc..a57a377 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/fdbae8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/fdbae8.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp readonly image2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureDimensions_fdbae8() {
+layout(binding = 0, r8) uniform highp readonly image2D arg_0;
+uint textureDimensions_fdbae8() {
   uint res = uvec2(imageSize(arg_0)).x;
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureDimensions_fdbae8();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp readonly image2D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
-void textureDimensions_fdbae8() {
-  uint res = uvec2(imageSize(arg_0)).x;
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
 
 void fragment_main() {
-  textureDimensions_fdbae8();
+  prevent_dce.inner = textureDimensions_fdbae8();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp readonly image2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureDimensions_fdbae8() {
+layout(binding = 0, r8) uniform highp readonly image2D arg_0;
+uint textureDimensions_fdbae8() {
   uint res = uvec2(imageSize(arg_0)).x;
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
 void compute_main() {
-  textureDimensions_fdbae8();
+  prevent_dce.inner = textureDimensions_fdbae8();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out uint prevent_dce_1;
+layout(binding = 0, r8) uniform highp readonly image2D arg_0;
+uint textureDimensions_fdbae8() {
+  uint res = uvec2(imageSize(arg_0)).x;
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), 0u);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_fdbae8();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureDimensions/fdbae8.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureDimensions/fdbae8.wgsl.expected.ir.glsl
index fbd651e..e87a849 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/fdbae8.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/fdbae8.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, r8) uniform highp readonly image1D arg_0;
+uint textureDimensions_fdbae8() {
+  uint res = uint(imageSize(arg_0));
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_fdbae8();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, r8) uniform highp readonly image1D arg_0;
+uint textureDimensions_fdbae8() {
+  uint res = uint(imageSize(arg_0));
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureDimensions_fdbae8();
+}
+#version 460
+
+
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
+layout(binding = 0, r8) uniform highp readonly image1D arg_0;
+layout(location = 0) flat out uint vertex_main_loc0_Output;
+uint textureDimensions_fdbae8() {
+  uint res = uint(imageSize(arg_0));
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), 0u);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_fdbae8();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/literal/textureGather/04fa78.wgsl b/test/tint/builtins/gen/literal/textureGather/04fa78.wgsl
index 9b9fd7e..1c90228 100644
--- a/test/tint/builtins/gen/literal/textureGather/04fa78.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/04fa78.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
 
 @group(1) @binding(1) var arg_1: texture_cube_array<i32>;
diff --git a/test/tint/builtins/gen/literal/textureGather/04fa78.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/04fa78.wgsl.expected.glsl
index fc40721..1fa0de5 100644
--- a/test/tint/builtins/gen/literal/textureGather/04fa78.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/04fa78.wgsl.expected.glsl
@@ -1,83 +1,49 @@
-SKIP: FAILED
-
-#version 310 es
-
-uniform highp isamplerCubeArray arg_1_arg_2;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec4 inner;
 } prevent_dce;
 
-void textureGather_04fa78() {
-  ivec4 res = textureGather(arg_1_arg_2, vec4(vec3(1.0f), float(1u)), int(1u));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureGather_04fa78();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'isamplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
 uniform highp isamplerCubeArray arg_1_arg_2;
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
-void textureGather_04fa78() {
+ivec4 textureGather_04fa78() {
   ivec4 res = textureGather(arg_1_arg_2, vec4(vec3(1.0f), float(1u)), int(1u));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  ivec4 prevent_dce;
+};
+
 void fragment_main() {
-  textureGather_04fa78();
+  prevent_dce.inner = textureGather_04fa78();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'isamplerCubeArray' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-
-uniform highp isamplerCubeArray arg_1_arg_2;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec4 inner;
 } prevent_dce;
 
-void textureGather_04fa78() {
+uniform highp isamplerCubeArray arg_1_arg_2;
+
+ivec4 textureGather_04fa78() {
   ivec4 res = textureGather(arg_1_arg_2, vec4(vec3(1.0f), float(1u)), int(1u));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  ivec4 prevent_dce;
+};
+
 void compute_main() {
-  textureGather_04fa78();
+  prevent_dce.inner = textureGather_04fa78();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +51,34 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'isamplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
+layout(location = 0) flat out ivec4 prevent_dce_1;
+uniform highp isamplerCubeArray arg_1_arg_2;
 
+ivec4 textureGather_04fa78() {
+  ivec4 res = textureGather(arg_1_arg_2, vec4(vec3(1.0f), float(1u)), int(1u));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  ivec4 prevent_dce;
+};
+
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), ivec4(0, 0, 0, 0));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureGather_04fa78();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureGather/43025d.wgsl b/test/tint/builtins/gen/literal/textureGather/43025d.wgsl
index adb743e..dc2a081 100644
--- a/test/tint/builtins/gen/literal/textureGather/43025d.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/43025d.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
 
 @group(1) @binding(0) var arg_0: texture_depth_cube_array;
diff --git a/test/tint/builtins/gen/literal/textureGather/43025d.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/43025d.wgsl.expected.glsl
index c39c532..c1b3cc1 100644
--- a/test/tint/builtins/gen/literal/textureGather/43025d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/43025d.wgsl.expected.glsl
@@ -1,83 +1,49 @@
-SKIP: FAILED
-
-#version 310 es
-
-uniform highp samplerCubeArrayShadow arg_0_arg_1;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureGather_43025d() {
-  vec4 res = textureGather(arg_0_arg_1, vec4(vec3(1.0f), float(1)), 0.0);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureGather_43025d();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'samplerCubeArrayShadow' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
 uniform highp samplerCubeArrayShadow arg_0_arg_1;
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
-void textureGather_43025d() {
+vec4 textureGather_43025d() {
   vec4 res = textureGather(arg_0_arg_1, vec4(vec3(1.0f), float(1)), 0.0);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
 void fragment_main() {
-  textureGather_43025d();
+  prevent_dce.inner = textureGather_43025d();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'samplerCubeArrayShadow' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-
-uniform highp samplerCubeArrayShadow arg_0_arg_1;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureGather_43025d() {
+uniform highp samplerCubeArrayShadow arg_0_arg_1;
+
+vec4 textureGather_43025d() {
   vec4 res = textureGather(arg_0_arg_1, vec4(vec3(1.0f), float(1)), 0.0);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
 void compute_main() {
-  textureGather_43025d();
+  prevent_dce.inner = textureGather_43025d();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +51,34 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'samplerCubeArrayShadow' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
+layout(location = 0) flat out vec4 prevent_dce_1;
+uniform highp samplerCubeArrayShadow arg_0_arg_1;
 
+vec4 textureGather_43025d() {
+  vec4 res = textureGather(arg_0_arg_1, vec4(vec3(1.0f), float(1)), 0.0);
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureGather_43025d();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureGather/751f8a.wgsl b/test/tint/builtins/gen/literal/textureGather/751f8a.wgsl
index 6362961..0de8c15 100644
--- a/test/tint/builtins/gen/literal/textureGather/751f8a.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/751f8a.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
 
 @group(1) @binding(1) var arg_1: texture_cube_array<f32>;
diff --git a/test/tint/builtins/gen/literal/textureGather/751f8a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/751f8a.wgsl.expected.glsl
index c0f5629..02d8c12 100644
--- a/test/tint/builtins/gen/literal/textureGather/751f8a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/751f8a.wgsl.expected.glsl
@@ -1,83 +1,49 @@
-SKIP: FAILED
-
-#version 310 es
-
-uniform highp samplerCubeArray arg_1_arg_2;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureGather_751f8a() {
-  vec4 res = textureGather(arg_1_arg_2, vec4(vec3(1.0f), float(1)), 1);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureGather_751f8a();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
 uniform highp samplerCubeArray arg_1_arg_2;
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
-void textureGather_751f8a() {
+vec4 textureGather_751f8a() {
   vec4 res = textureGather(arg_1_arg_2, vec4(vec3(1.0f), float(1)), 1);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
 void fragment_main() {
-  textureGather_751f8a();
+  prevent_dce.inner = textureGather_751f8a();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-
-uniform highp samplerCubeArray arg_1_arg_2;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureGather_751f8a() {
+uniform highp samplerCubeArray arg_1_arg_2;
+
+vec4 textureGather_751f8a() {
   vec4 res = textureGather(arg_1_arg_2, vec4(vec3(1.0f), float(1)), 1);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
 void compute_main() {
-  textureGather_751f8a();
+  prevent_dce.inner = textureGather_751f8a();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +51,34 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
+layout(location = 0) flat out vec4 prevent_dce_1;
+uniform highp samplerCubeArray arg_1_arg_2;
 
+vec4 textureGather_751f8a() {
+  vec4 res = textureGather(arg_1_arg_2, vec4(vec3(1.0f), float(1)), 1);
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureGather_751f8a();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureGather/788010.wgsl b/test/tint/builtins/gen/literal/textureGather/788010.wgsl
index 249f26d..5e5222c 100644
--- a/test/tint/builtins/gen/literal/textureGather/788010.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/788010.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
 
 @group(1) @binding(1) var arg_1: texture_cube_array<i32>;
diff --git a/test/tint/builtins/gen/literal/textureGather/788010.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/788010.wgsl.expected.glsl
index f2fbbcd..9a7f586 100644
--- a/test/tint/builtins/gen/literal/textureGather/788010.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/788010.wgsl.expected.glsl
@@ -1,83 +1,49 @@
-SKIP: FAILED
-
-#version 310 es
-
-uniform highp isamplerCubeArray arg_1_arg_2;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec4 inner;
 } prevent_dce;
 
-void textureGather_788010() {
-  ivec4 res = textureGather(arg_1_arg_2, vec4(vec3(1.0f), float(1u)), 1);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureGather_788010();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'isamplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
 uniform highp isamplerCubeArray arg_1_arg_2;
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
-void textureGather_788010() {
+ivec4 textureGather_788010() {
   ivec4 res = textureGather(arg_1_arg_2, vec4(vec3(1.0f), float(1u)), 1);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  ivec4 prevent_dce;
+};
+
 void fragment_main() {
-  textureGather_788010();
+  prevent_dce.inner = textureGather_788010();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'isamplerCubeArray' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-
-uniform highp isamplerCubeArray arg_1_arg_2;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec4 inner;
 } prevent_dce;
 
-void textureGather_788010() {
+uniform highp isamplerCubeArray arg_1_arg_2;
+
+ivec4 textureGather_788010() {
   ivec4 res = textureGather(arg_1_arg_2, vec4(vec3(1.0f), float(1u)), 1);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  ivec4 prevent_dce;
+};
+
 void compute_main() {
-  textureGather_788010();
+  prevent_dce.inner = textureGather_788010();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +51,34 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'isamplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
+layout(location = 0) flat out ivec4 prevent_dce_1;
+uniform highp isamplerCubeArray arg_1_arg_2;
 
+ivec4 textureGather_788010() {
+  ivec4 res = textureGather(arg_1_arg_2, vec4(vec3(1.0f), float(1u)), 1);
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  ivec4 prevent_dce;
+};
+
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), ivec4(0, 0, 0, 0));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureGather_788010();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureGather/7dd226.wgsl b/test/tint/builtins/gen/literal/textureGather/7dd226.wgsl
index c20b020..6ac8f75 100644
--- a/test/tint/builtins/gen/literal/textureGather/7dd226.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/7dd226.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
 
 @group(1) @binding(0) var arg_0: texture_depth_cube_array;
diff --git a/test/tint/builtins/gen/literal/textureGather/7dd226.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/7dd226.wgsl.expected.glsl
index 45e5d8e..c2fac8e 100644
--- a/test/tint/builtins/gen/literal/textureGather/7dd226.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/7dd226.wgsl.expected.glsl
@@ -1,83 +1,49 @@
-SKIP: FAILED
-
-#version 310 es
-
-uniform highp samplerCubeArrayShadow arg_0_arg_1;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureGather_7dd226() {
-  vec4 res = textureGather(arg_0_arg_1, vec4(vec3(1.0f), float(1u)), 0.0);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureGather_7dd226();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'samplerCubeArrayShadow' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
 uniform highp samplerCubeArrayShadow arg_0_arg_1;
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
-void textureGather_7dd226() {
+vec4 textureGather_7dd226() {
   vec4 res = textureGather(arg_0_arg_1, vec4(vec3(1.0f), float(1u)), 0.0);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
 void fragment_main() {
-  textureGather_7dd226();
+  prevent_dce.inner = textureGather_7dd226();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'samplerCubeArrayShadow' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-
-uniform highp samplerCubeArrayShadow arg_0_arg_1;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureGather_7dd226() {
+uniform highp samplerCubeArrayShadow arg_0_arg_1;
+
+vec4 textureGather_7dd226() {
   vec4 res = textureGather(arg_0_arg_1, vec4(vec3(1.0f), float(1u)), 0.0);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
 void compute_main() {
-  textureGather_7dd226();
+  prevent_dce.inner = textureGather_7dd226();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +51,34 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'samplerCubeArrayShadow' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
+layout(location = 0) flat out vec4 prevent_dce_1;
+uniform highp samplerCubeArrayShadow arg_0_arg_1;
 
+vec4 textureGather_7dd226() {
+  vec4 res = textureGather(arg_0_arg_1, vec4(vec3(1.0f), float(1u)), 0.0);
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureGather_7dd226();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureGather/829357.wgsl b/test/tint/builtins/gen/literal/textureGather/829357.wgsl
index c4018e30..9eee725 100644
--- a/test/tint/builtins/gen/literal/textureGather/829357.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/829357.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
 
 @group(1) @binding(1) var arg_1: texture_cube_array<f32>;
diff --git a/test/tint/builtins/gen/literal/textureGather/829357.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/829357.wgsl.expected.glsl
index c336447..5d16574 100644
--- a/test/tint/builtins/gen/literal/textureGather/829357.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/829357.wgsl.expected.glsl
@@ -1,83 +1,49 @@
-SKIP: FAILED
-
-#version 310 es
-
-uniform highp samplerCubeArray arg_1_arg_2;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureGather_829357() {
-  vec4 res = textureGather(arg_1_arg_2, vec4(vec3(1.0f), float(1u)), 1);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureGather_829357();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
 uniform highp samplerCubeArray arg_1_arg_2;
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
-void textureGather_829357() {
+vec4 textureGather_829357() {
   vec4 res = textureGather(arg_1_arg_2, vec4(vec3(1.0f), float(1u)), 1);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
 void fragment_main() {
-  textureGather_829357();
+  prevent_dce.inner = textureGather_829357();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-
-uniform highp samplerCubeArray arg_1_arg_2;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureGather_829357() {
+uniform highp samplerCubeArray arg_1_arg_2;
+
+vec4 textureGather_829357() {
   vec4 res = textureGather(arg_1_arg_2, vec4(vec3(1.0f), float(1u)), 1);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
 void compute_main() {
-  textureGather_829357();
+  prevent_dce.inner = textureGather_829357();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +51,34 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
+layout(location = 0) flat out vec4 prevent_dce_1;
+uniform highp samplerCubeArray arg_1_arg_2;
 
+vec4 textureGather_829357() {
+  vec4 res = textureGather(arg_1_arg_2, vec4(vec3(1.0f), float(1u)), 1);
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureGather_829357();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureGather/8578bc.wgsl b/test/tint/builtins/gen/literal/textureGather/8578bc.wgsl
index 929d125..a6ed7b6 100644
--- a/test/tint/builtins/gen/literal/textureGather/8578bc.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/8578bc.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
 
 @group(1) @binding(1) var arg_1: texture_cube_array<f32>;
diff --git a/test/tint/builtins/gen/literal/textureGather/8578bc.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/8578bc.wgsl.expected.glsl
index 7f9c41d..8038cec 100644
--- a/test/tint/builtins/gen/literal/textureGather/8578bc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/8578bc.wgsl.expected.glsl
@@ -1,83 +1,49 @@
-SKIP: FAILED
-
-#version 310 es
-
-uniform highp samplerCubeArray arg_1_arg_2;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureGather_8578bc() {
-  vec4 res = textureGather(arg_1_arg_2, vec4(vec3(1.0f), float(1u)), int(1u));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureGather_8578bc();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
 uniform highp samplerCubeArray arg_1_arg_2;
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
-void textureGather_8578bc() {
+vec4 textureGather_8578bc() {
   vec4 res = textureGather(arg_1_arg_2, vec4(vec3(1.0f), float(1u)), int(1u));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
 void fragment_main() {
-  textureGather_8578bc();
+  prevent_dce.inner = textureGather_8578bc();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-
-uniform highp samplerCubeArray arg_1_arg_2;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureGather_8578bc() {
+uniform highp samplerCubeArray arg_1_arg_2;
+
+vec4 textureGather_8578bc() {
   vec4 res = textureGather(arg_1_arg_2, vec4(vec3(1.0f), float(1u)), int(1u));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
 void compute_main() {
-  textureGather_8578bc();
+  prevent_dce.inner = textureGather_8578bc();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +51,34 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
+layout(location = 0) flat out vec4 prevent_dce_1;
+uniform highp samplerCubeArray arg_1_arg_2;
 
+vec4 textureGather_8578bc() {
+  vec4 res = textureGather(arg_1_arg_2, vec4(vec3(1.0f), float(1u)), int(1u));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureGather_8578bc();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureGather/aaf6bd.wgsl b/test/tint/builtins/gen/literal/textureGather/aaf6bd.wgsl
index 2692819..1e533b8 100644
--- a/test/tint/builtins/gen/literal/textureGather/aaf6bd.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/aaf6bd.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
 
 @group(1) @binding(1) var arg_1: texture_cube_array<i32>;
diff --git a/test/tint/builtins/gen/literal/textureGather/aaf6bd.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/aaf6bd.wgsl.expected.glsl
index e0981de..f9f712f 100644
--- a/test/tint/builtins/gen/literal/textureGather/aaf6bd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/aaf6bd.wgsl.expected.glsl
@@ -1,83 +1,49 @@
-SKIP: FAILED
-
-#version 310 es
-
-uniform highp isamplerCubeArray arg_1_arg_2;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec4 inner;
 } prevent_dce;
 
-void textureGather_aaf6bd() {
-  ivec4 res = textureGather(arg_1_arg_2, vec4(vec3(1.0f), float(1)), int(1u));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureGather_aaf6bd();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'isamplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
 uniform highp isamplerCubeArray arg_1_arg_2;
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
-void textureGather_aaf6bd() {
+ivec4 textureGather_aaf6bd() {
   ivec4 res = textureGather(arg_1_arg_2, vec4(vec3(1.0f), float(1)), int(1u));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  ivec4 prevent_dce;
+};
+
 void fragment_main() {
-  textureGather_aaf6bd();
+  prevent_dce.inner = textureGather_aaf6bd();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'isamplerCubeArray' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-
-uniform highp isamplerCubeArray arg_1_arg_2;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec4 inner;
 } prevent_dce;
 
-void textureGather_aaf6bd() {
+uniform highp isamplerCubeArray arg_1_arg_2;
+
+ivec4 textureGather_aaf6bd() {
   ivec4 res = textureGather(arg_1_arg_2, vec4(vec3(1.0f), float(1)), int(1u));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  ivec4 prevent_dce;
+};
+
 void compute_main() {
-  textureGather_aaf6bd();
+  prevent_dce.inner = textureGather_aaf6bd();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +51,34 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'isamplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
+layout(location = 0) flat out ivec4 prevent_dce_1;
+uniform highp isamplerCubeArray arg_1_arg_2;
 
+ivec4 textureGather_aaf6bd() {
+  ivec4 res = textureGather(arg_1_arg_2, vec4(vec3(1.0f), float(1)), int(1u));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  ivec4 prevent_dce;
+};
+
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), ivec4(0, 0, 0, 0));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureGather_aaf6bd();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureGather/be276f.wgsl b/test/tint/builtins/gen/literal/textureGather/be276f.wgsl
index 661934d..05c8e5b 100644
--- a/test/tint/builtins/gen/literal/textureGather/be276f.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/be276f.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
 
 @group(1) @binding(1) var arg_1: texture_cube_array<u32>;
diff --git a/test/tint/builtins/gen/literal/textureGather/be276f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/be276f.wgsl.expected.glsl
index f2a57f4..6990e11 100644
--- a/test/tint/builtins/gen/literal/textureGather/be276f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/be276f.wgsl.expected.glsl
@@ -1,83 +1,49 @@
-SKIP: FAILED
-
-#version 310 es
-
-uniform highp usamplerCubeArray arg_1_arg_2;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec4 inner;
 } prevent_dce;
 
-void textureGather_be276f() {
-  uvec4 res = textureGather(arg_1_arg_2, vec4(vec3(1.0f), float(1u)), 1);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureGather_be276f();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'usamplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
 uniform highp usamplerCubeArray arg_1_arg_2;
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
-void textureGather_be276f() {
+uvec4 textureGather_be276f() {
   uvec4 res = textureGather(arg_1_arg_2, vec4(vec3(1.0f), float(1u)), 1);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec4 prevent_dce;
+};
+
 void fragment_main() {
-  textureGather_be276f();
+  prevent_dce.inner = textureGather_be276f();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'usamplerCubeArray' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-
-uniform highp usamplerCubeArray arg_1_arg_2;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec4 inner;
 } prevent_dce;
 
-void textureGather_be276f() {
+uniform highp usamplerCubeArray arg_1_arg_2;
+
+uvec4 textureGather_be276f() {
   uvec4 res = textureGather(arg_1_arg_2, vec4(vec3(1.0f), float(1u)), 1);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec4 prevent_dce;
+};
+
 void compute_main() {
-  textureGather_be276f();
+  prevent_dce.inner = textureGather_be276f();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +51,34 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'usamplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
+layout(location = 0) flat out uvec4 prevent_dce_1;
+uniform highp usamplerCubeArray arg_1_arg_2;
 
+uvec4 textureGather_be276f() {
+  uvec4 res = textureGather(arg_1_arg_2, vec4(vec3(1.0f), float(1u)), 1);
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uvec4 prevent_dce;
+};
+
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), uvec4(0u, 0u, 0u, 0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureGather_be276f();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureGather/c0640c.wgsl b/test/tint/builtins/gen/literal/textureGather/c0640c.wgsl
index 1f58dc7..a581645 100644
--- a/test/tint/builtins/gen/literal/textureGather/c0640c.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/c0640c.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
 
 @group(1) @binding(1) var arg_1: texture_cube_array<i32>;
diff --git a/test/tint/builtins/gen/literal/textureGather/c0640c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/c0640c.wgsl.expected.glsl
index 7dc8998..2f51f42 100644
--- a/test/tint/builtins/gen/literal/textureGather/c0640c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/c0640c.wgsl.expected.glsl
@@ -1,83 +1,49 @@
-SKIP: FAILED
-
-#version 310 es
-
-uniform highp isamplerCubeArray arg_1_arg_2;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec4 inner;
 } prevent_dce;
 
-void textureGather_c0640c() {
-  ivec4 res = textureGather(arg_1_arg_2, vec4(vec3(1.0f), float(1)), 1);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureGather_c0640c();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'isamplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
 uniform highp isamplerCubeArray arg_1_arg_2;
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
-void textureGather_c0640c() {
+ivec4 textureGather_c0640c() {
   ivec4 res = textureGather(arg_1_arg_2, vec4(vec3(1.0f), float(1)), 1);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  ivec4 prevent_dce;
+};
+
 void fragment_main() {
-  textureGather_c0640c();
+  prevent_dce.inner = textureGather_c0640c();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'isamplerCubeArray' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-
-uniform highp isamplerCubeArray arg_1_arg_2;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec4 inner;
 } prevent_dce;
 
-void textureGather_c0640c() {
+uniform highp isamplerCubeArray arg_1_arg_2;
+
+ivec4 textureGather_c0640c() {
   ivec4 res = textureGather(arg_1_arg_2, vec4(vec3(1.0f), float(1)), 1);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  ivec4 prevent_dce;
+};
+
 void compute_main() {
-  textureGather_c0640c();
+  prevent_dce.inner = textureGather_c0640c();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +51,34 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'isamplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
+layout(location = 0) flat out ivec4 prevent_dce_1;
+uniform highp isamplerCubeArray arg_1_arg_2;
 
+ivec4 textureGather_c0640c() {
+  ivec4 res = textureGather(arg_1_arg_2, vec4(vec3(1.0f), float(1)), 1);
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  ivec4 prevent_dce;
+};
+
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), ivec4(0, 0, 0, 0));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureGather_c0640c();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureGather/d4b5c6.wgsl b/test/tint/builtins/gen/literal/textureGather/d4b5c6.wgsl
index aa95f0c..8a8d82d 100644
--- a/test/tint/builtins/gen/literal/textureGather/d4b5c6.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/d4b5c6.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
 
 @group(1) @binding(1) var arg_1: texture_cube_array<u32>;
diff --git a/test/tint/builtins/gen/literal/textureGather/d4b5c6.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/d4b5c6.wgsl.expected.glsl
index ece4e6b..a792efc 100644
--- a/test/tint/builtins/gen/literal/textureGather/d4b5c6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/d4b5c6.wgsl.expected.glsl
@@ -1,83 +1,49 @@
-SKIP: FAILED
-
-#version 310 es
-
-uniform highp usamplerCubeArray arg_1_arg_2;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec4 inner;
 } prevent_dce;
 
-void textureGather_d4b5c6() {
-  uvec4 res = textureGather(arg_1_arg_2, vec4(vec3(1.0f), float(1)), int(1u));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureGather_d4b5c6();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'usamplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
 uniform highp usamplerCubeArray arg_1_arg_2;
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
-void textureGather_d4b5c6() {
+uvec4 textureGather_d4b5c6() {
   uvec4 res = textureGather(arg_1_arg_2, vec4(vec3(1.0f), float(1)), int(1u));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec4 prevent_dce;
+};
+
 void fragment_main() {
-  textureGather_d4b5c6();
+  prevent_dce.inner = textureGather_d4b5c6();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'usamplerCubeArray' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-
-uniform highp usamplerCubeArray arg_1_arg_2;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec4 inner;
 } prevent_dce;
 
-void textureGather_d4b5c6() {
+uniform highp usamplerCubeArray arg_1_arg_2;
+
+uvec4 textureGather_d4b5c6() {
   uvec4 res = textureGather(arg_1_arg_2, vec4(vec3(1.0f), float(1)), int(1u));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec4 prevent_dce;
+};
+
 void compute_main() {
-  textureGather_d4b5c6();
+  prevent_dce.inner = textureGather_d4b5c6();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +51,34 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'usamplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
+layout(location = 0) flat out uvec4 prevent_dce_1;
+uniform highp usamplerCubeArray arg_1_arg_2;
 
+uvec4 textureGather_d4b5c6() {
+  uvec4 res = textureGather(arg_1_arg_2, vec4(vec3(1.0f), float(1)), int(1u));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uvec4 prevent_dce;
+};
+
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), uvec4(0u, 0u, 0u, 0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureGather_d4b5c6();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureGather/d98d59.wgsl b/test/tint/builtins/gen/literal/textureGather/d98d59.wgsl
index e491092..ffb3a54 100644
--- a/test/tint/builtins/gen/literal/textureGather/d98d59.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/d98d59.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
 
 @group(1) @binding(1) var arg_1: texture_cube_array<f32>;
diff --git a/test/tint/builtins/gen/literal/textureGather/d98d59.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/d98d59.wgsl.expected.glsl
index 5d0eac6..9023a52 100644
--- a/test/tint/builtins/gen/literal/textureGather/d98d59.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/d98d59.wgsl.expected.glsl
@@ -1,83 +1,49 @@
-SKIP: FAILED
-
-#version 310 es
-
-uniform highp samplerCubeArray arg_1_arg_2;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureGather_d98d59() {
-  vec4 res = textureGather(arg_1_arg_2, vec4(vec3(1.0f), float(1)), int(1u));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureGather_d98d59();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
 uniform highp samplerCubeArray arg_1_arg_2;
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
-void textureGather_d98d59() {
+vec4 textureGather_d98d59() {
   vec4 res = textureGather(arg_1_arg_2, vec4(vec3(1.0f), float(1)), int(1u));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
 void fragment_main() {
-  textureGather_d98d59();
+  prevent_dce.inner = textureGather_d98d59();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-
-uniform highp samplerCubeArray arg_1_arg_2;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureGather_d98d59() {
+uniform highp samplerCubeArray arg_1_arg_2;
+
+vec4 textureGather_d98d59() {
   vec4 res = textureGather(arg_1_arg_2, vec4(vec3(1.0f), float(1)), int(1u));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
 void compute_main() {
-  textureGather_d98d59();
+  prevent_dce.inner = textureGather_d98d59();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +51,34 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
+layout(location = 0) flat out vec4 prevent_dce_1;
+uniform highp samplerCubeArray arg_1_arg_2;
 
+vec4 textureGather_d98d59() {
+  vec4 res = textureGather(arg_1_arg_2, vec4(vec3(1.0f), float(1)), int(1u));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureGather_d98d59();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureGather/e2acac.wgsl b/test/tint/builtins/gen/literal/textureGather/e2acac.wgsl
index 579f77d..7181e16 100644
--- a/test/tint/builtins/gen/literal/textureGather/e2acac.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/e2acac.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
 
 @group(1) @binding(1) var arg_1: texture_cube_array<u32>;
diff --git a/test/tint/builtins/gen/literal/textureGather/e2acac.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/e2acac.wgsl.expected.glsl
index 1887729..c20418c 100644
--- a/test/tint/builtins/gen/literal/textureGather/e2acac.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/e2acac.wgsl.expected.glsl
@@ -1,83 +1,49 @@
-SKIP: FAILED
-
-#version 310 es
-
-uniform highp usamplerCubeArray arg_1_arg_2;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec4 inner;
 } prevent_dce;
 
-void textureGather_e2acac() {
-  uvec4 res = textureGather(arg_1_arg_2, vec4(vec3(1.0f), float(1u)), int(1u));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureGather_e2acac();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'usamplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
 uniform highp usamplerCubeArray arg_1_arg_2;
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
-void textureGather_e2acac() {
+uvec4 textureGather_e2acac() {
   uvec4 res = textureGather(arg_1_arg_2, vec4(vec3(1.0f), float(1u)), int(1u));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec4 prevent_dce;
+};
+
 void fragment_main() {
-  textureGather_e2acac();
+  prevent_dce.inner = textureGather_e2acac();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'usamplerCubeArray' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-
-uniform highp usamplerCubeArray arg_1_arg_2;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec4 inner;
 } prevent_dce;
 
-void textureGather_e2acac() {
+uniform highp usamplerCubeArray arg_1_arg_2;
+
+uvec4 textureGather_e2acac() {
   uvec4 res = textureGather(arg_1_arg_2, vec4(vec3(1.0f), float(1u)), int(1u));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec4 prevent_dce;
+};
+
 void compute_main() {
-  textureGather_e2acac();
+  prevent_dce.inner = textureGather_e2acac();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +51,34 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'usamplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
+layout(location = 0) flat out uvec4 prevent_dce_1;
+uniform highp usamplerCubeArray arg_1_arg_2;
 
+uvec4 textureGather_e2acac() {
+  uvec4 res = textureGather(arg_1_arg_2, vec4(vec3(1.0f), float(1u)), int(1u));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uvec4 prevent_dce;
+};
+
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), uvec4(0u, 0u, 0u, 0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureGather_e2acac();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureGather/f2c6e3.wgsl b/test/tint/builtins/gen/literal/textureGather/f2c6e3.wgsl
index 0daf9af..d393a51 100644
--- a/test/tint/builtins/gen/literal/textureGather/f2c6e3.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/f2c6e3.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
 
 @group(1) @binding(1) var arg_1: texture_cube_array<u32>;
diff --git a/test/tint/builtins/gen/literal/textureGather/f2c6e3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/f2c6e3.wgsl.expected.glsl
index acbbfe8..35adec1 100644
--- a/test/tint/builtins/gen/literal/textureGather/f2c6e3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/f2c6e3.wgsl.expected.glsl
@@ -1,83 +1,49 @@
-SKIP: FAILED
-
-#version 310 es
-
-uniform highp usamplerCubeArray arg_1_arg_2;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec4 inner;
 } prevent_dce;
 
-void textureGather_f2c6e3() {
-  uvec4 res = textureGather(arg_1_arg_2, vec4(vec3(1.0f), float(1)), 1);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureGather_f2c6e3();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'usamplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
 uniform highp usamplerCubeArray arg_1_arg_2;
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
-void textureGather_f2c6e3() {
+uvec4 textureGather_f2c6e3() {
   uvec4 res = textureGather(arg_1_arg_2, vec4(vec3(1.0f), float(1)), 1);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec4 prevent_dce;
+};
+
 void fragment_main() {
-  textureGather_f2c6e3();
+  prevent_dce.inner = textureGather_f2c6e3();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'usamplerCubeArray' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-
-uniform highp usamplerCubeArray arg_1_arg_2;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec4 inner;
 } prevent_dce;
 
-void textureGather_f2c6e3() {
+uniform highp usamplerCubeArray arg_1_arg_2;
+
+uvec4 textureGather_f2c6e3() {
   uvec4 res = textureGather(arg_1_arg_2, vec4(vec3(1.0f), float(1)), 1);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec4 prevent_dce;
+};
+
 void compute_main() {
-  textureGather_f2c6e3();
+  prevent_dce.inner = textureGather_f2c6e3();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +51,34 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'usamplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
+layout(location = 0) flat out uvec4 prevent_dce_1;
+uniform highp usamplerCubeArray arg_1_arg_2;
 
+uvec4 textureGather_f2c6e3() {
+  uvec4 res = textureGather(arg_1_arg_2, vec4(vec3(1.0f), float(1)), 1);
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uvec4 prevent_dce;
+};
+
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), uvec4(0u, 0u, 0u, 0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureGather_f2c6e3();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/2e409c.wgsl b/test/tint/builtins/gen/literal/textureGatherCompare/2e409c.wgsl
index 0c96954..8257f72 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/2e409c.wgsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/2e409c.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
 
 @group(1) @binding(0) var arg_0: texture_depth_cube_array;
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/2e409c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGatherCompare/2e409c.wgsl.expected.glsl
index 6bc6a75..283cb27 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/2e409c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/2e409c.wgsl.expected.glsl
@@ -1,83 +1,49 @@
-SKIP: FAILED
-
-#version 310 es
-
-uniform highp samplerCubeArrayShadow arg_0_arg_1;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureGatherCompare_2e409c() {
-  vec4 res = textureGather(arg_0_arg_1, vec4(vec3(1.0f), float(1u)), 1.0f);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureGatherCompare_2e409c();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'samplerCubeArrayShadow' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
 uniform highp samplerCubeArrayShadow arg_0_arg_1;
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
-void textureGatherCompare_2e409c() {
+vec4 textureGatherCompare_2e409c() {
   vec4 res = textureGather(arg_0_arg_1, vec4(vec3(1.0f), float(1u)), 1.0f);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
 void fragment_main() {
-  textureGatherCompare_2e409c();
+  prevent_dce.inner = textureGatherCompare_2e409c();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'samplerCubeArrayShadow' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-
-uniform highp samplerCubeArrayShadow arg_0_arg_1;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureGatherCompare_2e409c() {
+uniform highp samplerCubeArrayShadow arg_0_arg_1;
+
+vec4 textureGatherCompare_2e409c() {
   vec4 res = textureGather(arg_0_arg_1, vec4(vec3(1.0f), float(1u)), 1.0f);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
 void compute_main() {
-  textureGatherCompare_2e409c();
+  prevent_dce.inner = textureGatherCompare_2e409c();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +51,34 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'samplerCubeArrayShadow' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
+layout(location = 0) flat out vec4 prevent_dce_1;
+uniform highp samplerCubeArrayShadow arg_0_arg_1;
 
+vec4 textureGatherCompare_2e409c() {
+  vec4 res = textureGather(arg_0_arg_1, vec4(vec3(1.0f), float(1u)), 1.0f);
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureGatherCompare_2e409c();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/60d2d1.wgsl b/test/tint/builtins/gen/literal/textureGatherCompare/60d2d1.wgsl
index 38a4b89..048b598c 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/60d2d1.wgsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/60d2d1.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
 
 @group(1) @binding(0) var arg_0: texture_depth_cube_array;
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/60d2d1.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGatherCompare/60d2d1.wgsl.expected.glsl
index e5c66ac..55bcb4b 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/60d2d1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/60d2d1.wgsl.expected.glsl
@@ -1,83 +1,49 @@
-SKIP: FAILED
-
-#version 310 es
-
-uniform highp samplerCubeArrayShadow arg_0_arg_1;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureGatherCompare_60d2d1() {
-  vec4 res = textureGather(arg_0_arg_1, vec4(vec3(1.0f), float(1)), 1.0f);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureGatherCompare_60d2d1();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'samplerCubeArrayShadow' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
 uniform highp samplerCubeArrayShadow arg_0_arg_1;
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
-void textureGatherCompare_60d2d1() {
+vec4 textureGatherCompare_60d2d1() {
   vec4 res = textureGather(arg_0_arg_1, vec4(vec3(1.0f), float(1)), 1.0f);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
 void fragment_main() {
-  textureGatherCompare_60d2d1();
+  prevent_dce.inner = textureGatherCompare_60d2d1();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'samplerCubeArrayShadow' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-
-uniform highp samplerCubeArrayShadow arg_0_arg_1;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureGatherCompare_60d2d1() {
+uniform highp samplerCubeArrayShadow arg_0_arg_1;
+
+vec4 textureGatherCompare_60d2d1() {
   vec4 res = textureGather(arg_0_arg_1, vec4(vec3(1.0f), float(1)), 1.0f);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
 void compute_main() {
-  textureGatherCompare_60d2d1();
+  prevent_dce.inner = textureGatherCompare_60d2d1();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +51,34 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'samplerCubeArrayShadow' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
+layout(location = 0) flat out vec4 prevent_dce_1;
+uniform highp samplerCubeArrayShadow arg_0_arg_1;
 
+vec4 textureGatherCompare_60d2d1() {
+  vec4 res = textureGather(arg_0_arg_1, vec4(vec3(1.0f), float(1)), 1.0f);
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureGatherCompare_60d2d1();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureLoad/050c33.wgsl b/test/tint/builtins/gen/literal/textureLoad/050c33.wgsl
index eeda3f1..dea8051 100644
--- a/test/tint/builtins/gen/literal/textureLoad/050c33.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/050c33.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32uint, read>;
diff --git a/test/tint/builtins/gen/literal/textureLoad/050c33.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/050c33.wgsl.expected.glsl
index 792d1bb..d2d8024 100644
--- a/test/tint/builtins/gen/literal/textureLoad/050c33.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/050c33.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp readonly uimage2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec4 inner;
 } prevent_dce;
 
-void textureLoad_050c33() {
+layout(binding = 0, rg32ui) uniform highp readonly uimage2D arg_0;
+uvec4 textureLoad_050c33() {
   uvec4 res = imageLoad(arg_0, ivec2(1));
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureLoad_050c33();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp readonly uimage2D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
-void textureLoad_050c33() {
-  uvec4 res = imageLoad(arg_0, ivec2(1));
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  uvec4 prevent_dce;
+};
 
 void fragment_main() {
-  textureLoad_050c33();
+  prevent_dce.inner = textureLoad_050c33();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp readonly uimage2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec4 inner;
 } prevent_dce;
 
-void textureLoad_050c33() {
+layout(binding = 0, rg32ui) uniform highp readonly uimage2D arg_0;
+uvec4 textureLoad_050c33() {
   uvec4 res = imageLoad(arg_0, ivec2(1));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec4 prevent_dce;
+};
+
 void compute_main() {
-  textureLoad_050c33();
+  prevent_dce.inner = textureLoad_050c33();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out uvec4 prevent_dce_1;
+layout(binding = 0, rg32ui) uniform highp readonly uimage2D arg_0;
+uvec4 textureLoad_050c33() {
+  uvec4 res = imageLoad(arg_0, ivec2(1));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uvec4 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), uvec4(0u, 0u, 0u, 0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureLoad_050c33();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureLoad/126466.wgsl b/test/tint/builtins/gen/literal/textureLoad/126466.wgsl
index f4c7dc9..4af633c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/126466.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/126466.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32float, read_write>;
diff --git a/test/tint/builtins/gen/literal/textureLoad/143d84.wgsl b/test/tint/builtins/gen/literal/textureLoad/143d84.wgsl
index 62be6dc..0ea10f4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/143d84.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/143d84.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32float, read>;
diff --git a/test/tint/builtins/gen/literal/textureLoad/143d84.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/143d84.wgsl.expected.glsl
index fd7bea6..50c3781 100644
--- a/test/tint/builtins/gen/literal/textureLoad/143d84.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/143d84.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp readonly image2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_143d84() {
+layout(binding = 0, rg32f) uniform highp readonly image2DArray arg_0;
+vec4 textureLoad_143d84() {
   vec4 res = imageLoad(arg_0, ivec3(ivec2(1), int(1u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureLoad_143d84();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp readonly image2DArray arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
-void textureLoad_143d84() {
-  vec4 res = imageLoad(arg_0, ivec3(ivec2(1), int(1u)));
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
 
 void fragment_main() {
-  textureLoad_143d84();
+  prevent_dce.inner = textureLoad_143d84();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp readonly image2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_143d84() {
+layout(binding = 0, rg32f) uniform highp readonly image2DArray arg_0;
+vec4 textureLoad_143d84() {
   vec4 res = imageLoad(arg_0, ivec3(ivec2(1), int(1u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
 void compute_main() {
-  textureLoad_143d84();
+  prevent_dce.inner = textureLoad_143d84();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out vec4 prevent_dce_1;
+layout(binding = 0, rg32f) uniform highp readonly image2DArray arg_0;
+vec4 textureLoad_143d84() {
+  vec4 res = imageLoad(arg_0, ivec3(ivec2(1), int(1u)));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureLoad_143d84();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureLoad/18ac11.wgsl b/test/tint/builtins/gen/literal/textureLoad/18ac11.wgsl
index fddf0e1..93d9d30 100644
--- a/test/tint/builtins/gen/literal/textureLoad/18ac11.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/18ac11.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32sint, read>;
diff --git a/test/tint/builtins/gen/literal/textureLoad/18ac11.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/18ac11.wgsl.expected.glsl
index f07faa3..2b64b44 100644
--- a/test/tint/builtins/gen/literal/textureLoad/18ac11.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/18ac11.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp readonly iimage2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec4 inner;
 } prevent_dce;
 
-void textureLoad_18ac11() {
+layout(binding = 0, rg32i) uniform highp readonly iimage2D arg_0;
+ivec4 textureLoad_18ac11() {
   ivec4 res = imageLoad(arg_0, ivec2(uvec2(1u, 0u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureLoad_18ac11();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp readonly iimage2D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
-void textureLoad_18ac11() {
-  ivec4 res = imageLoad(arg_0, ivec2(uvec2(1u, 0u)));
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  ivec4 prevent_dce;
+};
 
 void fragment_main() {
-  textureLoad_18ac11();
+  prevent_dce.inner = textureLoad_18ac11();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp readonly iimage2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec4 inner;
 } prevent_dce;
 
-void textureLoad_18ac11() {
+layout(binding = 0, rg32i) uniform highp readonly iimage2D arg_0;
+ivec4 textureLoad_18ac11() {
   ivec4 res = imageLoad(arg_0, ivec2(uvec2(1u, 0u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  ivec4 prevent_dce;
+};
+
 void compute_main() {
-  textureLoad_18ac11();
+  prevent_dce.inner = textureLoad_18ac11();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out ivec4 prevent_dce_1;
+layout(binding = 0, rg32i) uniform highp readonly iimage2D arg_0;
+ivec4 textureLoad_18ac11() {
+  ivec4 res = imageLoad(arg_0, ivec2(uvec2(1u, 0u)));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  ivec4 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), ivec4(0, 0, 0, 0));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureLoad_18ac11();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureLoad/19e5ca.wgsl b/test/tint/builtins/gen/literal/textureLoad/19e5ca.wgsl
index 0260155..746433a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/19e5ca.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/19e5ca.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
diff --git a/test/tint/builtins/gen/literal/textureLoad/19e5ca.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/19e5ca.wgsl.expected.glsl
index 99630c2..3988996 100644
--- a/test/tint/builtins/gen/literal/textureLoad/19e5ca.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/19e5ca.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp readonly image2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_19e5ca() {
+layout(binding = 0, r8) uniform highp readonly image2DArray arg_0;
+vec4 textureLoad_19e5ca() {
   vec4 res = imageLoad(arg_0, ivec3(ivec2(1), int(1u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureLoad_19e5ca();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp readonly image2DArray arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
-void textureLoad_19e5ca() {
-  vec4 res = imageLoad(arg_0, ivec3(ivec2(1), int(1u)));
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
 
 void fragment_main() {
-  textureLoad_19e5ca();
+  prevent_dce.inner = textureLoad_19e5ca();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp readonly image2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_19e5ca() {
+layout(binding = 0, r8) uniform highp readonly image2DArray arg_0;
+vec4 textureLoad_19e5ca() {
   vec4 res = imageLoad(arg_0, ivec3(ivec2(1), int(1u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
 void compute_main() {
-  textureLoad_19e5ca();
+  prevent_dce.inner = textureLoad_19e5ca();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out vec4 prevent_dce_1;
+layout(binding = 0, r8) uniform highp readonly image2DArray arg_0;
+vec4 textureLoad_19e5ca() {
+  vec4 res = imageLoad(arg_0, ivec3(ivec2(1), int(1u)));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureLoad_19e5ca();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureLoad/1e6baa.wgsl b/test/tint/builtins/gen/literal/textureLoad/1e6baa.wgsl
index 356741d..c3e3a13 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1e6baa.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1e6baa.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32float, read_write>;
diff --git a/test/tint/builtins/gen/literal/textureLoad/1eb93f.wgsl b/test/tint/builtins/gen/literal/textureLoad/1eb93f.wgsl
index 2a16960..c5c99b4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1eb93f.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1eb93f.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32float, read>;
diff --git a/test/tint/builtins/gen/literal/textureLoad/1eb93f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/1eb93f.wgsl.expected.glsl
index ec20064..f2cc900 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1eb93f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1eb93f.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp readonly image2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_1eb93f() {
+layout(binding = 0, rg32f) uniform highp readonly image2D arg_0;
+vec4 textureLoad_1eb93f() {
   vec4 res = imageLoad(arg_0, ivec2(uvec2(1u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureLoad_1eb93f();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp readonly image2D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
-void textureLoad_1eb93f() {
-  vec4 res = imageLoad(arg_0, ivec2(uvec2(1u)));
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
 
 void fragment_main() {
-  textureLoad_1eb93f();
+  prevent_dce.inner = textureLoad_1eb93f();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp readonly image2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_1eb93f() {
+layout(binding = 0, rg32f) uniform highp readonly image2D arg_0;
+vec4 textureLoad_1eb93f() {
   vec4 res = imageLoad(arg_0, ivec2(uvec2(1u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
 void compute_main() {
-  textureLoad_1eb93f();
+  prevent_dce.inner = textureLoad_1eb93f();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out vec4 prevent_dce_1;
+layout(binding = 0, rg32f) uniform highp readonly image2D arg_0;
+vec4 textureLoad_1eb93f() {
+  vec4 res = imageLoad(arg_0, ivec2(uvec2(1u)));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureLoad_1eb93f();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureLoad/1fde63.wgsl b/test/tint/builtins/gen/literal/textureLoad/1fde63.wgsl
index b292b7e..f117633 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1fde63.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1fde63.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
diff --git a/test/tint/builtins/gen/literal/textureLoad/20fa2f.wgsl b/test/tint/builtins/gen/literal/textureLoad/20fa2f.wgsl
index 99efd65..5a6f055 100644
--- a/test/tint/builtins/gen/literal/textureLoad/20fa2f.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/20fa2f.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32float, read>;
diff --git a/test/tint/builtins/gen/literal/textureLoad/20fa2f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/20fa2f.wgsl.expected.glsl
index b043015..d9cc8c3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/20fa2f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/20fa2f.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp readonly image2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_20fa2f() {
+layout(binding = 0, rg32f) uniform highp readonly image2DArray arg_0;
+vec4 textureLoad_20fa2f() {
   vec4 res = imageLoad(arg_0, ivec3(ivec2(1), 1));
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureLoad_20fa2f();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp readonly image2DArray arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
-void textureLoad_20fa2f() {
-  vec4 res = imageLoad(arg_0, ivec3(ivec2(1), 1));
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
 
 void fragment_main() {
-  textureLoad_20fa2f();
+  prevent_dce.inner = textureLoad_20fa2f();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp readonly image2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_20fa2f() {
+layout(binding = 0, rg32f) uniform highp readonly image2DArray arg_0;
+vec4 textureLoad_20fa2f() {
   vec4 res = imageLoad(arg_0, ivec3(ivec2(1), 1));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
 void compute_main() {
-  textureLoad_20fa2f();
+  prevent_dce.inner = textureLoad_20fa2f();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out vec4 prevent_dce_1;
+layout(binding = 0, rg32f) uniform highp readonly image2DArray arg_0;
+vec4 textureLoad_20fa2f() {
+  vec4 res = imageLoad(arg_0, ivec3(ivec2(1), 1));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureLoad_20fa2f();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureLoad/23007a.wgsl b/test/tint/builtins/gen/literal/textureLoad/23007a.wgsl
index 8bb978e..25a40dc 100644
--- a/test/tint/builtins/gen/literal/textureLoad/23007a.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/23007a.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32float, read>;
diff --git a/test/tint/builtins/gen/literal/textureLoad/23007a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/23007a.wgsl.expected.glsl
index 8689723..b6b6f03 100644
--- a/test/tint/builtins/gen/literal/textureLoad/23007a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/23007a.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp readonly image2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_23007a() {
+layout(binding = 0, rg32f) uniform highp readonly image2DArray arg_0;
+vec4 textureLoad_23007a() {
   vec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), uint(1))));
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureLoad_23007a();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp readonly image2DArray arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
-void textureLoad_23007a() {
-  vec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), uint(1))));
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
 
 void fragment_main() {
-  textureLoad_23007a();
+  prevent_dce.inner = textureLoad_23007a();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp readonly image2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_23007a() {
+layout(binding = 0, rg32f) uniform highp readonly image2DArray arg_0;
+vec4 textureLoad_23007a() {
   vec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), uint(1))));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
 void compute_main() {
-  textureLoad_23007a();
+  prevent_dce.inner = textureLoad_23007a();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out vec4 prevent_dce_1;
+layout(binding = 0, rg32f) uniform highp readonly image2DArray arg_0;
+vec4 textureLoad_23007a() {
+  vec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), uint(1))));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureLoad_23007a();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureLoad/26d7f1.wgsl b/test/tint/builtins/gen/literal/textureLoad/26d7f1.wgsl
index 0a1cef5..7d95a14 100644
--- a/test/tint/builtins/gen/literal/textureLoad/26d7f1.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/26d7f1.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32uint, read>;
diff --git a/test/tint/builtins/gen/literal/textureLoad/26d7f1.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/26d7f1.wgsl.expected.glsl
index 5d829f5..b3e377b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/26d7f1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/26d7f1.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp readonly uimage2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec4 inner;
 } prevent_dce;
 
-void textureLoad_26d7f1() {
+layout(binding = 0, rg32ui) uniform highp readonly uimage2DArray arg_0;
+uvec4 textureLoad_26d7f1() {
   uvec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), uint(1))));
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureLoad_26d7f1();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp readonly uimage2DArray arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
-void textureLoad_26d7f1() {
-  uvec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), uint(1))));
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  uvec4 prevent_dce;
+};
 
 void fragment_main() {
-  textureLoad_26d7f1();
+  prevent_dce.inner = textureLoad_26d7f1();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp readonly uimage2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec4 inner;
 } prevent_dce;
 
-void textureLoad_26d7f1() {
+layout(binding = 0, rg32ui) uniform highp readonly uimage2DArray arg_0;
+uvec4 textureLoad_26d7f1() {
   uvec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), uint(1))));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec4 prevent_dce;
+};
+
 void compute_main() {
-  textureLoad_26d7f1();
+  prevent_dce.inner = textureLoad_26d7f1();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out uvec4 prevent_dce_1;
+layout(binding = 0, rg32ui) uniform highp readonly uimage2DArray arg_0;
+uvec4 textureLoad_26d7f1() {
+  uvec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), uint(1))));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uvec4 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), uvec4(0u, 0u, 0u, 0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureLoad_26d7f1();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureLoad/276643.wgsl b/test/tint/builtins/gen/literal/textureLoad/276643.wgsl
index 258bf0a..ee96e1b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/276643.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/276643.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
diff --git a/test/tint/builtins/gen/literal/textureLoad/276643.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/276643.wgsl.expected.glsl
index 3501cde..9494ab6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/276643.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/276643.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp readonly image2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_276643() {
+layout(binding = 0, r8) uniform highp readonly image2D arg_0;
+vec4 textureLoad_276643() {
   vec4 res = imageLoad(arg_0, ivec2(uvec2(1u, 0u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureLoad_276643();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp readonly image2D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
-void textureLoad_276643() {
-  vec4 res = imageLoad(arg_0, ivec2(uvec2(1u, 0u)));
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
 
 void fragment_main() {
-  textureLoad_276643();
+  prevent_dce.inner = textureLoad_276643();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp readonly image2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_276643() {
+layout(binding = 0, r8) uniform highp readonly image2D arg_0;
+vec4 textureLoad_276643() {
   vec4 res = imageLoad(arg_0, ivec2(uvec2(1u, 0u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
 void compute_main() {
-  textureLoad_276643();
+  prevent_dce.inner = textureLoad_276643();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out vec4 prevent_dce_1;
+layout(binding = 0, r8) uniform highp readonly image2D arg_0;
+vec4 textureLoad_276643() {
+  vec4 res = imageLoad(arg_0, ivec2(uvec2(1u, 0u)));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureLoad_276643();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureLoad/2d6cf7.wgsl b/test/tint/builtins/gen/literal/textureLoad/2d6cf7.wgsl
index 5279828..bd0246f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2d6cf7.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2d6cf7.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32sint, read>;
diff --git a/test/tint/builtins/gen/literal/textureLoad/2d6cf7.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/2d6cf7.wgsl.expected.glsl
index 39eb9fb..4f78f7a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2d6cf7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2d6cf7.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp readonly iimage2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec4 inner;
 } prevent_dce;
 
-void textureLoad_2d6cf7() {
+layout(binding = 0, rg32i) uniform highp readonly iimage2D arg_0;
+ivec4 textureLoad_2d6cf7() {
   ivec4 res = imageLoad(arg_0, ivec2(1, 0));
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureLoad_2d6cf7();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp readonly iimage2D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
-void textureLoad_2d6cf7() {
-  ivec4 res = imageLoad(arg_0, ivec2(1, 0));
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  ivec4 prevent_dce;
+};
 
 void fragment_main() {
-  textureLoad_2d6cf7();
+  prevent_dce.inner = textureLoad_2d6cf7();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp readonly iimage2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec4 inner;
 } prevent_dce;
 
-void textureLoad_2d6cf7() {
+layout(binding = 0, rg32i) uniform highp readonly iimage2D arg_0;
+ivec4 textureLoad_2d6cf7() {
   ivec4 res = imageLoad(arg_0, ivec2(1, 0));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  ivec4 prevent_dce;
+};
+
 void compute_main() {
-  textureLoad_2d6cf7();
+  prevent_dce.inner = textureLoad_2d6cf7();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out ivec4 prevent_dce_1;
+layout(binding = 0, rg32i) uniform highp readonly iimage2D arg_0;
+ivec4 textureLoad_2d6cf7() {
+  ivec4 res = imageLoad(arg_0, ivec2(1, 0));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  ivec4 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), ivec4(0, 0, 0, 0));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureLoad_2d6cf7();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureLoad/2eaf31.wgsl b/test/tint/builtins/gen/literal/textureLoad/2eaf31.wgsl
index 7d8a9b2..25ddd59 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2eaf31.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2eaf31.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32sint, read_write>;
diff --git a/test/tint/builtins/gen/literal/textureLoad/34d97c.wgsl b/test/tint/builtins/gen/literal/textureLoad/34d97c.wgsl
index 5bb1ac7..cb68046 100644
--- a/test/tint/builtins/gen/literal/textureLoad/34d97c.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/34d97c.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32uint, read_write>;
diff --git a/test/tint/builtins/gen/literal/textureLoad/35a5e2.wgsl b/test/tint/builtins/gen/literal/textureLoad/35a5e2.wgsl
index 6fe3140..7271ebc 100644
--- a/test/tint/builtins/gen/literal/textureLoad/35a5e2.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/35a5e2.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
diff --git a/test/tint/builtins/gen/literal/textureLoad/35d464.wgsl b/test/tint/builtins/gen/literal/textureLoad/35d464.wgsl
index e1b1ab6..2f10c98 100644
--- a/test/tint/builtins/gen/literal/textureLoad/35d464.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/35d464.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
diff --git a/test/tint/builtins/gen/literal/textureLoad/35d464.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/35d464.wgsl.expected.glsl
index 7d6b400..71c509f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/35d464.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/35d464.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp readonly image2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_35d464() {
+layout(binding = 0, r8) uniform highp readonly image2DArray arg_0;
+vec4 textureLoad_35d464() {
   vec4 res = imageLoad(arg_0, ivec3(ivec2(1), 1));
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureLoad_35d464();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp readonly image2DArray arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
-void textureLoad_35d464() {
-  vec4 res = imageLoad(arg_0, ivec3(ivec2(1), 1));
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
 
 void fragment_main() {
-  textureLoad_35d464();
+  prevent_dce.inner = textureLoad_35d464();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp readonly image2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_35d464() {
+layout(binding = 0, r8) uniform highp readonly image2DArray arg_0;
+vec4 textureLoad_35d464() {
   vec4 res = imageLoad(arg_0, ivec3(ivec2(1), 1));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
 void compute_main() {
-  textureLoad_35d464();
+  prevent_dce.inner = textureLoad_35d464();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out vec4 prevent_dce_1;
+layout(binding = 0, r8) uniform highp readonly image2DArray arg_0;
+vec4 textureLoad_35d464() {
+  vec4 res = imageLoad(arg_0, ivec3(ivec2(1), 1));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureLoad_35d464();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureLoad/3e16a8.wgsl b/test/tint/builtins/gen/literal/textureLoad/3e16a8.wgsl
index cf45335..003c070 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3e16a8.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3e16a8.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
diff --git a/test/tint/builtins/gen/literal/textureLoad/424afd.wgsl b/test/tint/builtins/gen/literal/textureLoad/424afd.wgsl
index 059e5c0..1079b76 100644
--- a/test/tint/builtins/gen/literal/textureLoad/424afd.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/424afd.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32sint, read_write>;
diff --git a/test/tint/builtins/gen/literal/textureLoad/44c826.wgsl b/test/tint/builtins/gen/literal/textureLoad/44c826.wgsl
index 3d61c4a..246c8a5 100644
--- a/test/tint/builtins/gen/literal/textureLoad/44c826.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/44c826.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32uint, read>;
diff --git a/test/tint/builtins/gen/literal/textureLoad/44c826.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/44c826.wgsl.expected.glsl
index f0395c4..919995c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/44c826.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/44c826.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp readonly uimage2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec4 inner;
 } prevent_dce;
 
-void textureLoad_44c826() {
+layout(binding = 0, rg32ui) uniform highp readonly uimage2D arg_0;
+uvec4 textureLoad_44c826() {
   uvec4 res = imageLoad(arg_0, ivec2(uvec2(1u, 0u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureLoad_44c826();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp readonly uimage2D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
-void textureLoad_44c826() {
-  uvec4 res = imageLoad(arg_0, ivec2(uvec2(1u, 0u)));
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  uvec4 prevent_dce;
+};
 
 void fragment_main() {
-  textureLoad_44c826();
+  prevent_dce.inner = textureLoad_44c826();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp readonly uimage2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec4 inner;
 } prevent_dce;
 
-void textureLoad_44c826() {
+layout(binding = 0, rg32ui) uniform highp readonly uimage2D arg_0;
+uvec4 textureLoad_44c826() {
   uvec4 res = imageLoad(arg_0, ivec2(uvec2(1u, 0u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec4 prevent_dce;
+};
+
 void compute_main() {
-  textureLoad_44c826();
+  prevent_dce.inner = textureLoad_44c826();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out uvec4 prevent_dce_1;
+layout(binding = 0, rg32ui) uniform highp readonly uimage2D arg_0;
+uvec4 textureLoad_44c826() {
+  uvec4 res = imageLoad(arg_0, ivec2(uvec2(1u, 0u)));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uvec4 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), uvec4(0u, 0u, 0u, 0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureLoad_44c826();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureLoad/469912.wgsl b/test/tint/builtins/gen/literal/textureLoad/469912.wgsl
index eecb08d..94d3db4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/469912.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/469912.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32sint, read_write>;
diff --git a/test/tint/builtins/gen/literal/textureLoad/482627.wgsl b/test/tint/builtins/gen/literal/textureLoad/482627.wgsl
index c463bec..93569d40 100644
--- a/test/tint/builtins/gen/literal/textureLoad/482627.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/482627.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32float, read_write>;
diff --git a/test/tint/builtins/gen/literal/textureLoad/4951bb.wgsl b/test/tint/builtins/gen/literal/textureLoad/4951bb.wgsl
index 466c256..2678a99 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4951bb.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4951bb.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
diff --git a/test/tint/builtins/gen/literal/textureLoad/4951bb.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/4951bb.wgsl.expected.glsl
index b48f1f9..2b0a31c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4951bb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4951bb.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp readonly image2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_4951bb() {
+layout(binding = 0, r8) uniform highp readonly image2DArray arg_0;
+vec4 textureLoad_4951bb() {
   vec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), uint(1))));
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureLoad_4951bb();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp readonly image2DArray arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
-void textureLoad_4951bb() {
-  vec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), uint(1))));
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
 
 void fragment_main() {
-  textureLoad_4951bb();
+  prevent_dce.inner = textureLoad_4951bb();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp readonly image2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_4951bb() {
+layout(binding = 0, r8) uniform highp readonly image2DArray arg_0;
+vec4 textureLoad_4951bb() {
   vec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), uint(1))));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
 void compute_main() {
-  textureLoad_4951bb();
+  prevent_dce.inner = textureLoad_4951bb();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out vec4 prevent_dce_1;
+layout(binding = 0, r8) uniform highp readonly image2DArray arg_0;
+vec4 textureLoad_4951bb() {
+  vec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), uint(1))));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureLoad_4951bb();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureLoad/4c1a1e.wgsl b/test/tint/builtins/gen/literal/textureLoad/4c1a1e.wgsl
index 17f2106..497b491 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4c1a1e.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4c1a1e.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32uint, read_write>;
diff --git a/test/tint/builtins/gen/literal/textureLoad/4ccf9a.wgsl b/test/tint/builtins/gen/literal/textureLoad/4ccf9a.wgsl
index f2fe751..2091436 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4ccf9a.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4ccf9a.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32uint, read_write>;
diff --git a/test/tint/builtins/gen/literal/textureLoad/53378a.wgsl b/test/tint/builtins/gen/literal/textureLoad/53378a.wgsl
index e03e3af..810bf01 100644
--- a/test/tint/builtins/gen/literal/textureLoad/53378a.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/53378a.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32sint, read>;
diff --git a/test/tint/builtins/gen/literal/textureLoad/53378a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/53378a.wgsl.expected.glsl
index 2e81590..22bdf9b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/53378a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/53378a.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp readonly iimage2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec4 inner;
 } prevent_dce;
 
-void textureLoad_53378a() {
+layout(binding = 0, rg32i) uniform highp readonly iimage2D arg_0;
+ivec4 textureLoad_53378a() {
   ivec4 res = imageLoad(arg_0, ivec2(1));
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureLoad_53378a();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp readonly iimage2D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
-void textureLoad_53378a() {
-  ivec4 res = imageLoad(arg_0, ivec2(1));
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  ivec4 prevent_dce;
+};
 
 void fragment_main() {
-  textureLoad_53378a();
+  prevent_dce.inner = textureLoad_53378a();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp readonly iimage2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec4 inner;
 } prevent_dce;
 
-void textureLoad_53378a() {
+layout(binding = 0, rg32i) uniform highp readonly iimage2D arg_0;
+ivec4 textureLoad_53378a() {
   ivec4 res = imageLoad(arg_0, ivec2(1));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  ivec4 prevent_dce;
+};
+
 void compute_main() {
-  textureLoad_53378a();
+  prevent_dce.inner = textureLoad_53378a();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out ivec4 prevent_dce_1;
+layout(binding = 0, rg32i) uniform highp readonly iimage2D arg_0;
+ivec4 textureLoad_53378a() {
+  ivec4 res = imageLoad(arg_0, ivec2(1));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  ivec4 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), ivec4(0, 0, 0, 0));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureLoad_53378a();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureLoad/54fb38.wgsl b/test/tint/builtins/gen/literal/textureLoad/54fb38.wgsl
index 456e603..bb275d1 100644
--- a/test/tint/builtins/gen/literal/textureLoad/54fb38.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/54fb38.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32uint, read_write>;
diff --git a/test/tint/builtins/gen/literal/textureLoad/56a000.wgsl b/test/tint/builtins/gen/literal/textureLoad/56a000.wgsl
index 4d5b8ca..ce01526 100644
--- a/test/tint/builtins/gen/literal/textureLoad/56a000.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/56a000.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32float, read_write>;
diff --git a/test/tint/builtins/gen/literal/textureLoad/5abbf2.wgsl b/test/tint/builtins/gen/literal/textureLoad/5abbf2.wgsl
index bbbeaf7..efd87b8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5abbf2.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5abbf2.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32float, read>;
diff --git a/test/tint/builtins/gen/literal/textureLoad/5abbf2.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/5abbf2.wgsl.expected.glsl
index 9ec57ca..bdd0e4f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5abbf2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5abbf2.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp readonly image2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_5abbf2() {
+layout(binding = 0, rg32f) uniform highp readonly image2D arg_0;
+vec4 textureLoad_5abbf2() {
   vec4 res = imageLoad(arg_0, ivec2(uvec2(1u, 0u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureLoad_5abbf2();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp readonly image2D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
-void textureLoad_5abbf2() {
-  vec4 res = imageLoad(arg_0, ivec2(uvec2(1u, 0u)));
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
 
 void fragment_main() {
-  textureLoad_5abbf2();
+  prevent_dce.inner = textureLoad_5abbf2();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp readonly image2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_5abbf2() {
+layout(binding = 0, rg32f) uniform highp readonly image2D arg_0;
+vec4 textureLoad_5abbf2() {
   vec4 res = imageLoad(arg_0, ivec2(uvec2(1u, 0u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
 void compute_main() {
-  textureLoad_5abbf2();
+  prevent_dce.inner = textureLoad_5abbf2();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out vec4 prevent_dce_1;
+layout(binding = 0, rg32f) uniform highp readonly image2D arg_0;
+vec4 textureLoad_5abbf2() {
+  vec4 res = imageLoad(arg_0, ivec2(uvec2(1u, 0u)));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureLoad_5abbf2();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureLoad/5bb7fb.wgsl b/test/tint/builtins/gen/literal/textureLoad/5bb7fb.wgsl
index cee9685..c757037 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5bb7fb.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5bb7fb.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32uint, read>;
diff --git a/test/tint/builtins/gen/literal/textureLoad/5bb7fb.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/5bb7fb.wgsl.expected.glsl
index 0afc610..dabcf09 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5bb7fb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5bb7fb.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp readonly uimage2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec4 inner;
 } prevent_dce;
 
-void textureLoad_5bb7fb() {
+layout(binding = 0, rg32ui) uniform highp readonly uimage2D arg_0;
+uvec4 textureLoad_5bb7fb() {
   uvec4 res = imageLoad(arg_0, ivec2(1, 0));
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureLoad_5bb7fb();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp readonly uimage2D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
-void textureLoad_5bb7fb() {
-  uvec4 res = imageLoad(arg_0, ivec2(1, 0));
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  uvec4 prevent_dce;
+};
 
 void fragment_main() {
-  textureLoad_5bb7fb();
+  prevent_dce.inner = textureLoad_5bb7fb();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp readonly uimage2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec4 inner;
 } prevent_dce;
 
-void textureLoad_5bb7fb() {
+layout(binding = 0, rg32ui) uniform highp readonly uimage2D arg_0;
+uvec4 textureLoad_5bb7fb() {
   uvec4 res = imageLoad(arg_0, ivec2(1, 0));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec4 prevent_dce;
+};
+
 void compute_main() {
-  textureLoad_5bb7fb();
+  prevent_dce.inner = textureLoad_5bb7fb();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out uvec4 prevent_dce_1;
+layout(binding = 0, rg32ui) uniform highp readonly uimage2D arg_0;
+uvec4 textureLoad_5bb7fb() {
+  uvec4 res = imageLoad(arg_0, ivec2(1, 0));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uvec4 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), uvec4(0u, 0u, 0u, 0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureLoad_5bb7fb();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureLoad/5dd4c7.wgsl b/test/tint/builtins/gen/literal/textureLoad/5dd4c7.wgsl
index 196f7c4..faee651 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5dd4c7.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5dd4c7.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
diff --git a/test/tint/builtins/gen/literal/textureLoad/5dd4c7.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/5dd4c7.wgsl.expected.glsl
index 4874408..570d582 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5dd4c7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5dd4c7.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp readonly image2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_5dd4c7() {
+layout(binding = 0, r8) uniform highp readonly image2D arg_0;
+vec4 textureLoad_5dd4c7() {
   vec4 res = imageLoad(arg_0, ivec2(1));
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureLoad_5dd4c7();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp readonly image2D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
-void textureLoad_5dd4c7() {
-  vec4 res = imageLoad(arg_0, ivec2(1));
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
 
 void fragment_main() {
-  textureLoad_5dd4c7();
+  prevent_dce.inner = textureLoad_5dd4c7();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp readonly image2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_5dd4c7() {
+layout(binding = 0, r8) uniform highp readonly image2D arg_0;
+vec4 textureLoad_5dd4c7() {
   vec4 res = imageLoad(arg_0, ivec2(1));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
 void compute_main() {
-  textureLoad_5dd4c7();
+  prevent_dce.inner = textureLoad_5dd4c7();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out vec4 prevent_dce_1;
+layout(binding = 0, r8) uniform highp readonly image2D arg_0;
+vec4 textureLoad_5dd4c7() {
+  vec4 res = imageLoad(arg_0, ivec2(1));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureLoad_5dd4c7();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureLoad/5ed6ad.wgsl b/test/tint/builtins/gen/literal/textureLoad/5ed6ad.wgsl
index 2a8cf82..64f7608 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5ed6ad.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5ed6ad.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
diff --git a/test/tint/builtins/gen/literal/textureLoad/5ed6ad.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/5ed6ad.wgsl.expected.glsl
index c5d0fc7..e0439e10 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5ed6ad.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5ed6ad.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp readonly image2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_5ed6ad() {
+layout(binding = 0, r8) uniform highp readonly image2DArray arg_0;
+vec4 textureLoad_5ed6ad() {
   vec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), 1u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureLoad_5ed6ad();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp readonly image2DArray arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
-void textureLoad_5ed6ad() {
-  vec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), 1u)));
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
 
 void fragment_main() {
-  textureLoad_5ed6ad();
+  prevent_dce.inner = textureLoad_5ed6ad();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp readonly image2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_5ed6ad() {
+layout(binding = 0, r8) uniform highp readonly image2DArray arg_0;
+vec4 textureLoad_5ed6ad() {
   vec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), 1u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
 void compute_main() {
-  textureLoad_5ed6ad();
+  prevent_dce.inner = textureLoad_5ed6ad();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out vec4 prevent_dce_1;
+layout(binding = 0, r8) uniform highp readonly image2DArray arg_0;
+vec4 textureLoad_5ed6ad() {
+  vec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), 1u)));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureLoad_5ed6ad();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureLoad/61e2e8.wgsl b/test/tint/builtins/gen/literal/textureLoad/61e2e8.wgsl
index 92cf18c..965ec5b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/61e2e8.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/61e2e8.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32sint, read_write>;
diff --git a/test/tint/builtins/gen/literal/textureLoad/620caa.wgsl b/test/tint/builtins/gen/literal/textureLoad/620caa.wgsl
index f88a2a1..2217d7a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/620caa.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/620caa.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32sint, read>;
diff --git a/test/tint/builtins/gen/literal/textureLoad/620caa.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/620caa.wgsl.expected.glsl
index 8fd06dc..862fa51 100644
--- a/test/tint/builtins/gen/literal/textureLoad/620caa.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/620caa.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp readonly iimage2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec4 inner;
 } prevent_dce;
 
-void textureLoad_620caa() {
+layout(binding = 0, rg32i) uniform highp readonly iimage2D arg_0;
+ivec4 textureLoad_620caa() {
   ivec4 res = imageLoad(arg_0, ivec2(uvec2(1u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureLoad_620caa();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp readonly iimage2D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
-void textureLoad_620caa() {
-  ivec4 res = imageLoad(arg_0, ivec2(uvec2(1u)));
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  ivec4 prevent_dce;
+};
 
 void fragment_main() {
-  textureLoad_620caa();
+  prevent_dce.inner = textureLoad_620caa();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp readonly iimage2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec4 inner;
 } prevent_dce;
 
-void textureLoad_620caa() {
+layout(binding = 0, rg32i) uniform highp readonly iimage2D arg_0;
+ivec4 textureLoad_620caa() {
   ivec4 res = imageLoad(arg_0, ivec2(uvec2(1u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  ivec4 prevent_dce;
+};
+
 void compute_main() {
-  textureLoad_620caa();
+  prevent_dce.inner = textureLoad_620caa();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out ivec4 prevent_dce_1;
+layout(binding = 0, rg32i) uniform highp readonly iimage2D arg_0;
+ivec4 textureLoad_620caa() {
+  ivec4 res = imageLoad(arg_0, ivec2(uvec2(1u)));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  ivec4 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), ivec4(0, 0, 0, 0));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureLoad_620caa();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureLoad/63be18.wgsl b/test/tint/builtins/gen/literal/textureLoad/63be18.wgsl
index 0e1f57ce..5d08ab7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/63be18.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/63be18.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32sint, read>;
diff --git a/test/tint/builtins/gen/literal/textureLoad/63be18.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/63be18.wgsl.expected.glsl
index c4484ea..eed68f6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/63be18.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/63be18.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp readonly iimage2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec4 inner;
 } prevent_dce;
 
-void textureLoad_63be18() {
+layout(binding = 0, rg32i) uniform highp readonly iimage2DArray arg_0;
+ivec4 textureLoad_63be18() {
   ivec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), 1u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureLoad_63be18();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp readonly iimage2DArray arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
-void textureLoad_63be18() {
-  ivec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), 1u)));
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  ivec4 prevent_dce;
+};
 
 void fragment_main() {
-  textureLoad_63be18();
+  prevent_dce.inner = textureLoad_63be18();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp readonly iimage2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec4 inner;
 } prevent_dce;
 
-void textureLoad_63be18() {
+layout(binding = 0, rg32i) uniform highp readonly iimage2DArray arg_0;
+ivec4 textureLoad_63be18() {
   ivec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), 1u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  ivec4 prevent_dce;
+};
+
 void compute_main() {
-  textureLoad_63be18();
+  prevent_dce.inner = textureLoad_63be18();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out ivec4 prevent_dce_1;
+layout(binding = 0, rg32i) uniform highp readonly iimage2DArray arg_0;
+ivec4 textureLoad_63be18() {
+  ivec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), 1u)));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  ivec4 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), ivec4(0, 0, 0, 0));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureLoad_63be18();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureLoad/6f0370.wgsl b/test/tint/builtins/gen/literal/textureLoad/6f0370.wgsl
index 2fd7e6b..d605957 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6f0370.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6f0370.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
diff --git a/test/tint/builtins/gen/literal/textureLoad/6f0370.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/6f0370.wgsl.expected.glsl
index a003fcd..f5cdf73 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6f0370.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6f0370.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp readonly image3D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_6f0370() {
+layout(binding = 0, r8) uniform highp readonly image3D arg_0;
+vec4 textureLoad_6f0370() {
   vec4 res = imageLoad(arg_0, ivec3(uvec3(1u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureLoad_6f0370();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp readonly image3D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
-void textureLoad_6f0370() {
-  vec4 res = imageLoad(arg_0, ivec3(uvec3(1u)));
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
 
 void fragment_main() {
-  textureLoad_6f0370();
+  prevent_dce.inner = textureLoad_6f0370();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp readonly image3D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_6f0370() {
+layout(binding = 0, r8) uniform highp readonly image3D arg_0;
+vec4 textureLoad_6f0370() {
   vec4 res = imageLoad(arg_0, ivec3(uvec3(1u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
 void compute_main() {
-  textureLoad_6f0370();
+  prevent_dce.inner = textureLoad_6f0370();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out vec4 prevent_dce_1;
+layout(binding = 0, r8) uniform highp readonly image3D arg_0;
+vec4 textureLoad_6f0370() {
+  vec4 res = imageLoad(arg_0, ivec3(uvec3(1u)));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureLoad_6f0370();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureLoad/72c9c3.wgsl b/test/tint/builtins/gen/literal/textureLoad/72c9c3.wgsl
index 4c10c00..a83e0e0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/72c9c3.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/72c9c3.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
diff --git a/test/tint/builtins/gen/literal/textureLoad/773c46.wgsl b/test/tint/builtins/gen/literal/textureLoad/773c46.wgsl
index afe6e84..6e7248d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/773c46.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/773c46.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32uint, read>;
diff --git a/test/tint/builtins/gen/literal/textureLoad/773c46.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/773c46.wgsl.expected.glsl
index d8c2d5f..f1c4237 100644
--- a/test/tint/builtins/gen/literal/textureLoad/773c46.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/773c46.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp readonly uimage2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec4 inner;
 } prevent_dce;
 
-void textureLoad_773c46() {
+layout(binding = 0, rg32ui) uniform highp readonly uimage2D arg_0;
+uvec4 textureLoad_773c46() {
   uvec4 res = imageLoad(arg_0, ivec2(uvec2(1u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureLoad_773c46();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp readonly uimage2D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
-void textureLoad_773c46() {
-  uvec4 res = imageLoad(arg_0, ivec2(uvec2(1u)));
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  uvec4 prevent_dce;
+};
 
 void fragment_main() {
-  textureLoad_773c46();
+  prevent_dce.inner = textureLoad_773c46();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp readonly uimage2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec4 inner;
 } prevent_dce;
 
-void textureLoad_773c46() {
+layout(binding = 0, rg32ui) uniform highp readonly uimage2D arg_0;
+uvec4 textureLoad_773c46() {
   uvec4 res = imageLoad(arg_0, ivec2(uvec2(1u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec4 prevent_dce;
+};
+
 void compute_main() {
-  textureLoad_773c46();
+  prevent_dce.inner = textureLoad_773c46();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out uvec4 prevent_dce_1;
+layout(binding = 0, rg32ui) uniform highp readonly uimage2D arg_0;
+uvec4 textureLoad_773c46() {
+  uvec4 res = imageLoad(arg_0, ivec2(uvec2(1u)));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uvec4 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), uvec4(0u, 0u, 0u, 0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureLoad_773c46();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureLoad/7dab57.wgsl b/test/tint/builtins/gen/literal/textureLoad/7dab57.wgsl
index 841c8c0..10438e4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7dab57.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/7dab57.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32sint, read>;
diff --git a/test/tint/builtins/gen/literal/textureLoad/7dab57.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/7dab57.wgsl.expected.glsl
index c1bca23..c1d71a5 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7dab57.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/7dab57.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp readonly iimage2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec4 inner;
 } prevent_dce;
 
-void textureLoad_7dab57() {
+layout(binding = 0, rg32i) uniform highp readonly iimage2DArray arg_0;
+ivec4 textureLoad_7dab57() {
   ivec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), uint(1))));
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureLoad_7dab57();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp readonly iimage2DArray arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
-void textureLoad_7dab57() {
-  ivec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), uint(1))));
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  ivec4 prevent_dce;
+};
 
 void fragment_main() {
-  textureLoad_7dab57();
+  prevent_dce.inner = textureLoad_7dab57();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp readonly iimage2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec4 inner;
 } prevent_dce;
 
-void textureLoad_7dab57() {
+layout(binding = 0, rg32i) uniform highp readonly iimage2DArray arg_0;
+ivec4 textureLoad_7dab57() {
   ivec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), uint(1))));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  ivec4 prevent_dce;
+};
+
 void compute_main() {
-  textureLoad_7dab57();
+  prevent_dce.inner = textureLoad_7dab57();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out ivec4 prevent_dce_1;
+layout(binding = 0, rg32i) uniform highp readonly iimage2DArray arg_0;
+ivec4 textureLoad_7dab57() {
+  ivec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), uint(1))));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  ivec4 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), ivec4(0, 0, 0, 0));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureLoad_7dab57();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureLoad/7dd3d5.wgsl b/test/tint/builtins/gen/literal/textureLoad/7dd3d5.wgsl
index a0a19df..a4b008c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7dd3d5.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/7dd3d5.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
diff --git a/test/tint/builtins/gen/literal/textureLoad/83162f.wgsl b/test/tint/builtins/gen/literal/textureLoad/83162f.wgsl
index e89b93c..6e501ee 100644
--- a/test/tint/builtins/gen/literal/textureLoad/83162f.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/83162f.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32float, read>;
diff --git a/test/tint/builtins/gen/literal/textureLoad/83162f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/83162f.wgsl.expected.glsl
index fc2e89e..cd97b2b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/83162f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/83162f.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp readonly image3D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_83162f() {
+layout(binding = 0, rg32f) uniform highp readonly image3D arg_0;
+vec4 textureLoad_83162f() {
   vec4 res = imageLoad(arg_0, ivec3(uvec3(1u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureLoad_83162f();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp readonly image3D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
-void textureLoad_83162f() {
-  vec4 res = imageLoad(arg_0, ivec3(uvec3(1u)));
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
 
 void fragment_main() {
-  textureLoad_83162f();
+  prevent_dce.inner = textureLoad_83162f();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp readonly image3D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_83162f() {
+layout(binding = 0, rg32f) uniform highp readonly image3D arg_0;
+vec4 textureLoad_83162f() {
   vec4 res = imageLoad(arg_0, ivec3(uvec3(1u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
 void compute_main() {
-  textureLoad_83162f();
+  prevent_dce.inner = textureLoad_83162f();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out vec4 prevent_dce_1;
+layout(binding = 0, rg32f) uniform highp readonly image3D arg_0;
+vec4 textureLoad_83162f() {
+  vec4 res = imageLoad(arg_0, ivec3(uvec3(1u)));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureLoad_83162f();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureLoad/881349.wgsl b/test/tint/builtins/gen/literal/textureLoad/881349.wgsl
index c8b2fcb..6bddf47 100644
--- a/test/tint/builtins/gen/literal/textureLoad/881349.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/881349.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32float, read_write>;
diff --git a/test/tint/builtins/gen/literal/textureLoad/8a9988.wgsl b/test/tint/builtins/gen/literal/textureLoad/8a9988.wgsl
index 57fd790..5332833 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8a9988.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8a9988.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32sint, read>;
diff --git a/test/tint/builtins/gen/literal/textureLoad/8a9988.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/8a9988.wgsl.expected.glsl
index d0d1095..80a5b9c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8a9988.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8a9988.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp readonly iimage3D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec4 inner;
 } prevent_dce;
 
-void textureLoad_8a9988() {
+layout(binding = 0, rg32i) uniform highp readonly iimage3D arg_0;
+ivec4 textureLoad_8a9988() {
   ivec4 res = imageLoad(arg_0, ivec3(uvec3(1u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureLoad_8a9988();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp readonly iimage3D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
-void textureLoad_8a9988() {
-  ivec4 res = imageLoad(arg_0, ivec3(uvec3(1u)));
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  ivec4 prevent_dce;
+};
 
 void fragment_main() {
-  textureLoad_8a9988();
+  prevent_dce.inner = textureLoad_8a9988();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp readonly iimage3D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec4 inner;
 } prevent_dce;
 
-void textureLoad_8a9988() {
+layout(binding = 0, rg32i) uniform highp readonly iimage3D arg_0;
+ivec4 textureLoad_8a9988() {
   ivec4 res = imageLoad(arg_0, ivec3(uvec3(1u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  ivec4 prevent_dce;
+};
+
 void compute_main() {
-  textureLoad_8a9988();
+  prevent_dce.inner = textureLoad_8a9988();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out ivec4 prevent_dce_1;
+layout(binding = 0, rg32i) uniform highp readonly iimage3D arg_0;
+ivec4 textureLoad_8a9988() {
+  ivec4 res = imageLoad(arg_0, ivec3(uvec3(1u)));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  ivec4 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), ivec4(0, 0, 0, 0));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureLoad_8a9988();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureLoad/8c6176.wgsl b/test/tint/builtins/gen/literal/textureLoad/8c6176.wgsl
index 1155aa7..ffeb07f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8c6176.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8c6176.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32uint, read_write>;
diff --git a/test/tint/builtins/gen/literal/textureLoad/8d64c3.wgsl b/test/tint/builtins/gen/literal/textureLoad/8d64c3.wgsl
index b2e927e..109878b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8d64c3.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8d64c3.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32uint, read_write>;
diff --git a/test/tint/builtins/gen/literal/textureLoad/8e5032.wgsl b/test/tint/builtins/gen/literal/textureLoad/8e5032.wgsl
index 142c70b..5439071 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8e5032.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8e5032.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32uint, read>;
diff --git a/test/tint/builtins/gen/literal/textureLoad/8e5032.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/8e5032.wgsl.expected.glsl
index f2d3e77..ac75b1d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8e5032.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8e5032.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp readonly uimage2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec4 inner;
 } prevent_dce;
 
-void textureLoad_8e5032() {
+layout(binding = 0, rg32ui) uniform highp readonly uimage2DArray arg_0;
+uvec4 textureLoad_8e5032() {
   uvec4 res = imageLoad(arg_0, ivec3(ivec2(1), 1));
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureLoad_8e5032();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp readonly uimage2DArray arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
-void textureLoad_8e5032() {
-  uvec4 res = imageLoad(arg_0, ivec3(ivec2(1), 1));
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  uvec4 prevent_dce;
+};
 
 void fragment_main() {
-  textureLoad_8e5032();
+  prevent_dce.inner = textureLoad_8e5032();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp readonly uimage2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec4 inner;
 } prevent_dce;
 
-void textureLoad_8e5032() {
+layout(binding = 0, rg32ui) uniform highp readonly uimage2DArray arg_0;
+uvec4 textureLoad_8e5032() {
   uvec4 res = imageLoad(arg_0, ivec3(ivec2(1), 1));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec4 prevent_dce;
+};
+
 void compute_main() {
-  textureLoad_8e5032();
+  prevent_dce.inner = textureLoad_8e5032();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out uvec4 prevent_dce_1;
+layout(binding = 0, rg32ui) uniform highp readonly uimage2DArray arg_0;
+uvec4 textureLoad_8e5032() {
+  uvec4 res = imageLoad(arg_0, ivec3(ivec2(1), 1));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uvec4 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), uvec4(0u, 0u, 0u, 0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureLoad_8e5032();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureLoad/91ede5.wgsl b/test/tint/builtins/gen/literal/textureLoad/91ede5.wgsl
index e95e116..01d9a48 100644
--- a/test/tint/builtins/gen/literal/textureLoad/91ede5.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/91ede5.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32float, read_write>;
diff --git a/test/tint/builtins/gen/literal/textureLoad/92dd61.wgsl b/test/tint/builtins/gen/literal/textureLoad/92dd61.wgsl
index be1e486..489f40a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/92dd61.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/92dd61.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
diff --git a/test/tint/builtins/gen/literal/textureLoad/947107.wgsl b/test/tint/builtins/gen/literal/textureLoad/947107.wgsl
index b7e1de3..2821385 100644
--- a/test/tint/builtins/gen/literal/textureLoad/947107.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/947107.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
diff --git a/test/tint/builtins/gen/literal/textureLoad/947107.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/947107.wgsl.expected.glsl
index 60d4fc5..6357280 100644
--- a/test/tint/builtins/gen/literal/textureLoad/947107.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/947107.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp readonly image2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_947107() {
+layout(binding = 0, r8) uniform highp readonly image2D arg_0;
+vec4 textureLoad_947107() {
   vec4 res = imageLoad(arg_0, ivec2(1, 0));
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureLoad_947107();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp readonly image2D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
-void textureLoad_947107() {
-  vec4 res = imageLoad(arg_0, ivec2(1, 0));
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
 
 void fragment_main() {
-  textureLoad_947107();
+  prevent_dce.inner = textureLoad_947107();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp readonly image2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_947107() {
+layout(binding = 0, r8) uniform highp readonly image2D arg_0;
+vec4 textureLoad_947107() {
   vec4 res = imageLoad(arg_0, ivec2(1, 0));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
 void compute_main() {
-  textureLoad_947107();
+  prevent_dce.inner = textureLoad_947107();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out vec4 prevent_dce_1;
+layout(binding = 0, r8) uniform highp readonly image2D arg_0;
+vec4 textureLoad_947107() {
+  vec4 res = imageLoad(arg_0, ivec2(1, 0));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureLoad_947107();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureLoad/99d8fa.wgsl b/test/tint/builtins/gen/literal/textureLoad/99d8fa.wgsl
index ef9b656..90ee212 100644
--- a/test/tint/builtins/gen/literal/textureLoad/99d8fa.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/99d8fa.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
diff --git a/test/tint/builtins/gen/literal/textureLoad/9c2a14.wgsl b/test/tint/builtins/gen/literal/textureLoad/9c2a14.wgsl
index 761509a..a1c1802 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9c2a14.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9c2a14.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32float, read>;
diff --git a/test/tint/builtins/gen/literal/textureLoad/9c2a14.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/9c2a14.wgsl.expected.glsl
index 9256906..41c93c9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9c2a14.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9c2a14.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp readonly image2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_9c2a14() {
+layout(binding = 0, rg32f) uniform highp readonly image2D arg_0;
+vec4 textureLoad_9c2a14() {
   vec4 res = imageLoad(arg_0, ivec2(1));
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureLoad_9c2a14();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp readonly image2D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
-void textureLoad_9c2a14() {
-  vec4 res = imageLoad(arg_0, ivec2(1));
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
 
 void fragment_main() {
-  textureLoad_9c2a14();
+  prevent_dce.inner = textureLoad_9c2a14();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp readonly image2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_9c2a14() {
+layout(binding = 0, rg32f) uniform highp readonly image2D arg_0;
+vec4 textureLoad_9c2a14() {
   vec4 res = imageLoad(arg_0, ivec2(1));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
 void compute_main() {
-  textureLoad_9c2a14();
+  prevent_dce.inner = textureLoad_9c2a14();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out vec4 prevent_dce_1;
+layout(binding = 0, rg32f) uniform highp readonly image2D arg_0;
+vec4 textureLoad_9c2a14() {
+  vec4 res = imageLoad(arg_0, ivec2(1));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureLoad_9c2a14();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureLoad/9cf7df.wgsl b/test/tint/builtins/gen/literal/textureLoad/9cf7df.wgsl
index 81a02ff..dd123e1 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9cf7df.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9cf7df.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32sint, read>;
diff --git a/test/tint/builtins/gen/literal/textureLoad/9cf7df.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/9cf7df.wgsl.expected.glsl
index b2333b1..0e26678 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9cf7df.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9cf7df.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp readonly iimage2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec4 inner;
 } prevent_dce;
 
-void textureLoad_9cf7df() {
+layout(binding = 0, rg32i) uniform highp readonly iimage2DArray arg_0;
+ivec4 textureLoad_9cf7df() {
   ivec4 res = imageLoad(arg_0, ivec3(ivec2(1), int(1u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureLoad_9cf7df();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp readonly iimage2DArray arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
-void textureLoad_9cf7df() {
-  ivec4 res = imageLoad(arg_0, ivec3(ivec2(1), int(1u)));
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  ivec4 prevent_dce;
+};
 
 void fragment_main() {
-  textureLoad_9cf7df();
+  prevent_dce.inner = textureLoad_9cf7df();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp readonly iimage2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec4 inner;
 } prevent_dce;
 
-void textureLoad_9cf7df() {
+layout(binding = 0, rg32i) uniform highp readonly iimage2DArray arg_0;
+ivec4 textureLoad_9cf7df() {
   ivec4 res = imageLoad(arg_0, ivec3(ivec2(1), int(1u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  ivec4 prevent_dce;
+};
+
 void compute_main() {
-  textureLoad_9cf7df();
+  prevent_dce.inner = textureLoad_9cf7df();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out ivec4 prevent_dce_1;
+layout(binding = 0, rg32i) uniform highp readonly iimage2DArray arg_0;
+ivec4 textureLoad_9cf7df() {
+  ivec4 res = imageLoad(arg_0, ivec3(ivec2(1), int(1u)));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  ivec4 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), ivec4(0, 0, 0, 0));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureLoad_9cf7df();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureLoad/a5c4e2.wgsl b/test/tint/builtins/gen/literal/textureLoad/a5c4e2.wgsl
index f5f6407..fcf83b3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a5c4e2.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a5c4e2.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32uint, read_write>;
diff --git a/test/tint/builtins/gen/literal/textureLoad/aa6130.wgsl b/test/tint/builtins/gen/literal/textureLoad/aa6130.wgsl
index 538d1f3..cfcf54f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/aa6130.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/aa6130.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32sint, read_write>;
diff --git a/test/tint/builtins/gen/literal/textureLoad/af0507.wgsl b/test/tint/builtins/gen/literal/textureLoad/af0507.wgsl
index ce08d14..f13255b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/af0507.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/af0507.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32float, read_write>;
diff --git a/test/tint/builtins/gen/literal/textureLoad/b1ca35.wgsl b/test/tint/builtins/gen/literal/textureLoad/b1ca35.wgsl
index 9a1939d..56cbca4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b1ca35.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b1ca35.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32sint, read_write>;
diff --git a/test/tint/builtins/gen/literal/textureLoad/b4d6c4.wgsl b/test/tint/builtins/gen/literal/textureLoad/b4d6c4.wgsl
index 9cb386c..5bff3ed 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b4d6c4.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b4d6c4.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32float, read_write>;
diff --git a/test/tint/builtins/gen/literal/textureLoad/bba04a.wgsl b/test/tint/builtins/gen/literal/textureLoad/bba04a.wgsl
index eaab860..426572b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/bba04a.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/bba04a.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32uint, read_write>;
diff --git a/test/tint/builtins/gen/literal/textureLoad/bc882d.wgsl b/test/tint/builtins/gen/literal/textureLoad/bc882d.wgsl
index ad6195f..45ecafc 100644
--- a/test/tint/builtins/gen/literal/textureLoad/bc882d.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/bc882d.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
diff --git a/test/tint/builtins/gen/literal/textureLoad/bdc67a.wgsl b/test/tint/builtins/gen/literal/textureLoad/bdc67a.wgsl
index c9eaba7..fbd63a3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/bdc67a.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/bdc67a.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32float, read_write>;
diff --git a/test/tint/builtins/gen/literal/textureLoad/c8ed19.wgsl b/test/tint/builtins/gen/literal/textureLoad/c8ed19.wgsl
index b57dd4d..a6404da 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c8ed19.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c8ed19.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32uint, read>;
diff --git a/test/tint/builtins/gen/literal/textureLoad/c8ed19.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/c8ed19.wgsl.expected.glsl
index 3fe0918..e09661c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c8ed19.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c8ed19.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp readonly uimage2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec4 inner;
 } prevent_dce;
 
-void textureLoad_c8ed19() {
+layout(binding = 0, rg32ui) uniform highp readonly uimage2DArray arg_0;
+uvec4 textureLoad_c8ed19() {
   uvec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), 1u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureLoad_c8ed19();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp readonly uimage2DArray arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
-void textureLoad_c8ed19() {
-  uvec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), 1u)));
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  uvec4 prevent_dce;
+};
 
 void fragment_main() {
-  textureLoad_c8ed19();
+  prevent_dce.inner = textureLoad_c8ed19();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp readonly uimage2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec4 inner;
 } prevent_dce;
 
-void textureLoad_c8ed19() {
+layout(binding = 0, rg32ui) uniform highp readonly uimage2DArray arg_0;
+uvec4 textureLoad_c8ed19() {
   uvec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), 1u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec4 prevent_dce;
+};
+
 void compute_main() {
-  textureLoad_c8ed19();
+  prevent_dce.inner = textureLoad_c8ed19();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out uvec4 prevent_dce_1;
+layout(binding = 0, rg32ui) uniform highp readonly uimage2DArray arg_0;
+uvec4 textureLoad_c8ed19() {
+  uvec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), 1u)));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uvec4 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), uvec4(0u, 0u, 0u, 0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureLoad_c8ed19();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureLoad/cdccd2.wgsl b/test/tint/builtins/gen/literal/textureLoad/cdccd2.wgsl
index 637e6b3..bfb2adb 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cdccd2.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/cdccd2.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32uint, read_write>;
diff --git a/test/tint/builtins/gen/literal/textureLoad/cece6c.wgsl b/test/tint/builtins/gen/literal/textureLoad/cece6c.wgsl
index 8287664..89aeae0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cece6c.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/cece6c.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
diff --git a/test/tint/builtins/gen/literal/textureLoad/cece6c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/cece6c.wgsl.expected.glsl
index 3ee6489..737ae39 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cece6c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/cece6c.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp readonly image3D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_cece6c() {
+layout(binding = 0, r8) uniform highp readonly image3D arg_0;
+vec4 textureLoad_cece6c() {
   vec4 res = imageLoad(arg_0, ivec3(1));
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureLoad_cece6c();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp readonly image3D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
-void textureLoad_cece6c() {
-  vec4 res = imageLoad(arg_0, ivec3(1));
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
 
 void fragment_main() {
-  textureLoad_cece6c();
+  prevent_dce.inner = textureLoad_cece6c();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp readonly image3D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_cece6c() {
+layout(binding = 0, r8) uniform highp readonly image3D arg_0;
+vec4 textureLoad_cece6c() {
   vec4 res = imageLoad(arg_0, ivec3(1));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
 void compute_main() {
-  textureLoad_cece6c();
+  prevent_dce.inner = textureLoad_cece6c();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out vec4 prevent_dce_1;
+layout(binding = 0, r8) uniform highp readonly image3D arg_0;
+vec4 textureLoad_cece6c() {
+  vec4 res = imageLoad(arg_0, ivec3(1));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureLoad_cece6c();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureLoad/d0e351.wgsl b/test/tint/builtins/gen/literal/textureLoad/d0e351.wgsl
index 5e5e203..f41043b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d0e351.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d0e351.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32uint, read_write>;
diff --git a/test/tint/builtins/gen/literal/textureLoad/d41c72.wgsl b/test/tint/builtins/gen/literal/textureLoad/d41c72.wgsl
index 78477dc..1754bdc 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d41c72.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d41c72.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32sint, read_write>;
diff --git a/test/tint/builtins/gen/literal/textureLoad/d81c57.wgsl b/test/tint/builtins/gen/literal/textureLoad/d81c57.wgsl
index 8c0f62f..98fccfa 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d81c57.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d81c57.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32float, read>;
diff --git a/test/tint/builtins/gen/literal/textureLoad/d81c57.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/d81c57.wgsl.expected.glsl
index 08f8875..1dac10e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d81c57.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d81c57.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp readonly image2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_d81c57() {
+layout(binding = 0, rg32f) uniform highp readonly image2D arg_0;
+vec4 textureLoad_d81c57() {
   vec4 res = imageLoad(arg_0, ivec2(1, 0));
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureLoad_d81c57();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp readonly image2D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
-void textureLoad_d81c57() {
-  vec4 res = imageLoad(arg_0, ivec2(1, 0));
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
 
 void fragment_main() {
-  textureLoad_d81c57();
+  prevent_dce.inner = textureLoad_d81c57();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp readonly image2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_d81c57() {
+layout(binding = 0, rg32f) uniform highp readonly image2D arg_0;
+vec4 textureLoad_d81c57() {
   vec4 res = imageLoad(arg_0, ivec2(1, 0));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
 void compute_main() {
-  textureLoad_d81c57();
+  prevent_dce.inner = textureLoad_d81c57();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out vec4 prevent_dce_1;
+layout(binding = 0, rg32f) uniform highp readonly image2D arg_0;
+vec4 textureLoad_d81c57() {
+  vec4 res = imageLoad(arg_0, ivec2(1, 0));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureLoad_d81c57();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureLoad/d8617f.wgsl b/test/tint/builtins/gen/literal/textureLoad/d8617f.wgsl
index ca817a4..3ecaa6e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d8617f.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d8617f.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32sint, read>;
diff --git a/test/tint/builtins/gen/literal/textureLoad/d8617f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/d8617f.wgsl.expected.glsl
index 4ae6bc1..a7fd301 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d8617f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d8617f.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp readonly iimage2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec4 inner;
 } prevent_dce;
 
-void textureLoad_d8617f() {
+layout(binding = 0, rg32i) uniform highp readonly iimage2DArray arg_0;
+ivec4 textureLoad_d8617f() {
   ivec4 res = imageLoad(arg_0, ivec3(ivec2(1), 1));
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureLoad_d8617f();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp readonly iimage2DArray arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
-void textureLoad_d8617f() {
-  ivec4 res = imageLoad(arg_0, ivec3(ivec2(1), 1));
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  ivec4 prevent_dce;
+};
 
 void fragment_main() {
-  textureLoad_d8617f();
+  prevent_dce.inner = textureLoad_d8617f();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp readonly iimage2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec4 inner;
 } prevent_dce;
 
-void textureLoad_d8617f() {
+layout(binding = 0, rg32i) uniform highp readonly iimage2DArray arg_0;
+ivec4 textureLoad_d8617f() {
   ivec4 res = imageLoad(arg_0, ivec3(ivec2(1), 1));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  ivec4 prevent_dce;
+};
+
 void compute_main() {
-  textureLoad_d8617f();
+  prevent_dce.inner = textureLoad_d8617f();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out ivec4 prevent_dce_1;
+layout(binding = 0, rg32i) uniform highp readonly iimage2DArray arg_0;
+ivec4 textureLoad_d8617f() {
+  ivec4 res = imageLoad(arg_0, ivec3(ivec2(1), 1));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  ivec4 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), ivec4(0, 0, 0, 0));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureLoad_d8617f();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureLoad/dd8776.wgsl b/test/tint/builtins/gen/literal/textureLoad/dd8776.wgsl
index 45085ff..ce65b49 100644
--- a/test/tint/builtins/gen/literal/textureLoad/dd8776.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/dd8776.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32float, read>;
diff --git a/test/tint/builtins/gen/literal/textureLoad/dd8776.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/dd8776.wgsl.expected.glsl
index 69a36e9..bf13a50 100644
--- a/test/tint/builtins/gen/literal/textureLoad/dd8776.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/dd8776.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp readonly image2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_dd8776() {
+layout(binding = 0, rg32f) uniform highp readonly image2DArray arg_0;
+vec4 textureLoad_dd8776() {
   vec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), 1u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureLoad_dd8776();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp readonly image2DArray arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
-void textureLoad_dd8776() {
-  vec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), 1u)));
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
 
 void fragment_main() {
-  textureLoad_dd8776();
+  prevent_dce.inner = textureLoad_dd8776();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp readonly image2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_dd8776() {
+layout(binding = 0, rg32f) uniform highp readonly image2DArray arg_0;
+vec4 textureLoad_dd8776() {
   vec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), 1u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
 void compute_main() {
-  textureLoad_dd8776();
+  prevent_dce.inner = textureLoad_dd8776();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out vec4 prevent_dce_1;
+layout(binding = 0, rg32f) uniform highp readonly image2DArray arg_0;
+vec4 textureLoad_dd8776() {
+  vec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), 1u)));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureLoad_dd8776();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureLoad/defd9a.wgsl b/test/tint/builtins/gen/literal/textureLoad/defd9a.wgsl
index 6403194..9c71915 100644
--- a/test/tint/builtins/gen/literal/textureLoad/defd9a.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/defd9a.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32float, read_write>;
diff --git a/test/tint/builtins/gen/literal/textureLoad/e2b3a1.wgsl b/test/tint/builtins/gen/literal/textureLoad/e2b3a1.wgsl
index 62d6af9..f8f9147 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e2b3a1.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e2b3a1.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32sint, read_write>;
diff --git a/test/tint/builtins/gen/literal/textureLoad/e4051a.wgsl b/test/tint/builtins/gen/literal/textureLoad/e4051a.wgsl
index 9d43ded..e2670fd 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e4051a.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e4051a.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
diff --git a/test/tint/builtins/gen/literal/textureLoad/e59fdf.wgsl b/test/tint/builtins/gen/literal/textureLoad/e59fdf.wgsl
index 5db10fd..d11bf9d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e59fdf.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e59fdf.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32uint, read>;
diff --git a/test/tint/builtins/gen/literal/textureLoad/e59fdf.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/e59fdf.wgsl.expected.glsl
index 59abca0..4334aee 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e59fdf.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e59fdf.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp readonly uimage3D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec4 inner;
 } prevent_dce;
 
-void textureLoad_e59fdf() {
+layout(binding = 0, rg32ui) uniform highp readonly uimage3D arg_0;
+uvec4 textureLoad_e59fdf() {
   uvec4 res = imageLoad(arg_0, ivec3(uvec3(1u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureLoad_e59fdf();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp readonly uimage3D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
-void textureLoad_e59fdf() {
-  uvec4 res = imageLoad(arg_0, ivec3(uvec3(1u)));
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  uvec4 prevent_dce;
+};
 
 void fragment_main() {
-  textureLoad_e59fdf();
+  prevent_dce.inner = textureLoad_e59fdf();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp readonly uimage3D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec4 inner;
 } prevent_dce;
 
-void textureLoad_e59fdf() {
+layout(binding = 0, rg32ui) uniform highp readonly uimage3D arg_0;
+uvec4 textureLoad_e59fdf() {
   uvec4 res = imageLoad(arg_0, ivec3(uvec3(1u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec4 prevent_dce;
+};
+
 void compute_main() {
-  textureLoad_e59fdf();
+  prevent_dce.inner = textureLoad_e59fdf();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out uvec4 prevent_dce_1;
+layout(binding = 0, rg32ui) uniform highp readonly uimage3D arg_0;
+uvec4 textureLoad_e59fdf() {
+  uvec4 res = imageLoad(arg_0, ivec3(uvec3(1u)));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uvec4 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), uvec4(0u, 0u, 0u, 0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureLoad_e59fdf();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureLoad/e65916.wgsl b/test/tint/builtins/gen/literal/textureLoad/e65916.wgsl
index b9725fe..8c967f7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e65916.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e65916.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32sint, read>;
diff --git a/test/tint/builtins/gen/literal/textureLoad/e65916.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/e65916.wgsl.expected.glsl
index b4eca5a..a8dc2f4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e65916.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e65916.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp readonly iimage3D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec4 inner;
 } prevent_dce;
 
-void textureLoad_e65916() {
+layout(binding = 0, rg32i) uniform highp readonly iimage3D arg_0;
+ivec4 textureLoad_e65916() {
   ivec4 res = imageLoad(arg_0, ivec3(1));
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureLoad_e65916();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp readonly iimage3D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
-void textureLoad_e65916() {
-  ivec4 res = imageLoad(arg_0, ivec3(1));
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  ivec4 prevent_dce;
+};
 
 void fragment_main() {
-  textureLoad_e65916();
+  prevent_dce.inner = textureLoad_e65916();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp readonly iimage3D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec4 inner;
 } prevent_dce;
 
-void textureLoad_e65916() {
+layout(binding = 0, rg32i) uniform highp readonly iimage3D arg_0;
+ivec4 textureLoad_e65916() {
   ivec4 res = imageLoad(arg_0, ivec3(1));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  ivec4 prevent_dce;
+};
+
 void compute_main() {
-  textureLoad_e65916();
+  prevent_dce.inner = textureLoad_e65916();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out ivec4 prevent_dce_1;
+layout(binding = 0, rg32i) uniform highp readonly iimage3D arg_0;
+ivec4 textureLoad_e65916() {
+  ivec4 res = imageLoad(arg_0, ivec3(1));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  ivec4 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), ivec4(0, 0, 0, 0));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureLoad_e65916();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureLoad/ed55a8.wgsl b/test/tint/builtins/gen/literal/textureLoad/ed55a8.wgsl
index f2a6628..dec17e4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ed55a8.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ed55a8.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32sint, read_write>;
diff --git a/test/tint/builtins/gen/literal/textureLoad/eecf7d.wgsl b/test/tint/builtins/gen/literal/textureLoad/eecf7d.wgsl
index 2e963c7..ea1c35a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/eecf7d.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/eecf7d.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32uint, read>;
diff --git a/test/tint/builtins/gen/literal/textureLoad/eecf7d.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/eecf7d.wgsl.expected.glsl
index 8e7093b..b5bdb17 100644
--- a/test/tint/builtins/gen/literal/textureLoad/eecf7d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/eecf7d.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp readonly uimage2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec4 inner;
 } prevent_dce;
 
-void textureLoad_eecf7d() {
+layout(binding = 0, rg32ui) uniform highp readonly uimage2DArray arg_0;
+uvec4 textureLoad_eecf7d() {
   uvec4 res = imageLoad(arg_0, ivec3(ivec2(1), int(1u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureLoad_eecf7d();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp readonly uimage2DArray arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
-void textureLoad_eecf7d() {
-  uvec4 res = imageLoad(arg_0, ivec3(ivec2(1), int(1u)));
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  uvec4 prevent_dce;
+};
 
 void fragment_main() {
-  textureLoad_eecf7d();
+  prevent_dce.inner = textureLoad_eecf7d();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp readonly uimage2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec4 inner;
 } prevent_dce;
 
-void textureLoad_eecf7d() {
+layout(binding = 0, rg32ui) uniform highp readonly uimage2DArray arg_0;
+uvec4 textureLoad_eecf7d() {
   uvec4 res = imageLoad(arg_0, ivec3(ivec2(1), int(1u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec4 prevent_dce;
+};
+
 void compute_main() {
-  textureLoad_eecf7d();
+  prevent_dce.inner = textureLoad_eecf7d();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out uvec4 prevent_dce_1;
+layout(binding = 0, rg32ui) uniform highp readonly uimage2DArray arg_0;
+uvec4 textureLoad_eecf7d() {
+  uvec4 res = imageLoad(arg_0, ivec3(ivec2(1), int(1u)));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uvec4 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), uvec4(0u, 0u, 0u, 0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureLoad_eecf7d();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureLoad/ef2ec3.wgsl b/test/tint/builtins/gen/literal/textureLoad/ef2ec3.wgsl
index cd334ad..1107c50 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ef2ec3.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ef2ec3.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32sint, read_write>;
diff --git a/test/tint/builtins/gen/literal/textureLoad/ef5405.wgsl b/test/tint/builtins/gen/literal/textureLoad/ef5405.wgsl
index 45a00a7..0383714 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ef5405.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ef5405.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32uint, read>;
diff --git a/test/tint/builtins/gen/literal/textureLoad/ef5405.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/ef5405.wgsl.expected.glsl
index 48ec922..204118f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ef5405.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ef5405.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp readonly uimage3D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec4 inner;
 } prevent_dce;
 
-void textureLoad_ef5405() {
+layout(binding = 0, rg32ui) uniform highp readonly uimage3D arg_0;
+uvec4 textureLoad_ef5405() {
   uvec4 res = imageLoad(arg_0, ivec3(1));
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureLoad_ef5405();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp readonly uimage3D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
-void textureLoad_ef5405() {
-  uvec4 res = imageLoad(arg_0, ivec3(1));
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  uvec4 prevent_dce;
+};
 
 void fragment_main() {
-  textureLoad_ef5405();
+  prevent_dce.inner = textureLoad_ef5405();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp readonly uimage3D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec4 inner;
 } prevent_dce;
 
-void textureLoad_ef5405() {
+layout(binding = 0, rg32ui) uniform highp readonly uimage3D arg_0;
+uvec4 textureLoad_ef5405() {
   uvec4 res = imageLoad(arg_0, ivec3(1));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec4 prevent_dce;
+};
+
 void compute_main() {
-  textureLoad_ef5405();
+  prevent_dce.inner = textureLoad_ef5405();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out uvec4 prevent_dce_1;
+layout(binding = 0, rg32ui) uniform highp readonly uimage3D arg_0;
+uvec4 textureLoad_ef5405() {
+  uvec4 res = imageLoad(arg_0, ivec3(1));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uvec4 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), uvec4(0u, 0u, 0u, 0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureLoad_ef5405();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureLoad/f2bdd4.wgsl b/test/tint/builtins/gen/literal/textureLoad/f2bdd4.wgsl
index ab88109..3ca1dc6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f2bdd4.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f2bdd4.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
diff --git a/test/tint/builtins/gen/literal/textureLoad/f5aee2.wgsl b/test/tint/builtins/gen/literal/textureLoad/f5aee2.wgsl
index 4469944..983d8e2 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f5aee2.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f5aee2.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
diff --git a/test/tint/builtins/gen/literal/textureLoad/f5aee2.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/f5aee2.wgsl.expected.glsl
index ca89409..aeca652 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f5aee2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f5aee2.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp readonly image2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_f5aee2() {
+layout(binding = 0, r8) uniform highp readonly image2D arg_0;
+vec4 textureLoad_f5aee2() {
   vec4 res = imageLoad(arg_0, ivec2(uvec2(1u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureLoad_f5aee2();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp readonly image2D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
-void textureLoad_f5aee2() {
-  vec4 res = imageLoad(arg_0, ivec2(uvec2(1u)));
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
 
 void fragment_main() {
-  textureLoad_f5aee2();
+  prevent_dce.inner = textureLoad_f5aee2();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp readonly image2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_f5aee2() {
+layout(binding = 0, r8) uniform highp readonly image2D arg_0;
+vec4 textureLoad_f5aee2() {
   vec4 res = imageLoad(arg_0, ivec2(uvec2(1u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
 void compute_main() {
-  textureLoad_f5aee2();
+  prevent_dce.inner = textureLoad_f5aee2();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out vec4 prevent_dce_1;
+layout(binding = 0, r8) uniform highp readonly image2D arg_0;
+vec4 textureLoad_f5aee2() {
+  vec4 res = imageLoad(arg_0, ivec2(uvec2(1u)));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureLoad_f5aee2();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureLoad/f74bd8.wgsl b/test/tint/builtins/gen/literal/textureLoad/f74bd8.wgsl
index 3df673b..967f36c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f74bd8.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f74bd8.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32float, read>;
diff --git a/test/tint/builtins/gen/literal/textureLoad/f74bd8.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/f74bd8.wgsl.expected.glsl
index 2dc4af1..a857443 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f74bd8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f74bd8.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp readonly image3D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_f74bd8() {
+layout(binding = 0, rg32f) uniform highp readonly image3D arg_0;
+vec4 textureLoad_f74bd8() {
   vec4 res = imageLoad(arg_0, ivec3(1));
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureLoad_f74bd8();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp readonly image3D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
-void textureLoad_f74bd8() {
-  vec4 res = imageLoad(arg_0, ivec3(1));
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
 
 void fragment_main() {
-  textureLoad_f74bd8();
+  prevent_dce.inner = textureLoad_f74bd8();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp readonly image3D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_f74bd8() {
+layout(binding = 0, rg32f) uniform highp readonly image3D arg_0;
+vec4 textureLoad_f74bd8() {
   vec4 res = imageLoad(arg_0, ivec3(1));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
 void compute_main() {
-  textureLoad_f74bd8();
+  prevent_dce.inner = textureLoad_f74bd8();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out vec4 prevent_dce_1;
+layout(binding = 0, rg32f) uniform highp readonly image3D arg_0;
+vec4 textureLoad_f74bd8() {
+  vec4 res = imageLoad(arg_0, ivec3(1));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureLoad_f74bd8();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/071ebc.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/071ebc.wgsl
index daa0621..338675b 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/071ebc.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/071ebc.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32uint, write>;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/071ebc.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/071ebc.wgsl.expected.glsl
index f4307a67..bbcc1c4 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/071ebc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/071ebc.wgsl.expected.glsl
@@ -1,80 +1,37 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureNumLayers_071ebc() {
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2DArray arg_0;
+uint textureNumLayers_071ebc() {
   uint res = uint(imageSize(arg_0).z);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureNumLayers_071ebc();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp writeonly uimage2DArray arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
-void textureNumLayers_071ebc() {
-  uint res = uint(imageSize(arg_0).z);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureNumLayers_071ebc();
+  prevent_dce.inner = textureNumLayers_071ebc();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureNumLayers_071ebc() {
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2DArray arg_0;
+uint textureNumLayers_071ebc() {
   uint res = uint(imageSize(arg_0).z);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureNumLayers_071ebc();
+  prevent_dce.inner = textureNumLayers_071ebc();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +39,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureNumLayers/071ebc.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureNumLayers/071ebc.wgsl.expected.ir.glsl
index c7310b2..4e584f8 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/071ebc.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/071ebc.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2DArray arg_0;
+uint textureNumLayers_071ebc() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_071ebc();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2DArray arg_0;
+uint textureNumLayers_071ebc() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureNumLayers_071ebc();
+}
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/17ccad.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/17ccad.wgsl
index f175533..b0dfc84 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/17ccad.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/17ccad.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32float, read_write>;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/17ccad.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/17ccad.wgsl.expected.glsl
index 5fb990b..f5b9bb6 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/17ccad.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/17ccad.wgsl.expected.glsl
@@ -1,80 +1,37 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureNumLayers_17ccad() {
+layout(binding = 0, rg32f) uniform highp writeonly image2DArray arg_0;
+uint textureNumLayers_17ccad() {
   uint res = uint(imageSize(arg_0).z);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureNumLayers_17ccad();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp writeonly image2DArray arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
-void textureNumLayers_17ccad() {
-  uint res = uint(imageSize(arg_0).z);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureNumLayers_17ccad();
+  prevent_dce.inner = textureNumLayers_17ccad();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureNumLayers_17ccad() {
+layout(binding = 0, rg32f) uniform highp writeonly image2DArray arg_0;
+uint textureNumLayers_17ccad() {
   uint res = uint(imageSize(arg_0).z);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureNumLayers_17ccad();
+  prevent_dce.inner = textureNumLayers_17ccad();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +39,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureNumLayers/24d572.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/24d572.wgsl
index aafb7a6..6813e87 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/24d572.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/24d572.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32uint, read_write>;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/24d572.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/24d572.wgsl.expected.glsl
index 2a5c2b9..e19a925 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/24d572.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/24d572.wgsl.expected.glsl
@@ -1,80 +1,37 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureNumLayers_24d572() {
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2DArray arg_0;
+uint textureNumLayers_24d572() {
   uint res = uint(imageSize(arg_0).z);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureNumLayers_24d572();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp writeonly uimage2DArray arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
-void textureNumLayers_24d572() {
-  uint res = uint(imageSize(arg_0).z);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureNumLayers_24d572();
+  prevent_dce.inner = textureNumLayers_24d572();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureNumLayers_24d572() {
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2DArray arg_0;
+uint textureNumLayers_24d572() {
   uint res = uint(imageSize(arg_0).z);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureNumLayers_24d572();
+  prevent_dce.inner = textureNumLayers_24d572();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +39,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureNumLayers/2d95ea.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/2d95ea.wgsl
index 191e63c..e9fece3 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/2d95ea.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/2d95ea.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32uint, read>;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/2d95ea.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/2d95ea.wgsl.expected.glsl
index 449c31b..0af6da6 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/2d95ea.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/2d95ea.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp readonly uimage2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureNumLayers_2d95ea() {
+layout(binding = 0, rg32ui) uniform highp readonly uimage2DArray arg_0;
+uint textureNumLayers_2d95ea() {
   uint res = uint(imageSize(arg_0).z);
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureNumLayers_2d95ea();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp readonly uimage2DArray arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
-void textureNumLayers_2d95ea() {
-  uint res = uint(imageSize(arg_0).z);
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
 
 void fragment_main() {
-  textureNumLayers_2d95ea();
+  prevent_dce.inner = textureNumLayers_2d95ea();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp readonly uimage2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureNumLayers_2d95ea() {
+layout(binding = 0, rg32ui) uniform highp readonly uimage2DArray arg_0;
+uint textureNumLayers_2d95ea() {
   uint res = uint(imageSize(arg_0).z);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
 void compute_main() {
-  textureNumLayers_2d95ea();
+  prevent_dce.inner = textureNumLayers_2d95ea();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out uint prevent_dce_1;
+layout(binding = 0, rg32ui) uniform highp readonly uimage2DArray arg_0;
+uint textureNumLayers_2d95ea() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), 0u);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureNumLayers_2d95ea();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/2d95ea.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureNumLayers/2d95ea.wgsl.expected.ir.glsl
index c7310b2..d576bac 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/2d95ea.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/2d95ea.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, rg32ui) uniform highp readonly uimage2DArray arg_0;
+uint textureNumLayers_2d95ea() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_2d95ea();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, rg32ui) uniform highp readonly uimage2DArray arg_0;
+uint textureNumLayers_2d95ea() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureNumLayers_2d95ea();
+}
+#version 460
+
+
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
+layout(binding = 0, rg32ui) uniform highp readonly uimage2DArray arg_0;
+layout(location = 0) flat out uint vertex_main_loc0_Output;
+uint textureNumLayers_2d95ea() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), 0u);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureNumLayers_2d95ea();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/34cefa.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/34cefa.wgsl
index d6334d8..6e726be 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/34cefa.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/34cefa.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
 
 @group(1) @binding(0) var arg_0: texture_cube_array<f32>;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/34cefa.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/34cefa.wgsl.expected.glsl
index fefaea1..ab4341e 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/34cefa.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/34cefa.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-uniform highp samplerCubeArray arg_0_1;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureNumLayers_34cefa() {
-  uint res = uint(textureSize(arg_0_1, 0).z);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureNumLayers_34cefa();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
 uniform highp samplerCubeArray arg_0_1;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
-void textureNumLayers_34cefa() {
+uint textureNumLayers_34cefa() {
   uint res = uint(textureSize(arg_0_1, 0).z);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
 void fragment_main() {
-  textureNumLayers_34cefa();
+  prevent_dce.inner = textureNumLayers_34cefa();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-uniform highp samplerCubeArray arg_0_1;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureNumLayers_34cefa() {
+uniform highp samplerCubeArray arg_0_1;
+uint textureNumLayers_34cefa() {
   uint res = uint(textureSize(arg_0_1, 0).z);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
 void compute_main() {
-  textureNumLayers_34cefa();
+  prevent_dce.inner = textureNumLayers_34cefa();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
+layout(location = 0) flat out uint prevent_dce_1;
+uniform highp samplerCubeArray arg_0_1;
+uint textureNumLayers_34cefa() {
+  uint res = uint(textureSize(arg_0_1, 0).z);
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), 0u);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureNumLayers_34cefa();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/34cefa.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureNumLayers/34cefa.wgsl.expected.ir.glsl
index c7310b2..123faa5 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/34cefa.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/34cefa.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+uniform highp samplerCubeArray arg_0;
+uint textureNumLayers_34cefa() {
+  uint res = uint(textureSize(arg_0, 0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_34cefa();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+uniform highp samplerCubeArray arg_0;
+uint textureNumLayers_34cefa() {
+  uint res = uint(textureSize(arg_0, 0).z);
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureNumLayers_34cefa();
+}
+#version 460
+
+
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
+uniform highp samplerCubeArray arg_0;
+layout(location = 0) flat out uint vertex_main_loc0_Output;
+uint textureNumLayers_34cefa() {
+  uint res = uint(textureSize(arg_0, 0).z);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), 0u);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureNumLayers_34cefa();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/3580ab.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/3580ab.wgsl
index 0a776b1..8d89765 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/3580ab.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/3580ab.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32sint, write>;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/3580ab.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/3580ab.wgsl.expected.glsl
index 91a14c6..827e229 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/3580ab.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/3580ab.wgsl.expected.glsl
@@ -1,80 +1,37 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureNumLayers_3580ab() {
+layout(binding = 0, rg32i) uniform highp writeonly iimage2DArray arg_0;
+uint textureNumLayers_3580ab() {
   uint res = uint(imageSize(arg_0).z);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureNumLayers_3580ab();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp writeonly iimage2DArray arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
-void textureNumLayers_3580ab() {
-  uint res = uint(imageSize(arg_0).z);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureNumLayers_3580ab();
+  prevent_dce.inner = textureNumLayers_3580ab();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureNumLayers_3580ab() {
+layout(binding = 0, rg32i) uniform highp writeonly iimage2DArray arg_0;
+uint textureNumLayers_3580ab() {
   uint res = uint(imageSize(arg_0).z);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureNumLayers_3580ab();
+  prevent_dce.inner = textureNumLayers_3580ab();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +39,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureNumLayers/3580ab.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureNumLayers/3580ab.wgsl.expected.ir.glsl
index c7310b2..4e1ffdc 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/3580ab.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/3580ab.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, rg32i) uniform highp writeonly iimage2DArray arg_0;
+uint textureNumLayers_3580ab() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_3580ab();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, rg32i) uniform highp writeonly iimage2DArray arg_0;
+uint textureNumLayers_3580ab() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureNumLayers_3580ab();
+}
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/48ef47.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/48ef47.wgsl
index b575761..bd50f0d 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/48ef47.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/48ef47.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
 
 @group(1) @binding(0) var arg_0: texture_depth_cube_array;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/48ef47.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/48ef47.wgsl.expected.glsl
index 2f19a4d..e0309de 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/48ef47.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/48ef47.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-uniform highp samplerCubeArray arg_0_1;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureNumLayers_48ef47() {
-  uint res = uint(textureSize(arg_0_1, 0).z);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureNumLayers_48ef47();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
 uniform highp samplerCubeArray arg_0_1;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
-void textureNumLayers_48ef47() {
+uint textureNumLayers_48ef47() {
   uint res = uint(textureSize(arg_0_1, 0).z);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
 void fragment_main() {
-  textureNumLayers_48ef47();
+  prevent_dce.inner = textureNumLayers_48ef47();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-uniform highp samplerCubeArray arg_0_1;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureNumLayers_48ef47() {
+uniform highp samplerCubeArray arg_0_1;
+uint textureNumLayers_48ef47() {
   uint res = uint(textureSize(arg_0_1, 0).z);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
 void compute_main() {
-  textureNumLayers_48ef47();
+  prevent_dce.inner = textureNumLayers_48ef47();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
+layout(location = 0) flat out uint prevent_dce_1;
+uniform highp samplerCubeArray arg_0_1;
+uint textureNumLayers_48ef47() {
+  uint res = uint(textureSize(arg_0_1, 0).z);
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), 0u);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureNumLayers_48ef47();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/48ef47.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureNumLayers/48ef47.wgsl.expected.ir.glsl
index c7310b2..2972baf 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/48ef47.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/48ef47.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+uniform highp samplerCubeArrayShadow arg_0;
+uint textureNumLayers_48ef47() {
+  uint res = uint(textureSize(arg_0, 0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_48ef47();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+uniform highp samplerCubeArrayShadow arg_0;
+uint textureNumLayers_48ef47() {
+  uint res = uint(textureSize(arg_0, 0).z);
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureNumLayers_48ef47();
+}
+#version 460
+
+
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
+uniform highp samplerCubeArrayShadow arg_0;
+layout(location = 0) flat out uint vertex_main_loc0_Output;
+uint textureNumLayers_48ef47() {
+  uint res = uint(textureSize(arg_0, 0).z);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), 0u);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureNumLayers_48ef47();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/59cc27.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/59cc27.wgsl
index 6a651ce..2c08347 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/59cc27.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/59cc27.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 
 @group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/59cc27.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/59cc27.wgsl.expected.glsl
index 54839d4..6a9daf8 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/59cc27.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/59cc27.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp readonly image2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureNumLayers_59cc27() {
+layout(binding = 0, r8) uniform highp readonly image2DArray arg_0;
+uint textureNumLayers_59cc27() {
   uint res = uint(imageSize(arg_0).z);
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureNumLayers_59cc27();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp readonly image2DArray arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
-void textureNumLayers_59cc27() {
-  uint res = uint(imageSize(arg_0).z);
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
 
 void fragment_main() {
-  textureNumLayers_59cc27();
+  prevent_dce.inner = textureNumLayers_59cc27();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp readonly image2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureNumLayers_59cc27() {
+layout(binding = 0, r8) uniform highp readonly image2DArray arg_0;
+uint textureNumLayers_59cc27() {
   uint res = uint(imageSize(arg_0).z);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
 void compute_main() {
-  textureNumLayers_59cc27();
+  prevent_dce.inner = textureNumLayers_59cc27();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out uint prevent_dce_1;
+layout(binding = 0, r8) uniform highp readonly image2DArray arg_0;
+uint textureNumLayers_59cc27() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), 0u);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureNumLayers_59cc27();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/59cc27.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureNumLayers/59cc27.wgsl.expected.ir.glsl
index c7310b2..fab7bd6 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/59cc27.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/59cc27.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, r8) uniform highp readonly image2DArray arg_0;
+uint textureNumLayers_59cc27() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_59cc27();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, r8) uniform highp readonly image2DArray arg_0;
+uint textureNumLayers_59cc27() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureNumLayers_59cc27();
+}
+#version 460
+
+
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
+layout(binding = 0, r8) uniform highp readonly image2DArray arg_0;
+layout(location = 0) flat out uint vertex_main_loc0_Output;
+uint textureNumLayers_59cc27() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), 0u);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureNumLayers_59cc27();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/622aa2.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/622aa2.wgsl
index 6f020cb..a69a069 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/622aa2.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/622aa2.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32sint, read_write>;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/622aa2.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/622aa2.wgsl.expected.glsl
index f5fcbd2..ad05818 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/622aa2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/622aa2.wgsl.expected.glsl
@@ -1,80 +1,37 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureNumLayers_622aa2() {
+layout(binding = 0, rg32i) uniform highp writeonly iimage2DArray arg_0;
+uint textureNumLayers_622aa2() {
   uint res = uint(imageSize(arg_0).z);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureNumLayers_622aa2();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp writeonly iimage2DArray arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
-void textureNumLayers_622aa2() {
-  uint res = uint(imageSize(arg_0).z);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureNumLayers_622aa2();
+  prevent_dce.inner = textureNumLayers_622aa2();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureNumLayers_622aa2() {
+layout(binding = 0, rg32i) uniform highp writeonly iimage2DArray arg_0;
+uint textureNumLayers_622aa2() {
   uint res = uint(imageSize(arg_0).z);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureNumLayers_622aa2();
+  prevent_dce.inner = textureNumLayers_622aa2();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +39,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureNumLayers/6b4321.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/6b4321.wgsl
index 5786afa..4c5b99d 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/6b4321.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/6b4321.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
 
 @group(1) @binding(0) var arg_0: texture_cube_array<i32>;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/6b4321.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/6b4321.wgsl.expected.glsl
index ce3296f..87eb908 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/6b4321.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/6b4321.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-uniform highp isamplerCubeArray arg_0_1;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureNumLayers_6b4321() {
-  uint res = uint(textureSize(arg_0_1, 0).z);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureNumLayers_6b4321();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'isamplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
 uniform highp isamplerCubeArray arg_0_1;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
-void textureNumLayers_6b4321() {
+uint textureNumLayers_6b4321() {
   uint res = uint(textureSize(arg_0_1, 0).z);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
 void fragment_main() {
-  textureNumLayers_6b4321();
+  prevent_dce.inner = textureNumLayers_6b4321();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'isamplerCubeArray' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-uniform highp isamplerCubeArray arg_0_1;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureNumLayers_6b4321() {
+uniform highp isamplerCubeArray arg_0_1;
+uint textureNumLayers_6b4321() {
   uint res = uint(textureSize(arg_0_1, 0).z);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
 void compute_main() {
-  textureNumLayers_6b4321();
+  prevent_dce.inner = textureNumLayers_6b4321();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'isamplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
+layout(location = 0) flat out uint prevent_dce_1;
+uniform highp isamplerCubeArray arg_0_1;
+uint textureNumLayers_6b4321() {
+  uint res = uint(textureSize(arg_0_1, 0).z);
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), 0u);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureNumLayers_6b4321();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/6b4321.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureNumLayers/6b4321.wgsl.expected.ir.glsl
index c7310b2..c884052 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/6b4321.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/6b4321.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+uniform highp isamplerCubeArray arg_0;
+uint textureNumLayers_6b4321() {
+  uint res = uint(textureSize(arg_0, 0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_6b4321();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+uniform highp isamplerCubeArray arg_0;
+uint textureNumLayers_6b4321() {
+  uint res = uint(textureSize(arg_0, 0).z);
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureNumLayers_6b4321();
+}
+#version 460
+
+
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
+uniform highp isamplerCubeArray arg_0;
+layout(location = 0) flat out uint vertex_main_loc0_Output;
+uint textureNumLayers_6b4321() {
+  uint res = uint(textureSize(arg_0, 0).z);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), 0u);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureNumLayers_6b4321();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/7f28cf.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/7f28cf.wgsl
index 064e334..4830637 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/7f28cf.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/7f28cf.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32float, write>;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/7f28cf.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/7f28cf.wgsl.expected.glsl
index dfe709b..7637f3a 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/7f28cf.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/7f28cf.wgsl.expected.glsl
@@ -1,80 +1,37 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureNumLayers_7f28cf() {
+layout(binding = 0, rg32f) uniform highp writeonly image2DArray arg_0;
+uint textureNumLayers_7f28cf() {
   uint res = uint(imageSize(arg_0).z);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureNumLayers_7f28cf();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp writeonly image2DArray arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
-void textureNumLayers_7f28cf() {
-  uint res = uint(imageSize(arg_0).z);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureNumLayers_7f28cf();
+  prevent_dce.inner = textureNumLayers_7f28cf();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureNumLayers_7f28cf() {
+layout(binding = 0, rg32f) uniform highp writeonly image2DArray arg_0;
+uint textureNumLayers_7f28cf() {
   uint res = uint(imageSize(arg_0).z);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureNumLayers_7f28cf();
+  prevent_dce.inner = textureNumLayers_7f28cf();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +39,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureNumLayers/7f28cf.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureNumLayers/7f28cf.wgsl.expected.ir.glsl
index c7310b2..668afa8 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/7f28cf.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/7f28cf.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, rg32f) uniform highp writeonly image2DArray arg_0;
+uint textureNumLayers_7f28cf() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_7f28cf();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, rg32f) uniform highp writeonly image2DArray arg_0;
+uint textureNumLayers_7f28cf() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureNumLayers_7f28cf();
+}
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/8356f7.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/8356f7.wgsl
index 37e39e5..e1dee66 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/8356f7.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/8356f7.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 
 @group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/8356f7.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/8356f7.wgsl.expected.glsl
index 76782d9..15d7299 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/8356f7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/8356f7.wgsl.expected.glsl
@@ -1,80 +1,37 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp writeonly image2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureNumLayers_8356f7() {
+layout(binding = 0, r8) uniform highp writeonly image2DArray arg_0;
+uint textureNumLayers_8356f7() {
   uint res = uint(imageSize(arg_0).z);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureNumLayers_8356f7();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp writeonly image2DArray arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
-void textureNumLayers_8356f7() {
-  uint res = uint(imageSize(arg_0).z);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureNumLayers_8356f7();
+  prevent_dce.inner = textureNumLayers_8356f7();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp writeonly image2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureNumLayers_8356f7() {
+layout(binding = 0, r8) uniform highp writeonly image2DArray arg_0;
+uint textureNumLayers_8356f7() {
   uint res = uint(imageSize(arg_0).z);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureNumLayers_8356f7();
+  prevent_dce.inner = textureNumLayers_8356f7();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +39,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureNumLayers/8356f7.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureNumLayers/8356f7.wgsl.expected.ir.glsl
index c7310b2..db0e190 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/8356f7.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/8356f7.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, r8) uniform highp writeonly image2DArray arg_0;
+uint textureNumLayers_8356f7() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_8356f7();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, r8) uniform highp writeonly image2DArray arg_0;
+uint textureNumLayers_8356f7() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureNumLayers_8356f7();
+}
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/90b8cc.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/90b8cc.wgsl
index adcb962..9ce04d9 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/90b8cc.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/90b8cc.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32float, read>;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/90b8cc.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/90b8cc.wgsl.expected.glsl
index 8125766..777c68d 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/90b8cc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/90b8cc.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp readonly image2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureNumLayers_90b8cc() {
+layout(binding = 0, rg32f) uniform highp readonly image2DArray arg_0;
+uint textureNumLayers_90b8cc() {
   uint res = uint(imageSize(arg_0).z);
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureNumLayers_90b8cc();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp readonly image2DArray arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
-void textureNumLayers_90b8cc() {
-  uint res = uint(imageSize(arg_0).z);
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
 
 void fragment_main() {
-  textureNumLayers_90b8cc();
+  prevent_dce.inner = textureNumLayers_90b8cc();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp readonly image2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureNumLayers_90b8cc() {
+layout(binding = 0, rg32f) uniform highp readonly image2DArray arg_0;
+uint textureNumLayers_90b8cc() {
   uint res = uint(imageSize(arg_0).z);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
 void compute_main() {
-  textureNumLayers_90b8cc();
+  prevent_dce.inner = textureNumLayers_90b8cc();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out uint prevent_dce_1;
+layout(binding = 0, rg32f) uniform highp readonly image2DArray arg_0;
+uint textureNumLayers_90b8cc() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), 0u);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureNumLayers_90b8cc();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/90b8cc.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureNumLayers/90b8cc.wgsl.expected.ir.glsl
index c7310b2..5ebeb79 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/90b8cc.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/90b8cc.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, rg32f) uniform highp readonly image2DArray arg_0;
+uint textureNumLayers_90b8cc() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_90b8cc();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, rg32f) uniform highp readonly image2DArray arg_0;
+uint textureNumLayers_90b8cc() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureNumLayers_90b8cc();
+}
+#version 460
+
+
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
+layout(binding = 0, rg32f) uniform highp readonly image2DArray arg_0;
+layout(location = 0) flat out uint vertex_main_loc0_Output;
+uint textureNumLayers_90b8cc() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), 0u);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureNumLayers_90b8cc();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/aac630.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/aac630.wgsl
index 4fa8c85..3fbb361 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/aac630.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/aac630.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 
 @group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/aac630.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/aac630.wgsl.expected.glsl
index 2853882..8679ddd 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/aac630.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/aac630.wgsl.expected.glsl
@@ -1,80 +1,37 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp writeonly image2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureNumLayers_aac630() {
+layout(binding = 0, r8) uniform highp writeonly image2DArray arg_0;
+uint textureNumLayers_aac630() {
   uint res = uint(imageSize(arg_0).z);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureNumLayers_aac630();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp writeonly image2DArray arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
-void textureNumLayers_aac630() {
-  uint res = uint(imageSize(arg_0).z);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureNumLayers_aac630();
+  prevent_dce.inner = textureNumLayers_aac630();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp writeonly image2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureNumLayers_aac630() {
+layout(binding = 0, r8) uniform highp writeonly image2DArray arg_0;
+uint textureNumLayers_aac630() {
   uint res = uint(imageSize(arg_0).z);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureNumLayers_aac630();
+  prevent_dce.inner = textureNumLayers_aac630();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +39,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureNumLayers/bf2f76.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/bf2f76.wgsl
index c6ba9a1..f5a056c 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/bf2f76.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/bf2f76.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32sint, read>;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/bf2f76.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/bf2f76.wgsl.expected.glsl
index 86fd086..aa72402 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/bf2f76.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/bf2f76.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp readonly iimage2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureNumLayers_bf2f76() {
+layout(binding = 0, rg32i) uniform highp readonly iimage2DArray arg_0;
+uint textureNumLayers_bf2f76() {
   uint res = uint(imageSize(arg_0).z);
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureNumLayers_bf2f76();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp readonly iimage2DArray arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
-void textureNumLayers_bf2f76() {
-  uint res = uint(imageSize(arg_0).z);
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
 
 void fragment_main() {
-  textureNumLayers_bf2f76();
+  prevent_dce.inner = textureNumLayers_bf2f76();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp readonly iimage2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureNumLayers_bf2f76() {
+layout(binding = 0, rg32i) uniform highp readonly iimage2DArray arg_0;
+uint textureNumLayers_bf2f76() {
   uint res = uint(imageSize(arg_0).z);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
 void compute_main() {
-  textureNumLayers_bf2f76();
+  prevent_dce.inner = textureNumLayers_bf2f76();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out uint prevent_dce_1;
+layout(binding = 0, rg32i) uniform highp readonly iimage2DArray arg_0;
+uint textureNumLayers_bf2f76() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), 0u);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureNumLayers_bf2f76();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/bf2f76.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureNumLayers/bf2f76.wgsl.expected.ir.glsl
index c7310b2..31ed410 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/bf2f76.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/bf2f76.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, rg32i) uniform highp readonly iimage2DArray arg_0;
+uint textureNumLayers_bf2f76() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_bf2f76();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, rg32i) uniform highp readonly iimage2DArray arg_0;
+uint textureNumLayers_bf2f76() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureNumLayers_bf2f76();
+}
+#version 460
+
+
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
+layout(binding = 0, rg32i) uniform highp readonly iimage2DArray arg_0;
+layout(location = 0) flat out uint vertex_main_loc0_Output;
+uint textureNumLayers_bf2f76() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), 0u);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureNumLayers_bf2f76();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/c1eca9.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/c1eca9.wgsl
index 6579aa8..c702720 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/c1eca9.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/c1eca9.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
 
 @group(1) @binding(0) var arg_0: texture_cube_array<u32>;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/c1eca9.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/c1eca9.wgsl.expected.glsl
index 389a0c4..bae6a46 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/c1eca9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/c1eca9.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-uniform highp usamplerCubeArray arg_0_1;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureNumLayers_c1eca9() {
-  uint res = uint(textureSize(arg_0_1, 0).z);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureNumLayers_c1eca9();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'usamplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
 uniform highp usamplerCubeArray arg_0_1;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
-void textureNumLayers_c1eca9() {
+uint textureNumLayers_c1eca9() {
   uint res = uint(textureSize(arg_0_1, 0).z);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
 void fragment_main() {
-  textureNumLayers_c1eca9();
+  prevent_dce.inner = textureNumLayers_c1eca9();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'usamplerCubeArray' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-uniform highp usamplerCubeArray arg_0_1;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureNumLayers_c1eca9() {
+uniform highp usamplerCubeArray arg_0_1;
+uint textureNumLayers_c1eca9() {
   uint res = uint(textureSize(arg_0_1, 0).z);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
 void compute_main() {
-  textureNumLayers_c1eca9();
+  prevent_dce.inner = textureNumLayers_c1eca9();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'usamplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
+layout(location = 0) flat out uint prevent_dce_1;
+uniform highp usamplerCubeArray arg_0_1;
+uint textureNumLayers_c1eca9() {
+  uint res = uint(textureSize(arg_0_1, 0).z);
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), 0u);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureNumLayers_c1eca9();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/c1eca9.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureNumLayers/c1eca9.wgsl.expected.ir.glsl
index c7310b2..942b68b 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/c1eca9.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/c1eca9.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+uniform highp usamplerCubeArray arg_0;
+uint textureNumLayers_c1eca9() {
+  uint res = uint(textureSize(arg_0, 0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_c1eca9();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+uniform highp usamplerCubeArray arg_0;
+uint textureNumLayers_c1eca9() {
+  uint res = uint(textureSize(arg_0, 0).z);
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureNumLayers_c1eca9();
+}
+#version 460
+
+
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
+uniform highp usamplerCubeArray arg_0;
+layout(location = 0) flat out uint vertex_main_loc0_Output;
+uint textureNumLayers_c1eca9() {
+  uint res = uint(textureSize(arg_0, 0).z);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), 0u);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureNumLayers_c1eca9();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/2bea6c.wgsl b/test/tint/builtins/gen/literal/textureNumLevels/2bea6c.wgsl
index f4c8b6e..e34bacc 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/2bea6c.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/2bea6c.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
 
 @group(1) @binding(0) var arg_0: texture_depth_cube_array;
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/2bea6c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLevels/2bea6c.wgsl.expected.glsl
index e8b0207..49f81ce 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/2bea6c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/2bea6c.wgsl.expected.glsl
@@ -1,6 +1,4 @@
-#version 310 es
-precision highp float;
-precision highp int;
+#version 460
 
 struct tint_symbol_1 {
   uint texture_builtin_value_0;
@@ -32,7 +30,7 @@
   fragment_main();
   return;
 }
-#version 310 es
+#version 460
 
 struct tint_symbol_1 {
   uint texture_builtin_value_0;
@@ -65,7 +63,7 @@
   compute_main();
   return;
 }
-#version 310 es
+#version 460
 
 layout(location = 0) flat out uint prevent_dce_1;
 struct tint_symbol_1 {
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/903920.wgsl b/test/tint/builtins/gen/literal/textureNumLevels/903920.wgsl
index 007bc0f..c121c52 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/903920.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/903920.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
 
 @group(1) @binding(0) var arg_0: texture_cube_array<i32>;
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/903920.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLevels/903920.wgsl.expected.glsl
index eeeb047..118781a 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/903920.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/903920.wgsl.expected.glsl
@@ -1,6 +1,4 @@
-#version 310 es
-precision highp float;
-precision highp int;
+#version 460
 
 struct tint_symbol_1 {
   uint texture_builtin_value_0;
@@ -32,7 +30,7 @@
   fragment_main();
   return;
 }
-#version 310 es
+#version 460
 
 struct tint_symbol_1 {
   uint texture_builtin_value_0;
@@ -65,7 +63,7 @@
   compute_main();
   return;
 }
-#version 310 es
+#version 460
 
 layout(location = 0) flat out uint prevent_dce_1;
 struct tint_symbol_1 {
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/d8f73b.wgsl b/test/tint/builtins/gen/literal/textureNumLevels/d8f73b.wgsl
index 0909779..6592fa1 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/d8f73b.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/d8f73b.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
 
 @group(1) @binding(0) var arg_0: texture_cube_array<f32>;
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/d8f73b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLevels/d8f73b.wgsl.expected.glsl
index fc0c35a..4eb27ed 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/d8f73b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/d8f73b.wgsl.expected.glsl
@@ -1,6 +1,4 @@
-#version 310 es
-precision highp float;
-precision highp int;
+#version 460
 
 struct tint_symbol_1 {
   uint texture_builtin_value_0;
@@ -32,7 +30,7 @@
   fragment_main();
   return;
 }
-#version 310 es
+#version 460
 
 struct tint_symbol_1 {
   uint texture_builtin_value_0;
@@ -65,7 +63,7 @@
   compute_main();
   return;
 }
-#version 310 es
+#version 460
 
 layout(location = 0) flat out uint prevent_dce_1;
 struct tint_symbol_1 {
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/fe2171.wgsl b/test/tint/builtins/gen/literal/textureNumLevels/fe2171.wgsl
index 3269fa6..55ee0c5 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/fe2171.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/fe2171.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
 
 @group(1) @binding(0) var arg_0: texture_cube_array<u32>;
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/fe2171.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLevels/fe2171.wgsl.expected.glsl
index b48c422..930c25a 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/fe2171.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/fe2171.wgsl.expected.glsl
@@ -1,6 +1,4 @@
-#version 310 es
-precision highp float;
-precision highp int;
+#version 460
 
 struct tint_symbol_1 {
   uint texture_builtin_value_0;
@@ -32,7 +30,7 @@
   fragment_main();
   return;
 }
-#version 310 es
+#version 460
 
 struct tint_symbol_1 {
   uint texture_builtin_value_0;
@@ -65,7 +63,7 @@
   compute_main();
   return;
 }
-#version 310 es
+#version 460
 
 layout(location = 0) flat out uint prevent_dce_1;
 struct tint_symbol_1 {
diff --git a/test/tint/builtins/gen/literal/textureSample/4dd1bf.wgsl b/test/tint/builtins/gen/literal/textureSample/4dd1bf.wgsl
index 56df22e..dd6c8a3 100644
--- a/test/tint/builtins/gen/literal/textureSample/4dd1bf.wgsl
+++ b/test/tint/builtins/gen/literal/textureSample/4dd1bf.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
 
 @group(1) @binding(0) var arg_0: texture_cube_array<f32>;
diff --git a/test/tint/builtins/gen/literal/textureSample/4dd1bf.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSample/4dd1bf.wgsl.expected.glsl
index ad94abd..5c95034 100644
--- a/test/tint/builtins/gen/literal/textureSample/4dd1bf.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSample/4dd1bf.wgsl.expected.glsl
@@ -1,32 +1,21 @@
-SKIP: FAILED
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-uniform highp samplerCubeArray arg_0_arg_1;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureSample_4dd1bf() {
+uniform highp samplerCubeArray arg_0_arg_1;
+
+vec4 textureSample_4dd1bf() {
   vec4 res = texture(arg_0_arg_1, vec4(vec3(1.0f), float(1)));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureSample_4dd1bf();
+  prevent_dce.inner = textureSample_4dd1bf();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
diff --git a/test/tint/builtins/gen/literal/textureSample/7fd8cb.wgsl b/test/tint/builtins/gen/literal/textureSample/7fd8cb.wgsl
index a67d166..5137ab0 100644
--- a/test/tint/builtins/gen/literal/textureSample/7fd8cb.wgsl
+++ b/test/tint/builtins/gen/literal/textureSample/7fd8cb.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
 
 @group(1) @binding(0) var arg_0: texture_depth_cube_array;
diff --git a/test/tint/builtins/gen/literal/textureSample/7fd8cb.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSample/7fd8cb.wgsl.expected.glsl
index 5a4dd45..1906952 100644
--- a/test/tint/builtins/gen/literal/textureSample/7fd8cb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSample/7fd8cb.wgsl.expected.glsl
@@ -1,32 +1,21 @@
-SKIP: FAILED
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-uniform highp samplerCubeArrayShadow arg_0_arg_1;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   float inner;
 } prevent_dce;
 
-void textureSample_7fd8cb() {
+uniform highp samplerCubeArrayShadow arg_0_arg_1;
+
+float textureSample_7fd8cb() {
   float res = texture(arg_0_arg_1, vec4(vec3(1.0f), float(1u)), 0.0f);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureSample_7fd8cb();
+  prevent_dce.inner = textureSample_7fd8cb();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'samplerCubeArrayShadow' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
diff --git a/test/tint/builtins/gen/literal/textureSample/bc7477.wgsl b/test/tint/builtins/gen/literal/textureSample/bc7477.wgsl
index f592f87..cb50e35 100644
--- a/test/tint/builtins/gen/literal/textureSample/bc7477.wgsl
+++ b/test/tint/builtins/gen/literal/textureSample/bc7477.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
 
 @group(1) @binding(0) var arg_0: texture_cube_array<f32>;
diff --git a/test/tint/builtins/gen/literal/textureSample/bc7477.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSample/bc7477.wgsl.expected.glsl
index 0da2ec5..c1d7948 100644
--- a/test/tint/builtins/gen/literal/textureSample/bc7477.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSample/bc7477.wgsl.expected.glsl
@@ -1,32 +1,21 @@
-SKIP: FAILED
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-uniform highp samplerCubeArray arg_0_arg_1;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureSample_bc7477() {
+uniform highp samplerCubeArray arg_0_arg_1;
+
+vec4 textureSample_bc7477() {
   vec4 res = texture(arg_0_arg_1, vec4(vec3(1.0f), float(1u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureSample_bc7477();
+  prevent_dce.inner = textureSample_bc7477();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
diff --git a/test/tint/builtins/gen/literal/textureSample/c2f4e8.wgsl b/test/tint/builtins/gen/literal/textureSample/c2f4e8.wgsl
index e4100ff..4bffdb8 100644
--- a/test/tint/builtins/gen/literal/textureSample/c2f4e8.wgsl
+++ b/test/tint/builtins/gen/literal/textureSample/c2f4e8.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
 
 @group(1) @binding(0) var arg_0: texture_depth_cube_array;
diff --git a/test/tint/builtins/gen/literal/textureSample/c2f4e8.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSample/c2f4e8.wgsl.expected.glsl
index ac6952f..49bdcbc 100644
--- a/test/tint/builtins/gen/literal/textureSample/c2f4e8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSample/c2f4e8.wgsl.expected.glsl
@@ -1,32 +1,21 @@
-SKIP: FAILED
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-uniform highp samplerCubeArrayShadow arg_0_arg_1;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   float inner;
 } prevent_dce;
 
-void textureSample_c2f4e8() {
+uniform highp samplerCubeArrayShadow arg_0_arg_1;
+
+float textureSample_c2f4e8() {
   float res = texture(arg_0_arg_1, vec4(vec3(1.0f), float(1)), 0.0f);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureSample_c2f4e8();
+  prevent_dce.inner = textureSample_c2f4e8();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'samplerCubeArrayShadow' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/c6953d.wgsl b/test/tint/builtins/gen/literal/textureSampleBias/c6953d.wgsl
index 02f7cc4..62033b0 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/c6953d.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/c6953d.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
 
 @group(1) @binding(0) var arg_0: texture_cube_array<f32>;
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/c6953d.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleBias/c6953d.wgsl.expected.glsl
index baa809c..c69b00f 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/c6953d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/c6953d.wgsl.expected.glsl
@@ -1,32 +1,21 @@
-SKIP: FAILED
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-uniform highp samplerCubeArray arg_0_arg_1;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureSampleBias_c6953d() {
+uniform highp samplerCubeArray arg_0_arg_1;
+
+vec4 textureSampleBias_c6953d() {
   vec4 res = texture(arg_0_arg_1, vec4(vec3(1.0f), float(1u)), 1.0f);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureSampleBias_c6953d();
+  prevent_dce.inner = textureSampleBias_c6953d();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/eed7c4.wgsl b/test/tint/builtins/gen/literal/textureSampleBias/eed7c4.wgsl
index 4961ccd..40be3ec 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/eed7c4.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/eed7c4.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
 
 @group(1) @binding(0) var arg_0: texture_cube_array<f32>;
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/eed7c4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleBias/eed7c4.wgsl.expected.glsl
index 7e22ead..43185ab 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/eed7c4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/eed7c4.wgsl.expected.glsl
@@ -1,32 +1,21 @@
-SKIP: FAILED
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-uniform highp samplerCubeArray arg_0_arg_1;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureSampleBias_eed7c4() {
+uniform highp samplerCubeArray arg_0_arg_1;
+
+vec4 textureSampleBias_eed7c4() {
   vec4 res = texture(arg_0_arg_1, vec4(vec3(1.0f), float(1)), 1.0f);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureSampleBias_eed7c4();
+  prevent_dce.inner = textureSampleBias_eed7c4();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/1912e5.wgsl b/test/tint/builtins/gen/literal/textureSampleCompare/1912e5.wgsl
index e1a18f8..e2c03c8 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/1912e5.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/1912e5.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
 
 @group(1) @binding(0) var arg_0: texture_depth_cube_array;
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/1912e5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleCompare/1912e5.wgsl.expected.glsl
index 39b683a..aa0c91f 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/1912e5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/1912e5.wgsl.expected.glsl
@@ -1,32 +1,21 @@
-SKIP: FAILED
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-uniform highp samplerCubeArrayShadow arg_0_arg_1;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   float inner;
 } prevent_dce;
 
-void textureSampleCompare_1912e5() {
+uniform highp samplerCubeArrayShadow arg_0_arg_1;
+
+float textureSampleCompare_1912e5() {
   float res = texture(arg_0_arg_1, vec4(vec3(1.0f), float(1u)), 1.0f);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureSampleCompare_1912e5();
+  prevent_dce.inner = textureSampleCompare_1912e5();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'samplerCubeArrayShadow' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/a3ca7e.wgsl b/test/tint/builtins/gen/literal/textureSampleCompare/a3ca7e.wgsl
index c475904..21aaf91 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/a3ca7e.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/a3ca7e.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
 
 @group(1) @binding(0) var arg_0: texture_depth_cube_array;
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/a3ca7e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleCompare/a3ca7e.wgsl.expected.glsl
index 92c9b02..8f308f0 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/a3ca7e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/a3ca7e.wgsl.expected.glsl
@@ -1,32 +1,21 @@
-SKIP: FAILED
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-uniform highp samplerCubeArrayShadow arg_0_arg_1;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   float inner;
 } prevent_dce;
 
-void textureSampleCompare_a3ca7e() {
+uniform highp samplerCubeArrayShadow arg_0_arg_1;
+
+float textureSampleCompare_a3ca7e() {
   float res = texture(arg_0_arg_1, vec4(vec3(1.0f), float(1)), 1.0f);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureSampleCompare_a3ca7e();
+  prevent_dce.inner = textureSampleCompare_a3ca7e();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'samplerCubeArrayShadow' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/4cf3a2.wgsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/4cf3a2.wgsl
index 90cc21dd..60c8515 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/4cf3a2.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/4cf3a2.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
 
 @group(1) @binding(0) var arg_0: texture_depth_cube_array;
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/4cf3a2.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/4cf3a2.wgsl.expected.glsl
index c34ffd2..8e5533c 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/4cf3a2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/4cf3a2.wgsl.expected.glsl
@@ -1,83 +1,49 @@
-SKIP: FAILED
-
-#version 310 es
-
-uniform highp samplerCubeArrayShadow arg_0_arg_1;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   float inner;
 } prevent_dce;
 
-void textureSampleCompareLevel_4cf3a2() {
-  float res = texture(arg_0_arg_1, vec4(vec3(1.0f), float(1)), 1.0f);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureSampleCompareLevel_4cf3a2();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'samplerCubeArrayShadow' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
 uniform highp samplerCubeArrayShadow arg_0_arg_1;
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
-void textureSampleCompareLevel_4cf3a2() {
+float textureSampleCompareLevel_4cf3a2() {
   float res = texture(arg_0_arg_1, vec4(vec3(1.0f), float(1)), 1.0f);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  float prevent_dce;
+};
+
 void fragment_main() {
-  textureSampleCompareLevel_4cf3a2();
+  prevent_dce.inner = textureSampleCompareLevel_4cf3a2();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'samplerCubeArrayShadow' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-
-uniform highp samplerCubeArrayShadow arg_0_arg_1;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   float inner;
 } prevent_dce;
 
-void textureSampleCompareLevel_4cf3a2() {
+uniform highp samplerCubeArrayShadow arg_0_arg_1;
+
+float textureSampleCompareLevel_4cf3a2() {
   float res = texture(arg_0_arg_1, vec4(vec3(1.0f), float(1)), 1.0f);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  float prevent_dce;
+};
+
 void compute_main() {
-  textureSampleCompareLevel_4cf3a2();
+  prevent_dce.inner = textureSampleCompareLevel_4cf3a2();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +51,34 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'samplerCubeArrayShadow' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
+layout(location = 0) flat out float prevent_dce_1;
+uniform highp samplerCubeArrayShadow arg_0_arg_1;
 
+float textureSampleCompareLevel_4cf3a2() {
+  float res = texture(arg_0_arg_1, vec4(vec3(1.0f), float(1)), 1.0f);
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  float prevent_dce;
+};
+
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureSampleCompareLevel_4cf3a2();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/958c87.wgsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/958c87.wgsl
index 582a9d2..e551a8b 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/958c87.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/958c87.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
 
 @group(1) @binding(0) var arg_0: texture_depth_cube_array;
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/958c87.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/958c87.wgsl.expected.glsl
index 0c8f5ad..c5de3a7 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/958c87.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/958c87.wgsl.expected.glsl
@@ -1,83 +1,49 @@
-SKIP: FAILED
-
-#version 310 es
-
-uniform highp samplerCubeArrayShadow arg_0_arg_1;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   float inner;
 } prevent_dce;
 
-void textureSampleCompareLevel_958c87() {
-  float res = texture(arg_0_arg_1, vec4(vec3(1.0f), float(1u)), 1.0f);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureSampleCompareLevel_958c87();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'samplerCubeArrayShadow' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
 uniform highp samplerCubeArrayShadow arg_0_arg_1;
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
-void textureSampleCompareLevel_958c87() {
+float textureSampleCompareLevel_958c87() {
   float res = texture(arg_0_arg_1, vec4(vec3(1.0f), float(1u)), 1.0f);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  float prevent_dce;
+};
+
 void fragment_main() {
-  textureSampleCompareLevel_958c87();
+  prevent_dce.inner = textureSampleCompareLevel_958c87();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'samplerCubeArrayShadow' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-
-uniform highp samplerCubeArrayShadow arg_0_arg_1;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   float inner;
 } prevent_dce;
 
-void textureSampleCompareLevel_958c87() {
+uniform highp samplerCubeArrayShadow arg_0_arg_1;
+
+float textureSampleCompareLevel_958c87() {
   float res = texture(arg_0_arg_1, vec4(vec3(1.0f), float(1u)), 1.0f);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  float prevent_dce;
+};
+
 void compute_main() {
-  textureSampleCompareLevel_958c87();
+  prevent_dce.inner = textureSampleCompareLevel_958c87();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +51,34 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'samplerCubeArrayShadow' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
+layout(location = 0) flat out float prevent_dce_1;
+uniform highp samplerCubeArrayShadow arg_0_arg_1;
 
+float textureSampleCompareLevel_958c87() {
+  float res = texture(arg_0_arg_1, vec4(vec3(1.0f), float(1u)), 1.0f);
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  float prevent_dce;
+};
+
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureSampleCompareLevel_958c87();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/bbb58f.wgsl b/test/tint/builtins/gen/literal/textureSampleGrad/bbb58f.wgsl
index 99d23ef..3760b6b 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/bbb58f.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/bbb58f.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
 
 @group(1) @binding(0) var arg_0: texture_cube_array<f32>;
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/bbb58f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleGrad/bbb58f.wgsl.expected.glsl
index 1058170..95f38ca 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/bbb58f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/bbb58f.wgsl.expected.glsl
@@ -1,83 +1,49 @@
-SKIP: FAILED
-
-#version 310 es
-
-uniform highp samplerCubeArray arg_0_arg_1;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureSampleGrad_bbb58f() {
-  vec4 res = textureGrad(arg_0_arg_1, vec4(vec3(1.0f), float(1u)), vec3(1.0f), vec3(1.0f));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureSampleGrad_bbb58f();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
 uniform highp samplerCubeArray arg_0_arg_1;
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
-void textureSampleGrad_bbb58f() {
+vec4 textureSampleGrad_bbb58f() {
   vec4 res = textureGrad(arg_0_arg_1, vec4(vec3(1.0f), float(1u)), vec3(1.0f), vec3(1.0f));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
 void fragment_main() {
-  textureSampleGrad_bbb58f();
+  prevent_dce.inner = textureSampleGrad_bbb58f();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-
-uniform highp samplerCubeArray arg_0_arg_1;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureSampleGrad_bbb58f() {
+uniform highp samplerCubeArray arg_0_arg_1;
+
+vec4 textureSampleGrad_bbb58f() {
   vec4 res = textureGrad(arg_0_arg_1, vec4(vec3(1.0f), float(1u)), vec3(1.0f), vec3(1.0f));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
 void compute_main() {
-  textureSampleGrad_bbb58f();
+  prevent_dce.inner = textureSampleGrad_bbb58f();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +51,34 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
+layout(location = 0) flat out vec4 prevent_dce_1;
+uniform highp samplerCubeArray arg_0_arg_1;
 
+vec4 textureSampleGrad_bbb58f() {
+  vec4 res = textureGrad(arg_0_arg_1, vec4(vec3(1.0f), float(1u)), vec3(1.0f), vec3(1.0f));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureSampleGrad_bbb58f();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/e383db.wgsl b/test/tint/builtins/gen/literal/textureSampleGrad/e383db.wgsl
index c22da25..c08c010 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/e383db.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/e383db.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
 
 @group(1) @binding(0) var arg_0: texture_cube_array<f32>;
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/e383db.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleGrad/e383db.wgsl.expected.glsl
index 38fec77..c965b9d 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/e383db.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/e383db.wgsl.expected.glsl
@@ -1,83 +1,49 @@
-SKIP: FAILED
-
-#version 310 es
-
-uniform highp samplerCubeArray arg_0_arg_1;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureSampleGrad_e383db() {
-  vec4 res = textureGrad(arg_0_arg_1, vec4(vec3(1.0f), float(1)), vec3(1.0f), vec3(1.0f));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureSampleGrad_e383db();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
 uniform highp samplerCubeArray arg_0_arg_1;
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
-void textureSampleGrad_e383db() {
+vec4 textureSampleGrad_e383db() {
   vec4 res = textureGrad(arg_0_arg_1, vec4(vec3(1.0f), float(1)), vec3(1.0f), vec3(1.0f));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
 void fragment_main() {
-  textureSampleGrad_e383db();
+  prevent_dce.inner = textureSampleGrad_e383db();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-
-uniform highp samplerCubeArray arg_0_arg_1;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureSampleGrad_e383db() {
+uniform highp samplerCubeArray arg_0_arg_1;
+
+vec4 textureSampleGrad_e383db() {
   vec4 res = textureGrad(arg_0_arg_1, vec4(vec3(1.0f), float(1)), vec3(1.0f), vec3(1.0f));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
 void compute_main() {
-  textureSampleGrad_e383db();
+  prevent_dce.inner = textureSampleGrad_e383db();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +51,34 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
+layout(location = 0) flat out vec4 prevent_dce_1;
+uniform highp samplerCubeArray arg_0_arg_1;
 
+vec4 textureSampleGrad_e383db() {
+  vec4 res = textureGrad(arg_0_arg_1, vec4(vec3(1.0f), float(1)), vec3(1.0f), vec3(1.0f));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureSampleGrad_e383db();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/0bdd9a.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/0bdd9a.wgsl
index a553676..b009b7f 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/0bdd9a.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/0bdd9a.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
 
 @group(1) @binding(0) var arg_0: texture_cube_array<f32>;
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/0bdd9a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleLevel/0bdd9a.wgsl.expected.glsl
index a7b74cb..97cf5b6 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/0bdd9a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/0bdd9a.wgsl.expected.glsl
@@ -1,83 +1,49 @@
-SKIP: FAILED
-
-#version 310 es
-
-uniform highp samplerCubeArray arg_0_arg_1;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureSampleLevel_0bdd9a() {
-  vec4 res = textureLod(arg_0_arg_1, vec4(vec3(1.0f), float(1)), 1.0f);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureSampleLevel_0bdd9a();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
 uniform highp samplerCubeArray arg_0_arg_1;
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
-void textureSampleLevel_0bdd9a() {
+vec4 textureSampleLevel_0bdd9a() {
   vec4 res = textureLod(arg_0_arg_1, vec4(vec3(1.0f), float(1)), 1.0f);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
 void fragment_main() {
-  textureSampleLevel_0bdd9a();
+  prevent_dce.inner = textureSampleLevel_0bdd9a();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-
-uniform highp samplerCubeArray arg_0_arg_1;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureSampleLevel_0bdd9a() {
+uniform highp samplerCubeArray arg_0_arg_1;
+
+vec4 textureSampleLevel_0bdd9a() {
   vec4 res = textureLod(arg_0_arg_1, vec4(vec3(1.0f), float(1)), 1.0f);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
 void compute_main() {
-  textureSampleLevel_0bdd9a();
+  prevent_dce.inner = textureSampleLevel_0bdd9a();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +51,34 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
+layout(location = 0) flat out vec4 prevent_dce_1;
+uniform highp samplerCubeArray arg_0_arg_1;
 
+vec4 textureSampleLevel_0bdd9a() {
+  vec4 res = textureLod(arg_0_arg_1, vec4(vec3(1.0f), float(1)), 1.0f);
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureSampleLevel_0bdd9a();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/941a53.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/941a53.wgsl
index 7ee43ef..98709c0 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/941a53.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/941a53.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
 
 @group(1) @binding(0) var arg_0: texture_depth_cube_array;
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/a12142.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/a12142.wgsl
index b34eda0..658e372 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/a12142.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/a12142.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
 
 @group(1) @binding(0) var arg_0: texture_depth_cube_array;
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/aab3b9.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/aab3b9.wgsl
index e2f0b08..9de90fc 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/aab3b9.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/aab3b9.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
 
 @group(1) @binding(0) var arg_0: texture_cube_array<f32>;
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/aab3b9.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleLevel/aab3b9.wgsl.expected.glsl
index c34a0cf..58bc07b 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/aab3b9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/aab3b9.wgsl.expected.glsl
@@ -1,83 +1,49 @@
-SKIP: FAILED
-
-#version 310 es
-
-uniform highp samplerCubeArray arg_0_arg_1;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureSampleLevel_aab3b9() {
-  vec4 res = textureLod(arg_0_arg_1, vec4(vec3(1.0f), float(1u)), 1.0f);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureSampleLevel_aab3b9();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
 uniform highp samplerCubeArray arg_0_arg_1;
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
-void textureSampleLevel_aab3b9() {
+vec4 textureSampleLevel_aab3b9() {
   vec4 res = textureLod(arg_0_arg_1, vec4(vec3(1.0f), float(1u)), 1.0f);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
 void fragment_main() {
-  textureSampleLevel_aab3b9();
+  prevent_dce.inner = textureSampleLevel_aab3b9();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-
-uniform highp samplerCubeArray arg_0_arg_1;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureSampleLevel_aab3b9() {
+uniform highp samplerCubeArray arg_0_arg_1;
+
+vec4 textureSampleLevel_aab3b9() {
   vec4 res = textureLod(arg_0_arg_1, vec4(vec3(1.0f), float(1u)), 1.0f);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
 void compute_main() {
-  textureSampleLevel_aab3b9();
+  prevent_dce.inner = textureSampleLevel_aab3b9();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +51,34 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
+layout(location = 0) flat out vec4 prevent_dce_1;
+uniform highp samplerCubeArray arg_0_arg_1;
 
+vec4 textureSampleLevel_aab3b9() {
+  vec4 res = textureLod(arg_0_arg_1, vec4(vec3(1.0f), float(1u)), 1.0f);
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureSampleLevel_aab3b9();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/ae5e39.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/ae5e39.wgsl
index 0cf0153..e3826c4 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/ae5e39.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/ae5e39.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
 
 @group(1) @binding(0) var arg_0: texture_depth_cube_array;
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/ff11bc.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/ff11bc.wgsl
index b84d994..e120785 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/ff11bc.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/ff11bc.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
 
 @group(1) @binding(0) var arg_0: texture_depth_cube_array;
diff --git a/test/tint/builtins/gen/literal/textureStore/064c7f.wgsl b/test/tint/builtins/gen/literal/textureStore/064c7f.wgsl
index 4a5f3be..140cfa4 100644
--- a/test/tint/builtins/gen/literal/textureStore/064c7f.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/064c7f.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32float, write>;
 
 // fn textureStore(texture: texture_storage_2d<rg32float, write>, coords: vec2<i32>, value: vec4<f32>)
diff --git a/test/tint/builtins/gen/literal/textureStore/064c7f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/064c7f.wgsl.expected.glsl
index 2e8b360..93bb13a 100644
--- a/test/tint/builtins/gen/literal/textureStore/064c7f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/064c7f.wgsl.expected.glsl
@@ -1,37 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2D arg_0;
-void textureStore_064c7f() {
-  imageStore(arg_0, ivec2(1), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_064c7f();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp writeonly image2D arg_0;
+layout(binding = 0, rg32f) uniform highp writeonly image2D arg_0;
 void textureStore_064c7f() {
   imageStore(arg_0, ivec2(1), vec4(1.0f));
 }
@@ -44,16 +13,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2D arg_0;
+layout(binding = 0, rg32f) uniform highp writeonly image2D arg_0;
 void textureStore_064c7f() {
   imageStore(arg_0, ivec2(1), vec4(1.0f));
 }
@@ -67,10 +29,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureStore/0ad124.wgsl b/test/tint/builtins/gen/literal/textureStore/0ad124.wgsl
index 201ea49..4d09057 100644
--- a/test/tint/builtins/gen/literal/textureStore/0ad124.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/0ad124.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 @group(1) @binding(0) var arg_0: texture_storage_1d<r8unorm, read_write>;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/0ad124.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/0ad124.wgsl.expected.glsl
index e387e43..a1f534c 100644
--- a/test/tint/builtins/gen/literal/textureStore/0ad124.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/0ad124.wgsl.expected.glsl
@@ -1,37 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp writeonly image2D arg_0;
-void textureStore_0ad124() {
-  imageStore(arg_0, ivec2(1, 0), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_0ad124();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp writeonly image2D arg_0;
+layout(binding = 0, r8) uniform highp writeonly image2D arg_0;
 void textureStore_0ad124() {
   imageStore(arg_0, ivec2(1, 0), vec4(1.0f));
 }
@@ -44,16 +13,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp writeonly image2D arg_0;
+layout(binding = 0, r8) uniform highp writeonly image2D arg_0;
 void textureStore_0ad124() {
   imageStore(arg_0, ivec2(1, 0), vec4(1.0f));
 }
@@ -67,10 +29,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureStore/0ade9a.wgsl b/test/tint/builtins/gen/literal/textureStore/0ade9a.wgsl
index cc39530..8fc9c2f 100644
--- a/test/tint/builtins/gen/literal/textureStore/0ade9a.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/0ade9a.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32uint, read_write>;
 
 // fn textureStore(texture: texture_storage_2d_array<rg32uint, read_write>, coords: vec2<u32>, array_index: u32, value: vec4<u32>)
diff --git a/test/tint/builtins/gen/literal/textureStore/0ade9a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/0ade9a.wgsl.expected.glsl
index e45d047..ea0a189 100644
--- a/test/tint/builtins/gen/literal/textureStore/0ade9a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/0ade9a.wgsl.expected.glsl
@@ -1,37 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2DArray arg_0;
-void textureStore_0ade9a() {
-  imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_0ade9a();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp writeonly uimage2DArray arg_0;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_0ade9a() {
   imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), uvec4(1u));
 }
@@ -44,16 +13,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2DArray arg_0;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_0ade9a() {
   imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), uvec4(1u));
 }
@@ -67,10 +29,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureStore/1a264d.wgsl b/test/tint/builtins/gen/literal/textureStore/1a264d.wgsl
index 8d64347..810ea4f 100644
--- a/test/tint/builtins/gen/literal/textureStore/1a264d.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/1a264d.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 @group(1) @binding(0) var arg_0: texture_storage_3d<r8unorm, write>;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/1a264d.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/1a264d.wgsl.expected.glsl
index 6013fc5..13186d6 100644
--- a/test/tint/builtins/gen/literal/textureStore/1a264d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/1a264d.wgsl.expected.glsl
@@ -1,37 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp writeonly image3D arg_0;
-void textureStore_1a264d() {
-  imageStore(arg_0, ivec3(1), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_1a264d();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp writeonly image3D arg_0;
+layout(binding = 0, r8) uniform highp writeonly image3D arg_0;
 void textureStore_1a264d() {
   imageStore(arg_0, ivec3(1), vec4(1.0f));
 }
@@ -44,16 +13,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp writeonly image3D arg_0;
+layout(binding = 0, r8) uniform highp writeonly image3D arg_0;
 void textureStore_1a264d() {
   imageStore(arg_0, ivec3(1), vec4(1.0f));
 }
@@ -67,10 +29,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureStore/1a6c0b.wgsl b/test/tint/builtins/gen/literal/textureStore/1a6c0b.wgsl
index 960150e..d11f06e 100644
--- a/test/tint/builtins/gen/literal/textureStore/1a6c0b.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/1a6c0b.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32sint, read_write>;
 
 // fn textureStore(texture: texture_storage_2d_array<rg32sint, read_write>, coords: vec2<u32>, array_index: u32, value: vec4<i32>)
diff --git a/test/tint/builtins/gen/literal/textureStore/1a6c0b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/1a6c0b.wgsl.expected.glsl
index 5f8ddc2..8a07748 100644
--- a/test/tint/builtins/gen/literal/textureStore/1a6c0b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/1a6c0b.wgsl.expected.glsl
@@ -1,37 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2DArray arg_0;
-void textureStore_1a6c0b() {
-  imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_1a6c0b();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp writeonly iimage2DArray arg_0;
+layout(binding = 0, rg32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_1a6c0b() {
   imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), ivec4(1));
 }
@@ -44,16 +13,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2DArray arg_0;
+layout(binding = 0, rg32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_1a6c0b() {
   imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), ivec4(1));
 }
@@ -67,10 +29,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureStore/1e79f0.wgsl b/test/tint/builtins/gen/literal/textureStore/1e79f0.wgsl
index 4a8d605..9519a6e 100644
--- a/test/tint/builtins/gen/literal/textureStore/1e79f0.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/1e79f0.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r8unorm, write>;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/1e79f0.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/1e79f0.wgsl.expected.glsl
index 09dfe76..a9bfc84 100644
--- a/test/tint/builtins/gen/literal/textureStore/1e79f0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/1e79f0.wgsl.expected.glsl
@@ -1,37 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp writeonly image2DArray arg_0;
-void textureStore_1e79f0() {
-  imageStore(arg_0, ivec3(ivec2(1), 1), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_1e79f0();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, r8) uniform highp writeonly image2DArray arg_0;
 void textureStore_1e79f0() {
   imageStore(arg_0, ivec3(ivec2(1), 1), vec4(1.0f));
 }
@@ -44,16 +13,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, r8) uniform highp writeonly image2DArray arg_0;
 void textureStore_1e79f0() {
   imageStore(arg_0, ivec3(ivec2(1), 1), vec4(1.0f));
 }
@@ -67,10 +29,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureStore/272f5a.wgsl b/test/tint/builtins/gen/literal/textureStore/272f5a.wgsl
index f4fd6bd..c2651c3 100644
--- a/test/tint/builtins/gen/literal/textureStore/272f5a.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/272f5a.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r8unorm, read_write>;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/272f5a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/272f5a.wgsl.expected.glsl
index dd05acc..7a4c513 100644
--- a/test/tint/builtins/gen/literal/textureStore/272f5a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/272f5a.wgsl.expected.glsl
@@ -1,37 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp writeonly image2DArray arg_0;
-void textureStore_272f5a() {
-  imageStore(arg_0, ivec3(ivec2(1), int(1u)), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_272f5a();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, r8) uniform highp writeonly image2DArray arg_0;
 void textureStore_272f5a() {
   imageStore(arg_0, ivec3(ivec2(1), int(1u)), vec4(1.0f));
 }
@@ -44,16 +13,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, r8) uniform highp writeonly image2DArray arg_0;
 void textureStore_272f5a() {
   imageStore(arg_0, ivec3(ivec2(1), int(1u)), vec4(1.0f));
 }
@@ -67,10 +29,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureStore/2796b4.wgsl b/test/tint/builtins/gen/literal/textureStore/2796b4.wgsl
index ccfe128..b1024ff 100644
--- a/test/tint/builtins/gen/literal/textureStore/2796b4.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/2796b4.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32sint, write>;
 
 // fn textureStore(texture: texture_storage_3d<rg32sint, write>, coords: vec3<i32>, value: vec4<i32>)
diff --git a/test/tint/builtins/gen/literal/textureStore/2796b4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/2796b4.wgsl.expected.glsl
index 13a04c7..e5aa2c4 100644
--- a/test/tint/builtins/gen/literal/textureStore/2796b4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/2796b4.wgsl.expected.glsl
@@ -1,37 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage3D arg_0;
-void textureStore_2796b4() {
-  imageStore(arg_0, ivec3(1), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_2796b4();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp writeonly iimage3D arg_0;
+layout(binding = 0, rg32i) uniform highp writeonly iimage3D arg_0;
 void textureStore_2796b4() {
   imageStore(arg_0, ivec3(1), ivec4(1));
 }
@@ -44,16 +13,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage3D arg_0;
+layout(binding = 0, rg32i) uniform highp writeonly iimage3D arg_0;
 void textureStore_2796b4() {
   imageStore(arg_0, ivec3(1), ivec4(1));
 }
@@ -67,10 +29,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureStore/2d2835.wgsl b/test/tint/builtins/gen/literal/textureStore/2d2835.wgsl
index effb7e8..dca6fb1 100644
--- a/test/tint/builtins/gen/literal/textureStore/2d2835.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/2d2835.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32float, write>;
 
 // fn textureStore(texture: texture_storage_2d_array<rg32float, write>, coords: vec2<u32>, array_index: u32, value: vec4<f32>)
diff --git a/test/tint/builtins/gen/literal/textureStore/2d2835.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/2d2835.wgsl.expected.glsl
index 16b7226..88fc200 100644
--- a/test/tint/builtins/gen/literal/textureStore/2d2835.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/2d2835.wgsl.expected.glsl
@@ -1,37 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2DArray arg_0;
-void textureStore_2d2835() {
-  imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_2d2835();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, rg32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_2d2835() {
   imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), vec4(1.0f));
 }
@@ -44,16 +13,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, rg32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_2d2835() {
   imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), vec4(1.0f));
 }
@@ -67,10 +29,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureStore/2e512f.wgsl b/test/tint/builtins/gen/literal/textureStore/2e512f.wgsl
index a499872..2baaf06 100644
--- a/test/tint/builtins/gen/literal/textureStore/2e512f.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/2e512f.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 @group(1) @binding(0) var arg_0: texture_storage_2d<r8unorm, read_write>;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/2e512f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/2e512f.wgsl.expected.glsl
index 6c1521c..b3b05a6 100644
--- a/test/tint/builtins/gen/literal/textureStore/2e512f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/2e512f.wgsl.expected.glsl
@@ -1,37 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp writeonly image2D arg_0;
-void textureStore_2e512f() {
-  imageStore(arg_0, ivec2(uvec2(1u)), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_2e512f();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp writeonly image2D arg_0;
+layout(binding = 0, r8) uniform highp writeonly image2D arg_0;
 void textureStore_2e512f() {
   imageStore(arg_0, ivec2(uvec2(1u)), vec4(1.0f));
 }
@@ -44,16 +13,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp writeonly image2D arg_0;
+layout(binding = 0, r8) uniform highp writeonly image2D arg_0;
 void textureStore_2e512f() {
   imageStore(arg_0, ivec2(uvec2(1u)), vec4(1.0f));
 }
@@ -67,10 +29,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureStore/31745b.wgsl b/test/tint/builtins/gen/literal/textureStore/31745b.wgsl
index e509c3e..04c5d75 100644
--- a/test/tint/builtins/gen/literal/textureStore/31745b.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/31745b.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32sint, write>;
 
 // fn textureStore(texture: texture_storage_2d<rg32sint, write>, coords: vec2<i32>, value: vec4<i32>)
diff --git a/test/tint/builtins/gen/literal/textureStore/31745b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/31745b.wgsl.expected.glsl
index bed3e63..2178b6d 100644
--- a/test/tint/builtins/gen/literal/textureStore/31745b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/31745b.wgsl.expected.glsl
@@ -1,37 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2D arg_0;
-void textureStore_31745b() {
-  imageStore(arg_0, ivec2(1), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_31745b();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp writeonly iimage2D arg_0;
+layout(binding = 0, rg32i) uniform highp writeonly iimage2D arg_0;
 void textureStore_31745b() {
   imageStore(arg_0, ivec2(1), ivec4(1));
 }
@@ -44,16 +13,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2D arg_0;
+layout(binding = 0, rg32i) uniform highp writeonly iimage2D arg_0;
 void textureStore_31745b() {
   imageStore(arg_0, ivec2(1), ivec4(1));
 }
@@ -67,10 +29,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureStore/37eeef.wgsl b/test/tint/builtins/gen/literal/textureStore/37eeef.wgsl
index f9dc8fb..29e3021 100644
--- a/test/tint/builtins/gen/literal/textureStore/37eeef.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/37eeef.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r8unorm, write>;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/37eeef.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/37eeef.wgsl.expected.glsl
index 3344951..57a4c51 100644
--- a/test/tint/builtins/gen/literal/textureStore/37eeef.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/37eeef.wgsl.expected.glsl
@@ -1,37 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp writeonly image2DArray arg_0;
-void textureStore_37eeef() {
-  imageStore(arg_0, ivec3(ivec2(1), int(1u)), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_37eeef();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, r8) uniform highp writeonly image2DArray arg_0;
 void textureStore_37eeef() {
   imageStore(arg_0, ivec3(ivec2(1), int(1u)), vec4(1.0f));
 }
@@ -44,16 +13,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, r8) uniform highp writeonly image2DArray arg_0;
 void textureStore_37eeef() {
   imageStore(arg_0, ivec3(ivec2(1), int(1u)), vec4(1.0f));
 }
@@ -67,10 +29,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureStore/3d6f01.wgsl b/test/tint/builtins/gen/literal/textureStore/3d6f01.wgsl
index b80e29e..f3035b4 100644
--- a/test/tint/builtins/gen/literal/textureStore/3d6f01.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/3d6f01.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32sint, write>;
 
 // fn textureStore(texture: texture_storage_1d<rg32sint, write>, coords: u32, value: vec4<i32>)
diff --git a/test/tint/builtins/gen/literal/textureStore/3d6f01.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/3d6f01.wgsl.expected.glsl
index eb6813b..cfc06d2 100644
--- a/test/tint/builtins/gen/literal/textureStore/3d6f01.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/3d6f01.wgsl.expected.glsl
@@ -1,37 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2D arg_0;
-void textureStore_3d6f01() {
-  imageStore(arg_0, ivec2(uvec2(1u, 0u)), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_3d6f01();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp writeonly iimage2D arg_0;
+layout(binding = 0, rg32i) uniform highp writeonly iimage2D arg_0;
 void textureStore_3d6f01() {
   imageStore(arg_0, ivec2(uvec2(1u, 0u)), ivec4(1));
 }
@@ -44,16 +13,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2D arg_0;
+layout(binding = 0, rg32i) uniform highp writeonly iimage2D arg_0;
 void textureStore_3d6f01() {
   imageStore(arg_0, ivec2(uvec2(1u, 0u)), ivec4(1));
 }
@@ -67,10 +29,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureStore/3e0dc4.wgsl b/test/tint/builtins/gen/literal/textureStore/3e0dc4.wgsl
index 3a582e3..93debcb 100644
--- a/test/tint/builtins/gen/literal/textureStore/3e0dc4.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/3e0dc4.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32float, read_write>;
 
 // fn textureStore(texture: texture_storage_2d_array<rg32float, read_write>, coords: vec2<i32>, array_index: u32, value: vec4<f32>)
diff --git a/test/tint/builtins/gen/literal/textureStore/3e0dc4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/3e0dc4.wgsl.expected.glsl
index d684283..9974efd 100644
--- a/test/tint/builtins/gen/literal/textureStore/3e0dc4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/3e0dc4.wgsl.expected.glsl
@@ -1,37 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2DArray arg_0;
-void textureStore_3e0dc4() {
-  imageStore(arg_0, ivec3(ivec2(1), int(1u)), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_3e0dc4();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, rg32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_3e0dc4() {
   imageStore(arg_0, ivec3(ivec2(1), int(1u)), vec4(1.0f));
 }
@@ -44,16 +13,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, rg32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_3e0dc4() {
   imageStore(arg_0, ivec3(ivec2(1), int(1u)), vec4(1.0f));
 }
@@ -67,10 +29,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureStore/3fb31f.wgsl b/test/tint/builtins/gen/literal/textureStore/3fb31f.wgsl
index 130a901..0ac3528 100644
--- a/test/tint/builtins/gen/literal/textureStore/3fb31f.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/3fb31f.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32uint, write>;
 
 // fn textureStore(texture: texture_storage_3d<rg32uint, write>, coords: vec3<u32>, value: vec4<u32>)
diff --git a/test/tint/builtins/gen/literal/textureStore/3fb31f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/3fb31f.wgsl.expected.glsl
index 3f1b03c..24f3782 100644
--- a/test/tint/builtins/gen/literal/textureStore/3fb31f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/3fb31f.wgsl.expected.glsl
@@ -1,37 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage3D arg_0;
-void textureStore_3fb31f() {
-  imageStore(arg_0, ivec3(uvec3(1u)), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_3fb31f();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp writeonly uimage3D arg_0;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage3D arg_0;
 void textureStore_3fb31f() {
   imageStore(arg_0, ivec3(uvec3(1u)), uvec4(1u));
 }
@@ -44,16 +13,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage3D arg_0;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage3D arg_0;
 void textureStore_3fb31f() {
   imageStore(arg_0, ivec3(uvec3(1u)), uvec4(1u));
 }
@@ -67,10 +29,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureStore/43d1df.wgsl b/test/tint/builtins/gen/literal/textureStore/43d1df.wgsl
index 058bcd8..5b8b886 100644
--- a/test/tint/builtins/gen/literal/textureStore/43d1df.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/43d1df.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r8unorm, read_write>;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/43d1df.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/43d1df.wgsl.expected.glsl
index ce0b759..68ab6cb 100644
--- a/test/tint/builtins/gen/literal/textureStore/43d1df.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/43d1df.wgsl.expected.glsl
@@ -1,37 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp writeonly image2DArray arg_0;
-void textureStore_43d1df() {
-  imageStore(arg_0, ivec3(ivec2(1), 1), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_43d1df();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, r8) uniform highp writeonly image2DArray arg_0;
 void textureStore_43d1df() {
   imageStore(arg_0, ivec3(ivec2(1), 1), vec4(1.0f));
 }
@@ -44,16 +13,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, r8) uniform highp writeonly image2DArray arg_0;
 void textureStore_43d1df() {
   imageStore(arg_0, ivec3(ivec2(1), 1), vec4(1.0f));
 }
@@ -67,10 +29,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureStore/473ead.wgsl b/test/tint/builtins/gen/literal/textureStore/473ead.wgsl
index 35a2b44..2984b11 100644
--- a/test/tint/builtins/gen/literal/textureStore/473ead.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/473ead.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32uint, read_write>;
 
 // fn textureStore(texture: texture_storage_3d<rg32uint, read_write>, coords: vec3<u32>, value: vec4<u32>)
diff --git a/test/tint/builtins/gen/literal/textureStore/473ead.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/473ead.wgsl.expected.glsl
index 7e20e07..f8863e87 100644
--- a/test/tint/builtins/gen/literal/textureStore/473ead.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/473ead.wgsl.expected.glsl
@@ -1,37 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage3D arg_0;
-void textureStore_473ead() {
-  imageStore(arg_0, ivec3(uvec3(1u)), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_473ead();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp writeonly uimage3D arg_0;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage3D arg_0;
 void textureStore_473ead() {
   imageStore(arg_0, ivec3(uvec3(1u)), uvec4(1u));
 }
@@ -44,16 +13,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage3D arg_0;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage3D arg_0;
 void textureStore_473ead() {
   imageStore(arg_0, ivec3(uvec3(1u)), uvec4(1u));
 }
@@ -67,10 +29,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureStore/48eae1.wgsl b/test/tint/builtins/gen/literal/textureStore/48eae1.wgsl
index 683e84d..d0f360b 100644
--- a/test/tint/builtins/gen/literal/textureStore/48eae1.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/48eae1.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 @group(1) @binding(0) var arg_0: texture_storage_2d<r8unorm, write>;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/48eae1.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/48eae1.wgsl.expected.glsl
index e752b0e..5385dff 100644
--- a/test/tint/builtins/gen/literal/textureStore/48eae1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/48eae1.wgsl.expected.glsl
@@ -1,37 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp writeonly image2D arg_0;
-void textureStore_48eae1() {
-  imageStore(arg_0, ivec2(1), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_48eae1();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp writeonly image2D arg_0;
+layout(binding = 0, r8) uniform highp writeonly image2D arg_0;
 void textureStore_48eae1() {
   imageStore(arg_0, ivec2(1), vec4(1.0f));
 }
@@ -44,16 +13,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp writeonly image2D arg_0;
+layout(binding = 0, r8) uniform highp writeonly image2D arg_0;
 void textureStore_48eae1() {
   imageStore(arg_0, ivec2(1), vec4(1.0f));
 }
@@ -67,10 +29,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureStore/4c454f.wgsl b/test/tint/builtins/gen/literal/textureStore/4c454f.wgsl
index 0437b83..2f7b988 100644
--- a/test/tint/builtins/gen/literal/textureStore/4c454f.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/4c454f.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32sint, write>;
 
 // fn textureStore(texture: texture_storage_2d_array<rg32sint, write>, coords: vec2<u32>, array_index: u32, value: vec4<i32>)
diff --git a/test/tint/builtins/gen/literal/textureStore/4c454f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/4c454f.wgsl.expected.glsl
index ed56190..b53cec8 100644
--- a/test/tint/builtins/gen/literal/textureStore/4c454f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/4c454f.wgsl.expected.glsl
@@ -1,37 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2DArray arg_0;
-void textureStore_4c454f() {
-  imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_4c454f();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp writeonly iimage2DArray arg_0;
+layout(binding = 0, rg32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_4c454f() {
   imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), ivec4(1));
 }
@@ -44,16 +13,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2DArray arg_0;
+layout(binding = 0, rg32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_4c454f() {
   imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), ivec4(1));
 }
@@ -67,10 +29,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureStore/4cce74.wgsl b/test/tint/builtins/gen/literal/textureStore/4cce74.wgsl
index f76900a..3dbcc76 100644
--- a/test/tint/builtins/gen/literal/textureStore/4cce74.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/4cce74.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32uint, read_write>;
 
 // fn textureStore(texture: texture_storage_1d<rg32uint, read_write>, coords: i32, value: vec4<u32>)
diff --git a/test/tint/builtins/gen/literal/textureStore/4cce74.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/4cce74.wgsl.expected.glsl
index 06f25ac..3644c8f 100644
--- a/test/tint/builtins/gen/literal/textureStore/4cce74.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/4cce74.wgsl.expected.glsl
@@ -1,37 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2D arg_0;
-void textureStore_4cce74() {
-  imageStore(arg_0, ivec2(1, 0), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_4cce74();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp writeonly uimage2D arg_0;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_4cce74() {
   imageStore(arg_0, ivec2(1, 0), uvec4(1u));
 }
@@ -44,16 +13,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2D arg_0;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_4cce74() {
   imageStore(arg_0, ivec2(1, 0), uvec4(1u));
 }
@@ -67,10 +29,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureStore/4d359d.wgsl b/test/tint/builtins/gen/literal/textureStore/4d359d.wgsl
index 24ad3da..893a83d 100644
--- a/test/tint/builtins/gen/literal/textureStore/4d359d.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/4d359d.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32uint, write>;
 
 // fn textureStore(texture: texture_storage_2d_array<rg32uint, write>, coords: vec2<u32>, array_index: i32, value: vec4<u32>)
diff --git a/test/tint/builtins/gen/literal/textureStore/4d359d.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/4d359d.wgsl.expected.glsl
index 85a6909..dc71a75 100644
--- a/test/tint/builtins/gen/literal/textureStore/4d359d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/4d359d.wgsl.expected.glsl
@@ -1,37 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2DArray arg_0;
-void textureStore_4d359d() {
-  imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_4d359d();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp writeonly uimage2DArray arg_0;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_4d359d() {
   imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), uvec4(1u));
 }
@@ -44,16 +13,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2DArray arg_0;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_4d359d() {
   imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), uvec4(1u));
 }
@@ -67,10 +29,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureStore/4e2b3a.wgsl b/test/tint/builtins/gen/literal/textureStore/4e2b3a.wgsl
index e6bfd9f..8bfd48b 100644
--- a/test/tint/builtins/gen/literal/textureStore/4e2b3a.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/4e2b3a.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32float, read_write>;
 
 // fn textureStore(texture: texture_storage_2d_array<rg32float, read_write>, coords: vec2<i32>, array_index: i32, value: vec4<f32>)
diff --git a/test/tint/builtins/gen/literal/textureStore/4e2b3a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/4e2b3a.wgsl.expected.glsl
index ff17aa3..652fa44 100644
--- a/test/tint/builtins/gen/literal/textureStore/4e2b3a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/4e2b3a.wgsl.expected.glsl
@@ -1,37 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2DArray arg_0;
-void textureStore_4e2b3a() {
-  imageStore(arg_0, ivec3(ivec2(1), 1), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_4e2b3a();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, rg32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_4e2b3a() {
   imageStore(arg_0, ivec3(ivec2(1), 1), vec4(1.0f));
 }
@@ -44,16 +13,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, rg32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_4e2b3a() {
   imageStore(arg_0, ivec3(ivec2(1), 1), vec4(1.0f));
 }
@@ -67,10 +29,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureStore/506a71.wgsl b/test/tint/builtins/gen/literal/textureStore/506a71.wgsl
index cba0ac2..4d04c44 100644
--- a/test/tint/builtins/gen/literal/textureStore/506a71.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/506a71.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32uint, write>;
 
 // fn textureStore(texture: texture_storage_2d<rg32uint, write>, coords: vec2<u32>, value: vec4<u32>)
diff --git a/test/tint/builtins/gen/literal/textureStore/506a71.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/506a71.wgsl.expected.glsl
index 0abd094..67f25a6 100644
--- a/test/tint/builtins/gen/literal/textureStore/506a71.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/506a71.wgsl.expected.glsl
@@ -1,37 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2D arg_0;
-void textureStore_506a71() {
-  imageStore(arg_0, ivec2(uvec2(1u)), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_506a71();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp writeonly uimage2D arg_0;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_506a71() {
   imageStore(arg_0, ivec2(uvec2(1u)), uvec4(1u));
 }
@@ -44,16 +13,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2D arg_0;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_506a71() {
   imageStore(arg_0, ivec2(uvec2(1u)), uvec4(1u));
 }
@@ -67,10 +29,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureStore/51ec82.wgsl b/test/tint/builtins/gen/literal/textureStore/51ec82.wgsl
index 6d3a5262..f5bc2ba 100644
--- a/test/tint/builtins/gen/literal/textureStore/51ec82.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/51ec82.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32float, read_write>;
 
 // fn textureStore(texture: texture_storage_1d<rg32float, read_write>, coords: i32, value: vec4<f32>)
diff --git a/test/tint/builtins/gen/literal/textureStore/51ec82.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/51ec82.wgsl.expected.glsl
index bd81d6f..5f457017 100644
--- a/test/tint/builtins/gen/literal/textureStore/51ec82.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/51ec82.wgsl.expected.glsl
@@ -1,37 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2D arg_0;
-void textureStore_51ec82() {
-  imageStore(arg_0, ivec2(1, 0), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_51ec82();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp writeonly image2D arg_0;
+layout(binding = 0, rg32f) uniform highp writeonly image2D arg_0;
 void textureStore_51ec82() {
   imageStore(arg_0, ivec2(1, 0), vec4(1.0f));
 }
@@ -44,16 +13,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2D arg_0;
+layout(binding = 0, rg32f) uniform highp writeonly image2D arg_0;
 void textureStore_51ec82() {
   imageStore(arg_0, ivec2(1, 0), vec4(1.0f));
 }
@@ -67,10 +29,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureStore/5425ab.wgsl b/test/tint/builtins/gen/literal/textureStore/5425ab.wgsl
index 5c5ede8..56d944d 100644
--- a/test/tint/builtins/gen/literal/textureStore/5425ab.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/5425ab.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32uint, read_write>;
 
 // fn textureStore(texture: texture_storage_2d<rg32uint, read_write>, coords: vec2<i32>, value: vec4<u32>)
diff --git a/test/tint/builtins/gen/literal/textureStore/5425ab.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/5425ab.wgsl.expected.glsl
index 287dbd5..a8b38f3 100644
--- a/test/tint/builtins/gen/literal/textureStore/5425ab.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/5425ab.wgsl.expected.glsl
@@ -1,37 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2D arg_0;
-void textureStore_5425ab() {
-  imageStore(arg_0, ivec2(1), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_5425ab();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp writeonly uimage2D arg_0;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_5425ab() {
   imageStore(arg_0, ivec2(1), uvec4(1u));
 }
@@ -44,16 +13,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2D arg_0;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_5425ab() {
   imageStore(arg_0, ivec2(1), uvec4(1u));
 }
@@ -67,10 +29,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureStore/574a31.wgsl b/test/tint/builtins/gen/literal/textureStore/574a31.wgsl
index 5c91c47..09c3b42 100644
--- a/test/tint/builtins/gen/literal/textureStore/574a31.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/574a31.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32sint, read_write>;
 
 // fn textureStore(texture: texture_storage_1d<rg32sint, read_write>, coords: u32, value: vec4<i32>)
diff --git a/test/tint/builtins/gen/literal/textureStore/574a31.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/574a31.wgsl.expected.glsl
index ba77dcd..c2d2130 100644
--- a/test/tint/builtins/gen/literal/textureStore/574a31.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/574a31.wgsl.expected.glsl
@@ -1,37 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2D arg_0;
-void textureStore_574a31() {
-  imageStore(arg_0, ivec2(uvec2(1u, 0u)), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_574a31();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp writeonly iimage2D arg_0;
+layout(binding = 0, rg32i) uniform highp writeonly iimage2D arg_0;
 void textureStore_574a31() {
   imageStore(arg_0, ivec2(uvec2(1u, 0u)), ivec4(1));
 }
@@ -44,16 +13,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2D arg_0;
+layout(binding = 0, rg32i) uniform highp writeonly iimage2D arg_0;
 void textureStore_574a31() {
   imageStore(arg_0, ivec2(uvec2(1u, 0u)), ivec4(1));
 }
@@ -67,10 +29,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureStore/5b17eb.wgsl b/test/tint/builtins/gen/literal/textureStore/5b17eb.wgsl
index 50aef29..33fe0b4 100644
--- a/test/tint/builtins/gen/literal/textureStore/5b17eb.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/5b17eb.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32float, read_write>;
 
 // fn textureStore(texture: texture_storage_2d<rg32float, read_write>, coords: vec2<u32>, value: vec4<f32>)
diff --git a/test/tint/builtins/gen/literal/textureStore/5b17eb.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/5b17eb.wgsl.expected.glsl
index 7494f00..e426b0a 100644
--- a/test/tint/builtins/gen/literal/textureStore/5b17eb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/5b17eb.wgsl.expected.glsl
@@ -1,37 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2D arg_0;
-void textureStore_5b17eb() {
-  imageStore(arg_0, ivec2(uvec2(1u)), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_5b17eb();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp writeonly image2D arg_0;
+layout(binding = 0, rg32f) uniform highp writeonly image2D arg_0;
 void textureStore_5b17eb() {
   imageStore(arg_0, ivec2(uvec2(1u)), vec4(1.0f));
 }
@@ -44,16 +13,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2D arg_0;
+layout(binding = 0, rg32f) uniform highp writeonly image2D arg_0;
 void textureStore_5b17eb() {
   imageStore(arg_0, ivec2(uvec2(1u)), vec4(1.0f));
 }
@@ -67,10 +29,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureStore/5bc4f3.wgsl b/test/tint/builtins/gen/literal/textureStore/5bc4f3.wgsl
index bba16de..bfa6ddb 100644
--- a/test/tint/builtins/gen/literal/textureStore/5bc4f3.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/5bc4f3.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32uint, write>;
 
 // fn textureStore(texture: texture_storage_2d_array<rg32uint, write>, coords: vec2<u32>, array_index: u32, value: vec4<u32>)
diff --git a/test/tint/builtins/gen/literal/textureStore/5bc4f3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/5bc4f3.wgsl.expected.glsl
index ab3dea5..6f48451 100644
--- a/test/tint/builtins/gen/literal/textureStore/5bc4f3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/5bc4f3.wgsl.expected.glsl
@@ -1,37 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2DArray arg_0;
-void textureStore_5bc4f3() {
-  imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_5bc4f3();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp writeonly uimage2DArray arg_0;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_5bc4f3() {
   imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), uvec4(1u));
 }
@@ -44,16 +13,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2DArray arg_0;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_5bc4f3() {
   imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), uvec4(1u));
 }
@@ -67,10 +29,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureStore/5ee194.wgsl b/test/tint/builtins/gen/literal/textureStore/5ee194.wgsl
index 02ed091..a38973b 100644
--- a/test/tint/builtins/gen/literal/textureStore/5ee194.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/5ee194.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32float, read_write>;
 
 // fn textureStore(texture: texture_storage_2d_array<rg32float, read_write>, coords: vec2<u32>, array_index: u32, value: vec4<f32>)
diff --git a/test/tint/builtins/gen/literal/textureStore/5ee194.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/5ee194.wgsl.expected.glsl
index de1eeed..680a542 100644
--- a/test/tint/builtins/gen/literal/textureStore/5ee194.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/5ee194.wgsl.expected.glsl
@@ -1,37 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2DArray arg_0;
-void textureStore_5ee194() {
-  imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_5ee194();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, rg32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_5ee194() {
   imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), vec4(1.0f));
 }
@@ -44,16 +13,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, rg32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_5ee194() {
   imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), vec4(1.0f));
 }
@@ -67,10 +29,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureStore/602b5a.wgsl b/test/tint/builtins/gen/literal/textureStore/602b5a.wgsl
index d551938..bf00cf4 100644
--- a/test/tint/builtins/gen/literal/textureStore/602b5a.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/602b5a.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32float, write>;
 
 // fn textureStore(texture: texture_storage_1d<rg32float, write>, coords: u32, value: vec4<f32>)
diff --git a/test/tint/builtins/gen/literal/textureStore/602b5a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/602b5a.wgsl.expected.glsl
index 1dcb5be..3e5977b 100644
--- a/test/tint/builtins/gen/literal/textureStore/602b5a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/602b5a.wgsl.expected.glsl
@@ -1,37 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2D arg_0;
-void textureStore_602b5a() {
-  imageStore(arg_0, ivec2(uvec2(1u, 0u)), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_602b5a();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp writeonly image2D arg_0;
+layout(binding = 0, rg32f) uniform highp writeonly image2D arg_0;
 void textureStore_602b5a() {
   imageStore(arg_0, ivec2(uvec2(1u, 0u)), vec4(1.0f));
 }
@@ -44,16 +13,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2D arg_0;
+layout(binding = 0, rg32f) uniform highp writeonly image2D arg_0;
 void textureStore_602b5a() {
   imageStore(arg_0, ivec2(uvec2(1u, 0u)), vec4(1.0f));
 }
@@ -67,10 +29,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureStore/635584.wgsl b/test/tint/builtins/gen/literal/textureStore/635584.wgsl
index 7926edf..f0c6053 100644
--- a/test/tint/builtins/gen/literal/textureStore/635584.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/635584.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32float, read_write>;
 
 // fn textureStore(texture: texture_storage_1d<rg32float, read_write>, coords: u32, value: vec4<f32>)
diff --git a/test/tint/builtins/gen/literal/textureStore/635584.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/635584.wgsl.expected.glsl
index 64e99db..b6f827d 100644
--- a/test/tint/builtins/gen/literal/textureStore/635584.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/635584.wgsl.expected.glsl
@@ -1,37 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2D arg_0;
-void textureStore_635584() {
-  imageStore(arg_0, ivec2(uvec2(1u, 0u)), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_635584();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp writeonly image2D arg_0;
+layout(binding = 0, rg32f) uniform highp writeonly image2D arg_0;
 void textureStore_635584() {
   imageStore(arg_0, ivec2(uvec2(1u, 0u)), vec4(1.0f));
 }
@@ -44,16 +13,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2D arg_0;
+layout(binding = 0, rg32f) uniform highp writeonly image2D arg_0;
 void textureStore_635584() {
   imageStore(arg_0, ivec2(uvec2(1u, 0u)), vec4(1.0f));
 }
@@ -67,10 +29,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureStore/63f34a.wgsl b/test/tint/builtins/gen/literal/textureStore/63f34a.wgsl
index 67bd44e..3bcb237 100644
--- a/test/tint/builtins/gen/literal/textureStore/63f34a.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/63f34a.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32sint, read_write>;
 
 // fn textureStore(texture: texture_storage_2d<rg32sint, read_write>, coords: vec2<u32>, value: vec4<i32>)
diff --git a/test/tint/builtins/gen/literal/textureStore/63f34a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/63f34a.wgsl.expected.glsl
index 8e9491e..528b347 100644
--- a/test/tint/builtins/gen/literal/textureStore/63f34a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/63f34a.wgsl.expected.glsl
@@ -1,37 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2D arg_0;
-void textureStore_63f34a() {
-  imageStore(arg_0, ivec2(uvec2(1u)), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_63f34a();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp writeonly iimage2D arg_0;
+layout(binding = 0, rg32i) uniform highp writeonly iimage2D arg_0;
 void textureStore_63f34a() {
   imageStore(arg_0, ivec2(uvec2(1u)), ivec4(1));
 }
@@ -44,16 +13,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2D arg_0;
+layout(binding = 0, rg32i) uniform highp writeonly iimage2D arg_0;
 void textureStore_63f34a() {
   imageStore(arg_0, ivec2(uvec2(1u)), ivec4(1));
 }
@@ -67,10 +29,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureStore/658a74.wgsl b/test/tint/builtins/gen/literal/textureStore/658a74.wgsl
index 9b259e3..d76a9e15 100644
--- a/test/tint/builtins/gen/literal/textureStore/658a74.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/658a74.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32float, write>;
 
 // fn textureStore(texture: texture_storage_2d_array<rg32float, write>, coords: vec2<i32>, array_index: u32, value: vec4<f32>)
diff --git a/test/tint/builtins/gen/literal/textureStore/658a74.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/658a74.wgsl.expected.glsl
index e7ae5eb..591d411 100644
--- a/test/tint/builtins/gen/literal/textureStore/658a74.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/658a74.wgsl.expected.glsl
@@ -1,37 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2DArray arg_0;
-void textureStore_658a74() {
-  imageStore(arg_0, ivec3(ivec2(1), int(1u)), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_658a74();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, rg32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_658a74() {
   imageStore(arg_0, ivec3(ivec2(1), int(1u)), vec4(1.0f));
 }
@@ -44,16 +13,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, rg32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_658a74() {
   imageStore(arg_0, ivec3(ivec2(1), int(1u)), vec4(1.0f));
 }
@@ -67,10 +29,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureStore/65ba8b.wgsl b/test/tint/builtins/gen/literal/textureStore/65ba8b.wgsl
index 01d6699..41ad5fa 100644
--- a/test/tint/builtins/gen/literal/textureStore/65ba8b.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/65ba8b.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 @group(1) @binding(0) var arg_0: texture_storage_2d<r8unorm, read_write>;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/65ba8b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/65ba8b.wgsl.expected.glsl
index 3932602..ecb198a 100644
--- a/test/tint/builtins/gen/literal/textureStore/65ba8b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/65ba8b.wgsl.expected.glsl
@@ -1,37 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp writeonly image2D arg_0;
-void textureStore_65ba8b() {
-  imageStore(arg_0, ivec2(1), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_65ba8b();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp writeonly image2D arg_0;
+layout(binding = 0, r8) uniform highp writeonly image2D arg_0;
 void textureStore_65ba8b() {
   imageStore(arg_0, ivec2(1), vec4(1.0f));
 }
@@ -44,16 +13,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp writeonly image2D arg_0;
+layout(binding = 0, r8) uniform highp writeonly image2D arg_0;
 void textureStore_65ba8b() {
   imageStore(arg_0, ivec2(1), vec4(1.0f));
 }
@@ -67,10 +29,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureStore/682fd6.wgsl b/test/tint/builtins/gen/literal/textureStore/682fd6.wgsl
index 5fe7dbc..909a4c8 100644
--- a/test/tint/builtins/gen/literal/textureStore/682fd6.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/682fd6.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32uint, write>;
 
 // fn textureStore(texture: texture_storage_2d<rg32uint, write>, coords: vec2<i32>, value: vec4<u32>)
diff --git a/test/tint/builtins/gen/literal/textureStore/682fd6.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/682fd6.wgsl.expected.glsl
index 564efc4..b63572c 100644
--- a/test/tint/builtins/gen/literal/textureStore/682fd6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/682fd6.wgsl.expected.glsl
@@ -1,37 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2D arg_0;
-void textureStore_682fd6() {
-  imageStore(arg_0, ivec2(1), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_682fd6();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp writeonly uimage2D arg_0;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_682fd6() {
   imageStore(arg_0, ivec2(1), uvec4(1u));
 }
@@ -44,16 +13,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2D arg_0;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_682fd6() {
   imageStore(arg_0, ivec2(1), uvec4(1u));
 }
@@ -67,10 +29,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureStore/6f0c92.wgsl b/test/tint/builtins/gen/literal/textureStore/6f0c92.wgsl
index 86a190e..741e0a7 100644
--- a/test/tint/builtins/gen/literal/textureStore/6f0c92.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/6f0c92.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r8unorm, read_write>;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/6f0c92.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/6f0c92.wgsl.expected.glsl
index 4e2fb90..c62d3d1 100644
--- a/test/tint/builtins/gen/literal/textureStore/6f0c92.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/6f0c92.wgsl.expected.glsl
@@ -1,37 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp writeonly image2DArray arg_0;
-void textureStore_6f0c92() {
-  imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_6f0c92();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, r8) uniform highp writeonly image2DArray arg_0;
 void textureStore_6f0c92() {
   imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), vec4(1.0f));
 }
@@ -44,16 +13,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, r8) uniform highp writeonly image2DArray arg_0;
 void textureStore_6f0c92() {
   imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), vec4(1.0f));
 }
@@ -67,10 +29,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureStore/6fd2b1.wgsl b/test/tint/builtins/gen/literal/textureStore/6fd2b1.wgsl
index 1156fa6..b713cff 100644
--- a/test/tint/builtins/gen/literal/textureStore/6fd2b1.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/6fd2b1.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 @group(1) @binding(0) var arg_0: texture_storage_1d<r8unorm, write>;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/6fd2b1.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/6fd2b1.wgsl.expected.glsl
index 5efe371..841d25c 100644
--- a/test/tint/builtins/gen/literal/textureStore/6fd2b1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/6fd2b1.wgsl.expected.glsl
@@ -1,37 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp writeonly image2D arg_0;
-void textureStore_6fd2b1() {
-  imageStore(arg_0, ivec2(uvec2(1u, 0u)), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_6fd2b1();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp writeonly image2D arg_0;
+layout(binding = 0, r8) uniform highp writeonly image2D arg_0;
 void textureStore_6fd2b1() {
   imageStore(arg_0, ivec2(uvec2(1u, 0u)), vec4(1.0f));
 }
@@ -44,16 +13,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp writeonly image2D arg_0;
+layout(binding = 0, r8) uniform highp writeonly image2D arg_0;
 void textureStore_6fd2b1() {
   imageStore(arg_0, ivec2(uvec2(1u, 0u)), vec4(1.0f));
 }
@@ -67,10 +29,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureStore/726472.wgsl b/test/tint/builtins/gen/literal/textureStore/726472.wgsl
index ac5ecf4..4abdc28 100644
--- a/test/tint/builtins/gen/literal/textureStore/726472.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/726472.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32float, write>;
 
 // fn textureStore(texture: texture_storage_2d<rg32float, write>, coords: vec2<u32>, value: vec4<f32>)
diff --git a/test/tint/builtins/gen/literal/textureStore/726472.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/726472.wgsl.expected.glsl
index 546a4ca..42338b9 100644
--- a/test/tint/builtins/gen/literal/textureStore/726472.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/726472.wgsl.expected.glsl
@@ -1,37 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2D arg_0;
-void textureStore_726472() {
-  imageStore(arg_0, ivec2(uvec2(1u)), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_726472();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp writeonly image2D arg_0;
+layout(binding = 0, rg32f) uniform highp writeonly image2D arg_0;
 void textureStore_726472() {
   imageStore(arg_0, ivec2(uvec2(1u)), vec4(1.0f));
 }
@@ -44,16 +13,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2D arg_0;
+layout(binding = 0, rg32f) uniform highp writeonly image2D arg_0;
 void textureStore_726472() {
   imageStore(arg_0, ivec2(uvec2(1u)), vec4(1.0f));
 }
@@ -67,10 +29,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureStore/72fa64.wgsl b/test/tint/builtins/gen/literal/textureStore/72fa64.wgsl
index 3701b8d..30e3402 100644
--- a/test/tint/builtins/gen/literal/textureStore/72fa64.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/72fa64.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32sint, write>;
 
 // fn textureStore(texture: texture_storage_2d_array<rg32sint, write>, coords: vec2<u32>, array_index: i32, value: vec4<i32>)
diff --git a/test/tint/builtins/gen/literal/textureStore/72fa64.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/72fa64.wgsl.expected.glsl
index d7e2a42..5d5d313 100644
--- a/test/tint/builtins/gen/literal/textureStore/72fa64.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/72fa64.wgsl.expected.glsl
@@ -1,37 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2DArray arg_0;
-void textureStore_72fa64() {
-  imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_72fa64();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp writeonly iimage2DArray arg_0;
+layout(binding = 0, rg32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_72fa64() {
   imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), ivec4(1));
 }
@@ -44,16 +13,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2DArray arg_0;
+layout(binding = 0, rg32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_72fa64() {
   imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), ivec4(1));
 }
@@ -67,10 +29,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureStore/74886f.wgsl b/test/tint/builtins/gen/literal/textureStore/74886f.wgsl
index 4015de9..39dacc3 100644
--- a/test/tint/builtins/gen/literal/textureStore/74886f.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/74886f.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 @group(1) @binding(0) var arg_0: texture_storage_1d<r8unorm, write>;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/74886f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/74886f.wgsl.expected.glsl
index 3fe07e8..21bb825 100644
--- a/test/tint/builtins/gen/literal/textureStore/74886f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/74886f.wgsl.expected.glsl
@@ -1,37 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp writeonly image2D arg_0;
-void textureStore_74886f() {
-  imageStore(arg_0, ivec2(1, 0), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_74886f();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp writeonly image2D arg_0;
+layout(binding = 0, r8) uniform highp writeonly image2D arg_0;
 void textureStore_74886f() {
   imageStore(arg_0, ivec2(1, 0), vec4(1.0f));
 }
@@ -44,16 +13,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp writeonly image2D arg_0;
+layout(binding = 0, r8) uniform highp writeonly image2D arg_0;
 void textureStore_74886f() {
   imageStore(arg_0, ivec2(1, 0), vec4(1.0f));
 }
@@ -67,10 +29,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureStore/75bbd5.wgsl b/test/tint/builtins/gen/literal/textureStore/75bbd5.wgsl
index e7abc3c..ab6a892 100644
--- a/test/tint/builtins/gen/literal/textureStore/75bbd5.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/75bbd5.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32uint, read_write>;
 
 // fn textureStore(texture: texture_storage_2d_array<rg32uint, read_write>, coords: vec2<i32>, array_index: u32, value: vec4<u32>)
diff --git a/test/tint/builtins/gen/literal/textureStore/75bbd5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/75bbd5.wgsl.expected.glsl
index 422df25..38106e7 100644
--- a/test/tint/builtins/gen/literal/textureStore/75bbd5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/75bbd5.wgsl.expected.glsl
@@ -1,37 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2DArray arg_0;
-void textureStore_75bbd5() {
-  imageStore(arg_0, ivec3(ivec2(1), int(1u)), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_75bbd5();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp writeonly uimage2DArray arg_0;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_75bbd5() {
   imageStore(arg_0, ivec3(ivec2(1), int(1u)), uvec4(1u));
 }
@@ -44,16 +13,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2DArray arg_0;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_75bbd5() {
   imageStore(arg_0, ivec3(ivec2(1), int(1u)), uvec4(1u));
 }
@@ -67,10 +29,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureStore/7792fa.wgsl b/test/tint/builtins/gen/literal/textureStore/7792fa.wgsl
index a1351f1..e9f56e6 100644
--- a/test/tint/builtins/gen/literal/textureStore/7792fa.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/7792fa.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32sint, read_write>;
 
 // fn textureStore(texture: texture_storage_3d<rg32sint, read_write>, coords: vec3<u32>, value: vec4<i32>)
diff --git a/test/tint/builtins/gen/literal/textureStore/7792fa.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/7792fa.wgsl.expected.glsl
index 9135de1..08c3fac 100644
--- a/test/tint/builtins/gen/literal/textureStore/7792fa.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/7792fa.wgsl.expected.glsl
@@ -1,37 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage3D arg_0;
-void textureStore_7792fa() {
-  imageStore(arg_0, ivec3(uvec3(1u)), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_7792fa();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp writeonly iimage3D arg_0;
+layout(binding = 0, rg32i) uniform highp writeonly iimage3D arg_0;
 void textureStore_7792fa() {
   imageStore(arg_0, ivec3(uvec3(1u)), ivec4(1));
 }
@@ -44,16 +13,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage3D arg_0;
+layout(binding = 0, rg32i) uniform highp writeonly iimage3D arg_0;
 void textureStore_7792fa() {
   imageStore(arg_0, ivec3(uvec3(1u)), ivec4(1));
 }
@@ -67,10 +29,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureStore/7b8f86.wgsl b/test/tint/builtins/gen/literal/textureStore/7b8f86.wgsl
index 5c9a2f3..8bd7786 100644
--- a/test/tint/builtins/gen/literal/textureStore/7b8f86.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/7b8f86.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32float, read_write>;
 
 // fn textureStore(texture: texture_storage_3d<rg32float, read_write>, coords: vec3<u32>, value: vec4<f32>)
diff --git a/test/tint/builtins/gen/literal/textureStore/7b8f86.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/7b8f86.wgsl.expected.glsl
index 7ab97a0..1518a4d 100644
--- a/test/tint/builtins/gen/literal/textureStore/7b8f86.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/7b8f86.wgsl.expected.glsl
@@ -1,37 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image3D arg_0;
-void textureStore_7b8f86() {
-  imageStore(arg_0, ivec3(uvec3(1u)), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_7b8f86();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp writeonly image3D arg_0;
+layout(binding = 0, rg32f) uniform highp writeonly image3D arg_0;
 void textureStore_7b8f86() {
   imageStore(arg_0, ivec3(uvec3(1u)), vec4(1.0f));
 }
@@ -44,16 +13,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image3D arg_0;
+layout(binding = 0, rg32f) uniform highp writeonly image3D arg_0;
 void textureStore_7b8f86() {
   imageStore(arg_0, ivec3(uvec3(1u)), vec4(1.0f));
 }
@@ -67,10 +29,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureStore/7bb211.wgsl b/test/tint/builtins/gen/literal/textureStore/7bb211.wgsl
index 3b9233b..5ba256f 100644
--- a/test/tint/builtins/gen/literal/textureStore/7bb211.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/7bb211.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32sint, write>;
 
 // fn textureStore(texture: texture_storage_2d_array<rg32sint, write>, coords: vec2<i32>, array_index: u32, value: vec4<i32>)
diff --git a/test/tint/builtins/gen/literal/textureStore/7bb211.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/7bb211.wgsl.expected.glsl
index 3be643c..4435469 100644
--- a/test/tint/builtins/gen/literal/textureStore/7bb211.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/7bb211.wgsl.expected.glsl
@@ -1,37 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2DArray arg_0;
-void textureStore_7bb211() {
-  imageStore(arg_0, ivec3(ivec2(1), int(1u)), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_7bb211();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp writeonly iimage2DArray arg_0;
+layout(binding = 0, rg32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_7bb211() {
   imageStore(arg_0, ivec3(ivec2(1), int(1u)), ivec4(1));
 }
@@ -44,16 +13,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2DArray arg_0;
+layout(binding = 0, rg32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_7bb211() {
   imageStore(arg_0, ivec3(ivec2(1), int(1u)), ivec4(1));
 }
@@ -67,10 +29,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureStore/803a10.wgsl b/test/tint/builtins/gen/literal/textureStore/803a10.wgsl
index 822361c..891c4e8 100644
--- a/test/tint/builtins/gen/literal/textureStore/803a10.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/803a10.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 @group(1) @binding(0) var arg_0: texture_storage_3d<r8unorm, read_write>;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/803a10.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/803a10.wgsl.expected.glsl
index 4b689ac..8d307a7 100644
--- a/test/tint/builtins/gen/literal/textureStore/803a10.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/803a10.wgsl.expected.glsl
@@ -1,37 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp writeonly image3D arg_0;
-void textureStore_803a10() {
-  imageStore(arg_0, ivec3(uvec3(1u)), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_803a10();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp writeonly image3D arg_0;
+layout(binding = 0, r8) uniform highp writeonly image3D arg_0;
 void textureStore_803a10() {
   imageStore(arg_0, ivec3(uvec3(1u)), vec4(1.0f));
 }
@@ -44,16 +13,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp writeonly image3D arg_0;
+layout(binding = 0, r8) uniform highp writeonly image3D arg_0;
 void textureStore_803a10() {
   imageStore(arg_0, ivec3(uvec3(1u)), vec4(1.0f));
 }
@@ -67,10 +29,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureStore/80bf1d.wgsl b/test/tint/builtins/gen/literal/textureStore/80bf1d.wgsl
index 88d66c2..51fa795 100644
--- a/test/tint/builtins/gen/literal/textureStore/80bf1d.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/80bf1d.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32sint, read_write>;
 
 // fn textureStore(texture: texture_storage_2d<rg32sint, read_write>, coords: vec2<i32>, value: vec4<i32>)
diff --git a/test/tint/builtins/gen/literal/textureStore/80bf1d.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/80bf1d.wgsl.expected.glsl
index 49eff5b..d1ebebf 100644
--- a/test/tint/builtins/gen/literal/textureStore/80bf1d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/80bf1d.wgsl.expected.glsl
@@ -1,37 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2D arg_0;
-void textureStore_80bf1d() {
-  imageStore(arg_0, ivec2(1), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_80bf1d();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp writeonly iimage2D arg_0;
+layout(binding = 0, rg32i) uniform highp writeonly iimage2D arg_0;
 void textureStore_80bf1d() {
   imageStore(arg_0, ivec2(1), ivec4(1));
 }
@@ -44,16 +13,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2D arg_0;
+layout(binding = 0, rg32i) uniform highp writeonly iimage2D arg_0;
 void textureStore_80bf1d() {
   imageStore(arg_0, ivec2(1), ivec4(1));
 }
@@ -67,10 +29,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureStore/820272.wgsl b/test/tint/builtins/gen/literal/textureStore/820272.wgsl
index 0f753dc..4078e80 100644
--- a/test/tint/builtins/gen/literal/textureStore/820272.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/820272.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32sint, read_write>;
 
 // fn textureStore(texture: texture_storage_2d_array<rg32sint, read_write>, coords: vec2<i32>, array_index: u32, value: vec4<i32>)
diff --git a/test/tint/builtins/gen/literal/textureStore/820272.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/820272.wgsl.expected.glsl
index 4530869..f6307da 100644
--- a/test/tint/builtins/gen/literal/textureStore/820272.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/820272.wgsl.expected.glsl
@@ -1,37 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2DArray arg_0;
-void textureStore_820272() {
-  imageStore(arg_0, ivec3(ivec2(1), int(1u)), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_820272();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp writeonly iimage2DArray arg_0;
+layout(binding = 0, rg32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_820272() {
   imageStore(arg_0, ivec3(ivec2(1), int(1u)), ivec4(1));
 }
@@ -44,16 +13,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2DArray arg_0;
+layout(binding = 0, rg32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_820272() {
   imageStore(arg_0, ivec3(ivec2(1), int(1u)), ivec4(1));
 }
@@ -67,10 +29,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureStore/83bcc1.wgsl b/test/tint/builtins/gen/literal/textureStore/83bcc1.wgsl
index 955328d..53733f4 100644
--- a/test/tint/builtins/gen/literal/textureStore/83bcc1.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/83bcc1.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32uint, write>;
 
 // fn textureStore(texture: texture_storage_1d<rg32uint, write>, coords: i32, value: vec4<u32>)
diff --git a/test/tint/builtins/gen/literal/textureStore/83bcc1.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/83bcc1.wgsl.expected.glsl
index f92e65d..cd3ff73 100644
--- a/test/tint/builtins/gen/literal/textureStore/83bcc1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/83bcc1.wgsl.expected.glsl
@@ -1,37 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2D arg_0;
-void textureStore_83bcc1() {
-  imageStore(arg_0, ivec2(1, 0), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_83bcc1();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp writeonly uimage2D arg_0;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_83bcc1() {
   imageStore(arg_0, ivec2(1, 0), uvec4(1u));
 }
@@ -44,16 +13,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2D arg_0;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_83bcc1() {
   imageStore(arg_0, ivec2(1, 0), uvec4(1u));
 }
@@ -67,10 +29,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureStore/84d435.wgsl b/test/tint/builtins/gen/literal/textureStore/84d435.wgsl
index de5ff0f..6beee4a 100644
--- a/test/tint/builtins/gen/literal/textureStore/84d435.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/84d435.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32sint, read_write>;
 
 // fn textureStore(texture: texture_storage_2d_array<rg32sint, read_write>, coords: vec2<i32>, array_index: i32, value: vec4<i32>)
diff --git a/test/tint/builtins/gen/literal/textureStore/84d435.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/84d435.wgsl.expected.glsl
index bbea78b..0319b75 100644
--- a/test/tint/builtins/gen/literal/textureStore/84d435.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/84d435.wgsl.expected.glsl
@@ -1,37 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2DArray arg_0;
-void textureStore_84d435() {
-  imageStore(arg_0, ivec3(ivec2(1), 1), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_84d435();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp writeonly iimage2DArray arg_0;
+layout(binding = 0, rg32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_84d435() {
   imageStore(arg_0, ivec3(ivec2(1), 1), ivec4(1));
 }
@@ -44,16 +13,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2DArray arg_0;
+layout(binding = 0, rg32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_84d435() {
   imageStore(arg_0, ivec3(ivec2(1), 1), ivec4(1));
 }
@@ -67,10 +29,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureStore/872747.wgsl b/test/tint/builtins/gen/literal/textureStore/872747.wgsl
index e144ce8..a38f9dc 100644
--- a/test/tint/builtins/gen/literal/textureStore/872747.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/872747.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32float, write>;
 
 // fn textureStore(texture: texture_storage_1d<rg32float, write>, coords: i32, value: vec4<f32>)
diff --git a/test/tint/builtins/gen/literal/textureStore/872747.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/872747.wgsl.expected.glsl
index 616e460..9a1eb3a 100644
--- a/test/tint/builtins/gen/literal/textureStore/872747.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/872747.wgsl.expected.glsl
@@ -1,37 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2D arg_0;
-void textureStore_872747() {
-  imageStore(arg_0, ivec2(1, 0), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_872747();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp writeonly image2D arg_0;
+layout(binding = 0, rg32f) uniform highp writeonly image2D arg_0;
 void textureStore_872747() {
   imageStore(arg_0, ivec2(1, 0), vec4(1.0f));
 }
@@ -44,16 +13,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2D arg_0;
+layout(binding = 0, rg32f) uniform highp writeonly image2D arg_0;
 void textureStore_872747() {
   imageStore(arg_0, ivec2(1, 0), vec4(1.0f));
 }
@@ -67,10 +29,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureStore/8a8681.wgsl b/test/tint/builtins/gen/literal/textureStore/8a8681.wgsl
index a02fb8a..d33b07e 100644
--- a/test/tint/builtins/gen/literal/textureStore/8a8681.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/8a8681.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32uint, read_write>;
 
 // fn textureStore(texture: texture_storage_2d<rg32uint, read_write>, coords: vec2<u32>, value: vec4<u32>)
diff --git a/test/tint/builtins/gen/literal/textureStore/8a8681.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/8a8681.wgsl.expected.glsl
index 95f68d1..6541171 100644
--- a/test/tint/builtins/gen/literal/textureStore/8a8681.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/8a8681.wgsl.expected.glsl
@@ -1,37 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2D arg_0;
-void textureStore_8a8681() {
-  imageStore(arg_0, ivec2(uvec2(1u)), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_8a8681();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp writeonly uimage2D arg_0;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_8a8681() {
   imageStore(arg_0, ivec2(uvec2(1u)), uvec4(1u));
 }
@@ -44,16 +13,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2D arg_0;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_8a8681() {
   imageStore(arg_0, ivec2(uvec2(1u)), uvec4(1u));
 }
@@ -67,10 +29,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureStore/8cd611.wgsl b/test/tint/builtins/gen/literal/textureStore/8cd611.wgsl
index 18a50a4..5cdb4fc 100644
--- a/test/tint/builtins/gen/literal/textureStore/8cd611.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/8cd611.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 @group(1) @binding(0) var arg_0: texture_storage_3d<r8unorm, write>;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/8cd611.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/8cd611.wgsl.expected.glsl
index 49c2c31..2f605d3 100644
--- a/test/tint/builtins/gen/literal/textureStore/8cd611.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/8cd611.wgsl.expected.glsl
@@ -1,37 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp writeonly image3D arg_0;
-void textureStore_8cd611() {
-  imageStore(arg_0, ivec3(uvec3(1u)), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_8cd611();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp writeonly image3D arg_0;
+layout(binding = 0, r8) uniform highp writeonly image3D arg_0;
 void textureStore_8cd611() {
   imageStore(arg_0, ivec3(uvec3(1u)), vec4(1.0f));
 }
@@ -44,16 +13,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp writeonly image3D arg_0;
+layout(binding = 0, r8) uniform highp writeonly image3D arg_0;
 void textureStore_8cd611() {
   imageStore(arg_0, ivec3(uvec3(1u)), vec4(1.0f));
 }
@@ -67,10 +29,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureStore/9e5bc2.wgsl b/test/tint/builtins/gen/literal/textureStore/9e5bc2.wgsl
index c0a37e1..7de0220 100644
--- a/test/tint/builtins/gen/literal/textureStore/9e5bc2.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/9e5bc2.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 @group(1) @binding(0) var arg_0: texture_storage_2d<r8unorm, write>;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/9e5bc2.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/9e5bc2.wgsl.expected.glsl
index 34001b1..23c67ef 100644
--- a/test/tint/builtins/gen/literal/textureStore/9e5bc2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/9e5bc2.wgsl.expected.glsl
@@ -1,37 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp writeonly image2D arg_0;
-void textureStore_9e5bc2() {
-  imageStore(arg_0, ivec2(uvec2(1u)), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_9e5bc2();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp writeonly image2D arg_0;
+layout(binding = 0, r8) uniform highp writeonly image2D arg_0;
 void textureStore_9e5bc2() {
   imageStore(arg_0, ivec2(uvec2(1u)), vec4(1.0f));
 }
@@ -44,16 +13,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp writeonly image2D arg_0;
+layout(binding = 0, r8) uniform highp writeonly image2D arg_0;
 void textureStore_9e5bc2() {
   imageStore(arg_0, ivec2(uvec2(1u)), vec4(1.0f));
 }
@@ -67,10 +29,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureStore/9f5318.wgsl b/test/tint/builtins/gen/literal/textureStore/9f5318.wgsl
index 4b47e4f..8e54879 100644
--- a/test/tint/builtins/gen/literal/textureStore/9f5318.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/9f5318.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32sint, write>;
 
 // fn textureStore(texture: texture_storage_2d<rg32sint, write>, coords: vec2<u32>, value: vec4<i32>)
diff --git a/test/tint/builtins/gen/literal/textureStore/9f5318.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/9f5318.wgsl.expected.glsl
index 6683ccb..3c7454f 100644
--- a/test/tint/builtins/gen/literal/textureStore/9f5318.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/9f5318.wgsl.expected.glsl
@@ -1,37 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2D arg_0;
-void textureStore_9f5318() {
-  imageStore(arg_0, ivec2(uvec2(1u)), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_9f5318();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp writeonly iimage2D arg_0;
+layout(binding = 0, rg32i) uniform highp writeonly iimage2D arg_0;
 void textureStore_9f5318() {
   imageStore(arg_0, ivec2(uvec2(1u)), ivec4(1));
 }
@@ -44,16 +13,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2D arg_0;
+layout(binding = 0, rg32i) uniform highp writeonly iimage2D arg_0;
 void textureStore_9f5318() {
   imageStore(arg_0, ivec2(uvec2(1u)), ivec4(1));
 }
@@ -67,10 +29,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureStore/a702b6.wgsl b/test/tint/builtins/gen/literal/textureStore/a702b6.wgsl
index 536a1e3..117cc51 100644
--- a/test/tint/builtins/gen/literal/textureStore/a702b6.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/a702b6.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32uint, read_write>;
 
 // fn textureStore(texture: texture_storage_2d_array<rg32uint, read_write>, coords: vec2<i32>, array_index: i32, value: vec4<u32>)
diff --git a/test/tint/builtins/gen/literal/textureStore/a702b6.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/a702b6.wgsl.expected.glsl
index bdff6e3..e3a4ecd 100644
--- a/test/tint/builtins/gen/literal/textureStore/a702b6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/a702b6.wgsl.expected.glsl
@@ -1,37 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2DArray arg_0;
-void textureStore_a702b6() {
-  imageStore(arg_0, ivec3(ivec2(1), 1), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_a702b6();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp writeonly uimage2DArray arg_0;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_a702b6() {
   imageStore(arg_0, ivec3(ivec2(1), 1), uvec4(1u));
 }
@@ -44,16 +13,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2DArray arg_0;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_a702b6() {
   imageStore(arg_0, ivec3(ivec2(1), 1), uvec4(1u));
 }
@@ -67,10 +29,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureStore/a7fc47.wgsl b/test/tint/builtins/gen/literal/textureStore/a7fc47.wgsl
index 5ab4037..62bc799 100644
--- a/test/tint/builtins/gen/literal/textureStore/a7fc47.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/a7fc47.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 @group(1) @binding(0) var arg_0: texture_storage_1d<r8unorm, read_write>;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/a7fc47.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/a7fc47.wgsl.expected.glsl
index f34f602..e32b238 100644
--- a/test/tint/builtins/gen/literal/textureStore/a7fc47.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/a7fc47.wgsl.expected.glsl
@@ -1,37 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp writeonly image2D arg_0;
-void textureStore_a7fc47() {
-  imageStore(arg_0, ivec2(uvec2(1u, 0u)), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_a7fc47();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp writeonly image2D arg_0;
+layout(binding = 0, r8) uniform highp writeonly image2D arg_0;
 void textureStore_a7fc47() {
   imageStore(arg_0, ivec2(uvec2(1u, 0u)), vec4(1.0f));
 }
@@ -44,16 +13,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp writeonly image2D arg_0;
+layout(binding = 0, r8) uniform highp writeonly image2D arg_0;
 void textureStore_a7fc47() {
   imageStore(arg_0, ivec2(uvec2(1u, 0u)), vec4(1.0f));
 }
@@ -67,10 +29,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureStore/a9298c.wgsl b/test/tint/builtins/gen/literal/textureStore/a9298c.wgsl
index 4e55a81..bb91b81 100644
--- a/test/tint/builtins/gen/literal/textureStore/a9298c.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/a9298c.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32uint, read_write>;
 
 // fn textureStore(texture: texture_storage_1d<rg32uint, read_write>, coords: u32, value: vec4<u32>)
diff --git a/test/tint/builtins/gen/literal/textureStore/a9298c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/a9298c.wgsl.expected.glsl
index edf7119..42fc498 100644
--- a/test/tint/builtins/gen/literal/textureStore/a9298c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/a9298c.wgsl.expected.glsl
@@ -1,37 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2D arg_0;
-void textureStore_a9298c() {
-  imageStore(arg_0, ivec2(uvec2(1u, 0u)), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_a9298c();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp writeonly uimage2D arg_0;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_a9298c() {
   imageStore(arg_0, ivec2(uvec2(1u, 0u)), uvec4(1u));
 }
@@ -44,16 +13,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2D arg_0;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_a9298c() {
   imageStore(arg_0, ivec2(uvec2(1u, 0u)), uvec4(1u));
 }
@@ -67,10 +29,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureStore/ab788e.wgsl b/test/tint/builtins/gen/literal/textureStore/ab788e.wgsl
index 1ce23e3..4406639 100644
--- a/test/tint/builtins/gen/literal/textureStore/ab788e.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/ab788e.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32float, read_write>;
 
 // fn textureStore(texture: texture_storage_2d<rg32float, read_write>, coords: vec2<i32>, value: vec4<f32>)
diff --git a/test/tint/builtins/gen/literal/textureStore/ab788e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/ab788e.wgsl.expected.glsl
index 53f03e7..5cf4c2d 100644
--- a/test/tint/builtins/gen/literal/textureStore/ab788e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/ab788e.wgsl.expected.glsl
@@ -1,37 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2D arg_0;
-void textureStore_ab788e() {
-  imageStore(arg_0, ivec2(1), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_ab788e();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp writeonly image2D arg_0;
+layout(binding = 0, rg32f) uniform highp writeonly image2D arg_0;
 void textureStore_ab788e() {
   imageStore(arg_0, ivec2(1), vec4(1.0f));
 }
@@ -44,16 +13,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2D arg_0;
+layout(binding = 0, rg32f) uniform highp writeonly image2D arg_0;
 void textureStore_ab788e() {
   imageStore(arg_0, ivec2(1), vec4(1.0f));
 }
@@ -67,10 +29,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureStore/ac67aa.wgsl b/test/tint/builtins/gen/literal/textureStore/ac67aa.wgsl
index e30364e..b220cc2 100644
--- a/test/tint/builtins/gen/literal/textureStore/ac67aa.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/ac67aa.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32uint, write>;
 
 // fn textureStore(texture: texture_storage_3d<rg32uint, write>, coords: vec3<i32>, value: vec4<u32>)
diff --git a/test/tint/builtins/gen/literal/textureStore/ac67aa.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/ac67aa.wgsl.expected.glsl
index 5efc8c3..9007f20 100644
--- a/test/tint/builtins/gen/literal/textureStore/ac67aa.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/ac67aa.wgsl.expected.glsl
@@ -1,37 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage3D arg_0;
-void textureStore_ac67aa() {
-  imageStore(arg_0, ivec3(1), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_ac67aa();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp writeonly uimage3D arg_0;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage3D arg_0;
 void textureStore_ac67aa() {
   imageStore(arg_0, ivec3(1), uvec4(1u));
 }
@@ -44,16 +13,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage3D arg_0;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage3D arg_0;
 void textureStore_ac67aa() {
   imageStore(arg_0, ivec3(1), uvec4(1u));
 }
@@ -67,10 +29,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureStore/ae6a2a.wgsl b/test/tint/builtins/gen/literal/textureStore/ae6a2a.wgsl
index 4ebf93d..645a4f5 100644
--- a/test/tint/builtins/gen/literal/textureStore/ae6a2a.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/ae6a2a.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r8unorm, read_write>;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/ae6a2a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/ae6a2a.wgsl.expected.glsl
index e38f4bf..a8d030f 100644
--- a/test/tint/builtins/gen/literal/textureStore/ae6a2a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/ae6a2a.wgsl.expected.glsl
@@ -1,37 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp writeonly image2DArray arg_0;
-void textureStore_ae6a2a() {
-  imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_ae6a2a();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, r8) uniform highp writeonly image2DArray arg_0;
 void textureStore_ae6a2a() {
   imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), vec4(1.0f));
 }
@@ -44,16 +13,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, r8) uniform highp writeonly image2DArray arg_0;
 void textureStore_ae6a2a() {
   imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), vec4(1.0f));
 }
@@ -67,10 +29,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureStore/b71c13.wgsl b/test/tint/builtins/gen/literal/textureStore/b71c13.wgsl
index 4f76385..29c786d 100644
--- a/test/tint/builtins/gen/literal/textureStore/b71c13.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/b71c13.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32float, read_write>;
 
 // fn textureStore(texture: texture_storage_2d_array<rg32float, read_write>, coords: vec2<u32>, array_index: i32, value: vec4<f32>)
diff --git a/test/tint/builtins/gen/literal/textureStore/b71c13.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/b71c13.wgsl.expected.glsl
index c9c0a3e..f909c31 100644
--- a/test/tint/builtins/gen/literal/textureStore/b71c13.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/b71c13.wgsl.expected.glsl
@@ -1,37 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2DArray arg_0;
-void textureStore_b71c13() {
-  imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_b71c13();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, rg32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_b71c13() {
   imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), vec4(1.0f));
 }
@@ -44,16 +13,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, rg32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_b71c13() {
   imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), vec4(1.0f));
 }
@@ -67,10 +29,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureStore/b77161.wgsl b/test/tint/builtins/gen/literal/textureStore/b77161.wgsl
index 71a89ab..08ffd45 100644
--- a/test/tint/builtins/gen/literal/textureStore/b77161.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/b77161.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32uint, write>;
 
 // fn textureStore(texture: texture_storage_1d<rg32uint, write>, coords: u32, value: vec4<u32>)
diff --git a/test/tint/builtins/gen/literal/textureStore/b77161.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/b77161.wgsl.expected.glsl
index cc9ede4..d22c775 100644
--- a/test/tint/builtins/gen/literal/textureStore/b77161.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/b77161.wgsl.expected.glsl
@@ -1,37 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2D arg_0;
-void textureStore_b77161() {
-  imageStore(arg_0, ivec2(uvec2(1u, 0u)), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_b77161();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp writeonly uimage2D arg_0;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_b77161() {
   imageStore(arg_0, ivec2(uvec2(1u, 0u)), uvec4(1u));
 }
@@ -44,16 +13,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2D arg_0;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_b77161() {
   imageStore(arg_0, ivec2(uvec2(1u, 0u)), uvec4(1u));
 }
@@ -67,10 +29,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureStore/b91b86.wgsl b/test/tint/builtins/gen/literal/textureStore/b91b86.wgsl
index 9fbace8..eb631ab 100644
--- a/test/tint/builtins/gen/literal/textureStore/b91b86.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/b91b86.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r8unorm, write>;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/b91b86.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/b91b86.wgsl.expected.glsl
index e7d3c8b..932ce8a 100644
--- a/test/tint/builtins/gen/literal/textureStore/b91b86.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/b91b86.wgsl.expected.glsl
@@ -1,37 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp writeonly image2DArray arg_0;
-void textureStore_b91b86() {
-  imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_b91b86();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, r8) uniform highp writeonly image2DArray arg_0;
 void textureStore_b91b86() {
   imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), vec4(1.0f));
 }
@@ -44,16 +13,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, r8) uniform highp writeonly image2DArray arg_0;
 void textureStore_b91b86() {
   imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), vec4(1.0f));
 }
@@ -67,10 +29,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureStore/b9c81a.wgsl b/test/tint/builtins/gen/literal/textureStore/b9c81a.wgsl
index 5c3a9fd..cb59f4a9 100644
--- a/test/tint/builtins/gen/literal/textureStore/b9c81a.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/b9c81a.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32uint, read_write>;
 
 // fn textureStore(texture: texture_storage_3d<rg32uint, read_write>, coords: vec3<i32>, value: vec4<u32>)
diff --git a/test/tint/builtins/gen/literal/textureStore/b9c81a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/b9c81a.wgsl.expected.glsl
index 4247870..8286d82 100644
--- a/test/tint/builtins/gen/literal/textureStore/b9c81a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/b9c81a.wgsl.expected.glsl
@@ -1,37 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage3D arg_0;
-void textureStore_b9c81a() {
-  imageStore(arg_0, ivec3(1), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_b9c81a();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp writeonly uimage3D arg_0;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage3D arg_0;
 void textureStore_b9c81a() {
   imageStore(arg_0, ivec3(1), uvec4(1u));
 }
@@ -44,16 +13,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage3D arg_0;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage3D arg_0;
 void textureStore_b9c81a() {
   imageStore(arg_0, ivec3(1), uvec4(1u));
 }
@@ -67,10 +29,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureStore/bd6602.wgsl b/test/tint/builtins/gen/literal/textureStore/bd6602.wgsl
index b78c0b5..0dcf92b 100644
--- a/test/tint/builtins/gen/literal/textureStore/bd6602.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/bd6602.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32uint, read_write>;
 
 // fn textureStore(texture: texture_storage_2d_array<rg32uint, read_write>, coords: vec2<u32>, array_index: i32, value: vec4<u32>)
diff --git a/test/tint/builtins/gen/literal/textureStore/bd6602.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/bd6602.wgsl.expected.glsl
index f995c8d..b4c8d06 100644
--- a/test/tint/builtins/gen/literal/textureStore/bd6602.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/bd6602.wgsl.expected.glsl
@@ -1,37 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2DArray arg_0;
-void textureStore_bd6602() {
-  imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_bd6602();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp writeonly uimage2DArray arg_0;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_bd6602() {
   imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), uvec4(1u));
 }
@@ -44,16 +13,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2DArray arg_0;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_bd6602() {
   imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), uvec4(1u));
 }
@@ -67,10 +29,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureStore/c33478.wgsl b/test/tint/builtins/gen/literal/textureStore/c33478.wgsl
index 37df688..f0de1b7 100644
--- a/test/tint/builtins/gen/literal/textureStore/c33478.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/c33478.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32float, read_write>;
 
 // fn textureStore(texture: texture_storage_3d<rg32float, read_write>, coords: vec3<i32>, value: vec4<f32>)
diff --git a/test/tint/builtins/gen/literal/textureStore/c33478.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/c33478.wgsl.expected.glsl
index e572406..8407c6d 100644
--- a/test/tint/builtins/gen/literal/textureStore/c33478.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/c33478.wgsl.expected.glsl
@@ -1,37 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image3D arg_0;
-void textureStore_c33478() {
-  imageStore(arg_0, ivec3(1), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_c33478();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp writeonly image3D arg_0;
+layout(binding = 0, rg32f) uniform highp writeonly image3D arg_0;
 void textureStore_c33478() {
   imageStore(arg_0, ivec3(1), vec4(1.0f));
 }
@@ -44,16 +13,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image3D arg_0;
+layout(binding = 0, rg32f) uniform highp writeonly image3D arg_0;
 void textureStore_c33478() {
   imageStore(arg_0, ivec3(1), vec4(1.0f));
 }
@@ -67,10 +29,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureStore/c863be.wgsl b/test/tint/builtins/gen/literal/textureStore/c863be.wgsl
index 3075eaf..0024870 100644
--- a/test/tint/builtins/gen/literal/textureStore/c863be.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/c863be.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32float, write>;
 
 // fn textureStore(texture: texture_storage_2d_array<rg32float, write>, coords: vec2<i32>, array_index: i32, value: vec4<f32>)
diff --git a/test/tint/builtins/gen/literal/textureStore/c863be.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/c863be.wgsl.expected.glsl
index 85287dd..16dfbf1 100644
--- a/test/tint/builtins/gen/literal/textureStore/c863be.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/c863be.wgsl.expected.glsl
@@ -1,37 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2DArray arg_0;
-void textureStore_c863be() {
-  imageStore(arg_0, ivec3(ivec2(1), 1), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_c863be();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, rg32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_c863be() {
   imageStore(arg_0, ivec3(ivec2(1), 1), vec4(1.0f));
 }
@@ -44,16 +13,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, rg32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_c863be() {
   imageStore(arg_0, ivec3(ivec2(1), 1), vec4(1.0f));
 }
@@ -67,10 +29,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureStore/d19db4.wgsl b/test/tint/builtins/gen/literal/textureStore/d19db4.wgsl
index ef18530..e703c34 100644
--- a/test/tint/builtins/gen/literal/textureStore/d19db4.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/d19db4.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32sint, read_write>;
 
 // fn textureStore(texture: texture_storage_3d<rg32sint, read_write>, coords: vec3<i32>, value: vec4<i32>)
diff --git a/test/tint/builtins/gen/literal/textureStore/d19db4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/d19db4.wgsl.expected.glsl
index 7644dc4..1d01236 100644
--- a/test/tint/builtins/gen/literal/textureStore/d19db4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/d19db4.wgsl.expected.glsl
@@ -1,37 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage3D arg_0;
-void textureStore_d19db4() {
-  imageStore(arg_0, ivec3(1), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_d19db4();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp writeonly iimage3D arg_0;
+layout(binding = 0, rg32i) uniform highp writeonly iimage3D arg_0;
 void textureStore_d19db4() {
   imageStore(arg_0, ivec3(1), ivec4(1));
 }
@@ -44,16 +13,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage3D arg_0;
+layout(binding = 0, rg32i) uniform highp writeonly iimage3D arg_0;
 void textureStore_d19db4() {
   imageStore(arg_0, ivec3(1), ivec4(1));
 }
@@ -67,10 +29,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureStore/d73b5c.wgsl b/test/tint/builtins/gen/literal/textureStore/d73b5c.wgsl
index bac9122..47e6ea7 100644
--- a/test/tint/builtins/gen/literal/textureStore/d73b5c.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/d73b5c.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32sint, write>;
 
 // fn textureStore(texture: texture_storage_1d<rg32sint, write>, coords: i32, value: vec4<i32>)
diff --git a/test/tint/builtins/gen/literal/textureStore/d73b5c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/d73b5c.wgsl.expected.glsl
index b9e8bca..8ed86c1 100644
--- a/test/tint/builtins/gen/literal/textureStore/d73b5c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/d73b5c.wgsl.expected.glsl
@@ -1,37 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2D arg_0;
-void textureStore_d73b5c() {
-  imageStore(arg_0, ivec2(1, 0), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_d73b5c();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp writeonly iimage2D arg_0;
+layout(binding = 0, rg32i) uniform highp writeonly iimage2D arg_0;
 void textureStore_d73b5c() {
   imageStore(arg_0, ivec2(1, 0), ivec4(1));
 }
@@ -44,16 +13,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2D arg_0;
+layout(binding = 0, rg32i) uniform highp writeonly iimage2D arg_0;
 void textureStore_d73b5c() {
   imageStore(arg_0, ivec2(1, 0), ivec4(1));
 }
@@ -67,10 +29,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureStore/d82b0a.wgsl b/test/tint/builtins/gen/literal/textureStore/d82b0a.wgsl
index 2729e5e..8781533 100644
--- a/test/tint/builtins/gen/literal/textureStore/d82b0a.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/d82b0a.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32sint, write>;
 
 // fn textureStore(texture: texture_storage_3d<rg32sint, write>, coords: vec3<u32>, value: vec4<i32>)
diff --git a/test/tint/builtins/gen/literal/textureStore/d82b0a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/d82b0a.wgsl.expected.glsl
index 59e9fcd..74a3b40 100644
--- a/test/tint/builtins/gen/literal/textureStore/d82b0a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/d82b0a.wgsl.expected.glsl
@@ -1,37 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage3D arg_0;
-void textureStore_d82b0a() {
-  imageStore(arg_0, ivec3(uvec3(1u)), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_d82b0a();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp writeonly iimage3D arg_0;
+layout(binding = 0, rg32i) uniform highp writeonly iimage3D arg_0;
 void textureStore_d82b0a() {
   imageStore(arg_0, ivec3(uvec3(1u)), ivec4(1));
 }
@@ -44,16 +13,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage3D arg_0;
+layout(binding = 0, rg32i) uniform highp writeonly iimage3D arg_0;
 void textureStore_d82b0a() {
   imageStore(arg_0, ivec3(uvec3(1u)), ivec4(1));
 }
@@ -67,10 +29,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureStore/dde364.wgsl b/test/tint/builtins/gen/literal/textureStore/dde364.wgsl
index 190afb4..3be32cf 100644
--- a/test/tint/builtins/gen/literal/textureStore/dde364.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/dde364.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32uint, write>;
 
 // fn textureStore(texture: texture_storage_2d_array<rg32uint, write>, coords: vec2<i32>, array_index: i32, value: vec4<u32>)
diff --git a/test/tint/builtins/gen/literal/textureStore/dde364.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/dde364.wgsl.expected.glsl
index 0acd3b4..bdb6e05 100644
--- a/test/tint/builtins/gen/literal/textureStore/dde364.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/dde364.wgsl.expected.glsl
@@ -1,37 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2DArray arg_0;
-void textureStore_dde364() {
-  imageStore(arg_0, ivec3(ivec2(1), 1), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_dde364();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp writeonly uimage2DArray arg_0;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_dde364() {
   imageStore(arg_0, ivec3(ivec2(1), 1), uvec4(1u));
 }
@@ -44,16 +13,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2DArray arg_0;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_dde364() {
   imageStore(arg_0, ivec3(ivec2(1), 1), uvec4(1u));
 }
@@ -67,10 +29,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureStore/dfa9a1.wgsl b/test/tint/builtins/gen/literal/textureStore/dfa9a1.wgsl
index 791f4af..ba2efb0 100644
--- a/test/tint/builtins/gen/literal/textureStore/dfa9a1.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/dfa9a1.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32float, write>;
 
 // fn textureStore(texture: texture_storage_2d_array<rg32float, write>, coords: vec2<u32>, array_index: i32, value: vec4<f32>)
diff --git a/test/tint/builtins/gen/literal/textureStore/dfa9a1.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/dfa9a1.wgsl.expected.glsl
index 3f6fad4..7899214 100644
--- a/test/tint/builtins/gen/literal/textureStore/dfa9a1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/dfa9a1.wgsl.expected.glsl
@@ -1,37 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2DArray arg_0;
-void textureStore_dfa9a1() {
-  imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_dfa9a1();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, rg32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_dfa9a1() {
   imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), vec4(1.0f));
 }
@@ -44,16 +13,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, rg32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_dfa9a1() {
   imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), vec4(1.0f));
 }
@@ -67,10 +29,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureStore/dffb13.wgsl b/test/tint/builtins/gen/literal/textureStore/dffb13.wgsl
index d03826c..feddf26 100644
--- a/test/tint/builtins/gen/literal/textureStore/dffb13.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/dffb13.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32uint, write>;
 
 // fn textureStore(texture: texture_storage_2d_array<rg32uint, write>, coords: vec2<i32>, array_index: u32, value: vec4<u32>)
diff --git a/test/tint/builtins/gen/literal/textureStore/dffb13.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/dffb13.wgsl.expected.glsl
index 0793869..6146db3 100644
--- a/test/tint/builtins/gen/literal/textureStore/dffb13.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/dffb13.wgsl.expected.glsl
@@ -1,37 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2DArray arg_0;
-void textureStore_dffb13() {
-  imageStore(arg_0, ivec3(ivec2(1), int(1u)), uvec4(1u));
-}
-
-vec4 vertex_main() {
-  textureStore_dffb13();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp writeonly uimage2DArray arg_0;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_dffb13() {
   imageStore(arg_0, ivec3(ivec2(1), int(1u)), uvec4(1u));
 }
@@ -44,16 +13,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2DArray arg_0;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_dffb13() {
   imageStore(arg_0, ivec3(ivec2(1), int(1u)), uvec4(1u));
 }
@@ -67,10 +29,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureStore/e077e7.wgsl b/test/tint/builtins/gen/literal/textureStore/e077e7.wgsl
index 4af5b15..1d0ffe4 100644
--- a/test/tint/builtins/gen/literal/textureStore/e077e7.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/e077e7.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32sint, read_write>;
 
 // fn textureStore(texture: texture_storage_1d<rg32sint, read_write>, coords: i32, value: vec4<i32>)
diff --git a/test/tint/builtins/gen/literal/textureStore/e077e7.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/e077e7.wgsl.expected.glsl
index 74bff8c..00f7144 100644
--- a/test/tint/builtins/gen/literal/textureStore/e077e7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/e077e7.wgsl.expected.glsl
@@ -1,37 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2D arg_0;
-void textureStore_e077e7() {
-  imageStore(arg_0, ivec2(1, 0), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_e077e7();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp writeonly iimage2D arg_0;
+layout(binding = 0, rg32i) uniform highp writeonly iimage2D arg_0;
 void textureStore_e077e7() {
   imageStore(arg_0, ivec2(1, 0), ivec4(1));
 }
@@ -44,16 +13,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2D arg_0;
+layout(binding = 0, rg32i) uniform highp writeonly iimage2D arg_0;
 void textureStore_e077e7() {
   imageStore(arg_0, ivec2(1, 0), ivec4(1));
 }
@@ -67,10 +29,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureStore/ea30d2.wgsl b/test/tint/builtins/gen/literal/textureStore/ea30d2.wgsl
index e27dbe6..88c4fda 100644
--- a/test/tint/builtins/gen/literal/textureStore/ea30d2.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/ea30d2.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32sint, read_write>;
 
 // fn textureStore(texture: texture_storage_2d_array<rg32sint, read_write>, coords: vec2<u32>, array_index: i32, value: vec4<i32>)
diff --git a/test/tint/builtins/gen/literal/textureStore/ea30d2.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/ea30d2.wgsl.expected.glsl
index 0d3834a..24a9d51 100644
--- a/test/tint/builtins/gen/literal/textureStore/ea30d2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/ea30d2.wgsl.expected.glsl
@@ -1,37 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2DArray arg_0;
-void textureStore_ea30d2() {
-  imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_ea30d2();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp writeonly iimage2DArray arg_0;
+layout(binding = 0, rg32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_ea30d2() {
   imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), ivec4(1));
 }
@@ -44,16 +13,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2DArray arg_0;
+layout(binding = 0, rg32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_ea30d2() {
   imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), ivec4(1));
 }
@@ -67,10 +29,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureStore/ed6198.wgsl b/test/tint/builtins/gen/literal/textureStore/ed6198.wgsl
index 2e1a224..550f456 100644
--- a/test/tint/builtins/gen/literal/textureStore/ed6198.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/ed6198.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 @group(1) @binding(0) var arg_0: texture_storage_3d<r8unorm, read_write>;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/ed6198.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/ed6198.wgsl.expected.glsl
index f45fdda..4b567e2 100644
--- a/test/tint/builtins/gen/literal/textureStore/ed6198.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/ed6198.wgsl.expected.glsl
@@ -1,37 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp writeonly image3D arg_0;
-void textureStore_ed6198() {
-  imageStore(arg_0, ivec3(1), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_ed6198();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp writeonly image3D arg_0;
+layout(binding = 0, r8) uniform highp writeonly image3D arg_0;
 void textureStore_ed6198() {
   imageStore(arg_0, ivec3(1), vec4(1.0f));
 }
@@ -44,16 +13,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp writeonly image3D arg_0;
+layout(binding = 0, r8) uniform highp writeonly image3D arg_0;
 void textureStore_ed6198() {
   imageStore(arg_0, ivec3(1), vec4(1.0f));
 }
@@ -67,10 +29,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureStore/ee6acc.wgsl b/test/tint/builtins/gen/literal/textureStore/ee6acc.wgsl
index 9f6b7a8..02790fe 100644
--- a/test/tint/builtins/gen/literal/textureStore/ee6acc.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/ee6acc.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32float, write>;
 
 // fn textureStore(texture: texture_storage_3d<rg32float, write>, coords: vec3<i32>, value: vec4<f32>)
diff --git a/test/tint/builtins/gen/literal/textureStore/ee6acc.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/ee6acc.wgsl.expected.glsl
index e2ef12b..a37779f 100644
--- a/test/tint/builtins/gen/literal/textureStore/ee6acc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/ee6acc.wgsl.expected.glsl
@@ -1,37 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image3D arg_0;
-void textureStore_ee6acc() {
-  imageStore(arg_0, ivec3(1), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_ee6acc();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp writeonly image3D arg_0;
+layout(binding = 0, rg32f) uniform highp writeonly image3D arg_0;
 void textureStore_ee6acc() {
   imageStore(arg_0, ivec3(1), vec4(1.0f));
 }
@@ -44,16 +13,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image3D arg_0;
+layout(binding = 0, rg32f) uniform highp writeonly image3D arg_0;
 void textureStore_ee6acc() {
   imageStore(arg_0, ivec3(1), vec4(1.0f));
 }
@@ -67,10 +29,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureStore/f7b0ab.wgsl b/test/tint/builtins/gen/literal/textureStore/f7b0ab.wgsl
index 59f096a..e93d647 100644
--- a/test/tint/builtins/gen/literal/textureStore/f7b0ab.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/f7b0ab.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r8unorm, write>;
 
diff --git a/test/tint/builtins/gen/literal/textureStore/f7b0ab.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/f7b0ab.wgsl.expected.glsl
index 2c6b931..0546bc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/f7b0ab.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/f7b0ab.wgsl.expected.glsl
@@ -1,37 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp writeonly image2DArray arg_0;
-void textureStore_f7b0ab() {
-  imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_f7b0ab();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, r8) uniform highp writeonly image2DArray arg_0;
 void textureStore_f7b0ab() {
   imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), vec4(1.0f));
 }
@@ -44,16 +13,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, r8) uniform highp writeonly image2DArray arg_0;
 void textureStore_f7b0ab() {
   imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), vec4(1.0f));
 }
@@ -67,10 +29,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureStore/f9be83.wgsl b/test/tint/builtins/gen/literal/textureStore/f9be83.wgsl
index 5fdd775..9a9719d 100644
--- a/test/tint/builtins/gen/literal/textureStore/f9be83.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/f9be83.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32sint, write>;
 
 // fn textureStore(texture: texture_storage_2d_array<rg32sint, write>, coords: vec2<i32>, array_index: i32, value: vec4<i32>)
diff --git a/test/tint/builtins/gen/literal/textureStore/f9be83.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/f9be83.wgsl.expected.glsl
index e9f5373..beb8ff0 100644
--- a/test/tint/builtins/gen/literal/textureStore/f9be83.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/f9be83.wgsl.expected.glsl
@@ -1,37 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2DArray arg_0;
-void textureStore_f9be83() {
-  imageStore(arg_0, ivec3(ivec2(1), 1), ivec4(1));
-}
-
-vec4 vertex_main() {
-  textureStore_f9be83();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp writeonly iimage2DArray arg_0;
+layout(binding = 0, rg32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_f9be83() {
   imageStore(arg_0, ivec3(ivec2(1), 1), ivec4(1));
 }
@@ -44,16 +13,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2DArray arg_0;
+layout(binding = 0, rg32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_f9be83() {
   imageStore(arg_0, ivec3(ivec2(1), 1), ivec4(1));
 }
@@ -67,10 +29,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/literal/textureStore/fcbe66.wgsl b/test/tint/builtins/gen/literal/textureStore/fcbe66.wgsl
index 15b7528..36bdb69 100644
--- a/test/tint/builtins/gen/literal/textureStore/fcbe66.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/fcbe66.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32float, write>;
 
 // fn textureStore(texture: texture_storage_3d<rg32float, write>, coords: vec3<u32>, value: vec4<f32>)
diff --git a/test/tint/builtins/gen/literal/textureStore/fcbe66.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/fcbe66.wgsl.expected.glsl
index b0e71d4..c5701a7 100644
--- a/test/tint/builtins/gen/literal/textureStore/fcbe66.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/fcbe66.wgsl.expected.glsl
@@ -1,37 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image3D arg_0;
-void textureStore_fcbe66() {
-  imageStore(arg_0, ivec3(uvec3(1u)), vec4(1.0f));
-}
-
-vec4 vertex_main() {
-  textureStore_fcbe66();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp writeonly image3D arg_0;
+layout(binding = 0, rg32f) uniform highp writeonly image3D arg_0;
 void textureStore_fcbe66() {
   imageStore(arg_0, ivec3(uvec3(1u)), vec4(1.0f));
 }
@@ -44,16 +13,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image3D arg_0;
+layout(binding = 0, rg32f) uniform highp writeonly image3D arg_0;
 void textureStore_fcbe66() {
   imageStore(arg_0, ivec3(uvec3(1u)), vec4(1.0f));
 }
@@ -67,10 +29,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureDimensions/00229f.wgsl b/test/tint/builtins/gen/var/textureDimensions/00229f.wgsl
index f443996..83d66f9 100644
--- a/test/tint/builtins/gen/var/textureDimensions/00229f.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/00229f.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
diff --git a/test/tint/builtins/gen/var/textureDimensions/00229f.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/00229f.wgsl.expected.glsl
index 8fa9903..b20e3d1 100644
--- a/test/tint/builtins/gen/var/textureDimensions/00229f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/00229f.wgsl.expected.glsl
@@ -1,83 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp readonly image3D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec3 inner;
-  uint pad;
 } prevent_dce;
 
-void textureDimensions_00229f() {
+layout(binding = 0, r8) uniform highp readonly image3D arg_0;
+uvec3 textureDimensions_00229f() {
   uvec3 res = uvec3(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureDimensions_00229f();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp readonly image3D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
-void textureDimensions_00229f() {
-  uvec3 res = uvec3(imageSize(arg_0));
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  uvec3 prevent_dce;
+};
 
 void fragment_main() {
-  textureDimensions_00229f();
+  prevent_dce.inner = textureDimensions_00229f();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp readonly image3D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec3 inner;
-  uint pad;
 } prevent_dce;
 
-void textureDimensions_00229f() {
+layout(binding = 0, r8) uniform highp readonly image3D arg_0;
+uvec3 textureDimensions_00229f() {
   uvec3 res = uvec3(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec3 prevent_dce;
+};
+
 void compute_main() {
-  textureDimensions_00229f();
+  prevent_dce.inner = textureDimensions_00229f();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out uvec3 prevent_dce_1;
+layout(binding = 0, r8) uniform highp readonly image3D arg_0;
+uvec3 textureDimensions_00229f() {
+  uvec3 res = uvec3(imageSize(arg_0));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uvec3 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), uvec3(0u, 0u, 0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_00229f();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureDimensions/00229f.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureDimensions/00229f.wgsl.expected.ir.glsl
index fbd651e..aa518a0 100644
--- a/test/tint/builtins/gen/var/textureDimensions/00229f.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/00229f.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec3 tint_symbol;
+} v;
+layout(binding = 0, r8) uniform highp readonly image3D arg_0;
+uvec3 textureDimensions_00229f() {
+  uvec3 res = uvec3(imageSize(arg_0));
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_00229f();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec3 tint_symbol;
+} v;
+layout(binding = 0, r8) uniform highp readonly image3D arg_0;
+uvec3 textureDimensions_00229f() {
+  uvec3 res = uvec3(imageSize(arg_0));
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureDimensions_00229f();
+}
+#version 460
+
+
+struct VertexOutput {
+  vec4 pos;
+  uvec3 prevent_dce;
+};
+
+layout(binding = 0, r8) uniform highp readonly image3D arg_0;
+layout(location = 0) flat out uvec3 vertex_main_loc0_Output;
+uvec3 textureDimensions_00229f() {
+  uvec3 res = uvec3(imageSize(arg_0));
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), uvec3(0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_00229f();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/textureDimensions/01e21e.wgsl b/test/tint/builtins/gen/var/textureDimensions/01e21e.wgsl
index ad4b8e5..13d2140 100644
--- a/test/tint/builtins/gen/var/textureDimensions/01e21e.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/01e21e.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
 
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32uint, read_write>;
diff --git a/test/tint/builtins/gen/var/textureDimensions/01e21e.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/01e21e.wgsl.expected.glsl
index bb83cc6..196e85a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/01e21e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/01e21e.wgsl.expected.glsl
@@ -1,80 +1,37 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureDimensions_01e21e() {
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2D arg_0;
+uint textureDimensions_01e21e() {
   uint res = uvec2(imageSize(arg_0)).x;
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureDimensions_01e21e();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp writeonly uimage2D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
-void textureDimensions_01e21e() {
-  uint res = uvec2(imageSize(arg_0)).x;
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureDimensions_01e21e();
+  prevent_dce.inner = textureDimensions_01e21e();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureDimensions_01e21e() {
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2D arg_0;
+uint textureDimensions_01e21e() {
   uint res = uvec2(imageSize(arg_0)).x;
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureDimensions_01e21e();
+  prevent_dce.inner = textureDimensions_01e21e();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +39,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureDimensions/029589.wgsl b/test/tint/builtins/gen/var/textureDimensions/029589.wgsl
index c26ada3..7d05927 100644
--- a/test/tint/builtins/gen/var/textureDimensions/029589.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/029589.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32float, read_write>;
diff --git a/test/tint/builtins/gen/var/textureDimensions/029589.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/029589.wgsl.expected.glsl
index 997a1c6..c3786dd 100644
--- a/test/tint/builtins/gen/var/textureDimensions/029589.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/029589.wgsl.expected.glsl
@@ -1,80 +1,37 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_029589() {
+layout(binding = 0, rg32f) uniform highp writeonly image2DArray arg_0;
+uvec2 textureDimensions_029589() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureDimensions_029589();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp writeonly image2DArray arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
-void textureDimensions_029589() {
-  uvec2 res = uvec2(imageSize(arg_0).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureDimensions_029589();
+  prevent_dce.inner = textureDimensions_029589();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_029589() {
+layout(binding = 0, rg32f) uniform highp writeonly image2DArray arg_0;
+uvec2 textureDimensions_029589() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureDimensions_029589();
+  prevent_dce.inner = textureDimensions_029589();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +39,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureDimensions/08e371.wgsl b/test/tint/builtins/gen/var/textureDimensions/08e371.wgsl
index d46661b..d920e84 100644
--- a/test/tint/builtins/gen/var/textureDimensions/08e371.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/08e371.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32sint, read>;
diff --git a/test/tint/builtins/gen/var/textureDimensions/08e371.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/08e371.wgsl.expected.glsl
index f721462..9117696 100644
--- a/test/tint/builtins/gen/var/textureDimensions/08e371.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/08e371.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp readonly iimage2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_08e371() {
+layout(binding = 0, rg32i) uniform highp readonly iimage2D arg_0;
+uvec2 textureDimensions_08e371() {
   uvec2 res = uvec2(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureDimensions_08e371();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp readonly iimage2D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
-void textureDimensions_08e371() {
-  uvec2 res = uvec2(imageSize(arg_0));
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
 
 void fragment_main() {
-  textureDimensions_08e371();
+  prevent_dce.inner = textureDimensions_08e371();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp readonly iimage2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_08e371() {
+layout(binding = 0, rg32i) uniform highp readonly iimage2D arg_0;
+uvec2 textureDimensions_08e371() {
   uvec2 res = uvec2(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
 void compute_main() {
-  textureDimensions_08e371();
+  prevent_dce.inner = textureDimensions_08e371();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out uvec2 prevent_dce_1;
+layout(binding = 0, rg32i) uniform highp readonly iimage2D arg_0;
+uvec2 textureDimensions_08e371() {
+  uvec2 res = uvec2(imageSize(arg_0));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), uvec2(0u, 0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_08e371();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureDimensions/08e371.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureDimensions/08e371.wgsl.expected.ir.glsl
index fbd651e..d7abc69 100644
--- a/test/tint/builtins/gen/var/textureDimensions/08e371.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/08e371.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+layout(binding = 0, rg32i) uniform highp readonly iimage2D arg_0;
+uvec2 textureDimensions_08e371() {
+  uvec2 res = uvec2(imageSize(arg_0));
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_08e371();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+layout(binding = 0, rg32i) uniform highp readonly iimage2D arg_0;
+uvec2 textureDimensions_08e371() {
+  uvec2 res = uvec2(imageSize(arg_0));
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureDimensions_08e371();
+}
+#version 460
+
+
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
+layout(binding = 0, rg32i) uniform highp readonly iimage2D arg_0;
+layout(location = 0) flat out uvec2 vertex_main_loc0_Output;
+uvec2 textureDimensions_08e371() {
+  uvec2 res = uvec2(imageSize(arg_0));
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), uvec2(0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_08e371();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/textureDimensions/0ff9a4.wgsl b/test/tint/builtins/gen/var/textureDimensions/0ff9a4.wgsl
index e354d6d..5e9c5d3 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0ff9a4.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/0ff9a4.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
 
 @group(1) @binding(0) var arg_0: texture_depth_cube_array;
diff --git a/test/tint/builtins/gen/var/textureDimensions/0ff9a4.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/0ff9a4.wgsl.expected.glsl
index 78fe881..0246aeb 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0ff9a4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/0ff9a4.wgsl.expected.glsl
@@ -1,83 +1,49 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-uniform highp samplerCubeArray arg_0_1;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_0ff9a4() {
-  int arg_1 = 1;
-  uvec2 res = uvec2(textureSize(arg_0_1, arg_1).xy);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureDimensions_0ff9a4();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
 uniform highp samplerCubeArray arg_0_1;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
-void textureDimensions_0ff9a4() {
+uvec2 textureDimensions_0ff9a4() {
   int arg_1 = 1;
   uvec2 res = uvec2(textureSize(arg_0_1, arg_1).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
 void fragment_main() {
-  textureDimensions_0ff9a4();
+  prevent_dce.inner = textureDimensions_0ff9a4();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-uniform highp samplerCubeArray arg_0_1;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_0ff9a4() {
+uniform highp samplerCubeArray arg_0_1;
+uvec2 textureDimensions_0ff9a4() {
   int arg_1 = 1;
   uvec2 res = uvec2(textureSize(arg_0_1, arg_1).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
 void compute_main() {
-  textureDimensions_0ff9a4();
+  prevent_dce.inner = textureDimensions_0ff9a4();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +51,34 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
+layout(location = 0) flat out uvec2 prevent_dce_1;
+uniform highp samplerCubeArray arg_0_1;
+uvec2 textureDimensions_0ff9a4() {
+  int arg_1 = 1;
+  uvec2 res = uvec2(textureSize(arg_0_1, arg_1).xy);
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), uvec2(0u, 0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_0ff9a4();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureDimensions/0ff9a4.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureDimensions/0ff9a4.wgsl.expected.ir.glsl
index fbd651e..d8989ef 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0ff9a4.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/0ff9a4.wgsl.expected.ir.glsl
@@ -1,11 +1,62 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+uniform highp samplerCubeArrayShadow arg_0;
+uvec2 textureDimensions_0ff9a4() {
+  int arg_1 = 1;
+  uvec2 res = uvec2(textureSize(arg_0, arg_1).xy);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_0ff9a4();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+uniform highp samplerCubeArrayShadow arg_0;
+uvec2 textureDimensions_0ff9a4() {
+  int arg_1 = 1;
+  uvec2 res = uvec2(textureSize(arg_0, arg_1).xy);
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureDimensions_0ff9a4();
+}
+#version 460
+
+
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
+uniform highp samplerCubeArrayShadow arg_0;
+layout(location = 0) flat out uvec2 vertex_main_loc0_Output;
+uvec2 textureDimensions_0ff9a4() {
+  int arg_1 = 1;
+  uvec2 res = uvec2(textureSize(arg_0, arg_1).xy);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), uvec2(0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_0ff9a4();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/textureDimensions/18160d.wgsl b/test/tint/builtins/gen/var/textureDimensions/18160d.wgsl
index 7d24858..0e1ef94 100644
--- a/test/tint/builtins/gen/var/textureDimensions/18160d.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/18160d.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
diff --git a/test/tint/builtins/gen/var/textureDimensions/18160d.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/18160d.wgsl.expected.glsl
index 6899921..4fa929d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/18160d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/18160d.wgsl.expected.glsl
@@ -1,80 +1,37 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp writeonly image2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_18160d() {
+layout(binding = 0, r8) uniform highp writeonly image2D arg_0;
+uvec2 textureDimensions_18160d() {
   uvec2 res = uvec2(imageSize(arg_0));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureDimensions_18160d();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp writeonly image2D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
-void textureDimensions_18160d() {
-  uvec2 res = uvec2(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureDimensions_18160d();
+  prevent_dce.inner = textureDimensions_18160d();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp writeonly image2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_18160d() {
+layout(binding = 0, r8) uniform highp writeonly image2D arg_0;
+uvec2 textureDimensions_18160d() {
   uvec2 res = uvec2(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureDimensions_18160d();
+  prevent_dce.inner = textureDimensions_18160d();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +39,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureDimensions/18f19f.wgsl b/test/tint/builtins/gen/var/textureDimensions/18f19f.wgsl
index e670c04..649c8ad 100644
--- a/test/tint/builtins/gen/var/textureDimensions/18f19f.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/18f19f.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
diff --git a/test/tint/builtins/gen/var/textureDimensions/18f19f.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/18f19f.wgsl.expected.glsl
index 8ad231d..0611532 100644
--- a/test/tint/builtins/gen/var/textureDimensions/18f19f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/18f19f.wgsl.expected.glsl
@@ -1,80 +1,37 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp writeonly image2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_18f19f() {
+layout(binding = 0, r8) uniform highp writeonly image2D arg_0;
+uvec2 textureDimensions_18f19f() {
   uvec2 res = uvec2(imageSize(arg_0));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureDimensions_18f19f();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp writeonly image2D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
-void textureDimensions_18f19f() {
-  uvec2 res = uvec2(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureDimensions_18f19f();
+  prevent_dce.inner = textureDimensions_18f19f();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp writeonly image2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_18f19f() {
+layout(binding = 0, r8) uniform highp writeonly image2D arg_0;
+uvec2 textureDimensions_18f19f() {
   uvec2 res = uvec2(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureDimensions_18f19f();
+  prevent_dce.inner = textureDimensions_18f19f();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +39,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureDimensions/18f19f.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureDimensions/18f19f.wgsl.expected.ir.glsl
index fbd651e..a58c2ed 100644
--- a/test/tint/builtins/gen/var/textureDimensions/18f19f.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/18f19f.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+layout(binding = 0, r8) uniform highp writeonly image2D arg_0;
+uvec2 textureDimensions_18f19f() {
+  uvec2 res = uvec2(imageSize(arg_0));
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_18f19f();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+layout(binding = 0, r8) uniform highp writeonly image2D arg_0;
+uvec2 textureDimensions_18f19f() {
+  uvec2 res = uvec2(imageSize(arg_0));
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureDimensions_18f19f();
+}
diff --git a/test/tint/builtins/gen/var/textureDimensions/22b5b6.wgsl b/test/tint/builtins/gen/var/textureDimensions/22b5b6.wgsl
index aacc879..092b3fd 100644
--- a/test/tint/builtins/gen/var/textureDimensions/22b5b6.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/22b5b6.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
 
 @group(1) @binding(0) var arg_0: texture_cube_array<u32>;
diff --git a/test/tint/builtins/gen/var/textureDimensions/22b5b6.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/22b5b6.wgsl.expected.glsl
index 3dffdb6..4706952 100644
--- a/test/tint/builtins/gen/var/textureDimensions/22b5b6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/22b5b6.wgsl.expected.glsl
@@ -1,83 +1,49 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-uniform highp usamplerCubeArray arg_0_1;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_22b5b6() {
-  int arg_1 = 1;
-  uvec2 res = uvec2(textureSize(arg_0_1, arg_1).xy);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureDimensions_22b5b6();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'usamplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
 uniform highp usamplerCubeArray arg_0_1;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
-void textureDimensions_22b5b6() {
+uvec2 textureDimensions_22b5b6() {
   int arg_1 = 1;
   uvec2 res = uvec2(textureSize(arg_0_1, arg_1).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
 void fragment_main() {
-  textureDimensions_22b5b6();
+  prevent_dce.inner = textureDimensions_22b5b6();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'usamplerCubeArray' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-uniform highp usamplerCubeArray arg_0_1;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_22b5b6() {
+uniform highp usamplerCubeArray arg_0_1;
+uvec2 textureDimensions_22b5b6() {
   int arg_1 = 1;
   uvec2 res = uvec2(textureSize(arg_0_1, arg_1).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
 void compute_main() {
-  textureDimensions_22b5b6();
+  prevent_dce.inner = textureDimensions_22b5b6();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +51,34 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'usamplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
+layout(location = 0) flat out uvec2 prevent_dce_1;
+uniform highp usamplerCubeArray arg_0_1;
+uvec2 textureDimensions_22b5b6() {
+  int arg_1 = 1;
+  uvec2 res = uvec2(textureSize(arg_0_1, arg_1).xy);
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), uvec2(0u, 0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_22b5b6();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureDimensions/22b5b6.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureDimensions/22b5b6.wgsl.expected.ir.glsl
index fbd651e..e29b21d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/22b5b6.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/22b5b6.wgsl.expected.ir.glsl
@@ -1,11 +1,62 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+uniform highp usamplerCubeArray arg_0;
+uvec2 textureDimensions_22b5b6() {
+  int arg_1 = 1;
+  uvec2 res = uvec2(textureSize(arg_0, arg_1).xy);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_22b5b6();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+uniform highp usamplerCubeArray arg_0;
+uvec2 textureDimensions_22b5b6() {
+  int arg_1 = 1;
+  uvec2 res = uvec2(textureSize(arg_0, arg_1).xy);
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureDimensions_22b5b6();
+}
+#version 460
+
+
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
+uniform highp usamplerCubeArray arg_0;
+layout(location = 0) flat out uvec2 vertex_main_loc0_Output;
+uvec2 textureDimensions_22b5b6() {
+  int arg_1 = 1;
+  uvec2 res = uvec2(textureSize(arg_0, arg_1).xy);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), uvec2(0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_22b5b6();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/textureDimensions/25d284.wgsl b/test/tint/builtins/gen/var/textureDimensions/25d284.wgsl
index 60268dd..ce5b81b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/25d284.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/25d284.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
diff --git a/test/tint/builtins/gen/var/textureDimensions/25d284.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/25d284.wgsl.expected.glsl
index 530a42f..34e322d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/25d284.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/25d284.wgsl.expected.glsl
@@ -1,80 +1,37 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp writeonly image2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_25d284() {
+layout(binding = 0, r8) uniform highp writeonly image2DArray arg_0;
+uvec2 textureDimensions_25d284() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureDimensions_25d284();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp writeonly image2DArray arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
-void textureDimensions_25d284() {
-  uvec2 res = uvec2(imageSize(arg_0).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureDimensions_25d284();
+  prevent_dce.inner = textureDimensions_25d284();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp writeonly image2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_25d284() {
+layout(binding = 0, r8) uniform highp writeonly image2DArray arg_0;
+uvec2 textureDimensions_25d284() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureDimensions_25d284();
+  prevent_dce.inner = textureDimensions_25d284();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +39,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureDimensions/25d284.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureDimensions/25d284.wgsl.expected.ir.glsl
index fbd651e..d7bf203 100644
--- a/test/tint/builtins/gen/var/textureDimensions/25d284.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/25d284.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+layout(binding = 0, r8) uniform highp writeonly image2DArray arg_0;
+uvec2 textureDimensions_25d284() {
+  uvec2 res = uvec2(imageSize(arg_0).xy);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_25d284();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+layout(binding = 0, r8) uniform highp writeonly image2DArray arg_0;
+uvec2 textureDimensions_25d284() {
+  uvec2 res = uvec2(imageSize(arg_0).xy);
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureDimensions_25d284();
+}
diff --git a/test/tint/builtins/gen/var/textureDimensions/2674d8.wgsl b/test/tint/builtins/gen/var/textureDimensions/2674d8.wgsl
index 0f95733..e93fe7f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/2674d8.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/2674d8.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32uint, write>;
diff --git a/test/tint/builtins/gen/var/textureDimensions/2674d8.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/2674d8.wgsl.expected.glsl
index bd21c27..a4bbdeb 100644
--- a/test/tint/builtins/gen/var/textureDimensions/2674d8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/2674d8.wgsl.expected.glsl
@@ -1,80 +1,37 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_2674d8() {
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2DArray arg_0;
+uvec2 textureDimensions_2674d8() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureDimensions_2674d8();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp writeonly uimage2DArray arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
-void textureDimensions_2674d8() {
-  uvec2 res = uvec2(imageSize(arg_0).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureDimensions_2674d8();
+  prevent_dce.inner = textureDimensions_2674d8();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_2674d8() {
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2DArray arg_0;
+uvec2 textureDimensions_2674d8() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureDimensions_2674d8();
+  prevent_dce.inner = textureDimensions_2674d8();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +39,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureDimensions/2674d8.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureDimensions/2674d8.wgsl.expected.ir.glsl
index fbd651e..77edd35 100644
--- a/test/tint/builtins/gen/var/textureDimensions/2674d8.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/2674d8.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2DArray arg_0;
+uvec2 textureDimensions_2674d8() {
+  uvec2 res = uvec2(imageSize(arg_0).xy);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_2674d8();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2DArray arg_0;
+uvec2 textureDimensions_2674d8() {
+  uvec2 res = uvec2(imageSize(arg_0).xy);
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureDimensions_2674d8();
+}
diff --git a/test/tint/builtins/gen/var/textureDimensions/282978.wgsl b/test/tint/builtins/gen/var/textureDimensions/282978.wgsl
index 0cb7319..e49b770 100644
--- a/test/tint/builtins/gen/var/textureDimensions/282978.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/282978.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
diff --git a/test/tint/builtins/gen/var/textureDimensions/282978.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/282978.wgsl.expected.glsl
index 5448d1d..5159002 100644
--- a/test/tint/builtins/gen/var/textureDimensions/282978.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/282978.wgsl.expected.glsl
@@ -1,83 +1,37 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp writeonly image3D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec3 inner;
-  uint pad;
 } prevent_dce;
 
-void textureDimensions_282978() {
+layout(binding = 0, r8) uniform highp writeonly image3D arg_0;
+uvec3 textureDimensions_282978() {
   uvec3 res = uvec3(imageSize(arg_0));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureDimensions_282978();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp writeonly image3D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
-void textureDimensions_282978() {
-  uvec3 res = uvec3(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureDimensions_282978();
+  prevent_dce.inner = textureDimensions_282978();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp writeonly image3D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec3 inner;
-  uint pad;
 } prevent_dce;
 
-void textureDimensions_282978() {
+layout(binding = 0, r8) uniform highp writeonly image3D arg_0;
+uvec3 textureDimensions_282978() {
   uvec3 res = uvec3(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureDimensions_282978();
+  prevent_dce.inner = textureDimensions_282978();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +39,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureDimensions/284c27.wgsl b/test/tint/builtins/gen/var/textureDimensions/284c27.wgsl
index 9e09d21..e289900 100644
--- a/test/tint/builtins/gen/var/textureDimensions/284c27.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/284c27.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
 
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32float, read>;
diff --git a/test/tint/builtins/gen/var/textureDimensions/284c27.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/284c27.wgsl.expected.glsl
index 9ffb020..9c476ff 100644
--- a/test/tint/builtins/gen/var/textureDimensions/284c27.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/284c27.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp readonly image2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureDimensions_284c27() {
+layout(binding = 0, rg32f) uniform highp readonly image2D arg_0;
+uint textureDimensions_284c27() {
   uint res = uvec2(imageSize(arg_0)).x;
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureDimensions_284c27();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp readonly image2D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
-void textureDimensions_284c27() {
-  uint res = uvec2(imageSize(arg_0)).x;
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
 
 void fragment_main() {
-  textureDimensions_284c27();
+  prevent_dce.inner = textureDimensions_284c27();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp readonly image2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureDimensions_284c27() {
+layout(binding = 0, rg32f) uniform highp readonly image2D arg_0;
+uint textureDimensions_284c27() {
   uint res = uvec2(imageSize(arg_0)).x;
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
 void compute_main() {
-  textureDimensions_284c27();
+  prevent_dce.inner = textureDimensions_284c27();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out uint prevent_dce_1;
+layout(binding = 0, rg32f) uniform highp readonly image2D arg_0;
+uint textureDimensions_284c27() {
+  uint res = uvec2(imageSize(arg_0)).x;
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), 0u);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_284c27();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureDimensions/284c27.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureDimensions/284c27.wgsl.expected.ir.glsl
index fbd651e..ee62b99 100644
--- a/test/tint/builtins/gen/var/textureDimensions/284c27.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/284c27.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, rg32f) uniform highp readonly image1D arg_0;
+uint textureDimensions_284c27() {
+  uint res = uint(imageSize(arg_0));
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_284c27();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, rg32f) uniform highp readonly image1D arg_0;
+uint textureDimensions_284c27() {
+  uint res = uint(imageSize(arg_0));
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureDimensions_284c27();
+}
+#version 460
+
+
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
+layout(binding = 0, rg32f) uniform highp readonly image1D arg_0;
+layout(location = 0) flat out uint vertex_main_loc0_Output;
+uint textureDimensions_284c27() {
+  uint res = uint(imageSize(arg_0));
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), 0u);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_284c27();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/textureDimensions/346fee.wgsl b/test/tint/builtins/gen/var/textureDimensions/346fee.wgsl
index eb529a7..80cab03 100644
--- a/test/tint/builtins/gen/var/textureDimensions/346fee.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/346fee.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
 
 @group(1) @binding(0) var arg_0: texture_cube_array<u32>;
diff --git a/test/tint/builtins/gen/var/textureDimensions/346fee.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/346fee.wgsl.expected.glsl
index 468c8d7..36fb852 100644
--- a/test/tint/builtins/gen/var/textureDimensions/346fee.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/346fee.wgsl.expected.glsl
@@ -1,83 +1,49 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-uniform highp usamplerCubeArray arg_0_1;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_346fee() {
-  uint arg_1 = 1u;
-  uvec2 res = uvec2(textureSize(arg_0_1, int(arg_1)).xy);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureDimensions_346fee();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'usamplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
 uniform highp usamplerCubeArray arg_0_1;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
-void textureDimensions_346fee() {
+uvec2 textureDimensions_346fee() {
   uint arg_1 = 1u;
   uvec2 res = uvec2(textureSize(arg_0_1, int(arg_1)).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
 void fragment_main() {
-  textureDimensions_346fee();
+  prevent_dce.inner = textureDimensions_346fee();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'usamplerCubeArray' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-uniform highp usamplerCubeArray arg_0_1;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_346fee() {
+uniform highp usamplerCubeArray arg_0_1;
+uvec2 textureDimensions_346fee() {
   uint arg_1 = 1u;
   uvec2 res = uvec2(textureSize(arg_0_1, int(arg_1)).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
 void compute_main() {
-  textureDimensions_346fee();
+  prevent_dce.inner = textureDimensions_346fee();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +51,34 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'usamplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
+layout(location = 0) flat out uvec2 prevent_dce_1;
+uniform highp usamplerCubeArray arg_0_1;
+uvec2 textureDimensions_346fee() {
+  uint arg_1 = 1u;
+  uvec2 res = uvec2(textureSize(arg_0_1, int(arg_1)).xy);
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), uvec2(0u, 0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_346fee();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureDimensions/35ee69.wgsl b/test/tint/builtins/gen/var/textureDimensions/35ee69.wgsl
index e076f79..57b85f5 100644
--- a/test/tint/builtins/gen/var/textureDimensions/35ee69.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/35ee69.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32uint, write>;
diff --git a/test/tint/builtins/gen/var/textureDimensions/35ee69.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/35ee69.wgsl.expected.glsl
index c0d15ec..80fe4c8 100644
--- a/test/tint/builtins/gen/var/textureDimensions/35ee69.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/35ee69.wgsl.expected.glsl
@@ -1,83 +1,37 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage3D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec3 inner;
-  uint pad;
 } prevent_dce;
 
-void textureDimensions_35ee69() {
+layout(binding = 0, rg32ui) uniform highp writeonly uimage3D arg_0;
+uvec3 textureDimensions_35ee69() {
   uvec3 res = uvec3(imageSize(arg_0));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureDimensions_35ee69();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp writeonly uimage3D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
-void textureDimensions_35ee69() {
-  uvec3 res = uvec3(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureDimensions_35ee69();
+  prevent_dce.inner = textureDimensions_35ee69();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage3D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec3 inner;
-  uint pad;
 } prevent_dce;
 
-void textureDimensions_35ee69() {
+layout(binding = 0, rg32ui) uniform highp writeonly uimage3D arg_0;
+uvec3 textureDimensions_35ee69() {
   uvec3 res = uvec3(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureDimensions_35ee69();
+  prevent_dce.inner = textureDimensions_35ee69();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +39,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureDimensions/35ee69.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureDimensions/35ee69.wgsl.expected.ir.glsl
index fbd651e..d4953ff 100644
--- a/test/tint/builtins/gen/var/textureDimensions/35ee69.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/35ee69.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec3 tint_symbol;
+} v;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage3D arg_0;
+uvec3 textureDimensions_35ee69() {
+  uvec3 res = uvec3(imageSize(arg_0));
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_35ee69();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec3 tint_symbol;
+} v;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage3D arg_0;
+uvec3 textureDimensions_35ee69() {
+  uvec3 res = uvec3(imageSize(arg_0));
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureDimensions_35ee69();
+}
diff --git a/test/tint/builtins/gen/var/textureDimensions/3963d0.wgsl b/test/tint/builtins/gen/var/textureDimensions/3963d0.wgsl
index dc7f6d5..27f3678 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3963d0.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3963d0.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
 
 @group(1) @binding(0) var arg_0: texture_cube_array<i32>;
diff --git a/test/tint/builtins/gen/var/textureDimensions/3963d0.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/3963d0.wgsl.expected.glsl
index a8b0ae4..7081997 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3963d0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3963d0.wgsl.expected.glsl
@@ -1,83 +1,49 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-uniform highp isamplerCubeArray arg_0_1;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_3963d0() {
-  uint arg_1 = 1u;
-  uvec2 res = uvec2(textureSize(arg_0_1, int(arg_1)).xy);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureDimensions_3963d0();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'isamplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
 uniform highp isamplerCubeArray arg_0_1;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
-void textureDimensions_3963d0() {
+uvec2 textureDimensions_3963d0() {
   uint arg_1 = 1u;
   uvec2 res = uvec2(textureSize(arg_0_1, int(arg_1)).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
 void fragment_main() {
-  textureDimensions_3963d0();
+  prevent_dce.inner = textureDimensions_3963d0();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'isamplerCubeArray' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-uniform highp isamplerCubeArray arg_0_1;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_3963d0() {
+uniform highp isamplerCubeArray arg_0_1;
+uvec2 textureDimensions_3963d0() {
   uint arg_1 = 1u;
   uvec2 res = uvec2(textureSize(arg_0_1, int(arg_1)).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
 void compute_main() {
-  textureDimensions_3963d0();
+  prevent_dce.inner = textureDimensions_3963d0();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +51,34 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'isamplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
+layout(location = 0) flat out uvec2 prevent_dce_1;
+uniform highp isamplerCubeArray arg_0_1;
+uvec2 textureDimensions_3963d0() {
+  uint arg_1 = 1u;
+  uvec2 res = uvec2(textureSize(arg_0_1, int(arg_1)).xy);
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), uvec2(0u, 0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_3963d0();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureDimensions/3c66f0.wgsl b/test/tint/builtins/gen/var/textureDimensions/3c66f0.wgsl
index 8557f43..dfce6a6 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3c66f0.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3c66f0.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
 
 @group(1) @binding(0) var arg_0: texture_cube_array<i32>;
diff --git a/test/tint/builtins/gen/var/textureDimensions/3c66f0.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/3c66f0.wgsl.expected.glsl
index c649bbe..ab5c5cb 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3c66f0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3c66f0.wgsl.expected.glsl
@@ -1,83 +1,49 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-uniform highp isamplerCubeArray arg_0_1;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_3c66f0() {
-  int arg_1 = 1;
-  uvec2 res = uvec2(textureSize(arg_0_1, arg_1).xy);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureDimensions_3c66f0();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'isamplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
 uniform highp isamplerCubeArray arg_0_1;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
-void textureDimensions_3c66f0() {
+uvec2 textureDimensions_3c66f0() {
   int arg_1 = 1;
   uvec2 res = uvec2(textureSize(arg_0_1, arg_1).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
 void fragment_main() {
-  textureDimensions_3c66f0();
+  prevent_dce.inner = textureDimensions_3c66f0();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'isamplerCubeArray' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-uniform highp isamplerCubeArray arg_0_1;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_3c66f0() {
+uniform highp isamplerCubeArray arg_0_1;
+uvec2 textureDimensions_3c66f0() {
   int arg_1 = 1;
   uvec2 res = uvec2(textureSize(arg_0_1, arg_1).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
 void compute_main() {
-  textureDimensions_3c66f0();
+  prevent_dce.inner = textureDimensions_3c66f0();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +51,34 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'isamplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
+layout(location = 0) flat out uvec2 prevent_dce_1;
+uniform highp isamplerCubeArray arg_0_1;
+uvec2 textureDimensions_3c66f0() {
+  int arg_1 = 1;
+  uvec2 res = uvec2(textureSize(arg_0_1, arg_1).xy);
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), uvec2(0u, 0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_3c66f0();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureDimensions/3c66f0.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureDimensions/3c66f0.wgsl.expected.ir.glsl
index fbd651e..c5fd109 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3c66f0.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3c66f0.wgsl.expected.ir.glsl
@@ -1,11 +1,62 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+uniform highp isamplerCubeArray arg_0;
+uvec2 textureDimensions_3c66f0() {
+  int arg_1 = 1;
+  uvec2 res = uvec2(textureSize(arg_0, arg_1).xy);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_3c66f0();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+uniform highp isamplerCubeArray arg_0;
+uvec2 textureDimensions_3c66f0() {
+  int arg_1 = 1;
+  uvec2 res = uvec2(textureSize(arg_0, arg_1).xy);
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureDimensions_3c66f0();
+}
+#version 460
+
+
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
+uniform highp isamplerCubeArray arg_0;
+layout(location = 0) flat out uvec2 vertex_main_loc0_Output;
+uvec2 textureDimensions_3c66f0() {
+  int arg_1 = 1;
+  uvec2 res = uvec2(textureSize(arg_0, arg_1).xy);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), uvec2(0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_3c66f0();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/textureDimensions/40da20.wgsl b/test/tint/builtins/gen/var/textureDimensions/40da20.wgsl
index b83f38f..4bca472 100644
--- a/test/tint/builtins/gen/var/textureDimensions/40da20.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/40da20.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
diff --git a/test/tint/builtins/gen/var/textureDimensions/40da20.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/40da20.wgsl.expected.glsl
index ae8a8360..6a71452 100644
--- a/test/tint/builtins/gen/var/textureDimensions/40da20.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/40da20.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp readonly image2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_40da20() {
+layout(binding = 0, r8) uniform highp readonly image2D arg_0;
+uvec2 textureDimensions_40da20() {
   uvec2 res = uvec2(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureDimensions_40da20();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp readonly image2D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
-void textureDimensions_40da20() {
-  uvec2 res = uvec2(imageSize(arg_0));
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
 
 void fragment_main() {
-  textureDimensions_40da20();
+  prevent_dce.inner = textureDimensions_40da20();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp readonly image2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_40da20() {
+layout(binding = 0, r8) uniform highp readonly image2D arg_0;
+uvec2 textureDimensions_40da20() {
   uvec2 res = uvec2(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
 void compute_main() {
-  textureDimensions_40da20();
+  prevent_dce.inner = textureDimensions_40da20();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out uvec2 prevent_dce_1;
+layout(binding = 0, r8) uniform highp readonly image2D arg_0;
+uvec2 textureDimensions_40da20() {
+  uvec2 res = uvec2(imageSize(arg_0));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), uvec2(0u, 0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_40da20();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureDimensions/40da20.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureDimensions/40da20.wgsl.expected.ir.glsl
index fbd651e..9070745 100644
--- a/test/tint/builtins/gen/var/textureDimensions/40da20.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/40da20.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+layout(binding = 0, r8) uniform highp readonly image2D arg_0;
+uvec2 textureDimensions_40da20() {
+  uvec2 res = uvec2(imageSize(arg_0));
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_40da20();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+layout(binding = 0, r8) uniform highp readonly image2D arg_0;
+uvec2 textureDimensions_40da20() {
+  uvec2 res = uvec2(imageSize(arg_0));
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureDimensions_40da20();
+}
+#version 460
+
+
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
+layout(binding = 0, r8) uniform highp readonly image2D arg_0;
+layout(location = 0) flat out uvec2 vertex_main_loc0_Output;
+uvec2 textureDimensions_40da20() {
+  uvec2 res = uvec2(imageSize(arg_0));
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), uvec2(0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_40da20();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/textureDimensions/439651.wgsl b/test/tint/builtins/gen/var/textureDimensions/439651.wgsl
index 1b45987..ef6699e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/439651.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/439651.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32sint, write>;
diff --git a/test/tint/builtins/gen/var/textureDimensions/439651.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/439651.wgsl.expected.glsl
index a762619..892bdbe 100644
--- a/test/tint/builtins/gen/var/textureDimensions/439651.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/439651.wgsl.expected.glsl
@@ -1,80 +1,37 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_439651() {
+layout(binding = 0, rg32i) uniform highp writeonly iimage2D arg_0;
+uvec2 textureDimensions_439651() {
   uvec2 res = uvec2(imageSize(arg_0));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureDimensions_439651();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp writeonly iimage2D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
-void textureDimensions_439651() {
-  uvec2 res = uvec2(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureDimensions_439651();
+  prevent_dce.inner = textureDimensions_439651();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_439651() {
+layout(binding = 0, rg32i) uniform highp writeonly iimage2D arg_0;
+uvec2 textureDimensions_439651() {
   uvec2 res = uvec2(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureDimensions_439651();
+  prevent_dce.inner = textureDimensions_439651();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +39,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureDimensions/439651.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureDimensions/439651.wgsl.expected.ir.glsl
index fbd651e..e7a4a4e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/439651.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/439651.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+layout(binding = 0, rg32i) uniform highp writeonly iimage2D arg_0;
+uvec2 textureDimensions_439651() {
+  uvec2 res = uvec2(imageSize(arg_0));
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_439651();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+layout(binding = 0, rg32i) uniform highp writeonly iimage2D arg_0;
+uvec2 textureDimensions_439651() {
+  uvec2 res = uvec2(imageSize(arg_0));
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureDimensions_439651();
+}
diff --git a/test/tint/builtins/gen/var/textureDimensions/4acec7.wgsl b/test/tint/builtins/gen/var/textureDimensions/4acec7.wgsl
index 499acef..21b8410 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4acec7.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/4acec7.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32float, write>;
diff --git a/test/tint/builtins/gen/var/textureDimensions/4acec7.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/4acec7.wgsl.expected.glsl
index 0c893b0..1c7c809 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4acec7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/4acec7.wgsl.expected.glsl
@@ -1,80 +1,37 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_4acec7() {
+layout(binding = 0, rg32f) uniform highp writeonly image2DArray arg_0;
+uvec2 textureDimensions_4acec7() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureDimensions_4acec7();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp writeonly image2DArray arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
-void textureDimensions_4acec7() {
-  uvec2 res = uvec2(imageSize(arg_0).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureDimensions_4acec7();
+  prevent_dce.inner = textureDimensions_4acec7();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_4acec7() {
+layout(binding = 0, rg32f) uniform highp writeonly image2DArray arg_0;
+uvec2 textureDimensions_4acec7() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureDimensions_4acec7();
+  prevent_dce.inner = textureDimensions_4acec7();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +39,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureDimensions/4acec7.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureDimensions/4acec7.wgsl.expected.ir.glsl
index fbd651e..2602efa 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4acec7.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/4acec7.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+layout(binding = 0, rg32f) uniform highp writeonly image2DArray arg_0;
+uvec2 textureDimensions_4acec7() {
+  uvec2 res = uvec2(imageSize(arg_0).xy);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_4acec7();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+layout(binding = 0, rg32f) uniform highp writeonly image2DArray arg_0;
+uvec2 textureDimensions_4acec7() {
+  uvec2 res = uvec2(imageSize(arg_0).xy);
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureDimensions_4acec7();
+}
diff --git a/test/tint/builtins/gen/var/textureDimensions/4d1f71.wgsl b/test/tint/builtins/gen/var/textureDimensions/4d1f71.wgsl
index 631d653..b7002d3 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4d1f71.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/4d1f71.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32uint, read>;
diff --git a/test/tint/builtins/gen/var/textureDimensions/4d1f71.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/4d1f71.wgsl.expected.glsl
index 85348c2..a22877a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4d1f71.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/4d1f71.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp readonly uimage2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_4d1f71() {
+layout(binding = 0, rg32ui) uniform highp readonly uimage2DArray arg_0;
+uvec2 textureDimensions_4d1f71() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureDimensions_4d1f71();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp readonly uimage2DArray arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
-void textureDimensions_4d1f71() {
-  uvec2 res = uvec2(imageSize(arg_0).xy);
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
 
 void fragment_main() {
-  textureDimensions_4d1f71();
+  prevent_dce.inner = textureDimensions_4d1f71();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp readonly uimage2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_4d1f71() {
+layout(binding = 0, rg32ui) uniform highp readonly uimage2DArray arg_0;
+uvec2 textureDimensions_4d1f71() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
 void compute_main() {
-  textureDimensions_4d1f71();
+  prevent_dce.inner = textureDimensions_4d1f71();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out uvec2 prevent_dce_1;
+layout(binding = 0, rg32ui) uniform highp readonly uimage2DArray arg_0;
+uvec2 textureDimensions_4d1f71() {
+  uvec2 res = uvec2(imageSize(arg_0).xy);
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), uvec2(0u, 0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_4d1f71();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureDimensions/4d1f71.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureDimensions/4d1f71.wgsl.expected.ir.glsl
index fbd651e..07495fa 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4d1f71.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/4d1f71.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+layout(binding = 0, rg32ui) uniform highp readonly uimage2DArray arg_0;
+uvec2 textureDimensions_4d1f71() {
+  uvec2 res = uvec2(imageSize(arg_0).xy);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_4d1f71();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+layout(binding = 0, rg32ui) uniform highp readonly uimage2DArray arg_0;
+uvec2 textureDimensions_4d1f71() {
+  uvec2 res = uvec2(imageSize(arg_0).xy);
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureDimensions_4d1f71();
+}
+#version 460
+
+
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
+layout(binding = 0, rg32ui) uniform highp readonly uimage2DArray arg_0;
+layout(location = 0) flat out uvec2 vertex_main_loc0_Output;
+uvec2 textureDimensions_4d1f71() {
+  uvec2 res = uvec2(imageSize(arg_0).xy);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), uvec2(0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_4d1f71();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/textureDimensions/4df14c.wgsl b/test/tint/builtins/gen/var/textureDimensions/4df14c.wgsl
index fe679ab..8b78c21 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4df14c.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/4df14c.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32uint, read_write>;
diff --git a/test/tint/builtins/gen/var/textureDimensions/4df14c.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/4df14c.wgsl.expected.glsl
index 9956046..a6a41aa 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4df14c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/4df14c.wgsl.expected.glsl
@@ -1,83 +1,37 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage3D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec3 inner;
-  uint pad;
 } prevent_dce;
 
-void textureDimensions_4df14c() {
+layout(binding = 0, rg32ui) uniform highp writeonly uimage3D arg_0;
+uvec3 textureDimensions_4df14c() {
   uvec3 res = uvec3(imageSize(arg_0));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureDimensions_4df14c();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp writeonly uimage3D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
-void textureDimensions_4df14c() {
-  uvec3 res = uvec3(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureDimensions_4df14c();
+  prevent_dce.inner = textureDimensions_4df14c();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage3D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec3 inner;
-  uint pad;
 } prevent_dce;
 
-void textureDimensions_4df14c() {
+layout(binding = 0, rg32ui) uniform highp writeonly uimage3D arg_0;
+uvec3 textureDimensions_4df14c() {
   uvec3 res = uvec3(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureDimensions_4df14c();
+  prevent_dce.inner = textureDimensions_4df14c();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +39,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureDimensions/52cf60.wgsl b/test/tint/builtins/gen/var/textureDimensions/52cf60.wgsl
index da953dd..0bbc3e5 100644
--- a/test/tint/builtins/gen/var/textureDimensions/52cf60.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/52cf60.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32float, read>;
diff --git a/test/tint/builtins/gen/var/textureDimensions/52cf60.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/52cf60.wgsl.expected.glsl
index 69c3fc5..7bf70b2 100644
--- a/test/tint/builtins/gen/var/textureDimensions/52cf60.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/52cf60.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp readonly image2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_52cf60() {
+layout(binding = 0, rg32f) uniform highp readonly image2D arg_0;
+uvec2 textureDimensions_52cf60() {
   uvec2 res = uvec2(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureDimensions_52cf60();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp readonly image2D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
-void textureDimensions_52cf60() {
-  uvec2 res = uvec2(imageSize(arg_0));
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
 
 void fragment_main() {
-  textureDimensions_52cf60();
+  prevent_dce.inner = textureDimensions_52cf60();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp readonly image2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_52cf60() {
+layout(binding = 0, rg32f) uniform highp readonly image2D arg_0;
+uvec2 textureDimensions_52cf60() {
   uvec2 res = uvec2(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
 void compute_main() {
-  textureDimensions_52cf60();
+  prevent_dce.inner = textureDimensions_52cf60();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out uvec2 prevent_dce_1;
+layout(binding = 0, rg32f) uniform highp readonly image2D arg_0;
+uvec2 textureDimensions_52cf60() {
+  uvec2 res = uvec2(imageSize(arg_0));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), uvec2(0u, 0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_52cf60();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureDimensions/52cf60.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureDimensions/52cf60.wgsl.expected.ir.glsl
index fbd651e..c42e9ea 100644
--- a/test/tint/builtins/gen/var/textureDimensions/52cf60.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/52cf60.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+layout(binding = 0, rg32f) uniform highp readonly image2D arg_0;
+uvec2 textureDimensions_52cf60() {
+  uvec2 res = uvec2(imageSize(arg_0));
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_52cf60();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+layout(binding = 0, rg32f) uniform highp readonly image2D arg_0;
+uvec2 textureDimensions_52cf60() {
+  uvec2 res = uvec2(imageSize(arg_0));
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureDimensions_52cf60();
+}
+#version 460
+
+
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
+layout(binding = 0, rg32f) uniform highp readonly image2D arg_0;
+layout(location = 0) flat out uvec2 vertex_main_loc0_Output;
+uvec2 textureDimensions_52cf60() {
+  uvec2 res = uvec2(imageSize(arg_0));
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), uvec2(0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_52cf60();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/textureDimensions/542c62.wgsl b/test/tint/builtins/gen/var/textureDimensions/542c62.wgsl
index 1a757ca..84be12e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/542c62.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/542c62.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 
 @group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
diff --git a/test/tint/builtins/gen/var/textureDimensions/542c62.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/542c62.wgsl.expected.glsl
index e436c5e..45c6e2a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/542c62.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/542c62.wgsl.expected.glsl
@@ -1,80 +1,37 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp writeonly image2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureDimensions_542c62() {
+layout(binding = 0, r8) uniform highp writeonly image2D arg_0;
+uint textureDimensions_542c62() {
   uint res = uvec2(imageSize(arg_0)).x;
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureDimensions_542c62();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp writeonly image2D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
-void textureDimensions_542c62() {
-  uint res = uvec2(imageSize(arg_0)).x;
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureDimensions_542c62();
+  prevent_dce.inner = textureDimensions_542c62();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp writeonly image2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureDimensions_542c62() {
+layout(binding = 0, r8) uniform highp writeonly image2D arg_0;
+uint textureDimensions_542c62() {
   uint res = uvec2(imageSize(arg_0)).x;
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureDimensions_542c62();
+  prevent_dce.inner = textureDimensions_542c62();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +39,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureDimensions/542c62.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureDimensions/542c62.wgsl.expected.ir.glsl
index fbd651e..52e135b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/542c62.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/542c62.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, r8) uniform highp writeonly image1D arg_0;
+uint textureDimensions_542c62() {
+  uint res = uint(imageSize(arg_0));
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_542c62();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, r8) uniform highp writeonly image1D arg_0;
+uint textureDimensions_542c62() {
+  uint res = uint(imageSize(arg_0));
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureDimensions_542c62();
+}
diff --git a/test/tint/builtins/gen/var/textureDimensions/578e75.wgsl b/test/tint/builtins/gen/var/textureDimensions/578e75.wgsl
index 8a0af2e..faf6a85 100644
--- a/test/tint/builtins/gen/var/textureDimensions/578e75.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/578e75.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
diff --git a/test/tint/builtins/gen/var/textureDimensions/578e75.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/578e75.wgsl.expected.glsl
index 45c3096..a0e39bc 100644
--- a/test/tint/builtins/gen/var/textureDimensions/578e75.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/578e75.wgsl.expected.glsl
@@ -1,80 +1,37 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp writeonly image2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_578e75() {
+layout(binding = 0, r8) uniform highp writeonly image2DArray arg_0;
+uvec2 textureDimensions_578e75() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureDimensions_578e75();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp writeonly image2DArray arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
-void textureDimensions_578e75() {
-  uvec2 res = uvec2(imageSize(arg_0).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureDimensions_578e75();
+  prevent_dce.inner = textureDimensions_578e75();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp writeonly image2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_578e75() {
+layout(binding = 0, r8) uniform highp writeonly image2DArray arg_0;
+uvec2 textureDimensions_578e75() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureDimensions_578e75();
+  prevent_dce.inner = textureDimensions_578e75();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +39,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureDimensions/6dae40.wgsl b/test/tint/builtins/gen/var/textureDimensions/6dae40.wgsl
index 38b8251..f785127 100644
--- a/test/tint/builtins/gen/var/textureDimensions/6dae40.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/6dae40.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32float, read>;
diff --git a/test/tint/builtins/gen/var/textureDimensions/6dae40.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/6dae40.wgsl.expected.glsl
index 8815615..0fa5ad6 100644
--- a/test/tint/builtins/gen/var/textureDimensions/6dae40.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/6dae40.wgsl.expected.glsl
@@ -1,83 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp readonly image3D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec3 inner;
-  uint pad;
 } prevent_dce;
 
-void textureDimensions_6dae40() {
+layout(binding = 0, rg32f) uniform highp readonly image3D arg_0;
+uvec3 textureDimensions_6dae40() {
   uvec3 res = uvec3(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureDimensions_6dae40();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp readonly image3D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
-void textureDimensions_6dae40() {
-  uvec3 res = uvec3(imageSize(arg_0));
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  uvec3 prevent_dce;
+};
 
 void fragment_main() {
-  textureDimensions_6dae40();
+  prevent_dce.inner = textureDimensions_6dae40();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp readonly image3D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec3 inner;
-  uint pad;
 } prevent_dce;
 
-void textureDimensions_6dae40() {
+layout(binding = 0, rg32f) uniform highp readonly image3D arg_0;
+uvec3 textureDimensions_6dae40() {
   uvec3 res = uvec3(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec3 prevent_dce;
+};
+
 void compute_main() {
-  textureDimensions_6dae40();
+  prevent_dce.inner = textureDimensions_6dae40();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out uvec3 prevent_dce_1;
+layout(binding = 0, rg32f) uniform highp readonly image3D arg_0;
+uvec3 textureDimensions_6dae40() {
+  uvec3 res = uvec3(imageSize(arg_0));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uvec3 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), uvec3(0u, 0u, 0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_6dae40();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureDimensions/6dae40.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureDimensions/6dae40.wgsl.expected.ir.glsl
index fbd651e..027d283 100644
--- a/test/tint/builtins/gen/var/textureDimensions/6dae40.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/6dae40.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec3 tint_symbol;
+} v;
+layout(binding = 0, rg32f) uniform highp readonly image3D arg_0;
+uvec3 textureDimensions_6dae40() {
+  uvec3 res = uvec3(imageSize(arg_0));
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_6dae40();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec3 tint_symbol;
+} v;
+layout(binding = 0, rg32f) uniform highp readonly image3D arg_0;
+uvec3 textureDimensions_6dae40() {
+  uvec3 res = uvec3(imageSize(arg_0));
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureDimensions_6dae40();
+}
+#version 460
+
+
+struct VertexOutput {
+  vec4 pos;
+  uvec3 prevent_dce;
+};
+
+layout(binding = 0, rg32f) uniform highp readonly image3D arg_0;
+layout(location = 0) flat out uvec3 vertex_main_loc0_Output;
+uvec3 textureDimensions_6dae40() {
+  uvec3 res = uvec3(imageSize(arg_0));
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), uvec3(0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_6dae40();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/textureDimensions/6dbef4.wgsl b/test/tint/builtins/gen/var/textureDimensions/6dbef4.wgsl
index ed4e13f..07f19dc 100644
--- a/test/tint/builtins/gen/var/textureDimensions/6dbef4.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/6dbef4.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32sint, read>;
diff --git a/test/tint/builtins/gen/var/textureDimensions/6dbef4.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/6dbef4.wgsl.expected.glsl
index 1ee6bbb..e3fcf20 100644
--- a/test/tint/builtins/gen/var/textureDimensions/6dbef4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/6dbef4.wgsl.expected.glsl
@@ -1,83 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp readonly iimage3D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec3 inner;
-  uint pad;
 } prevent_dce;
 
-void textureDimensions_6dbef4() {
+layout(binding = 0, rg32i) uniform highp readonly iimage3D arg_0;
+uvec3 textureDimensions_6dbef4() {
   uvec3 res = uvec3(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureDimensions_6dbef4();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp readonly iimage3D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
-void textureDimensions_6dbef4() {
-  uvec3 res = uvec3(imageSize(arg_0));
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  uvec3 prevent_dce;
+};
 
 void fragment_main() {
-  textureDimensions_6dbef4();
+  prevent_dce.inner = textureDimensions_6dbef4();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp readonly iimage3D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec3 inner;
-  uint pad;
 } prevent_dce;
 
-void textureDimensions_6dbef4() {
+layout(binding = 0, rg32i) uniform highp readonly iimage3D arg_0;
+uvec3 textureDimensions_6dbef4() {
   uvec3 res = uvec3(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec3 prevent_dce;
+};
+
 void compute_main() {
-  textureDimensions_6dbef4();
+  prevent_dce.inner = textureDimensions_6dbef4();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out uvec3 prevent_dce_1;
+layout(binding = 0, rg32i) uniform highp readonly iimage3D arg_0;
+uvec3 textureDimensions_6dbef4() {
+  uvec3 res = uvec3(imageSize(arg_0));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uvec3 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), uvec3(0u, 0u, 0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_6dbef4();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureDimensions/6dbef4.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureDimensions/6dbef4.wgsl.expected.ir.glsl
index fbd651e..a062ff2 100644
--- a/test/tint/builtins/gen/var/textureDimensions/6dbef4.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/6dbef4.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec3 tint_symbol;
+} v;
+layout(binding = 0, rg32i) uniform highp readonly iimage3D arg_0;
+uvec3 textureDimensions_6dbef4() {
+  uvec3 res = uvec3(imageSize(arg_0));
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_6dbef4();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec3 tint_symbol;
+} v;
+layout(binding = 0, rg32i) uniform highp readonly iimage3D arg_0;
+uvec3 textureDimensions_6dbef4() {
+  uvec3 res = uvec3(imageSize(arg_0));
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureDimensions_6dbef4();
+}
+#version 460
+
+
+struct VertexOutput {
+  vec4 pos;
+  uvec3 prevent_dce;
+};
+
+layout(binding = 0, rg32i) uniform highp readonly iimage3D arg_0;
+layout(location = 0) flat out uvec3 vertex_main_loc0_Output;
+uvec3 textureDimensions_6dbef4() {
+  uvec3 res = uvec3(imageSize(arg_0));
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), uvec3(0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_6dbef4();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/textureDimensions/740e7c.wgsl b/test/tint/builtins/gen/var/textureDimensions/740e7c.wgsl
index 75d9159..b656a8e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/740e7c.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/740e7c.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
 
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32sint, read_write>;
diff --git a/test/tint/builtins/gen/var/textureDimensions/740e7c.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/740e7c.wgsl.expected.glsl
index 83e274d..7928ecb 100644
--- a/test/tint/builtins/gen/var/textureDimensions/740e7c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/740e7c.wgsl.expected.glsl
@@ -1,80 +1,37 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureDimensions_740e7c() {
+layout(binding = 0, rg32i) uniform highp writeonly iimage2D arg_0;
+uint textureDimensions_740e7c() {
   uint res = uvec2(imageSize(arg_0)).x;
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureDimensions_740e7c();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp writeonly iimage2D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
-void textureDimensions_740e7c() {
-  uint res = uvec2(imageSize(arg_0)).x;
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureDimensions_740e7c();
+  prevent_dce.inner = textureDimensions_740e7c();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureDimensions_740e7c() {
+layout(binding = 0, rg32i) uniform highp writeonly iimage2D arg_0;
+uint textureDimensions_740e7c() {
   uint res = uvec2(imageSize(arg_0)).x;
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureDimensions_740e7c();
+  prevent_dce.inner = textureDimensions_740e7c();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +39,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureDimensions/7c7c64.wgsl b/test/tint/builtins/gen/var/textureDimensions/7c7c64.wgsl
index cc7f3f7..59d281d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7c7c64.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/7c7c64.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32sint, read_write>;
diff --git a/test/tint/builtins/gen/var/textureDimensions/7c7c64.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/7c7c64.wgsl.expected.glsl
index 917fe4e..6a1332c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7c7c64.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/7c7c64.wgsl.expected.glsl
@@ -1,80 +1,37 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_7c7c64() {
+layout(binding = 0, rg32i) uniform highp writeonly iimage2DArray arg_0;
+uvec2 textureDimensions_7c7c64() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureDimensions_7c7c64();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp writeonly iimage2DArray arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
-void textureDimensions_7c7c64() {
-  uvec2 res = uvec2(imageSize(arg_0).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureDimensions_7c7c64();
+  prevent_dce.inner = textureDimensions_7c7c64();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_7c7c64() {
+layout(binding = 0, rg32i) uniform highp writeonly iimage2DArray arg_0;
+uvec2 textureDimensions_7c7c64() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureDimensions_7c7c64();
+  prevent_dce.inner = textureDimensions_7c7c64();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +39,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureDimensions/7d8439.wgsl b/test/tint/builtins/gen/var/textureDimensions/7d8439.wgsl
index 3277696..594c2fb 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7d8439.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/7d8439.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
 
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32uint, read>;
diff --git a/test/tint/builtins/gen/var/textureDimensions/7d8439.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/7d8439.wgsl.expected.glsl
index 9af6882..c3d1668 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7d8439.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/7d8439.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp readonly uimage2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureDimensions_7d8439() {
+layout(binding = 0, rg32ui) uniform highp readonly uimage2D arg_0;
+uint textureDimensions_7d8439() {
   uint res = uvec2(imageSize(arg_0)).x;
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureDimensions_7d8439();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp readonly uimage2D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
-void textureDimensions_7d8439() {
-  uint res = uvec2(imageSize(arg_0)).x;
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
 
 void fragment_main() {
-  textureDimensions_7d8439();
+  prevent_dce.inner = textureDimensions_7d8439();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp readonly uimage2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureDimensions_7d8439() {
+layout(binding = 0, rg32ui) uniform highp readonly uimage2D arg_0;
+uint textureDimensions_7d8439() {
   uint res = uvec2(imageSize(arg_0)).x;
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
 void compute_main() {
-  textureDimensions_7d8439();
+  prevent_dce.inner = textureDimensions_7d8439();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out uint prevent_dce_1;
+layout(binding = 0, rg32ui) uniform highp readonly uimage2D arg_0;
+uint textureDimensions_7d8439() {
+  uint res = uvec2(imageSize(arg_0)).x;
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), 0u);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_7d8439();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureDimensions/7d8439.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureDimensions/7d8439.wgsl.expected.ir.glsl
index fbd651e..f9412ab 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7d8439.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/7d8439.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, rg32ui) uniform highp readonly uimage1D arg_0;
+uint textureDimensions_7d8439() {
+  uint res = uint(imageSize(arg_0));
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_7d8439();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, rg32ui) uniform highp readonly uimage1D arg_0;
+uint textureDimensions_7d8439() {
+  uint res = uint(imageSize(arg_0));
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureDimensions_7d8439();
+}
+#version 460
+
+
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
+layout(binding = 0, rg32ui) uniform highp readonly uimage1D arg_0;
+layout(location = 0) flat out uint vertex_main_loc0_Output;
+uint textureDimensions_7d8439() {
+  uint res = uint(imageSize(arg_0));
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), 0u);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_7d8439();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/textureDimensions/835f90.wgsl b/test/tint/builtins/gen/var/textureDimensions/835f90.wgsl
index 77ea6df..e1f4079 100644
--- a/test/tint/builtins/gen/var/textureDimensions/835f90.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/835f90.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32sint, read_write>;
diff --git a/test/tint/builtins/gen/var/textureDimensions/835f90.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/835f90.wgsl.expected.glsl
index 00ddd2c..166b1b5 100644
--- a/test/tint/builtins/gen/var/textureDimensions/835f90.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/835f90.wgsl.expected.glsl
@@ -1,80 +1,37 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_835f90() {
+layout(binding = 0, rg32i) uniform highp writeonly iimage2D arg_0;
+uvec2 textureDimensions_835f90() {
   uvec2 res = uvec2(imageSize(arg_0));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureDimensions_835f90();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp writeonly iimage2D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
-void textureDimensions_835f90() {
-  uvec2 res = uvec2(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureDimensions_835f90();
+  prevent_dce.inner = textureDimensions_835f90();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_835f90() {
+layout(binding = 0, rg32i) uniform highp writeonly iimage2D arg_0;
+uvec2 textureDimensions_835f90() {
   uvec2 res = uvec2(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureDimensions_835f90();
+  prevent_dce.inner = textureDimensions_835f90();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +39,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureDimensions/879b73.wgsl b/test/tint/builtins/gen/var/textureDimensions/879b73.wgsl
index 45bd2b9..6b078ce 100644
--- a/test/tint/builtins/gen/var/textureDimensions/879b73.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/879b73.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
 
 @group(1) @binding(0) var arg_0: texture_cube_array<f32>;
diff --git a/test/tint/builtins/gen/var/textureDimensions/879b73.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/879b73.wgsl.expected.glsl
index 7b5f46b..f643ca5 100644
--- a/test/tint/builtins/gen/var/textureDimensions/879b73.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/879b73.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-uniform highp samplerCubeArray arg_0_1;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_879b73() {
-  uvec2 res = uvec2(textureSize(arg_0_1, 0).xy);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureDimensions_879b73();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
 uniform highp samplerCubeArray arg_0_1;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
-void textureDimensions_879b73() {
+uvec2 textureDimensions_879b73() {
   uvec2 res = uvec2(textureSize(arg_0_1, 0).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
 void fragment_main() {
-  textureDimensions_879b73();
+  prevent_dce.inner = textureDimensions_879b73();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-uniform highp samplerCubeArray arg_0_1;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_879b73() {
+uniform highp samplerCubeArray arg_0_1;
+uvec2 textureDimensions_879b73() {
   uvec2 res = uvec2(textureSize(arg_0_1, 0).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
 void compute_main() {
-  textureDimensions_879b73();
+  prevent_dce.inner = textureDimensions_879b73();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
+layout(location = 0) flat out uvec2 prevent_dce_1;
+uniform highp samplerCubeArray arg_0_1;
+uvec2 textureDimensions_879b73() {
+  uvec2 res = uvec2(textureSize(arg_0_1, 0).xy);
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), uvec2(0u, 0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_879b73();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureDimensions/879b73.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureDimensions/879b73.wgsl.expected.ir.glsl
index fbd651e..6dcee45 100644
--- a/test/tint/builtins/gen/var/textureDimensions/879b73.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/879b73.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+uniform highp samplerCubeArray arg_0;
+uvec2 textureDimensions_879b73() {
+  uvec2 res = uvec2(textureSize(arg_0, 0).xy);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_879b73();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+uniform highp samplerCubeArray arg_0;
+uvec2 textureDimensions_879b73() {
+  uvec2 res = uvec2(textureSize(arg_0, 0).xy);
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureDimensions_879b73();
+}
+#version 460
+
+
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
+uniform highp samplerCubeArray arg_0;
+layout(location = 0) flat out uvec2 vertex_main_loc0_Output;
+uvec2 textureDimensions_879b73() {
+  uvec2 res = uvec2(textureSize(arg_0, 0).xy);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), uvec2(0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_879b73();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/textureDimensions/8a35f9.wgsl b/test/tint/builtins/gen/var/textureDimensions/8a35f9.wgsl
index 730c8f4..8380bb4 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8a35f9.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/8a35f9.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32float, write>;
diff --git a/test/tint/builtins/gen/var/textureDimensions/8a35f9.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/8a35f9.wgsl.expected.glsl
index 87202cb..cb3566b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8a35f9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/8a35f9.wgsl.expected.glsl
@@ -1,80 +1,37 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_8a35f9() {
+layout(binding = 0, rg32f) uniform highp writeonly image2D arg_0;
+uvec2 textureDimensions_8a35f9() {
   uvec2 res = uvec2(imageSize(arg_0));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureDimensions_8a35f9();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp writeonly image2D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
-void textureDimensions_8a35f9() {
-  uvec2 res = uvec2(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureDimensions_8a35f9();
+  prevent_dce.inner = textureDimensions_8a35f9();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_8a35f9() {
+layout(binding = 0, rg32f) uniform highp writeonly image2D arg_0;
+uvec2 textureDimensions_8a35f9() {
   uvec2 res = uvec2(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureDimensions_8a35f9();
+  prevent_dce.inner = textureDimensions_8a35f9();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +39,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureDimensions/8a35f9.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureDimensions/8a35f9.wgsl.expected.ir.glsl
index fbd651e..8276eb8 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8a35f9.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/8a35f9.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+layout(binding = 0, rg32f) uniform highp writeonly image2D arg_0;
+uvec2 textureDimensions_8a35f9() {
+  uvec2 res = uvec2(imageSize(arg_0));
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_8a35f9();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+layout(binding = 0, rg32f) uniform highp writeonly image2D arg_0;
+uvec2 textureDimensions_8a35f9() {
+  uvec2 res = uvec2(imageSize(arg_0));
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureDimensions_8a35f9();
+}
diff --git a/test/tint/builtins/gen/var/textureDimensions/8af728.wgsl b/test/tint/builtins/gen/var/textureDimensions/8af728.wgsl
index 441575d..6415f32 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8af728.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/8af728.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
diff --git a/test/tint/builtins/gen/var/textureDimensions/8af728.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/8af728.wgsl.expected.glsl
index 07cf06e..621da02 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8af728.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/8af728.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp readonly image2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_8af728() {
+layout(binding = 0, r8) uniform highp readonly image2DArray arg_0;
+uvec2 textureDimensions_8af728() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureDimensions_8af728();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp readonly image2DArray arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
-void textureDimensions_8af728() {
-  uvec2 res = uvec2(imageSize(arg_0).xy);
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
 
 void fragment_main() {
-  textureDimensions_8af728();
+  prevent_dce.inner = textureDimensions_8af728();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp readonly image2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_8af728() {
+layout(binding = 0, r8) uniform highp readonly image2DArray arg_0;
+uvec2 textureDimensions_8af728() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
 void compute_main() {
-  textureDimensions_8af728();
+  prevent_dce.inner = textureDimensions_8af728();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out uvec2 prevent_dce_1;
+layout(binding = 0, r8) uniform highp readonly image2DArray arg_0;
+uvec2 textureDimensions_8af728() {
+  uvec2 res = uvec2(imageSize(arg_0).xy);
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), uvec2(0u, 0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_8af728();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureDimensions/8af728.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureDimensions/8af728.wgsl.expected.ir.glsl
index fbd651e..d811e99 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8af728.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/8af728.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+layout(binding = 0, r8) uniform highp readonly image2DArray arg_0;
+uvec2 textureDimensions_8af728() {
+  uvec2 res = uvec2(imageSize(arg_0).xy);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_8af728();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+layout(binding = 0, r8) uniform highp readonly image2DArray arg_0;
+uvec2 textureDimensions_8af728() {
+  uvec2 res = uvec2(imageSize(arg_0).xy);
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureDimensions_8af728();
+}
+#version 460
+
+
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
+layout(binding = 0, r8) uniform highp readonly image2DArray arg_0;
+layout(location = 0) flat out uvec2 vertex_main_loc0_Output;
+uvec2 textureDimensions_8af728() {
+  uvec2 res = uvec2(imageSize(arg_0).xy);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), uvec2(0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_8af728();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/textureDimensions/8e15f4.wgsl b/test/tint/builtins/gen/var/textureDimensions/8e15f4.wgsl
index 89e5ba9..ad74ff0 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8e15f4.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/8e15f4.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32uint, read>;
diff --git a/test/tint/builtins/gen/var/textureDimensions/8e15f4.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/8e15f4.wgsl.expected.glsl
index bfebfb4..b6eb1ef 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8e15f4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/8e15f4.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp readonly uimage2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_8e15f4() {
+layout(binding = 0, rg32ui) uniform highp readonly uimage2D arg_0;
+uvec2 textureDimensions_8e15f4() {
   uvec2 res = uvec2(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureDimensions_8e15f4();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp readonly uimage2D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
-void textureDimensions_8e15f4() {
-  uvec2 res = uvec2(imageSize(arg_0));
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
 
 void fragment_main() {
-  textureDimensions_8e15f4();
+  prevent_dce.inner = textureDimensions_8e15f4();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp readonly uimage2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_8e15f4() {
+layout(binding = 0, rg32ui) uniform highp readonly uimage2D arg_0;
+uvec2 textureDimensions_8e15f4() {
   uvec2 res = uvec2(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
 void compute_main() {
-  textureDimensions_8e15f4();
+  prevent_dce.inner = textureDimensions_8e15f4();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out uvec2 prevent_dce_1;
+layout(binding = 0, rg32ui) uniform highp readonly uimage2D arg_0;
+uvec2 textureDimensions_8e15f4() {
+  uvec2 res = uvec2(imageSize(arg_0));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), uvec2(0u, 0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_8e15f4();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureDimensions/8e15f4.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureDimensions/8e15f4.wgsl.expected.ir.glsl
index fbd651e..4b593b6 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8e15f4.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/8e15f4.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+layout(binding = 0, rg32ui) uniform highp readonly uimage2D arg_0;
+uvec2 textureDimensions_8e15f4() {
+  uvec2 res = uvec2(imageSize(arg_0));
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_8e15f4();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+layout(binding = 0, rg32ui) uniform highp readonly uimage2D arg_0;
+uvec2 textureDimensions_8e15f4() {
+  uvec2 res = uvec2(imageSize(arg_0));
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureDimensions_8e15f4();
+}
+#version 460
+
+
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
+layout(binding = 0, rg32ui) uniform highp readonly uimage2D arg_0;
+layout(location = 0) flat out uvec2 vertex_main_loc0_Output;
+uvec2 textureDimensions_8e15f4() {
+  uvec2 res = uvec2(imageSize(arg_0));
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), uvec2(0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_8e15f4();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/textureDimensions/91e3b4.wgsl b/test/tint/builtins/gen/var/textureDimensions/91e3b4.wgsl
index 47cc311..9aae4f3 100644
--- a/test/tint/builtins/gen/var/textureDimensions/91e3b4.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/91e3b4.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32sint, read_write>;
diff --git a/test/tint/builtins/gen/var/textureDimensions/91e3b4.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/91e3b4.wgsl.expected.glsl
index 071973d..29ecd2d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/91e3b4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/91e3b4.wgsl.expected.glsl
@@ -1,83 +1,37 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage3D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec3 inner;
-  uint pad;
 } prevent_dce;
 
-void textureDimensions_91e3b4() {
+layout(binding = 0, rg32i) uniform highp writeonly iimage3D arg_0;
+uvec3 textureDimensions_91e3b4() {
   uvec3 res = uvec3(imageSize(arg_0));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureDimensions_91e3b4();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp writeonly iimage3D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
-void textureDimensions_91e3b4() {
-  uvec3 res = uvec3(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureDimensions_91e3b4();
+  prevent_dce.inner = textureDimensions_91e3b4();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage3D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec3 inner;
-  uint pad;
 } prevent_dce;
 
-void textureDimensions_91e3b4() {
+layout(binding = 0, rg32i) uniform highp writeonly iimage3D arg_0;
+uvec3 textureDimensions_91e3b4() {
   uvec3 res = uvec3(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureDimensions_91e3b4();
+  prevent_dce.inner = textureDimensions_91e3b4();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +39,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureDimensions/9573f3.wgsl b/test/tint/builtins/gen/var/textureDimensions/9573f3.wgsl
index 806df68..9892b98 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9573f3.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9573f3.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32uint, write>;
diff --git a/test/tint/builtins/gen/var/textureDimensions/9573f3.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/9573f3.wgsl.expected.glsl
index 21fdf97..64163cf 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9573f3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9573f3.wgsl.expected.glsl
@@ -1,80 +1,37 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_9573f3() {
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2D arg_0;
+uvec2 textureDimensions_9573f3() {
   uvec2 res = uvec2(imageSize(arg_0));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureDimensions_9573f3();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp writeonly uimage2D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
-void textureDimensions_9573f3() {
-  uvec2 res = uvec2(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureDimensions_9573f3();
+  prevent_dce.inner = textureDimensions_9573f3();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_9573f3() {
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2D arg_0;
+uvec2 textureDimensions_9573f3() {
   uvec2 res = uvec2(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureDimensions_9573f3();
+  prevent_dce.inner = textureDimensions_9573f3();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +39,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureDimensions/9573f3.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureDimensions/9573f3.wgsl.expected.ir.glsl
index fbd651e..e4ee6f5 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9573f3.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9573f3.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2D arg_0;
+uvec2 textureDimensions_9573f3() {
+  uvec2 res = uvec2(imageSize(arg_0));
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_9573f3();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2D arg_0;
+uvec2 textureDimensions_9573f3() {
+  uvec2 res = uvec2(imageSize(arg_0));
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureDimensions_9573f3();
+}
diff --git a/test/tint/builtins/gen/var/textureDimensions/98b2d3.wgsl b/test/tint/builtins/gen/var/textureDimensions/98b2d3.wgsl
index 5e2ff2c..525cc86 100644
--- a/test/tint/builtins/gen/var/textureDimensions/98b2d3.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/98b2d3.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
 
 @group(1) @binding(0) var arg_0: texture_cube_array<i32>;
diff --git a/test/tint/builtins/gen/var/textureDimensions/98b2d3.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/98b2d3.wgsl.expected.glsl
index 3701429..03f7c84 100644
--- a/test/tint/builtins/gen/var/textureDimensions/98b2d3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/98b2d3.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-uniform highp isamplerCubeArray arg_0_1;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_98b2d3() {
-  uvec2 res = uvec2(textureSize(arg_0_1, 0).xy);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureDimensions_98b2d3();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'isamplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
 uniform highp isamplerCubeArray arg_0_1;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
-void textureDimensions_98b2d3() {
+uvec2 textureDimensions_98b2d3() {
   uvec2 res = uvec2(textureSize(arg_0_1, 0).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
 void fragment_main() {
-  textureDimensions_98b2d3();
+  prevent_dce.inner = textureDimensions_98b2d3();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'isamplerCubeArray' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-uniform highp isamplerCubeArray arg_0_1;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_98b2d3() {
+uniform highp isamplerCubeArray arg_0_1;
+uvec2 textureDimensions_98b2d3() {
   uvec2 res = uvec2(textureSize(arg_0_1, 0).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
 void compute_main() {
-  textureDimensions_98b2d3();
+  prevent_dce.inner = textureDimensions_98b2d3();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'isamplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
+layout(location = 0) flat out uvec2 prevent_dce_1;
+uniform highp isamplerCubeArray arg_0_1;
+uvec2 textureDimensions_98b2d3() {
+  uvec2 res = uvec2(textureSize(arg_0_1, 0).xy);
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), uvec2(0u, 0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_98b2d3();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureDimensions/98b2d3.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureDimensions/98b2d3.wgsl.expected.ir.glsl
index fbd651e..daee8d7 100644
--- a/test/tint/builtins/gen/var/textureDimensions/98b2d3.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/98b2d3.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+uniform highp isamplerCubeArray arg_0;
+uvec2 textureDimensions_98b2d3() {
+  uvec2 res = uvec2(textureSize(arg_0, 0).xy);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_98b2d3();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+uniform highp isamplerCubeArray arg_0;
+uvec2 textureDimensions_98b2d3() {
+  uvec2 res = uvec2(textureSize(arg_0, 0).xy);
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureDimensions_98b2d3();
+}
+#version 460
+
+
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
+uniform highp isamplerCubeArray arg_0;
+layout(location = 0) flat out uvec2 vertex_main_loc0_Output;
+uvec2 textureDimensions_98b2d3() {
+  uvec2 res = uvec2(textureSize(arg_0, 0).xy);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), uvec2(0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_98b2d3();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/textureDimensions/9cd8ad.wgsl b/test/tint/builtins/gen/var/textureDimensions/9cd8ad.wgsl
index 3efbe5e..409b6c0 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9cd8ad.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9cd8ad.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32float, write>;
diff --git a/test/tint/builtins/gen/var/textureDimensions/9cd8ad.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/9cd8ad.wgsl.expected.glsl
index d2c96d0..6de2615 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9cd8ad.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9cd8ad.wgsl.expected.glsl
@@ -1,83 +1,37 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image3D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec3 inner;
-  uint pad;
 } prevent_dce;
 
-void textureDimensions_9cd8ad() {
+layout(binding = 0, rg32f) uniform highp writeonly image3D arg_0;
+uvec3 textureDimensions_9cd8ad() {
   uvec3 res = uvec3(imageSize(arg_0));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureDimensions_9cd8ad();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp writeonly image3D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
-void textureDimensions_9cd8ad() {
-  uvec3 res = uvec3(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureDimensions_9cd8ad();
+  prevent_dce.inner = textureDimensions_9cd8ad();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image3D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec3 inner;
-  uint pad;
 } prevent_dce;
 
-void textureDimensions_9cd8ad() {
+layout(binding = 0, rg32f) uniform highp writeonly image3D arg_0;
+uvec3 textureDimensions_9cd8ad() {
   uvec3 res = uvec3(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureDimensions_9cd8ad();
+  prevent_dce.inner = textureDimensions_9cd8ad();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +39,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureDimensions/9cd8ad.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureDimensions/9cd8ad.wgsl.expected.ir.glsl
index fbd651e..6b48a7b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9cd8ad.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9cd8ad.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec3 tint_symbol;
+} v;
+layout(binding = 0, rg32f) uniform highp writeonly image3D arg_0;
+uvec3 textureDimensions_9cd8ad() {
+  uvec3 res = uvec3(imageSize(arg_0));
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_9cd8ad();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec3 tint_symbol;
+} v;
+layout(binding = 0, rg32f) uniform highp writeonly image3D arg_0;
+uvec3 textureDimensions_9cd8ad() {
+  uvec3 res = uvec3(imageSize(arg_0));
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureDimensions_9cd8ad();
+}
diff --git a/test/tint/builtins/gen/var/textureDimensions/9dc27a.wgsl b/test/tint/builtins/gen/var/textureDimensions/9dc27a.wgsl
index b834457..5ba4661 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9dc27a.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9dc27a.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32float, read>;
diff --git a/test/tint/builtins/gen/var/textureDimensions/9dc27a.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/9dc27a.wgsl.expected.glsl
index aa32982..b1e73d9 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9dc27a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9dc27a.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp readonly image2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_9dc27a() {
+layout(binding = 0, rg32f) uniform highp readonly image2DArray arg_0;
+uvec2 textureDimensions_9dc27a() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureDimensions_9dc27a();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp readonly image2DArray arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
-void textureDimensions_9dc27a() {
-  uvec2 res = uvec2(imageSize(arg_0).xy);
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
 
 void fragment_main() {
-  textureDimensions_9dc27a();
+  prevent_dce.inner = textureDimensions_9dc27a();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp readonly image2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_9dc27a() {
+layout(binding = 0, rg32f) uniform highp readonly image2DArray arg_0;
+uvec2 textureDimensions_9dc27a() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
 void compute_main() {
-  textureDimensions_9dc27a();
+  prevent_dce.inner = textureDimensions_9dc27a();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out uvec2 prevent_dce_1;
+layout(binding = 0, rg32f) uniform highp readonly image2DArray arg_0;
+uvec2 textureDimensions_9dc27a() {
+  uvec2 res = uvec2(imageSize(arg_0).xy);
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), uvec2(0u, 0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_9dc27a();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureDimensions/9dc27a.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureDimensions/9dc27a.wgsl.expected.ir.glsl
index fbd651e..435c762 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9dc27a.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9dc27a.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+layout(binding = 0, rg32f) uniform highp readonly image2DArray arg_0;
+uvec2 textureDimensions_9dc27a() {
+  uvec2 res = uvec2(imageSize(arg_0).xy);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_9dc27a();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+layout(binding = 0, rg32f) uniform highp readonly image2DArray arg_0;
+uvec2 textureDimensions_9dc27a() {
+  uvec2 res = uvec2(imageSize(arg_0).xy);
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureDimensions_9dc27a();
+}
+#version 460
+
+
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
+layout(binding = 0, rg32f) uniform highp readonly image2DArray arg_0;
+layout(location = 0) flat out uvec2 vertex_main_loc0_Output;
+uvec2 textureDimensions_9dc27a() {
+  uvec2 res = uvec2(imageSize(arg_0).xy);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), uvec2(0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_9dc27a();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/textureDimensions/9fcc3b.wgsl b/test/tint/builtins/gen/var/textureDimensions/9fcc3b.wgsl
index 80ef7ed..611282d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9fcc3b.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9fcc3b.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
 
 @group(1) @binding(0) var arg_0: texture_depth_cube_array;
diff --git a/test/tint/builtins/gen/var/textureDimensions/9fcc3b.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/9fcc3b.wgsl.expected.glsl
index 7b65160..86a5546 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9fcc3b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9fcc3b.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-uniform highp samplerCubeArray arg_0_1;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_9fcc3b() {
-  uvec2 res = uvec2(textureSize(arg_0_1, 0).xy);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureDimensions_9fcc3b();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
 uniform highp samplerCubeArray arg_0_1;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
-void textureDimensions_9fcc3b() {
+uvec2 textureDimensions_9fcc3b() {
   uvec2 res = uvec2(textureSize(arg_0_1, 0).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
 void fragment_main() {
-  textureDimensions_9fcc3b();
+  prevent_dce.inner = textureDimensions_9fcc3b();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-uniform highp samplerCubeArray arg_0_1;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_9fcc3b() {
+uniform highp samplerCubeArray arg_0_1;
+uvec2 textureDimensions_9fcc3b() {
   uvec2 res = uvec2(textureSize(arg_0_1, 0).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
 void compute_main() {
-  textureDimensions_9fcc3b();
+  prevent_dce.inner = textureDimensions_9fcc3b();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
+layout(location = 0) flat out uvec2 prevent_dce_1;
+uniform highp samplerCubeArray arg_0_1;
+uvec2 textureDimensions_9fcc3b() {
+  uvec2 res = uvec2(textureSize(arg_0_1, 0).xy);
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), uvec2(0u, 0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_9fcc3b();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureDimensions/9fcc3b.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureDimensions/9fcc3b.wgsl.expected.ir.glsl
index fbd651e..9c87f72 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9fcc3b.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9fcc3b.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+uniform highp samplerCubeArrayShadow arg_0;
+uvec2 textureDimensions_9fcc3b() {
+  uvec2 res = uvec2(textureSize(arg_0, 0).xy);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_9fcc3b();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+uniform highp samplerCubeArrayShadow arg_0;
+uvec2 textureDimensions_9fcc3b() {
+  uvec2 res = uvec2(textureSize(arg_0, 0).xy);
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureDimensions_9fcc3b();
+}
+#version 460
+
+
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
+uniform highp samplerCubeArrayShadow arg_0;
+layout(location = 0) flat out uvec2 vertex_main_loc0_Output;
+uvec2 textureDimensions_9fcc3b() {
+  uvec2 res = uvec2(textureSize(arg_0, 0).xy);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), uvec2(0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_9fcc3b();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/textureDimensions/a1598a.wgsl b/test/tint/builtins/gen/var/textureDimensions/a1598a.wgsl
index 2285a61..18256e4 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a1598a.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a1598a.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
 
 @group(1) @binding(0) var arg_0: texture_cube_array<u32>;
diff --git a/test/tint/builtins/gen/var/textureDimensions/a1598a.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/a1598a.wgsl.expected.glsl
index f572dc0..e306113 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a1598a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a1598a.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-uniform highp usamplerCubeArray arg_0_1;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_a1598a() {
-  uvec2 res = uvec2(textureSize(arg_0_1, 0).xy);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureDimensions_a1598a();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'usamplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
 uniform highp usamplerCubeArray arg_0_1;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
-void textureDimensions_a1598a() {
+uvec2 textureDimensions_a1598a() {
   uvec2 res = uvec2(textureSize(arg_0_1, 0).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
 void fragment_main() {
-  textureDimensions_a1598a();
+  prevent_dce.inner = textureDimensions_a1598a();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'usamplerCubeArray' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-uniform highp usamplerCubeArray arg_0_1;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_a1598a() {
+uniform highp usamplerCubeArray arg_0_1;
+uvec2 textureDimensions_a1598a() {
   uvec2 res = uvec2(textureSize(arg_0_1, 0).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
 void compute_main() {
-  textureDimensions_a1598a();
+  prevent_dce.inner = textureDimensions_a1598a();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'usamplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
+layout(location = 0) flat out uvec2 prevent_dce_1;
+uniform highp usamplerCubeArray arg_0_1;
+uvec2 textureDimensions_a1598a() {
+  uvec2 res = uvec2(textureSize(arg_0_1, 0).xy);
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), uvec2(0u, 0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_a1598a();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureDimensions/a1598a.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureDimensions/a1598a.wgsl.expected.ir.glsl
index fbd651e..160b643 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a1598a.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a1598a.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+uniform highp usamplerCubeArray arg_0;
+uvec2 textureDimensions_a1598a() {
+  uvec2 res = uvec2(textureSize(arg_0, 0).xy);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_a1598a();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+uniform highp usamplerCubeArray arg_0;
+uvec2 textureDimensions_a1598a() {
+  uvec2 res = uvec2(textureSize(arg_0, 0).xy);
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureDimensions_a1598a();
+}
+#version 460
+
+
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
+uniform highp usamplerCubeArray arg_0;
+layout(location = 0) flat out uvec2 vertex_main_loc0_Output;
+uvec2 textureDimensions_a1598a() {
+  uvec2 res = uvec2(textureSize(arg_0, 0).xy);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), uvec2(0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_a1598a();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/textureDimensions/a20ba2.wgsl b/test/tint/builtins/gen/var/textureDimensions/a20ba2.wgsl
index e0e9681..eeb8c28 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a20ba2.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a20ba2.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
diff --git a/test/tint/builtins/gen/var/textureDimensions/a20ba2.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/a20ba2.wgsl.expected.glsl
index 414da05..738297d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a20ba2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a20ba2.wgsl.expected.glsl
@@ -1,83 +1,37 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp writeonly image3D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec3 inner;
-  uint pad;
 } prevent_dce;
 
-void textureDimensions_a20ba2() {
+layout(binding = 0, r8) uniform highp writeonly image3D arg_0;
+uvec3 textureDimensions_a20ba2() {
   uvec3 res = uvec3(imageSize(arg_0));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureDimensions_a20ba2();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp writeonly image3D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
-void textureDimensions_a20ba2() {
-  uvec3 res = uvec3(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureDimensions_a20ba2();
+  prevent_dce.inner = textureDimensions_a20ba2();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp writeonly image3D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec3 inner;
-  uint pad;
 } prevent_dce;
 
-void textureDimensions_a20ba2() {
+layout(binding = 0, r8) uniform highp writeonly image3D arg_0;
+uvec3 textureDimensions_a20ba2() {
   uvec3 res = uvec3(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureDimensions_a20ba2();
+  prevent_dce.inner = textureDimensions_a20ba2();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +39,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureDimensions/a20ba2.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureDimensions/a20ba2.wgsl.expected.ir.glsl
index fbd651e..95e8d14 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a20ba2.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a20ba2.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec3 tint_symbol;
+} v;
+layout(binding = 0, r8) uniform highp writeonly image3D arg_0;
+uvec3 textureDimensions_a20ba2() {
+  uvec3 res = uvec3(imageSize(arg_0));
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_a20ba2();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec3 tint_symbol;
+} v;
+layout(binding = 0, r8) uniform highp writeonly image3D arg_0;
+uvec3 textureDimensions_a20ba2() {
+  uvec3 res = uvec3(imageSize(arg_0));
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureDimensions_a20ba2();
+}
diff --git a/test/tint/builtins/gen/var/textureDimensions/ae4595.wgsl b/test/tint/builtins/gen/var/textureDimensions/ae4595.wgsl
index fe08dfd..961d1b2 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ae4595.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/ae4595.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32float, read_write>;
diff --git a/test/tint/builtins/gen/var/textureDimensions/ae4595.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/ae4595.wgsl.expected.glsl
index 4a9b48a..62cdc74 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ae4595.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/ae4595.wgsl.expected.glsl
@@ -1,83 +1,37 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image3D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec3 inner;
-  uint pad;
 } prevent_dce;
 
-void textureDimensions_ae4595() {
+layout(binding = 0, rg32f) uniform highp writeonly image3D arg_0;
+uvec3 textureDimensions_ae4595() {
   uvec3 res = uvec3(imageSize(arg_0));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureDimensions_ae4595();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp writeonly image3D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
-void textureDimensions_ae4595() {
-  uvec3 res = uvec3(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureDimensions_ae4595();
+  prevent_dce.inner = textureDimensions_ae4595();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image3D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec3 inner;
-  uint pad;
 } prevent_dce;
 
-void textureDimensions_ae4595() {
+layout(binding = 0, rg32f) uniform highp writeonly image3D arg_0;
+uvec3 textureDimensions_ae4595() {
   uvec3 res = uvec3(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureDimensions_ae4595();
+  prevent_dce.inner = textureDimensions_ae4595();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +39,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureDimensions/af46ab.wgsl b/test/tint/builtins/gen/var/textureDimensions/af46ab.wgsl
index d13fcfa..6024308 100644
--- a/test/tint/builtins/gen/var/textureDimensions/af46ab.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/af46ab.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32sint, write>;
diff --git a/test/tint/builtins/gen/var/textureDimensions/af46ab.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/af46ab.wgsl.expected.glsl
index 65a6963..3fd9414 100644
--- a/test/tint/builtins/gen/var/textureDimensions/af46ab.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/af46ab.wgsl.expected.glsl
@@ -1,80 +1,37 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_af46ab() {
+layout(binding = 0, rg32i) uniform highp writeonly iimage2DArray arg_0;
+uvec2 textureDimensions_af46ab() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureDimensions_af46ab();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp writeonly iimage2DArray arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
-void textureDimensions_af46ab() {
-  uvec2 res = uvec2(imageSize(arg_0).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureDimensions_af46ab();
+  prevent_dce.inner = textureDimensions_af46ab();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_af46ab() {
+layout(binding = 0, rg32i) uniform highp writeonly iimage2DArray arg_0;
+uvec2 textureDimensions_af46ab() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureDimensions_af46ab();
+  prevent_dce.inner = textureDimensions_af46ab();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +39,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureDimensions/af46ab.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureDimensions/af46ab.wgsl.expected.ir.glsl
index fbd651e..a124789 100644
--- a/test/tint/builtins/gen/var/textureDimensions/af46ab.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/af46ab.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+layout(binding = 0, rg32i) uniform highp writeonly iimage2DArray arg_0;
+uvec2 textureDimensions_af46ab() {
+  uvec2 res = uvec2(imageSize(arg_0).xy);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_af46ab();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+layout(binding = 0, rg32i) uniform highp writeonly iimage2DArray arg_0;
+uvec2 textureDimensions_af46ab() {
+  uvec2 res = uvec2(imageSize(arg_0).xy);
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureDimensions_af46ab();
+}
diff --git a/test/tint/builtins/gen/var/textureDimensions/b3ab5e.wgsl b/test/tint/builtins/gen/var/textureDimensions/b3ab5e.wgsl
index 12a307d..3c9c134 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b3ab5e.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b3ab5e.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
 
 @group(1) @binding(0) var arg_0: texture_cube_array<f32>;
diff --git a/test/tint/builtins/gen/var/textureDimensions/b3ab5e.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/b3ab5e.wgsl.expected.glsl
index a2239d0..e4d4a68 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b3ab5e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b3ab5e.wgsl.expected.glsl
@@ -1,83 +1,49 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-uniform highp samplerCubeArray arg_0_1;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_b3ab5e() {
-  int arg_1 = 1;
-  uvec2 res = uvec2(textureSize(arg_0_1, arg_1).xy);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureDimensions_b3ab5e();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
 uniform highp samplerCubeArray arg_0_1;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
-void textureDimensions_b3ab5e() {
+uvec2 textureDimensions_b3ab5e() {
   int arg_1 = 1;
   uvec2 res = uvec2(textureSize(arg_0_1, arg_1).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
 void fragment_main() {
-  textureDimensions_b3ab5e();
+  prevent_dce.inner = textureDimensions_b3ab5e();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-uniform highp samplerCubeArray arg_0_1;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_b3ab5e() {
+uniform highp samplerCubeArray arg_0_1;
+uvec2 textureDimensions_b3ab5e() {
   int arg_1 = 1;
   uvec2 res = uvec2(textureSize(arg_0_1, arg_1).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
 void compute_main() {
-  textureDimensions_b3ab5e();
+  prevent_dce.inner = textureDimensions_b3ab5e();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +51,34 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
+layout(location = 0) flat out uvec2 prevent_dce_1;
+uniform highp samplerCubeArray arg_0_1;
+uvec2 textureDimensions_b3ab5e() {
+  int arg_1 = 1;
+  uvec2 res = uvec2(textureSize(arg_0_1, arg_1).xy);
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), uvec2(0u, 0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_b3ab5e();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureDimensions/b3ab5e.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureDimensions/b3ab5e.wgsl.expected.ir.glsl
index fbd651e..96c0ab560 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b3ab5e.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b3ab5e.wgsl.expected.ir.glsl
@@ -1,11 +1,62 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+uniform highp samplerCubeArray arg_0;
+uvec2 textureDimensions_b3ab5e() {
+  int arg_1 = 1;
+  uvec2 res = uvec2(textureSize(arg_0, arg_1).xy);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_b3ab5e();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+uniform highp samplerCubeArray arg_0;
+uvec2 textureDimensions_b3ab5e() {
+  int arg_1 = 1;
+  uvec2 res = uvec2(textureSize(arg_0, arg_1).xy);
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureDimensions_b3ab5e();
+}
+#version 460
+
+
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
+uniform highp samplerCubeArray arg_0;
+layout(location = 0) flat out uvec2 vertex_main_loc0_Output;
+uvec2 textureDimensions_b3ab5e() {
+  int arg_1 = 1;
+  uvec2 res = uvec2(textureSize(arg_0, arg_1).xy);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), uvec2(0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_b3ab5e();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/textureDimensions/b51345.wgsl b/test/tint/builtins/gen/var/textureDimensions/b51345.wgsl
index e0a9f0c..55a03dd 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b51345.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b51345.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
 
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32float, write>;
diff --git a/test/tint/builtins/gen/var/textureDimensions/b51345.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/b51345.wgsl.expected.glsl
index 2d351f2..b63fb7e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b51345.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b51345.wgsl.expected.glsl
@@ -1,80 +1,37 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureDimensions_b51345() {
+layout(binding = 0, rg32f) uniform highp writeonly image2D arg_0;
+uint textureDimensions_b51345() {
   uint res = uvec2(imageSize(arg_0)).x;
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureDimensions_b51345();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp writeonly image2D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
-void textureDimensions_b51345() {
-  uint res = uvec2(imageSize(arg_0)).x;
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureDimensions_b51345();
+  prevent_dce.inner = textureDimensions_b51345();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureDimensions_b51345() {
+layout(binding = 0, rg32f) uniform highp writeonly image2D arg_0;
+uint textureDimensions_b51345() {
   uint res = uvec2(imageSize(arg_0)).x;
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureDimensions_b51345();
+  prevent_dce.inner = textureDimensions_b51345();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +39,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureDimensions/b51345.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureDimensions/b51345.wgsl.expected.ir.glsl
index fbd651e..57d0907 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b51345.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b51345.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, rg32f) uniform highp writeonly image1D arg_0;
+uint textureDimensions_b51345() {
+  uint res = uint(imageSize(arg_0));
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_b51345();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, rg32f) uniform highp writeonly image1D arg_0;
+uint textureDimensions_b51345() {
+  uint res = uint(imageSize(arg_0));
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureDimensions_b51345();
+}
diff --git a/test/tint/builtins/gen/var/textureDimensions/bd94c8.wgsl b/test/tint/builtins/gen/var/textureDimensions/bd94c8.wgsl
index 39b5513..2831f0c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/bd94c8.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/bd94c8.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
 
 @group(1) @binding(0) var arg_0: texture_depth_cube_array;
diff --git a/test/tint/builtins/gen/var/textureDimensions/bd94c8.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/bd94c8.wgsl.expected.glsl
index e7d8827..55a6960 100644
--- a/test/tint/builtins/gen/var/textureDimensions/bd94c8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/bd94c8.wgsl.expected.glsl
@@ -1,83 +1,49 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-uniform highp samplerCubeArray arg_0_1;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_bd94c8() {
-  uint arg_1 = 1u;
-  uvec2 res = uvec2(textureSize(arg_0_1, int(arg_1)).xy);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureDimensions_bd94c8();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
 uniform highp samplerCubeArray arg_0_1;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
-void textureDimensions_bd94c8() {
+uvec2 textureDimensions_bd94c8() {
   uint arg_1 = 1u;
   uvec2 res = uvec2(textureSize(arg_0_1, int(arg_1)).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
 void fragment_main() {
-  textureDimensions_bd94c8();
+  prevent_dce.inner = textureDimensions_bd94c8();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-uniform highp samplerCubeArray arg_0_1;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_bd94c8() {
+uniform highp samplerCubeArray arg_0_1;
+uvec2 textureDimensions_bd94c8() {
   uint arg_1 = 1u;
   uvec2 res = uvec2(textureSize(arg_0_1, int(arg_1)).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
 void compute_main() {
-  textureDimensions_bd94c8();
+  prevent_dce.inner = textureDimensions_bd94c8();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +51,34 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
+layout(location = 0) flat out uvec2 prevent_dce_1;
+uniform highp samplerCubeArray arg_0_1;
+uvec2 textureDimensions_bd94c8() {
+  uint arg_1 = 1u;
+  uvec2 res = uvec2(textureSize(arg_0_1, int(arg_1)).xy);
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), uvec2(0u, 0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_bd94c8();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureDimensions/c6b985.wgsl b/test/tint/builtins/gen/var/textureDimensions/c6b985.wgsl
index 736bc22..2e53f9e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c6b985.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c6b985.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 
 @group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
diff --git a/test/tint/builtins/gen/var/textureDimensions/c6b985.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/c6b985.wgsl.expected.glsl
index 8c574c9..fe85124 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c6b985.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c6b985.wgsl.expected.glsl
@@ -1,80 +1,37 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp writeonly image2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureDimensions_c6b985() {
+layout(binding = 0, r8) uniform highp writeonly image2D arg_0;
+uint textureDimensions_c6b985() {
   uint res = uvec2(imageSize(arg_0)).x;
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureDimensions_c6b985();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp writeonly image2D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
-void textureDimensions_c6b985() {
-  uint res = uvec2(imageSize(arg_0)).x;
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureDimensions_c6b985();
+  prevent_dce.inner = textureDimensions_c6b985();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp writeonly image2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureDimensions_c6b985() {
+layout(binding = 0, r8) uniform highp writeonly image2D arg_0;
+uint textureDimensions_c6b985() {
   uint res = uvec2(imageSize(arg_0)).x;
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureDimensions_c6b985();
+  prevent_dce.inner = textureDimensions_c6b985();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +39,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureDimensions/c7ea63.wgsl b/test/tint/builtins/gen/var/textureDimensions/c7ea63.wgsl
index 20b8d28..bdf133f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c7ea63.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c7ea63.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
 
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32float, read_write>;
diff --git a/test/tint/builtins/gen/var/textureDimensions/c7ea63.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/c7ea63.wgsl.expected.glsl
index a0e13a8..48eefeb 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c7ea63.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c7ea63.wgsl.expected.glsl
@@ -1,80 +1,37 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureDimensions_c7ea63() {
+layout(binding = 0, rg32f) uniform highp writeonly image2D arg_0;
+uint textureDimensions_c7ea63() {
   uint res = uvec2(imageSize(arg_0)).x;
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureDimensions_c7ea63();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp writeonly image2D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
-void textureDimensions_c7ea63() {
-  uint res = uvec2(imageSize(arg_0)).x;
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureDimensions_c7ea63();
+  prevent_dce.inner = textureDimensions_c7ea63();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureDimensions_c7ea63() {
+layout(binding = 0, rg32f) uniform highp writeonly image2D arg_0;
+uint textureDimensions_c7ea63() {
   uint res = uvec2(imageSize(arg_0)).x;
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureDimensions_c7ea63();
+  prevent_dce.inner = textureDimensions_c7ea63();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +39,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureDimensions/c82420.wgsl b/test/tint/builtins/gen/var/textureDimensions/c82420.wgsl
index 8274347..8483c1e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c82420.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c82420.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32uint, read_write>;
diff --git a/test/tint/builtins/gen/var/textureDimensions/c82420.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/c82420.wgsl.expected.glsl
index 7330a10..31b62cc 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c82420.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c82420.wgsl.expected.glsl
@@ -1,80 +1,37 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_c82420() {
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2D arg_0;
+uvec2 textureDimensions_c82420() {
   uvec2 res = uvec2(imageSize(arg_0));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureDimensions_c82420();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp writeonly uimage2D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
-void textureDimensions_c82420() {
-  uvec2 res = uvec2(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureDimensions_c82420();
+  prevent_dce.inner = textureDimensions_c82420();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_c82420() {
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2D arg_0;
+uvec2 textureDimensions_c82420() {
   uvec2 res = uvec2(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureDimensions_c82420();
+  prevent_dce.inner = textureDimensions_c82420();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +39,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureDimensions/cd3033.wgsl b/test/tint/builtins/gen/var/textureDimensions/cd3033.wgsl
index 30060eb..7cc6f16 100644
--- a/test/tint/builtins/gen/var/textureDimensions/cd3033.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/cd3033.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32sint, read>;
diff --git a/test/tint/builtins/gen/var/textureDimensions/cd3033.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/cd3033.wgsl.expected.glsl
index d80d06f..341b98e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/cd3033.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/cd3033.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp readonly iimage2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_cd3033() {
+layout(binding = 0, rg32i) uniform highp readonly iimage2DArray arg_0;
+uvec2 textureDimensions_cd3033() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureDimensions_cd3033();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp readonly iimage2DArray arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
-void textureDimensions_cd3033() {
-  uvec2 res = uvec2(imageSize(arg_0).xy);
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
 
 void fragment_main() {
-  textureDimensions_cd3033();
+  prevent_dce.inner = textureDimensions_cd3033();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp readonly iimage2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_cd3033() {
+layout(binding = 0, rg32i) uniform highp readonly iimage2DArray arg_0;
+uvec2 textureDimensions_cd3033() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
 void compute_main() {
-  textureDimensions_cd3033();
+  prevent_dce.inner = textureDimensions_cd3033();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out uvec2 prevent_dce_1;
+layout(binding = 0, rg32i) uniform highp readonly iimage2DArray arg_0;
+uvec2 textureDimensions_cd3033() {
+  uvec2 res = uvec2(imageSize(arg_0).xy);
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), uvec2(0u, 0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_cd3033();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureDimensions/cd3033.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureDimensions/cd3033.wgsl.expected.ir.glsl
index fbd651e..bbc1642 100644
--- a/test/tint/builtins/gen/var/textureDimensions/cd3033.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/cd3033.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+layout(binding = 0, rg32i) uniform highp readonly iimage2DArray arg_0;
+uvec2 textureDimensions_cd3033() {
+  uvec2 res = uvec2(imageSize(arg_0).xy);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_cd3033();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+layout(binding = 0, rg32i) uniform highp readonly iimage2DArray arg_0;
+uvec2 textureDimensions_cd3033() {
+  uvec2 res = uvec2(imageSize(arg_0).xy);
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureDimensions_cd3033();
+}
+#version 460
+
+
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
+layout(binding = 0, rg32i) uniform highp readonly iimage2DArray arg_0;
+layout(location = 0) flat out uvec2 vertex_main_loc0_Output;
+uvec2 textureDimensions_cd3033() {
+  uvec2 res = uvec2(imageSize(arg_0).xy);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), uvec2(0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_cd3033();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/textureDimensions/cedabd.wgsl b/test/tint/builtins/gen/var/textureDimensions/cedabd.wgsl
index 16165ef..34f8167 100644
--- a/test/tint/builtins/gen/var/textureDimensions/cedabd.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/cedabd.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
 
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32sint, read>;
diff --git a/test/tint/builtins/gen/var/textureDimensions/cedabd.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/cedabd.wgsl.expected.glsl
index 660ac58..4ff4ab1 100644
--- a/test/tint/builtins/gen/var/textureDimensions/cedabd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/cedabd.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp readonly iimage2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureDimensions_cedabd() {
+layout(binding = 0, rg32i) uniform highp readonly iimage2D arg_0;
+uint textureDimensions_cedabd() {
   uint res = uvec2(imageSize(arg_0)).x;
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureDimensions_cedabd();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp readonly iimage2D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
-void textureDimensions_cedabd() {
-  uint res = uvec2(imageSize(arg_0)).x;
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
 
 void fragment_main() {
-  textureDimensions_cedabd();
+  prevent_dce.inner = textureDimensions_cedabd();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp readonly iimage2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureDimensions_cedabd() {
+layout(binding = 0, rg32i) uniform highp readonly iimage2D arg_0;
+uint textureDimensions_cedabd() {
   uint res = uvec2(imageSize(arg_0)).x;
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
 void compute_main() {
-  textureDimensions_cedabd();
+  prevent_dce.inner = textureDimensions_cedabd();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out uint prevent_dce_1;
+layout(binding = 0, rg32i) uniform highp readonly iimage2D arg_0;
+uint textureDimensions_cedabd() {
+  uint res = uvec2(imageSize(arg_0)).x;
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), 0u);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_cedabd();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureDimensions/cedabd.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureDimensions/cedabd.wgsl.expected.ir.glsl
index fbd651e..3859f2b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/cedabd.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/cedabd.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, rg32i) uniform highp readonly iimage1D arg_0;
+uint textureDimensions_cedabd() {
+  uint res = uint(imageSize(arg_0));
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_cedabd();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, rg32i) uniform highp readonly iimage1D arg_0;
+uint textureDimensions_cedabd() {
+  uint res = uint(imageSize(arg_0));
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureDimensions_cedabd();
+}
+#version 460
+
+
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
+layout(binding = 0, rg32i) uniform highp readonly iimage1D arg_0;
+layout(location = 0) flat out uint vertex_main_loc0_Output;
+uint textureDimensions_cedabd() {
+  uint res = uint(imageSize(arg_0));
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), 0u);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_cedabd();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/textureDimensions/cf2b50.wgsl b/test/tint/builtins/gen/var/textureDimensions/cf2b50.wgsl
index 6201c99..42281dc 100644
--- a/test/tint/builtins/gen/var/textureDimensions/cf2b50.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/cf2b50.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
 
 @group(1) @binding(0) var arg_0: texture_cube_array<f32>;
diff --git a/test/tint/builtins/gen/var/textureDimensions/cf2b50.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/cf2b50.wgsl.expected.glsl
index 43460f5..8b84f63 100644
--- a/test/tint/builtins/gen/var/textureDimensions/cf2b50.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/cf2b50.wgsl.expected.glsl
@@ -1,83 +1,49 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-uniform highp samplerCubeArray arg_0_1;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_cf2b50() {
-  uint arg_1 = 1u;
-  uvec2 res = uvec2(textureSize(arg_0_1, int(arg_1)).xy);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureDimensions_cf2b50();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
 uniform highp samplerCubeArray arg_0_1;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
-void textureDimensions_cf2b50() {
+uvec2 textureDimensions_cf2b50() {
   uint arg_1 = 1u;
   uvec2 res = uvec2(textureSize(arg_0_1, int(arg_1)).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
 void fragment_main() {
-  textureDimensions_cf2b50();
+  prevent_dce.inner = textureDimensions_cf2b50();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-uniform highp samplerCubeArray arg_0_1;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_cf2b50() {
+uniform highp samplerCubeArray arg_0_1;
+uvec2 textureDimensions_cf2b50() {
   uint arg_1 = 1u;
   uvec2 res = uvec2(textureSize(arg_0_1, int(arg_1)).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
 void compute_main() {
-  textureDimensions_cf2b50();
+  prevent_dce.inner = textureDimensions_cf2b50();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +51,34 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
+layout(location = 0) flat out uvec2 prevent_dce_1;
+uniform highp samplerCubeArray arg_0_1;
+uvec2 textureDimensions_cf2b50() {
+  uint arg_1 = 1u;
+  uvec2 res = uvec2(textureSize(arg_0_1, int(arg_1)).xy);
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), uvec2(0u, 0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_cf2b50();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureDimensions/d0778e.wgsl b/test/tint/builtins/gen/var/textureDimensions/d0778e.wgsl
index c8395d1..1ec6fec 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d0778e.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d0778e.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32uint, read>;
diff --git a/test/tint/builtins/gen/var/textureDimensions/d0778e.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/d0778e.wgsl.expected.glsl
index 231c1ff..3df4e37 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d0778e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d0778e.wgsl.expected.glsl
@@ -1,83 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp readonly uimage3D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec3 inner;
-  uint pad;
 } prevent_dce;
 
-void textureDimensions_d0778e() {
+layout(binding = 0, rg32ui) uniform highp readonly uimage3D arg_0;
+uvec3 textureDimensions_d0778e() {
   uvec3 res = uvec3(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureDimensions_d0778e();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp readonly uimage3D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
-void textureDimensions_d0778e() {
-  uvec3 res = uvec3(imageSize(arg_0));
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  uvec3 prevent_dce;
+};
 
 void fragment_main() {
-  textureDimensions_d0778e();
+  prevent_dce.inner = textureDimensions_d0778e();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp readonly uimage3D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec3 inner;
-  uint pad;
 } prevent_dce;
 
-void textureDimensions_d0778e() {
+layout(binding = 0, rg32ui) uniform highp readonly uimage3D arg_0;
+uvec3 textureDimensions_d0778e() {
   uvec3 res = uvec3(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec3 prevent_dce;
+};
+
 void compute_main() {
-  textureDimensions_d0778e();
+  prevent_dce.inner = textureDimensions_d0778e();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out uvec3 prevent_dce_1;
+layout(binding = 0, rg32ui) uniform highp readonly uimage3D arg_0;
+uvec3 textureDimensions_d0778e() {
+  uvec3 res = uvec3(imageSize(arg_0));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uvec3 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), uvec3(0u, 0u, 0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_d0778e();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureDimensions/d0778e.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureDimensions/d0778e.wgsl.expected.ir.glsl
index fbd651e..e49cc13 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d0778e.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d0778e.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec3 tint_symbol;
+} v;
+layout(binding = 0, rg32ui) uniform highp readonly uimage3D arg_0;
+uvec3 textureDimensions_d0778e() {
+  uvec3 res = uvec3(imageSize(arg_0));
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_d0778e();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec3 tint_symbol;
+} v;
+layout(binding = 0, rg32ui) uniform highp readonly uimage3D arg_0;
+uvec3 textureDimensions_d0778e() {
+  uvec3 res = uvec3(imageSize(arg_0));
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureDimensions_d0778e();
+}
+#version 460
+
+
+struct VertexOutput {
+  vec4 pos;
+  uvec3 prevent_dce;
+};
+
+layout(binding = 0, rg32ui) uniform highp readonly uimage3D arg_0;
+layout(location = 0) flat out uvec3 vertex_main_loc0_Output;
+uvec3 textureDimensions_d0778e() {
+  uvec3 res = uvec3(imageSize(arg_0));
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), uvec3(0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_d0778e();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/textureDimensions/e738f4.wgsl b/test/tint/builtins/gen/var/textureDimensions/e738f4.wgsl
index 31c7532..70b1a64 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e738f4.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e738f4.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32sint, write>;
diff --git a/test/tint/builtins/gen/var/textureDimensions/e738f4.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/e738f4.wgsl.expected.glsl
index 4af55e0..65d6c92 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e738f4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e738f4.wgsl.expected.glsl
@@ -1,83 +1,37 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage3D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec3 inner;
-  uint pad;
 } prevent_dce;
 
-void textureDimensions_e738f4() {
+layout(binding = 0, rg32i) uniform highp writeonly iimage3D arg_0;
+uvec3 textureDimensions_e738f4() {
   uvec3 res = uvec3(imageSize(arg_0));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureDimensions_e738f4();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp writeonly iimage3D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
-void textureDimensions_e738f4() {
-  uvec3 res = uvec3(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureDimensions_e738f4();
+  prevent_dce.inner = textureDimensions_e738f4();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage3D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec3 inner;
-  uint pad;
 } prevent_dce;
 
-void textureDimensions_e738f4() {
+layout(binding = 0, rg32i) uniform highp writeonly iimage3D arg_0;
+uvec3 textureDimensions_e738f4() {
   uvec3 res = uvec3(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureDimensions_e738f4();
+  prevent_dce.inner = textureDimensions_e738f4();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +39,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureDimensions/e738f4.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureDimensions/e738f4.wgsl.expected.ir.glsl
index fbd651e..fc1cf5e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e738f4.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e738f4.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec3 tint_symbol;
+} v;
+layout(binding = 0, rg32i) uniform highp writeonly iimage3D arg_0;
+uvec3 textureDimensions_e738f4() {
+  uvec3 res = uvec3(imageSize(arg_0));
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_e738f4();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec3 tint_symbol;
+} v;
+layout(binding = 0, rg32i) uniform highp writeonly iimage3D arg_0;
+uvec3 textureDimensions_e738f4() {
+  uvec3 res = uvec3(imageSize(arg_0));
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureDimensions_e738f4();
+}
diff --git a/test/tint/builtins/gen/var/textureDimensions/e824b6.wgsl b/test/tint/builtins/gen/var/textureDimensions/e824b6.wgsl
index 37266e7..db180ea 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e824b6.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e824b6.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32uint, read_write>;
diff --git a/test/tint/builtins/gen/var/textureDimensions/e824b6.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/e824b6.wgsl.expected.glsl
index cf97acc..683b868 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e824b6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e824b6.wgsl.expected.glsl
@@ -1,80 +1,37 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_e824b6() {
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2DArray arg_0;
+uvec2 textureDimensions_e824b6() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureDimensions_e824b6();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp writeonly uimage2DArray arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
-void textureDimensions_e824b6() {
-  uvec2 res = uvec2(imageSize(arg_0).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureDimensions_e824b6();
+  prevent_dce.inner = textureDimensions_e824b6();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_e824b6() {
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2DArray arg_0;
+uvec2 textureDimensions_e824b6() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureDimensions_e824b6();
+  prevent_dce.inner = textureDimensions_e824b6();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +39,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureDimensions/ea25bc.wgsl b/test/tint/builtins/gen/var/textureDimensions/ea25bc.wgsl
index 850d2d9..a5c47df 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ea25bc.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/ea25bc.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
 
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32uint, write>;
diff --git a/test/tint/builtins/gen/var/textureDimensions/ea25bc.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/ea25bc.wgsl.expected.glsl
index 51b9660..4a707fc 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ea25bc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/ea25bc.wgsl.expected.glsl
@@ -1,80 +1,37 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureDimensions_ea25bc() {
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2D arg_0;
+uint textureDimensions_ea25bc() {
   uint res = uvec2(imageSize(arg_0)).x;
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureDimensions_ea25bc();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp writeonly uimage2D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
-void textureDimensions_ea25bc() {
-  uint res = uvec2(imageSize(arg_0)).x;
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureDimensions_ea25bc();
+  prevent_dce.inner = textureDimensions_ea25bc();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureDimensions_ea25bc() {
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2D arg_0;
+uint textureDimensions_ea25bc() {
   uint res = uvec2(imageSize(arg_0)).x;
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureDimensions_ea25bc();
+  prevent_dce.inner = textureDimensions_ea25bc();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +39,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureDimensions/ea25bc.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureDimensions/ea25bc.wgsl.expected.ir.glsl
index fbd651e..71e39f9 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ea25bc.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/ea25bc.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage1D arg_0;
+uint textureDimensions_ea25bc() {
+  uint res = uint(imageSize(arg_0));
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_ea25bc();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage1D arg_0;
+uint textureDimensions_ea25bc() {
+  uint res = uint(imageSize(arg_0));
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureDimensions_ea25bc();
+}
diff --git a/test/tint/builtins/gen/var/textureDimensions/f264a3.wgsl b/test/tint/builtins/gen/var/textureDimensions/f264a3.wgsl
index a95cec4..72ea6f5 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f264a3.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f264a3.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
 
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32sint, write>;
diff --git a/test/tint/builtins/gen/var/textureDimensions/f264a3.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/f264a3.wgsl.expected.glsl
index 309208d..02c584b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f264a3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f264a3.wgsl.expected.glsl
@@ -1,80 +1,37 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureDimensions_f264a3() {
+layout(binding = 0, rg32i) uniform highp writeonly iimage2D arg_0;
+uint textureDimensions_f264a3() {
   uint res = uvec2(imageSize(arg_0)).x;
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureDimensions_f264a3();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp writeonly iimage2D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
-void textureDimensions_f264a3() {
-  uint res = uvec2(imageSize(arg_0)).x;
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureDimensions_f264a3();
+  prevent_dce.inner = textureDimensions_f264a3();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureDimensions_f264a3() {
+layout(binding = 0, rg32i) uniform highp writeonly iimage2D arg_0;
+uint textureDimensions_f264a3() {
   uint res = uvec2(imageSize(arg_0)).x;
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureDimensions_f264a3();
+  prevent_dce.inner = textureDimensions_f264a3();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +39,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureDimensions/f264a3.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureDimensions/f264a3.wgsl.expected.ir.glsl
index fbd651e..a5fe970 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f264a3.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f264a3.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, rg32i) uniform highp writeonly iimage1D arg_0;
+uint textureDimensions_f264a3() {
+  uint res = uint(imageSize(arg_0));
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_f264a3();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, rg32i) uniform highp writeonly iimage1D arg_0;
+uint textureDimensions_f264a3() {
+  uint res = uint(imageSize(arg_0));
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureDimensions_f264a3();
+}
diff --git a/test/tint/builtins/gen/var/textureDimensions/f94e55.wgsl b/test/tint/builtins/gen/var/textureDimensions/f94e55.wgsl
index 132261c..f747e58 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f94e55.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f94e55.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32float, read_write>;
diff --git a/test/tint/builtins/gen/var/textureDimensions/f94e55.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/f94e55.wgsl.expected.glsl
index fc0773e..0b4df6b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f94e55.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f94e55.wgsl.expected.glsl
@@ -1,80 +1,37 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_f94e55() {
+layout(binding = 0, rg32f) uniform highp writeonly image2D arg_0;
+uvec2 textureDimensions_f94e55() {
   uvec2 res = uvec2(imageSize(arg_0));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureDimensions_f94e55();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp writeonly image2D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
-void textureDimensions_f94e55() {
-  uvec2 res = uvec2(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureDimensions_f94e55();
+  prevent_dce.inner = textureDimensions_f94e55();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec2 inner;
 } prevent_dce;
 
-void textureDimensions_f94e55() {
+layout(binding = 0, rg32f) uniform highp writeonly image2D arg_0;
+uvec2 textureDimensions_f94e55() {
   uvec2 res = uvec2(imageSize(arg_0));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureDimensions_f94e55();
+  prevent_dce.inner = textureDimensions_f94e55();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +39,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureDimensions/fdbae8.wgsl b/test/tint/builtins/gen/var/textureDimensions/fdbae8.wgsl
index 19e97e4..841e1ce 100644
--- a/test/tint/builtins/gen/var/textureDimensions/fdbae8.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/fdbae8.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 
 @group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
diff --git a/test/tint/builtins/gen/var/textureDimensions/fdbae8.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/fdbae8.wgsl.expected.glsl
index 190fbcc..a57a377 100644
--- a/test/tint/builtins/gen/var/textureDimensions/fdbae8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/fdbae8.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp readonly image2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureDimensions_fdbae8() {
+layout(binding = 0, r8) uniform highp readonly image2D arg_0;
+uint textureDimensions_fdbae8() {
   uint res = uvec2(imageSize(arg_0)).x;
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureDimensions_fdbae8();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp readonly image2D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
-void textureDimensions_fdbae8() {
-  uint res = uvec2(imageSize(arg_0)).x;
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
 
 void fragment_main() {
-  textureDimensions_fdbae8();
+  prevent_dce.inner = textureDimensions_fdbae8();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp readonly image2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureDimensions_fdbae8() {
+layout(binding = 0, r8) uniform highp readonly image2D arg_0;
+uint textureDimensions_fdbae8() {
   uint res = uvec2(imageSize(arg_0)).x;
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
 void compute_main() {
-  textureDimensions_fdbae8();
+  prevent_dce.inner = textureDimensions_fdbae8();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out uint prevent_dce_1;
+layout(binding = 0, r8) uniform highp readonly image2D arg_0;
+uint textureDimensions_fdbae8() {
+  uint res = uvec2(imageSize(arg_0)).x;
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), 0u);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_fdbae8();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureDimensions/fdbae8.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureDimensions/fdbae8.wgsl.expected.ir.glsl
index fbd651e..e87a849 100644
--- a/test/tint/builtins/gen/var/textureDimensions/fdbae8.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/fdbae8.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, r8) uniform highp readonly image1D arg_0;
+uint textureDimensions_fdbae8() {
+  uint res = uint(imageSize(arg_0));
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_fdbae8();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, r8) uniform highp readonly image1D arg_0;
+uint textureDimensions_fdbae8() {
+  uint res = uint(imageSize(arg_0));
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureDimensions_fdbae8();
+}
+#version 460
+
+
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
+layout(binding = 0, r8) uniform highp readonly image1D arg_0;
+layout(location = 0) flat out uint vertex_main_loc0_Output;
+uint textureDimensions_fdbae8() {
+  uint res = uint(imageSize(arg_0));
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), 0u);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureDimensions_fdbae8();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/textureGather/04fa78.wgsl b/test/tint/builtins/gen/var/textureGather/04fa78.wgsl
index 6bf8413..532286d 100644
--- a/test/tint/builtins/gen/var/textureGather/04fa78.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/04fa78.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
 
 @group(1) @binding(1) var arg_1: texture_cube_array<i32>;
diff --git a/test/tint/builtins/gen/var/textureGather/04fa78.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/04fa78.wgsl.expected.glsl
index df32d65..e79fba8 100644
--- a/test/tint/builtins/gen/var/textureGather/04fa78.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/04fa78.wgsl.expected.glsl
@@ -1,89 +1,53 @@
-SKIP: FAILED
-
-#version 310 es
-
-uniform highp isamplerCubeArray arg_1_arg_2;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec4 inner;
 } prevent_dce;
 
-void textureGather_04fa78() {
-  vec3 arg_3 = vec3(1.0f);
-  uint arg_4 = 1u;
-  ivec4 res = textureGather(arg_1_arg_2, vec4(arg_3, float(arg_4)), int(1u));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureGather_04fa78();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'isamplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
 uniform highp isamplerCubeArray arg_1_arg_2;
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
-void textureGather_04fa78() {
+ivec4 textureGather_04fa78() {
   vec3 arg_3 = vec3(1.0f);
   uint arg_4 = 1u;
   ivec4 res = textureGather(arg_1_arg_2, vec4(arg_3, float(arg_4)), int(1u));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  ivec4 prevent_dce;
+};
+
 void fragment_main() {
-  textureGather_04fa78();
+  prevent_dce.inner = textureGather_04fa78();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'isamplerCubeArray' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-
-uniform highp isamplerCubeArray arg_1_arg_2;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec4 inner;
 } prevent_dce;
 
-void textureGather_04fa78() {
+uniform highp isamplerCubeArray arg_1_arg_2;
+
+ivec4 textureGather_04fa78() {
   vec3 arg_3 = vec3(1.0f);
   uint arg_4 = 1u;
   ivec4 res = textureGather(arg_1_arg_2, vec4(arg_3, float(arg_4)), int(1u));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  ivec4 prevent_dce;
+};
+
 void compute_main() {
-  textureGather_04fa78();
+  prevent_dce.inner = textureGather_04fa78();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -91,10 +55,36 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'isamplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
+layout(location = 0) flat out ivec4 prevent_dce_1;
+uniform highp isamplerCubeArray arg_1_arg_2;
 
+ivec4 textureGather_04fa78() {
+  vec3 arg_3 = vec3(1.0f);
+  uint arg_4 = 1u;
+  ivec4 res = textureGather(arg_1_arg_2, vec4(arg_3, float(arg_4)), int(1u));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  ivec4 prevent_dce;
+};
+
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), ivec4(0, 0, 0, 0));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureGather_04fa78();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureGather/43025d.wgsl b/test/tint/builtins/gen/var/textureGather/43025d.wgsl
index ef02984..5b1914e 100644
--- a/test/tint/builtins/gen/var/textureGather/43025d.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/43025d.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
 
 @group(1) @binding(0) var arg_0: texture_depth_cube_array;
diff --git a/test/tint/builtins/gen/var/textureGather/43025d.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/43025d.wgsl.expected.glsl
index 9d8cd55..80f8e74 100644
--- a/test/tint/builtins/gen/var/textureGather/43025d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/43025d.wgsl.expected.glsl
@@ -1,89 +1,53 @@
-SKIP: FAILED
-
-#version 310 es
-
-uniform highp samplerCubeArrayShadow arg_0_arg_1;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureGather_43025d() {
-  vec3 arg_2 = vec3(1.0f);
-  int arg_3 = 1;
-  vec4 res = textureGather(arg_0_arg_1, vec4(arg_2, float(arg_3)), 0.0);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureGather_43025d();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'samplerCubeArrayShadow' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
 uniform highp samplerCubeArrayShadow arg_0_arg_1;
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
-void textureGather_43025d() {
+vec4 textureGather_43025d() {
   vec3 arg_2 = vec3(1.0f);
   int arg_3 = 1;
   vec4 res = textureGather(arg_0_arg_1, vec4(arg_2, float(arg_3)), 0.0);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
 void fragment_main() {
-  textureGather_43025d();
+  prevent_dce.inner = textureGather_43025d();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'samplerCubeArrayShadow' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-
-uniform highp samplerCubeArrayShadow arg_0_arg_1;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureGather_43025d() {
+uniform highp samplerCubeArrayShadow arg_0_arg_1;
+
+vec4 textureGather_43025d() {
   vec3 arg_2 = vec3(1.0f);
   int arg_3 = 1;
   vec4 res = textureGather(arg_0_arg_1, vec4(arg_2, float(arg_3)), 0.0);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
 void compute_main() {
-  textureGather_43025d();
+  prevent_dce.inner = textureGather_43025d();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -91,10 +55,36 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'samplerCubeArrayShadow' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
+layout(location = 0) flat out vec4 prevent_dce_1;
+uniform highp samplerCubeArrayShadow arg_0_arg_1;
 
+vec4 textureGather_43025d() {
+  vec3 arg_2 = vec3(1.0f);
+  int arg_3 = 1;
+  vec4 res = textureGather(arg_0_arg_1, vec4(arg_2, float(arg_3)), 0.0);
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureGather_43025d();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureGather/751f8a.wgsl b/test/tint/builtins/gen/var/textureGather/751f8a.wgsl
index 8ddfac4..aa482cb 100644
--- a/test/tint/builtins/gen/var/textureGather/751f8a.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/751f8a.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
 
 @group(1) @binding(1) var arg_1: texture_cube_array<f32>;
diff --git a/test/tint/builtins/gen/var/textureGather/751f8a.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/751f8a.wgsl.expected.glsl
index a1e83d5..3a2d9b4 100644
--- a/test/tint/builtins/gen/var/textureGather/751f8a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/751f8a.wgsl.expected.glsl
@@ -1,89 +1,53 @@
-SKIP: FAILED
-
-#version 310 es
-
-uniform highp samplerCubeArray arg_1_arg_2;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureGather_751f8a() {
-  vec3 arg_3 = vec3(1.0f);
-  int arg_4 = 1;
-  vec4 res = textureGather(arg_1_arg_2, vec4(arg_3, float(arg_4)), 1);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureGather_751f8a();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
 uniform highp samplerCubeArray arg_1_arg_2;
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
-void textureGather_751f8a() {
+vec4 textureGather_751f8a() {
   vec3 arg_3 = vec3(1.0f);
   int arg_4 = 1;
   vec4 res = textureGather(arg_1_arg_2, vec4(arg_3, float(arg_4)), 1);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
 void fragment_main() {
-  textureGather_751f8a();
+  prevent_dce.inner = textureGather_751f8a();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-
-uniform highp samplerCubeArray arg_1_arg_2;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureGather_751f8a() {
+uniform highp samplerCubeArray arg_1_arg_2;
+
+vec4 textureGather_751f8a() {
   vec3 arg_3 = vec3(1.0f);
   int arg_4 = 1;
   vec4 res = textureGather(arg_1_arg_2, vec4(arg_3, float(arg_4)), 1);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
 void compute_main() {
-  textureGather_751f8a();
+  prevent_dce.inner = textureGather_751f8a();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -91,10 +55,36 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
+layout(location = 0) flat out vec4 prevent_dce_1;
+uniform highp samplerCubeArray arg_1_arg_2;
 
+vec4 textureGather_751f8a() {
+  vec3 arg_3 = vec3(1.0f);
+  int arg_4 = 1;
+  vec4 res = textureGather(arg_1_arg_2, vec4(arg_3, float(arg_4)), 1);
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureGather_751f8a();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureGather/788010.wgsl b/test/tint/builtins/gen/var/textureGather/788010.wgsl
index 8837774..3476472 100644
--- a/test/tint/builtins/gen/var/textureGather/788010.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/788010.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
 
 @group(1) @binding(1) var arg_1: texture_cube_array<i32>;
diff --git a/test/tint/builtins/gen/var/textureGather/788010.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/788010.wgsl.expected.glsl
index 9805833..9258d63 100644
--- a/test/tint/builtins/gen/var/textureGather/788010.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/788010.wgsl.expected.glsl
@@ -1,89 +1,53 @@
-SKIP: FAILED
-
-#version 310 es
-
-uniform highp isamplerCubeArray arg_1_arg_2;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec4 inner;
 } prevent_dce;
 
-void textureGather_788010() {
-  vec3 arg_3 = vec3(1.0f);
-  uint arg_4 = 1u;
-  ivec4 res = textureGather(arg_1_arg_2, vec4(arg_3, float(arg_4)), 1);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureGather_788010();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'isamplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
 uniform highp isamplerCubeArray arg_1_arg_2;
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
-void textureGather_788010() {
+ivec4 textureGather_788010() {
   vec3 arg_3 = vec3(1.0f);
   uint arg_4 = 1u;
   ivec4 res = textureGather(arg_1_arg_2, vec4(arg_3, float(arg_4)), 1);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  ivec4 prevent_dce;
+};
+
 void fragment_main() {
-  textureGather_788010();
+  prevent_dce.inner = textureGather_788010();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'isamplerCubeArray' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-
-uniform highp isamplerCubeArray arg_1_arg_2;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec4 inner;
 } prevent_dce;
 
-void textureGather_788010() {
+uniform highp isamplerCubeArray arg_1_arg_2;
+
+ivec4 textureGather_788010() {
   vec3 arg_3 = vec3(1.0f);
   uint arg_4 = 1u;
   ivec4 res = textureGather(arg_1_arg_2, vec4(arg_3, float(arg_4)), 1);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  ivec4 prevent_dce;
+};
+
 void compute_main() {
-  textureGather_788010();
+  prevent_dce.inner = textureGather_788010();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -91,10 +55,36 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'isamplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
+layout(location = 0) flat out ivec4 prevent_dce_1;
+uniform highp isamplerCubeArray arg_1_arg_2;
 
+ivec4 textureGather_788010() {
+  vec3 arg_3 = vec3(1.0f);
+  uint arg_4 = 1u;
+  ivec4 res = textureGather(arg_1_arg_2, vec4(arg_3, float(arg_4)), 1);
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  ivec4 prevent_dce;
+};
+
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), ivec4(0, 0, 0, 0));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureGather_788010();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureGather/7dd226.wgsl b/test/tint/builtins/gen/var/textureGather/7dd226.wgsl
index 519f8cd..a1730ec 100644
--- a/test/tint/builtins/gen/var/textureGather/7dd226.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/7dd226.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
 
 @group(1) @binding(0) var arg_0: texture_depth_cube_array;
diff --git a/test/tint/builtins/gen/var/textureGather/7dd226.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/7dd226.wgsl.expected.glsl
index 0fd6558..840c170 100644
--- a/test/tint/builtins/gen/var/textureGather/7dd226.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/7dd226.wgsl.expected.glsl
@@ -1,89 +1,53 @@
-SKIP: FAILED
-
-#version 310 es
-
-uniform highp samplerCubeArrayShadow arg_0_arg_1;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureGather_7dd226() {
-  vec3 arg_2 = vec3(1.0f);
-  uint arg_3 = 1u;
-  vec4 res = textureGather(arg_0_arg_1, vec4(arg_2, float(arg_3)), 0.0);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureGather_7dd226();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'samplerCubeArrayShadow' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
 uniform highp samplerCubeArrayShadow arg_0_arg_1;
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
-void textureGather_7dd226() {
+vec4 textureGather_7dd226() {
   vec3 arg_2 = vec3(1.0f);
   uint arg_3 = 1u;
   vec4 res = textureGather(arg_0_arg_1, vec4(arg_2, float(arg_3)), 0.0);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
 void fragment_main() {
-  textureGather_7dd226();
+  prevent_dce.inner = textureGather_7dd226();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'samplerCubeArrayShadow' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-
-uniform highp samplerCubeArrayShadow arg_0_arg_1;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureGather_7dd226() {
+uniform highp samplerCubeArrayShadow arg_0_arg_1;
+
+vec4 textureGather_7dd226() {
   vec3 arg_2 = vec3(1.0f);
   uint arg_3 = 1u;
   vec4 res = textureGather(arg_0_arg_1, vec4(arg_2, float(arg_3)), 0.0);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
 void compute_main() {
-  textureGather_7dd226();
+  prevent_dce.inner = textureGather_7dd226();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -91,10 +55,36 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'samplerCubeArrayShadow' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
+layout(location = 0) flat out vec4 prevent_dce_1;
+uniform highp samplerCubeArrayShadow arg_0_arg_1;
 
+vec4 textureGather_7dd226() {
+  vec3 arg_2 = vec3(1.0f);
+  uint arg_3 = 1u;
+  vec4 res = textureGather(arg_0_arg_1, vec4(arg_2, float(arg_3)), 0.0);
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureGather_7dd226();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureGather/829357.wgsl b/test/tint/builtins/gen/var/textureGather/829357.wgsl
index 851b4b3..4091d7e 100644
--- a/test/tint/builtins/gen/var/textureGather/829357.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/829357.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
 
 @group(1) @binding(1) var arg_1: texture_cube_array<f32>;
diff --git a/test/tint/builtins/gen/var/textureGather/829357.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/829357.wgsl.expected.glsl
index 39071df..4ec5701 100644
--- a/test/tint/builtins/gen/var/textureGather/829357.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/829357.wgsl.expected.glsl
@@ -1,89 +1,53 @@
-SKIP: FAILED
-
-#version 310 es
-
-uniform highp samplerCubeArray arg_1_arg_2;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureGather_829357() {
-  vec3 arg_3 = vec3(1.0f);
-  uint arg_4 = 1u;
-  vec4 res = textureGather(arg_1_arg_2, vec4(arg_3, float(arg_4)), 1);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureGather_829357();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
 uniform highp samplerCubeArray arg_1_arg_2;
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
-void textureGather_829357() {
+vec4 textureGather_829357() {
   vec3 arg_3 = vec3(1.0f);
   uint arg_4 = 1u;
   vec4 res = textureGather(arg_1_arg_2, vec4(arg_3, float(arg_4)), 1);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
 void fragment_main() {
-  textureGather_829357();
+  prevent_dce.inner = textureGather_829357();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-
-uniform highp samplerCubeArray arg_1_arg_2;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureGather_829357() {
+uniform highp samplerCubeArray arg_1_arg_2;
+
+vec4 textureGather_829357() {
   vec3 arg_3 = vec3(1.0f);
   uint arg_4 = 1u;
   vec4 res = textureGather(arg_1_arg_2, vec4(arg_3, float(arg_4)), 1);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
 void compute_main() {
-  textureGather_829357();
+  prevent_dce.inner = textureGather_829357();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -91,10 +55,36 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
+layout(location = 0) flat out vec4 prevent_dce_1;
+uniform highp samplerCubeArray arg_1_arg_2;
 
+vec4 textureGather_829357() {
+  vec3 arg_3 = vec3(1.0f);
+  uint arg_4 = 1u;
+  vec4 res = textureGather(arg_1_arg_2, vec4(arg_3, float(arg_4)), 1);
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureGather_829357();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureGather/8578bc.wgsl b/test/tint/builtins/gen/var/textureGather/8578bc.wgsl
index 8648d93..55c48af 100644
--- a/test/tint/builtins/gen/var/textureGather/8578bc.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/8578bc.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
 
 @group(1) @binding(1) var arg_1: texture_cube_array<f32>;
diff --git a/test/tint/builtins/gen/var/textureGather/8578bc.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/8578bc.wgsl.expected.glsl
index 2df2832..aa18817 100644
--- a/test/tint/builtins/gen/var/textureGather/8578bc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/8578bc.wgsl.expected.glsl
@@ -1,89 +1,53 @@
-SKIP: FAILED
-
-#version 310 es
-
-uniform highp samplerCubeArray arg_1_arg_2;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureGather_8578bc() {
-  vec3 arg_3 = vec3(1.0f);
-  uint arg_4 = 1u;
-  vec4 res = textureGather(arg_1_arg_2, vec4(arg_3, float(arg_4)), int(1u));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureGather_8578bc();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
 uniform highp samplerCubeArray arg_1_arg_2;
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
-void textureGather_8578bc() {
+vec4 textureGather_8578bc() {
   vec3 arg_3 = vec3(1.0f);
   uint arg_4 = 1u;
   vec4 res = textureGather(arg_1_arg_2, vec4(arg_3, float(arg_4)), int(1u));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
 void fragment_main() {
-  textureGather_8578bc();
+  prevent_dce.inner = textureGather_8578bc();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-
-uniform highp samplerCubeArray arg_1_arg_2;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureGather_8578bc() {
+uniform highp samplerCubeArray arg_1_arg_2;
+
+vec4 textureGather_8578bc() {
   vec3 arg_3 = vec3(1.0f);
   uint arg_4 = 1u;
   vec4 res = textureGather(arg_1_arg_2, vec4(arg_3, float(arg_4)), int(1u));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
 void compute_main() {
-  textureGather_8578bc();
+  prevent_dce.inner = textureGather_8578bc();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -91,10 +55,36 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
+layout(location = 0) flat out vec4 prevent_dce_1;
+uniform highp samplerCubeArray arg_1_arg_2;
 
+vec4 textureGather_8578bc() {
+  vec3 arg_3 = vec3(1.0f);
+  uint arg_4 = 1u;
+  vec4 res = textureGather(arg_1_arg_2, vec4(arg_3, float(arg_4)), int(1u));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureGather_8578bc();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureGather/aaf6bd.wgsl b/test/tint/builtins/gen/var/textureGather/aaf6bd.wgsl
index 6b73ec9..ad91df7 100644
--- a/test/tint/builtins/gen/var/textureGather/aaf6bd.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/aaf6bd.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
 
 @group(1) @binding(1) var arg_1: texture_cube_array<i32>;
diff --git a/test/tint/builtins/gen/var/textureGather/aaf6bd.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/aaf6bd.wgsl.expected.glsl
index 638ab12..9e6286d 100644
--- a/test/tint/builtins/gen/var/textureGather/aaf6bd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/aaf6bd.wgsl.expected.glsl
@@ -1,89 +1,53 @@
-SKIP: FAILED
-
-#version 310 es
-
-uniform highp isamplerCubeArray arg_1_arg_2;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec4 inner;
 } prevent_dce;
 
-void textureGather_aaf6bd() {
-  vec3 arg_3 = vec3(1.0f);
-  int arg_4 = 1;
-  ivec4 res = textureGather(arg_1_arg_2, vec4(arg_3, float(arg_4)), int(1u));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureGather_aaf6bd();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'isamplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
 uniform highp isamplerCubeArray arg_1_arg_2;
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
-void textureGather_aaf6bd() {
+ivec4 textureGather_aaf6bd() {
   vec3 arg_3 = vec3(1.0f);
   int arg_4 = 1;
   ivec4 res = textureGather(arg_1_arg_2, vec4(arg_3, float(arg_4)), int(1u));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  ivec4 prevent_dce;
+};
+
 void fragment_main() {
-  textureGather_aaf6bd();
+  prevent_dce.inner = textureGather_aaf6bd();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'isamplerCubeArray' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-
-uniform highp isamplerCubeArray arg_1_arg_2;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec4 inner;
 } prevent_dce;
 
-void textureGather_aaf6bd() {
+uniform highp isamplerCubeArray arg_1_arg_2;
+
+ivec4 textureGather_aaf6bd() {
   vec3 arg_3 = vec3(1.0f);
   int arg_4 = 1;
   ivec4 res = textureGather(arg_1_arg_2, vec4(arg_3, float(arg_4)), int(1u));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  ivec4 prevent_dce;
+};
+
 void compute_main() {
-  textureGather_aaf6bd();
+  prevent_dce.inner = textureGather_aaf6bd();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -91,10 +55,36 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'isamplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
+layout(location = 0) flat out ivec4 prevent_dce_1;
+uniform highp isamplerCubeArray arg_1_arg_2;
 
+ivec4 textureGather_aaf6bd() {
+  vec3 arg_3 = vec3(1.0f);
+  int arg_4 = 1;
+  ivec4 res = textureGather(arg_1_arg_2, vec4(arg_3, float(arg_4)), int(1u));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  ivec4 prevent_dce;
+};
+
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), ivec4(0, 0, 0, 0));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureGather_aaf6bd();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureGather/be276f.wgsl b/test/tint/builtins/gen/var/textureGather/be276f.wgsl
index fb2e969..d41d995 100644
--- a/test/tint/builtins/gen/var/textureGather/be276f.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/be276f.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
 
 @group(1) @binding(1) var arg_1: texture_cube_array<u32>;
diff --git a/test/tint/builtins/gen/var/textureGather/be276f.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/be276f.wgsl.expected.glsl
index c98b29f..928d3a6 100644
--- a/test/tint/builtins/gen/var/textureGather/be276f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/be276f.wgsl.expected.glsl
@@ -1,89 +1,53 @@
-SKIP: FAILED
-
-#version 310 es
-
-uniform highp usamplerCubeArray arg_1_arg_2;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec4 inner;
 } prevent_dce;
 
-void textureGather_be276f() {
-  vec3 arg_3 = vec3(1.0f);
-  uint arg_4 = 1u;
-  uvec4 res = textureGather(arg_1_arg_2, vec4(arg_3, float(arg_4)), 1);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureGather_be276f();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'usamplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
 uniform highp usamplerCubeArray arg_1_arg_2;
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
-void textureGather_be276f() {
+uvec4 textureGather_be276f() {
   vec3 arg_3 = vec3(1.0f);
   uint arg_4 = 1u;
   uvec4 res = textureGather(arg_1_arg_2, vec4(arg_3, float(arg_4)), 1);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec4 prevent_dce;
+};
+
 void fragment_main() {
-  textureGather_be276f();
+  prevent_dce.inner = textureGather_be276f();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'usamplerCubeArray' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-
-uniform highp usamplerCubeArray arg_1_arg_2;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec4 inner;
 } prevent_dce;
 
-void textureGather_be276f() {
+uniform highp usamplerCubeArray arg_1_arg_2;
+
+uvec4 textureGather_be276f() {
   vec3 arg_3 = vec3(1.0f);
   uint arg_4 = 1u;
   uvec4 res = textureGather(arg_1_arg_2, vec4(arg_3, float(arg_4)), 1);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec4 prevent_dce;
+};
+
 void compute_main() {
-  textureGather_be276f();
+  prevent_dce.inner = textureGather_be276f();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -91,10 +55,36 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'usamplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
+layout(location = 0) flat out uvec4 prevent_dce_1;
+uniform highp usamplerCubeArray arg_1_arg_2;
 
+uvec4 textureGather_be276f() {
+  vec3 arg_3 = vec3(1.0f);
+  uint arg_4 = 1u;
+  uvec4 res = textureGather(arg_1_arg_2, vec4(arg_3, float(arg_4)), 1);
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uvec4 prevent_dce;
+};
+
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), uvec4(0u, 0u, 0u, 0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureGather_be276f();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureGather/c0640c.wgsl b/test/tint/builtins/gen/var/textureGather/c0640c.wgsl
index f488f02..ea1bde2 100644
--- a/test/tint/builtins/gen/var/textureGather/c0640c.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/c0640c.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
 
 @group(1) @binding(1) var arg_1: texture_cube_array<i32>;
diff --git a/test/tint/builtins/gen/var/textureGather/c0640c.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/c0640c.wgsl.expected.glsl
index c119cad..5d00597 100644
--- a/test/tint/builtins/gen/var/textureGather/c0640c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/c0640c.wgsl.expected.glsl
@@ -1,89 +1,53 @@
-SKIP: FAILED
-
-#version 310 es
-
-uniform highp isamplerCubeArray arg_1_arg_2;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec4 inner;
 } prevent_dce;
 
-void textureGather_c0640c() {
-  vec3 arg_3 = vec3(1.0f);
-  int arg_4 = 1;
-  ivec4 res = textureGather(arg_1_arg_2, vec4(arg_3, float(arg_4)), 1);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureGather_c0640c();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'isamplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
 uniform highp isamplerCubeArray arg_1_arg_2;
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
-void textureGather_c0640c() {
+ivec4 textureGather_c0640c() {
   vec3 arg_3 = vec3(1.0f);
   int arg_4 = 1;
   ivec4 res = textureGather(arg_1_arg_2, vec4(arg_3, float(arg_4)), 1);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  ivec4 prevent_dce;
+};
+
 void fragment_main() {
-  textureGather_c0640c();
+  prevent_dce.inner = textureGather_c0640c();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'isamplerCubeArray' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-
-uniform highp isamplerCubeArray arg_1_arg_2;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec4 inner;
 } prevent_dce;
 
-void textureGather_c0640c() {
+uniform highp isamplerCubeArray arg_1_arg_2;
+
+ivec4 textureGather_c0640c() {
   vec3 arg_3 = vec3(1.0f);
   int arg_4 = 1;
   ivec4 res = textureGather(arg_1_arg_2, vec4(arg_3, float(arg_4)), 1);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  ivec4 prevent_dce;
+};
+
 void compute_main() {
-  textureGather_c0640c();
+  prevent_dce.inner = textureGather_c0640c();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -91,10 +55,36 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'isamplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
+layout(location = 0) flat out ivec4 prevent_dce_1;
+uniform highp isamplerCubeArray arg_1_arg_2;
 
+ivec4 textureGather_c0640c() {
+  vec3 arg_3 = vec3(1.0f);
+  int arg_4 = 1;
+  ivec4 res = textureGather(arg_1_arg_2, vec4(arg_3, float(arg_4)), 1);
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  ivec4 prevent_dce;
+};
+
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), ivec4(0, 0, 0, 0));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureGather_c0640c();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureGather/d4b5c6.wgsl b/test/tint/builtins/gen/var/textureGather/d4b5c6.wgsl
index 95a790b..5ded4e0 100644
--- a/test/tint/builtins/gen/var/textureGather/d4b5c6.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/d4b5c6.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
 
 @group(1) @binding(1) var arg_1: texture_cube_array<u32>;
diff --git a/test/tint/builtins/gen/var/textureGather/d4b5c6.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/d4b5c6.wgsl.expected.glsl
index 07747b1..05b9539 100644
--- a/test/tint/builtins/gen/var/textureGather/d4b5c6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/d4b5c6.wgsl.expected.glsl
@@ -1,89 +1,53 @@
-SKIP: FAILED
-
-#version 310 es
-
-uniform highp usamplerCubeArray arg_1_arg_2;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec4 inner;
 } prevent_dce;
 
-void textureGather_d4b5c6() {
-  vec3 arg_3 = vec3(1.0f);
-  int arg_4 = 1;
-  uvec4 res = textureGather(arg_1_arg_2, vec4(arg_3, float(arg_4)), int(1u));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureGather_d4b5c6();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'usamplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
 uniform highp usamplerCubeArray arg_1_arg_2;
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
-void textureGather_d4b5c6() {
+uvec4 textureGather_d4b5c6() {
   vec3 arg_3 = vec3(1.0f);
   int arg_4 = 1;
   uvec4 res = textureGather(arg_1_arg_2, vec4(arg_3, float(arg_4)), int(1u));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec4 prevent_dce;
+};
+
 void fragment_main() {
-  textureGather_d4b5c6();
+  prevent_dce.inner = textureGather_d4b5c6();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'usamplerCubeArray' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-
-uniform highp usamplerCubeArray arg_1_arg_2;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec4 inner;
 } prevent_dce;
 
-void textureGather_d4b5c6() {
+uniform highp usamplerCubeArray arg_1_arg_2;
+
+uvec4 textureGather_d4b5c6() {
   vec3 arg_3 = vec3(1.0f);
   int arg_4 = 1;
   uvec4 res = textureGather(arg_1_arg_2, vec4(arg_3, float(arg_4)), int(1u));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec4 prevent_dce;
+};
+
 void compute_main() {
-  textureGather_d4b5c6();
+  prevent_dce.inner = textureGather_d4b5c6();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -91,10 +55,36 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'usamplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
+layout(location = 0) flat out uvec4 prevent_dce_1;
+uniform highp usamplerCubeArray arg_1_arg_2;
 
+uvec4 textureGather_d4b5c6() {
+  vec3 arg_3 = vec3(1.0f);
+  int arg_4 = 1;
+  uvec4 res = textureGather(arg_1_arg_2, vec4(arg_3, float(arg_4)), int(1u));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uvec4 prevent_dce;
+};
+
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), uvec4(0u, 0u, 0u, 0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureGather_d4b5c6();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureGather/d98d59.wgsl b/test/tint/builtins/gen/var/textureGather/d98d59.wgsl
index 2130a08..66a2356 100644
--- a/test/tint/builtins/gen/var/textureGather/d98d59.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/d98d59.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
 
 @group(1) @binding(1) var arg_1: texture_cube_array<f32>;
diff --git a/test/tint/builtins/gen/var/textureGather/d98d59.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/d98d59.wgsl.expected.glsl
index 61eacaf..a45a743 100644
--- a/test/tint/builtins/gen/var/textureGather/d98d59.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/d98d59.wgsl.expected.glsl
@@ -1,89 +1,53 @@
-SKIP: FAILED
-
-#version 310 es
-
-uniform highp samplerCubeArray arg_1_arg_2;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureGather_d98d59() {
-  vec3 arg_3 = vec3(1.0f);
-  int arg_4 = 1;
-  vec4 res = textureGather(arg_1_arg_2, vec4(arg_3, float(arg_4)), int(1u));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureGather_d98d59();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
 uniform highp samplerCubeArray arg_1_arg_2;
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
-void textureGather_d98d59() {
+vec4 textureGather_d98d59() {
   vec3 arg_3 = vec3(1.0f);
   int arg_4 = 1;
   vec4 res = textureGather(arg_1_arg_2, vec4(arg_3, float(arg_4)), int(1u));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
 void fragment_main() {
-  textureGather_d98d59();
+  prevent_dce.inner = textureGather_d98d59();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-
-uniform highp samplerCubeArray arg_1_arg_2;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureGather_d98d59() {
+uniform highp samplerCubeArray arg_1_arg_2;
+
+vec4 textureGather_d98d59() {
   vec3 arg_3 = vec3(1.0f);
   int arg_4 = 1;
   vec4 res = textureGather(arg_1_arg_2, vec4(arg_3, float(arg_4)), int(1u));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
 void compute_main() {
-  textureGather_d98d59();
+  prevent_dce.inner = textureGather_d98d59();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -91,10 +55,36 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
+layout(location = 0) flat out vec4 prevent_dce_1;
+uniform highp samplerCubeArray arg_1_arg_2;
 
+vec4 textureGather_d98d59() {
+  vec3 arg_3 = vec3(1.0f);
+  int arg_4 = 1;
+  vec4 res = textureGather(arg_1_arg_2, vec4(arg_3, float(arg_4)), int(1u));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureGather_d98d59();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureGather/e2acac.wgsl b/test/tint/builtins/gen/var/textureGather/e2acac.wgsl
index e2c7fae..a1ba960 100644
--- a/test/tint/builtins/gen/var/textureGather/e2acac.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/e2acac.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
 
 @group(1) @binding(1) var arg_1: texture_cube_array<u32>;
diff --git a/test/tint/builtins/gen/var/textureGather/e2acac.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/e2acac.wgsl.expected.glsl
index d1f667c..e8b9dd3 100644
--- a/test/tint/builtins/gen/var/textureGather/e2acac.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/e2acac.wgsl.expected.glsl
@@ -1,89 +1,53 @@
-SKIP: FAILED
-
-#version 310 es
-
-uniform highp usamplerCubeArray arg_1_arg_2;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec4 inner;
 } prevent_dce;
 
-void textureGather_e2acac() {
-  vec3 arg_3 = vec3(1.0f);
-  uint arg_4 = 1u;
-  uvec4 res = textureGather(arg_1_arg_2, vec4(arg_3, float(arg_4)), int(1u));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureGather_e2acac();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'usamplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
 uniform highp usamplerCubeArray arg_1_arg_2;
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
-void textureGather_e2acac() {
+uvec4 textureGather_e2acac() {
   vec3 arg_3 = vec3(1.0f);
   uint arg_4 = 1u;
   uvec4 res = textureGather(arg_1_arg_2, vec4(arg_3, float(arg_4)), int(1u));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec4 prevent_dce;
+};
+
 void fragment_main() {
-  textureGather_e2acac();
+  prevent_dce.inner = textureGather_e2acac();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'usamplerCubeArray' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-
-uniform highp usamplerCubeArray arg_1_arg_2;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec4 inner;
 } prevent_dce;
 
-void textureGather_e2acac() {
+uniform highp usamplerCubeArray arg_1_arg_2;
+
+uvec4 textureGather_e2acac() {
   vec3 arg_3 = vec3(1.0f);
   uint arg_4 = 1u;
   uvec4 res = textureGather(arg_1_arg_2, vec4(arg_3, float(arg_4)), int(1u));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec4 prevent_dce;
+};
+
 void compute_main() {
-  textureGather_e2acac();
+  prevent_dce.inner = textureGather_e2acac();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -91,10 +55,36 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'usamplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
+layout(location = 0) flat out uvec4 prevent_dce_1;
+uniform highp usamplerCubeArray arg_1_arg_2;
 
+uvec4 textureGather_e2acac() {
+  vec3 arg_3 = vec3(1.0f);
+  uint arg_4 = 1u;
+  uvec4 res = textureGather(arg_1_arg_2, vec4(arg_3, float(arg_4)), int(1u));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uvec4 prevent_dce;
+};
+
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), uvec4(0u, 0u, 0u, 0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureGather_e2acac();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureGather/f2c6e3.wgsl b/test/tint/builtins/gen/var/textureGather/f2c6e3.wgsl
index 05308cf..cc8e6bd 100644
--- a/test/tint/builtins/gen/var/textureGather/f2c6e3.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/f2c6e3.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
 
 @group(1) @binding(1) var arg_1: texture_cube_array<u32>;
diff --git a/test/tint/builtins/gen/var/textureGather/f2c6e3.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/f2c6e3.wgsl.expected.glsl
index ab43427..87f4b23 100644
--- a/test/tint/builtins/gen/var/textureGather/f2c6e3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/f2c6e3.wgsl.expected.glsl
@@ -1,89 +1,53 @@
-SKIP: FAILED
-
-#version 310 es
-
-uniform highp usamplerCubeArray arg_1_arg_2;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec4 inner;
 } prevent_dce;
 
-void textureGather_f2c6e3() {
-  vec3 arg_3 = vec3(1.0f);
-  int arg_4 = 1;
-  uvec4 res = textureGather(arg_1_arg_2, vec4(arg_3, float(arg_4)), 1);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureGather_f2c6e3();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'usamplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
 uniform highp usamplerCubeArray arg_1_arg_2;
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
-void textureGather_f2c6e3() {
+uvec4 textureGather_f2c6e3() {
   vec3 arg_3 = vec3(1.0f);
   int arg_4 = 1;
   uvec4 res = textureGather(arg_1_arg_2, vec4(arg_3, float(arg_4)), 1);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec4 prevent_dce;
+};
+
 void fragment_main() {
-  textureGather_f2c6e3();
+  prevent_dce.inner = textureGather_f2c6e3();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'usamplerCubeArray' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-
-uniform highp usamplerCubeArray arg_1_arg_2;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec4 inner;
 } prevent_dce;
 
-void textureGather_f2c6e3() {
+uniform highp usamplerCubeArray arg_1_arg_2;
+
+uvec4 textureGather_f2c6e3() {
   vec3 arg_3 = vec3(1.0f);
   int arg_4 = 1;
   uvec4 res = textureGather(arg_1_arg_2, vec4(arg_3, float(arg_4)), 1);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec4 prevent_dce;
+};
+
 void compute_main() {
-  textureGather_f2c6e3();
+  prevent_dce.inner = textureGather_f2c6e3();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -91,10 +55,36 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'usamplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
+layout(location = 0) flat out uvec4 prevent_dce_1;
+uniform highp usamplerCubeArray arg_1_arg_2;
 
+uvec4 textureGather_f2c6e3() {
+  vec3 arg_3 = vec3(1.0f);
+  int arg_4 = 1;
+  uvec4 res = textureGather(arg_1_arg_2, vec4(arg_3, float(arg_4)), 1);
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uvec4 prevent_dce;
+};
+
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), uvec4(0u, 0u, 0u, 0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureGather_f2c6e3();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/2e409c.wgsl b/test/tint/builtins/gen/var/textureGatherCompare/2e409c.wgsl
index d478cb0..ac691fc 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/2e409c.wgsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/2e409c.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
 
 @group(1) @binding(0) var arg_0: texture_depth_cube_array;
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/2e409c.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGatherCompare/2e409c.wgsl.expected.glsl
index c79e929..28fd454 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/2e409c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/2e409c.wgsl.expected.glsl
@@ -1,92 +1,55 @@
-SKIP: FAILED
-
-#version 310 es
-
-uniform highp samplerCubeArrayShadow arg_0_arg_1;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureGatherCompare_2e409c() {
-  vec3 arg_2 = vec3(1.0f);
-  uint arg_3 = 1u;
-  float arg_4 = 1.0f;
-  vec4 res = textureGather(arg_0_arg_1, vec4(arg_2, float(arg_3)), arg_4);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureGatherCompare_2e409c();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'samplerCubeArrayShadow' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
 uniform highp samplerCubeArrayShadow arg_0_arg_1;
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
-void textureGatherCompare_2e409c() {
+vec4 textureGatherCompare_2e409c() {
   vec3 arg_2 = vec3(1.0f);
   uint arg_3 = 1u;
   float arg_4 = 1.0f;
   vec4 res = textureGather(arg_0_arg_1, vec4(arg_2, float(arg_3)), arg_4);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
 void fragment_main() {
-  textureGatherCompare_2e409c();
+  prevent_dce.inner = textureGatherCompare_2e409c();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'samplerCubeArrayShadow' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-
-uniform highp samplerCubeArrayShadow arg_0_arg_1;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureGatherCompare_2e409c() {
+uniform highp samplerCubeArrayShadow arg_0_arg_1;
+
+vec4 textureGatherCompare_2e409c() {
   vec3 arg_2 = vec3(1.0f);
   uint arg_3 = 1u;
   float arg_4 = 1.0f;
   vec4 res = textureGather(arg_0_arg_1, vec4(arg_2, float(arg_3)), arg_4);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
 void compute_main() {
-  textureGatherCompare_2e409c();
+  prevent_dce.inner = textureGatherCompare_2e409c();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -94,10 +57,37 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'samplerCubeArrayShadow' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
+layout(location = 0) flat out vec4 prevent_dce_1;
+uniform highp samplerCubeArrayShadow arg_0_arg_1;
 
+vec4 textureGatherCompare_2e409c() {
+  vec3 arg_2 = vec3(1.0f);
+  uint arg_3 = 1u;
+  float arg_4 = 1.0f;
+  vec4 res = textureGather(arg_0_arg_1, vec4(arg_2, float(arg_3)), arg_4);
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureGatherCompare_2e409c();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/60d2d1.wgsl b/test/tint/builtins/gen/var/textureGatherCompare/60d2d1.wgsl
index 4561174..4016c7c 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/60d2d1.wgsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/60d2d1.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
 
 @group(1) @binding(0) var arg_0: texture_depth_cube_array;
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/60d2d1.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGatherCompare/60d2d1.wgsl.expected.glsl
index 607dcf8..d6c5c71 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/60d2d1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/60d2d1.wgsl.expected.glsl
@@ -1,92 +1,55 @@
-SKIP: FAILED
-
-#version 310 es
-
-uniform highp samplerCubeArrayShadow arg_0_arg_1;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureGatherCompare_60d2d1() {
-  vec3 arg_2 = vec3(1.0f);
-  int arg_3 = 1;
-  float arg_4 = 1.0f;
-  vec4 res = textureGather(arg_0_arg_1, vec4(arg_2, float(arg_3)), arg_4);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureGatherCompare_60d2d1();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'samplerCubeArrayShadow' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
 uniform highp samplerCubeArrayShadow arg_0_arg_1;
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
-void textureGatherCompare_60d2d1() {
+vec4 textureGatherCompare_60d2d1() {
   vec3 arg_2 = vec3(1.0f);
   int arg_3 = 1;
   float arg_4 = 1.0f;
   vec4 res = textureGather(arg_0_arg_1, vec4(arg_2, float(arg_3)), arg_4);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
 void fragment_main() {
-  textureGatherCompare_60d2d1();
+  prevent_dce.inner = textureGatherCompare_60d2d1();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'samplerCubeArrayShadow' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-
-uniform highp samplerCubeArrayShadow arg_0_arg_1;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureGatherCompare_60d2d1() {
+uniform highp samplerCubeArrayShadow arg_0_arg_1;
+
+vec4 textureGatherCompare_60d2d1() {
   vec3 arg_2 = vec3(1.0f);
   int arg_3 = 1;
   float arg_4 = 1.0f;
   vec4 res = textureGather(arg_0_arg_1, vec4(arg_2, float(arg_3)), arg_4);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
 void compute_main() {
-  textureGatherCompare_60d2d1();
+  prevent_dce.inner = textureGatherCompare_60d2d1();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -94,10 +57,37 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'samplerCubeArrayShadow' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
+layout(location = 0) flat out vec4 prevent_dce_1;
+uniform highp samplerCubeArrayShadow arg_0_arg_1;
 
+vec4 textureGatherCompare_60d2d1() {
+  vec3 arg_2 = vec3(1.0f);
+  int arg_3 = 1;
+  float arg_4 = 1.0f;
+  vec4 res = textureGather(arg_0_arg_1, vec4(arg_2, float(arg_3)), arg_4);
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureGatherCompare_60d2d1();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureLoad/050c33.wgsl b/test/tint/builtins/gen/var/textureLoad/050c33.wgsl
index 72f82f1..256115b 100644
--- a/test/tint/builtins/gen/var/textureLoad/050c33.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/050c33.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32uint, read>;
diff --git a/test/tint/builtins/gen/var/textureLoad/050c33.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/050c33.wgsl.expected.glsl
index 1211007..c565306 100644
--- a/test/tint/builtins/gen/var/textureLoad/050c33.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/050c33.wgsl.expected.glsl
@@ -1,83 +1,49 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp readonly uimage2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec4 inner;
 } prevent_dce;
 
-void textureLoad_050c33() {
+layout(binding = 0, rg32ui) uniform highp readonly uimage2D arg_0;
+uvec4 textureLoad_050c33() {
   ivec2 arg_1 = ivec2(1);
   uvec4 res = imageLoad(arg_0, arg_1);
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureLoad_050c33();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp readonly uimage2D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
-void textureLoad_050c33() {
-  ivec2 arg_1 = ivec2(1);
-  uvec4 res = imageLoad(arg_0, arg_1);
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  uvec4 prevent_dce;
+};
 
 void fragment_main() {
-  textureLoad_050c33();
+  prevent_dce.inner = textureLoad_050c33();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp readonly uimage2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec4 inner;
 } prevent_dce;
 
-void textureLoad_050c33() {
+layout(binding = 0, rg32ui) uniform highp readonly uimage2D arg_0;
+uvec4 textureLoad_050c33() {
   ivec2 arg_1 = ivec2(1);
   uvec4 res = imageLoad(arg_0, arg_1);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec4 prevent_dce;
+};
+
 void compute_main() {
-  textureLoad_050c33();
+  prevent_dce.inner = textureLoad_050c33();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +51,34 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out uvec4 prevent_dce_1;
+layout(binding = 0, rg32ui) uniform highp readonly uimage2D arg_0;
+uvec4 textureLoad_050c33() {
+  ivec2 arg_1 = ivec2(1);
+  uvec4 res = imageLoad(arg_0, arg_1);
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uvec4 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), uvec4(0u, 0u, 0u, 0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureLoad_050c33();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureLoad/126466.wgsl b/test/tint/builtins/gen/var/textureLoad/126466.wgsl
index e68e3c1..9e02b3b 100644
--- a/test/tint/builtins/gen/var/textureLoad/126466.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/126466.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32float, read_write>;
diff --git a/test/tint/builtins/gen/var/textureLoad/143d84.wgsl b/test/tint/builtins/gen/var/textureLoad/143d84.wgsl
index 415824f..da85f65 100644
--- a/test/tint/builtins/gen/var/textureLoad/143d84.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/143d84.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32float, read>;
diff --git a/test/tint/builtins/gen/var/textureLoad/143d84.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/143d84.wgsl.expected.glsl
index 0b2490b..cd80068 100644
--- a/test/tint/builtins/gen/var/textureLoad/143d84.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/143d84.wgsl.expected.glsl
@@ -1,86 +1,51 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp readonly image2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_143d84() {
+layout(binding = 0, rg32f) uniform highp readonly image2DArray arg_0;
+vec4 textureLoad_143d84() {
   ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
   vec4 res = imageLoad(arg_0, ivec3(arg_1, int(arg_2)));
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureLoad_143d84();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp readonly image2DArray arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
-void textureLoad_143d84() {
-  ivec2 arg_1 = ivec2(1);
-  uint arg_2 = 1u;
-  vec4 res = imageLoad(arg_0, ivec3(arg_1, int(arg_2)));
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
 
 void fragment_main() {
-  textureLoad_143d84();
+  prevent_dce.inner = textureLoad_143d84();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp readonly image2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_143d84() {
+layout(binding = 0, rg32f) uniform highp readonly image2DArray arg_0;
+vec4 textureLoad_143d84() {
   ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
   vec4 res = imageLoad(arg_0, ivec3(arg_1, int(arg_2)));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
 void compute_main() {
-  textureLoad_143d84();
+  prevent_dce.inner = textureLoad_143d84();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -88,10 +53,35 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out vec4 prevent_dce_1;
+layout(binding = 0, rg32f) uniform highp readonly image2DArray arg_0;
+vec4 textureLoad_143d84() {
+  ivec2 arg_1 = ivec2(1);
+  uint arg_2 = 1u;
+  vec4 res = imageLoad(arg_0, ivec3(arg_1, int(arg_2)));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureLoad_143d84();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureLoad/18ac11.wgsl b/test/tint/builtins/gen/var/textureLoad/18ac11.wgsl
index cc2cb41..3a2db7f 100644
--- a/test/tint/builtins/gen/var/textureLoad/18ac11.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/18ac11.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32sint, read>;
diff --git a/test/tint/builtins/gen/var/textureLoad/18ac11.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/18ac11.wgsl.expected.glsl
index 0e7f6da..7689aa5 100644
--- a/test/tint/builtins/gen/var/textureLoad/18ac11.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/18ac11.wgsl.expected.glsl
@@ -1,83 +1,49 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp readonly iimage2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec4 inner;
 } prevent_dce;
 
-void textureLoad_18ac11() {
+layout(binding = 0, rg32i) uniform highp readonly iimage2D arg_0;
+ivec4 textureLoad_18ac11() {
   uint arg_1 = 1u;
   ivec4 res = imageLoad(arg_0, ivec2(uvec2(arg_1, 0u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureLoad_18ac11();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp readonly iimage2D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
-void textureLoad_18ac11() {
-  uint arg_1 = 1u;
-  ivec4 res = imageLoad(arg_0, ivec2(uvec2(arg_1, 0u)));
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  ivec4 prevent_dce;
+};
 
 void fragment_main() {
-  textureLoad_18ac11();
+  prevent_dce.inner = textureLoad_18ac11();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp readonly iimage2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec4 inner;
 } prevent_dce;
 
-void textureLoad_18ac11() {
+layout(binding = 0, rg32i) uniform highp readonly iimage2D arg_0;
+ivec4 textureLoad_18ac11() {
   uint arg_1 = 1u;
   ivec4 res = imageLoad(arg_0, ivec2(uvec2(arg_1, 0u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  ivec4 prevent_dce;
+};
+
 void compute_main() {
-  textureLoad_18ac11();
+  prevent_dce.inner = textureLoad_18ac11();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +51,34 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out ivec4 prevent_dce_1;
+layout(binding = 0, rg32i) uniform highp readonly iimage2D arg_0;
+ivec4 textureLoad_18ac11() {
+  uint arg_1 = 1u;
+  ivec4 res = imageLoad(arg_0, ivec2(uvec2(arg_1, 0u)));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  ivec4 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), ivec4(0, 0, 0, 0));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureLoad_18ac11();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureLoad/19e5ca.wgsl b/test/tint/builtins/gen/var/textureLoad/19e5ca.wgsl
index 3cbf329..6cebc49 100644
--- a/test/tint/builtins/gen/var/textureLoad/19e5ca.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/19e5ca.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
diff --git a/test/tint/builtins/gen/var/textureLoad/19e5ca.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/19e5ca.wgsl.expected.glsl
index b7bdf91..9a6cd2a 100644
--- a/test/tint/builtins/gen/var/textureLoad/19e5ca.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/19e5ca.wgsl.expected.glsl
@@ -1,86 +1,51 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp readonly image2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_19e5ca() {
+layout(binding = 0, r8) uniform highp readonly image2DArray arg_0;
+vec4 textureLoad_19e5ca() {
   ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
   vec4 res = imageLoad(arg_0, ivec3(arg_1, int(arg_2)));
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureLoad_19e5ca();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp readonly image2DArray arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
-void textureLoad_19e5ca() {
-  ivec2 arg_1 = ivec2(1);
-  uint arg_2 = 1u;
-  vec4 res = imageLoad(arg_0, ivec3(arg_1, int(arg_2)));
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
 
 void fragment_main() {
-  textureLoad_19e5ca();
+  prevent_dce.inner = textureLoad_19e5ca();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp readonly image2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_19e5ca() {
+layout(binding = 0, r8) uniform highp readonly image2DArray arg_0;
+vec4 textureLoad_19e5ca() {
   ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
   vec4 res = imageLoad(arg_0, ivec3(arg_1, int(arg_2)));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
 void compute_main() {
-  textureLoad_19e5ca();
+  prevent_dce.inner = textureLoad_19e5ca();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -88,10 +53,35 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out vec4 prevent_dce_1;
+layout(binding = 0, r8) uniform highp readonly image2DArray arg_0;
+vec4 textureLoad_19e5ca() {
+  ivec2 arg_1 = ivec2(1);
+  uint arg_2 = 1u;
+  vec4 res = imageLoad(arg_0, ivec3(arg_1, int(arg_2)));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureLoad_19e5ca();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureLoad/1e6baa.wgsl b/test/tint/builtins/gen/var/textureLoad/1e6baa.wgsl
index ffda7d1..27b0b7a 100644
--- a/test/tint/builtins/gen/var/textureLoad/1e6baa.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/1e6baa.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32float, read_write>;
diff --git a/test/tint/builtins/gen/var/textureLoad/1eb93f.wgsl b/test/tint/builtins/gen/var/textureLoad/1eb93f.wgsl
index f80eb17..df46e55 100644
--- a/test/tint/builtins/gen/var/textureLoad/1eb93f.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/1eb93f.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32float, read>;
diff --git a/test/tint/builtins/gen/var/textureLoad/1eb93f.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/1eb93f.wgsl.expected.glsl
index 96cfeb6..70d3bd6 100644
--- a/test/tint/builtins/gen/var/textureLoad/1eb93f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/1eb93f.wgsl.expected.glsl
@@ -1,83 +1,49 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp readonly image2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_1eb93f() {
+layout(binding = 0, rg32f) uniform highp readonly image2D arg_0;
+vec4 textureLoad_1eb93f() {
   uvec2 arg_1 = uvec2(1u);
   vec4 res = imageLoad(arg_0, ivec2(arg_1));
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureLoad_1eb93f();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp readonly image2D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
-void textureLoad_1eb93f() {
-  uvec2 arg_1 = uvec2(1u);
-  vec4 res = imageLoad(arg_0, ivec2(arg_1));
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
 
 void fragment_main() {
-  textureLoad_1eb93f();
+  prevent_dce.inner = textureLoad_1eb93f();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp readonly image2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_1eb93f() {
+layout(binding = 0, rg32f) uniform highp readonly image2D arg_0;
+vec4 textureLoad_1eb93f() {
   uvec2 arg_1 = uvec2(1u);
   vec4 res = imageLoad(arg_0, ivec2(arg_1));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
 void compute_main() {
-  textureLoad_1eb93f();
+  prevent_dce.inner = textureLoad_1eb93f();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +51,34 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out vec4 prevent_dce_1;
+layout(binding = 0, rg32f) uniform highp readonly image2D arg_0;
+vec4 textureLoad_1eb93f() {
+  uvec2 arg_1 = uvec2(1u);
+  vec4 res = imageLoad(arg_0, ivec2(arg_1));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureLoad_1eb93f();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureLoad/1fde63.wgsl b/test/tint/builtins/gen/var/textureLoad/1fde63.wgsl
index acf746d..7133c60 100644
--- a/test/tint/builtins/gen/var/textureLoad/1fde63.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/1fde63.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
diff --git a/test/tint/builtins/gen/var/textureLoad/20fa2f.wgsl b/test/tint/builtins/gen/var/textureLoad/20fa2f.wgsl
index c270970..8dc7c6a 100644
--- a/test/tint/builtins/gen/var/textureLoad/20fa2f.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/20fa2f.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32float, read>;
diff --git a/test/tint/builtins/gen/var/textureLoad/20fa2f.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/20fa2f.wgsl.expected.glsl
index 540ad08..7b9c1e0 100644
--- a/test/tint/builtins/gen/var/textureLoad/20fa2f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/20fa2f.wgsl.expected.glsl
@@ -1,86 +1,51 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp readonly image2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_20fa2f() {
+layout(binding = 0, rg32f) uniform highp readonly image2DArray arg_0;
+vec4 textureLoad_20fa2f() {
   ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
   vec4 res = imageLoad(arg_0, ivec3(arg_1, arg_2));
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureLoad_20fa2f();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp readonly image2DArray arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
-void textureLoad_20fa2f() {
-  ivec2 arg_1 = ivec2(1);
-  int arg_2 = 1;
-  vec4 res = imageLoad(arg_0, ivec3(arg_1, arg_2));
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
 
 void fragment_main() {
-  textureLoad_20fa2f();
+  prevent_dce.inner = textureLoad_20fa2f();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp readonly image2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_20fa2f() {
+layout(binding = 0, rg32f) uniform highp readonly image2DArray arg_0;
+vec4 textureLoad_20fa2f() {
   ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
   vec4 res = imageLoad(arg_0, ivec3(arg_1, arg_2));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
 void compute_main() {
-  textureLoad_20fa2f();
+  prevent_dce.inner = textureLoad_20fa2f();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -88,10 +53,35 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out vec4 prevent_dce_1;
+layout(binding = 0, rg32f) uniform highp readonly image2DArray arg_0;
+vec4 textureLoad_20fa2f() {
+  ivec2 arg_1 = ivec2(1);
+  int arg_2 = 1;
+  vec4 res = imageLoad(arg_0, ivec3(arg_1, arg_2));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureLoad_20fa2f();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureLoad/23007a.wgsl b/test/tint/builtins/gen/var/textureLoad/23007a.wgsl
index 3fcf8f9..6587446 100644
--- a/test/tint/builtins/gen/var/textureLoad/23007a.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/23007a.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32float, read>;
diff --git a/test/tint/builtins/gen/var/textureLoad/23007a.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/23007a.wgsl.expected.glsl
index b152175..868ace4 100644
--- a/test/tint/builtins/gen/var/textureLoad/23007a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/23007a.wgsl.expected.glsl
@@ -1,86 +1,51 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp readonly image2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_23007a() {
+layout(binding = 0, rg32f) uniform highp readonly image2DArray arg_0;
+vec4 textureLoad_23007a() {
   uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
   vec4 res = imageLoad(arg_0, ivec3(uvec3(arg_1, uint(arg_2))));
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureLoad_23007a();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp readonly image2DArray arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
-void textureLoad_23007a() {
-  uvec2 arg_1 = uvec2(1u);
-  int arg_2 = 1;
-  vec4 res = imageLoad(arg_0, ivec3(uvec3(arg_1, uint(arg_2))));
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
 
 void fragment_main() {
-  textureLoad_23007a();
+  prevent_dce.inner = textureLoad_23007a();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp readonly image2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_23007a() {
+layout(binding = 0, rg32f) uniform highp readonly image2DArray arg_0;
+vec4 textureLoad_23007a() {
   uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
   vec4 res = imageLoad(arg_0, ivec3(uvec3(arg_1, uint(arg_2))));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
 void compute_main() {
-  textureLoad_23007a();
+  prevent_dce.inner = textureLoad_23007a();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -88,10 +53,35 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out vec4 prevent_dce_1;
+layout(binding = 0, rg32f) uniform highp readonly image2DArray arg_0;
+vec4 textureLoad_23007a() {
+  uvec2 arg_1 = uvec2(1u);
+  int arg_2 = 1;
+  vec4 res = imageLoad(arg_0, ivec3(uvec3(arg_1, uint(arg_2))));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureLoad_23007a();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureLoad/26d7f1.wgsl b/test/tint/builtins/gen/var/textureLoad/26d7f1.wgsl
index f874b30e..341d356 100644
--- a/test/tint/builtins/gen/var/textureLoad/26d7f1.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/26d7f1.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32uint, read>;
diff --git a/test/tint/builtins/gen/var/textureLoad/26d7f1.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/26d7f1.wgsl.expected.glsl
index aa37db8..44d1f40 100644
--- a/test/tint/builtins/gen/var/textureLoad/26d7f1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/26d7f1.wgsl.expected.glsl
@@ -1,86 +1,51 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp readonly uimage2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec4 inner;
 } prevent_dce;
 
-void textureLoad_26d7f1() {
+layout(binding = 0, rg32ui) uniform highp readonly uimage2DArray arg_0;
+uvec4 textureLoad_26d7f1() {
   uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
   uvec4 res = imageLoad(arg_0, ivec3(uvec3(arg_1, uint(arg_2))));
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureLoad_26d7f1();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp readonly uimage2DArray arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
-void textureLoad_26d7f1() {
-  uvec2 arg_1 = uvec2(1u);
-  int arg_2 = 1;
-  uvec4 res = imageLoad(arg_0, ivec3(uvec3(arg_1, uint(arg_2))));
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  uvec4 prevent_dce;
+};
 
 void fragment_main() {
-  textureLoad_26d7f1();
+  prevent_dce.inner = textureLoad_26d7f1();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp readonly uimage2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec4 inner;
 } prevent_dce;
 
-void textureLoad_26d7f1() {
+layout(binding = 0, rg32ui) uniform highp readonly uimage2DArray arg_0;
+uvec4 textureLoad_26d7f1() {
   uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
   uvec4 res = imageLoad(arg_0, ivec3(uvec3(arg_1, uint(arg_2))));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec4 prevent_dce;
+};
+
 void compute_main() {
-  textureLoad_26d7f1();
+  prevent_dce.inner = textureLoad_26d7f1();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -88,10 +53,35 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out uvec4 prevent_dce_1;
+layout(binding = 0, rg32ui) uniform highp readonly uimage2DArray arg_0;
+uvec4 textureLoad_26d7f1() {
+  uvec2 arg_1 = uvec2(1u);
+  int arg_2 = 1;
+  uvec4 res = imageLoad(arg_0, ivec3(uvec3(arg_1, uint(arg_2))));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uvec4 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), uvec4(0u, 0u, 0u, 0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureLoad_26d7f1();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureLoad/276643.wgsl b/test/tint/builtins/gen/var/textureLoad/276643.wgsl
index b8328aa..70a3f23 100644
--- a/test/tint/builtins/gen/var/textureLoad/276643.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/276643.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
diff --git a/test/tint/builtins/gen/var/textureLoad/276643.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/276643.wgsl.expected.glsl
index 57444e4..0c5cef9 100644
--- a/test/tint/builtins/gen/var/textureLoad/276643.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/276643.wgsl.expected.glsl
@@ -1,83 +1,49 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp readonly image2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_276643() {
+layout(binding = 0, r8) uniform highp readonly image2D arg_0;
+vec4 textureLoad_276643() {
   uint arg_1 = 1u;
   vec4 res = imageLoad(arg_0, ivec2(uvec2(arg_1, 0u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureLoad_276643();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp readonly image2D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
-void textureLoad_276643() {
-  uint arg_1 = 1u;
-  vec4 res = imageLoad(arg_0, ivec2(uvec2(arg_1, 0u)));
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
 
 void fragment_main() {
-  textureLoad_276643();
+  prevent_dce.inner = textureLoad_276643();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp readonly image2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_276643() {
+layout(binding = 0, r8) uniform highp readonly image2D arg_0;
+vec4 textureLoad_276643() {
   uint arg_1 = 1u;
   vec4 res = imageLoad(arg_0, ivec2(uvec2(arg_1, 0u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
 void compute_main() {
-  textureLoad_276643();
+  prevent_dce.inner = textureLoad_276643();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +51,34 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out vec4 prevent_dce_1;
+layout(binding = 0, r8) uniform highp readonly image2D arg_0;
+vec4 textureLoad_276643() {
+  uint arg_1 = 1u;
+  vec4 res = imageLoad(arg_0, ivec2(uvec2(arg_1, 0u)));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureLoad_276643();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureLoad/2d6cf7.wgsl b/test/tint/builtins/gen/var/textureLoad/2d6cf7.wgsl
index d5a0999..262ad97 100644
--- a/test/tint/builtins/gen/var/textureLoad/2d6cf7.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/2d6cf7.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32sint, read>;
diff --git a/test/tint/builtins/gen/var/textureLoad/2d6cf7.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/2d6cf7.wgsl.expected.glsl
index 494602d..6a06d37 100644
--- a/test/tint/builtins/gen/var/textureLoad/2d6cf7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/2d6cf7.wgsl.expected.glsl
@@ -1,83 +1,49 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp readonly iimage2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec4 inner;
 } prevent_dce;
 
-void textureLoad_2d6cf7() {
+layout(binding = 0, rg32i) uniform highp readonly iimage2D arg_0;
+ivec4 textureLoad_2d6cf7() {
   int arg_1 = 1;
   ivec4 res = imageLoad(arg_0, ivec2(arg_1, 0));
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureLoad_2d6cf7();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp readonly iimage2D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
-void textureLoad_2d6cf7() {
-  int arg_1 = 1;
-  ivec4 res = imageLoad(arg_0, ivec2(arg_1, 0));
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  ivec4 prevent_dce;
+};
 
 void fragment_main() {
-  textureLoad_2d6cf7();
+  prevent_dce.inner = textureLoad_2d6cf7();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp readonly iimage2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec4 inner;
 } prevent_dce;
 
-void textureLoad_2d6cf7() {
+layout(binding = 0, rg32i) uniform highp readonly iimage2D arg_0;
+ivec4 textureLoad_2d6cf7() {
   int arg_1 = 1;
   ivec4 res = imageLoad(arg_0, ivec2(arg_1, 0));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  ivec4 prevent_dce;
+};
+
 void compute_main() {
-  textureLoad_2d6cf7();
+  prevent_dce.inner = textureLoad_2d6cf7();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +51,34 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out ivec4 prevent_dce_1;
+layout(binding = 0, rg32i) uniform highp readonly iimage2D arg_0;
+ivec4 textureLoad_2d6cf7() {
+  int arg_1 = 1;
+  ivec4 res = imageLoad(arg_0, ivec2(arg_1, 0));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  ivec4 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), ivec4(0, 0, 0, 0));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureLoad_2d6cf7();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureLoad/2eaf31.wgsl b/test/tint/builtins/gen/var/textureLoad/2eaf31.wgsl
index 6fadd1d..76c6ca7 100644
--- a/test/tint/builtins/gen/var/textureLoad/2eaf31.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/2eaf31.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32sint, read_write>;
diff --git a/test/tint/builtins/gen/var/textureLoad/34d97c.wgsl b/test/tint/builtins/gen/var/textureLoad/34d97c.wgsl
index c7f17ec..ae922e5 100644
--- a/test/tint/builtins/gen/var/textureLoad/34d97c.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/34d97c.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32uint, read_write>;
diff --git a/test/tint/builtins/gen/var/textureLoad/35a5e2.wgsl b/test/tint/builtins/gen/var/textureLoad/35a5e2.wgsl
index 253325b..5842e1f 100644
--- a/test/tint/builtins/gen/var/textureLoad/35a5e2.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/35a5e2.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
diff --git a/test/tint/builtins/gen/var/textureLoad/35d464.wgsl b/test/tint/builtins/gen/var/textureLoad/35d464.wgsl
index edd3211..ac4b906 100644
--- a/test/tint/builtins/gen/var/textureLoad/35d464.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/35d464.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
diff --git a/test/tint/builtins/gen/var/textureLoad/35d464.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/35d464.wgsl.expected.glsl
index 413a57e..ba05ca9 100644
--- a/test/tint/builtins/gen/var/textureLoad/35d464.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/35d464.wgsl.expected.glsl
@@ -1,86 +1,51 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp readonly image2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_35d464() {
+layout(binding = 0, r8) uniform highp readonly image2DArray arg_0;
+vec4 textureLoad_35d464() {
   ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
   vec4 res = imageLoad(arg_0, ivec3(arg_1, arg_2));
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureLoad_35d464();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp readonly image2DArray arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
-void textureLoad_35d464() {
-  ivec2 arg_1 = ivec2(1);
-  int arg_2 = 1;
-  vec4 res = imageLoad(arg_0, ivec3(arg_1, arg_2));
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
 
 void fragment_main() {
-  textureLoad_35d464();
+  prevent_dce.inner = textureLoad_35d464();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp readonly image2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_35d464() {
+layout(binding = 0, r8) uniform highp readonly image2DArray arg_0;
+vec4 textureLoad_35d464() {
   ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
   vec4 res = imageLoad(arg_0, ivec3(arg_1, arg_2));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
 void compute_main() {
-  textureLoad_35d464();
+  prevent_dce.inner = textureLoad_35d464();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -88,10 +53,35 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out vec4 prevent_dce_1;
+layout(binding = 0, r8) uniform highp readonly image2DArray arg_0;
+vec4 textureLoad_35d464() {
+  ivec2 arg_1 = ivec2(1);
+  int arg_2 = 1;
+  vec4 res = imageLoad(arg_0, ivec3(arg_1, arg_2));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureLoad_35d464();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureLoad/3e16a8.wgsl b/test/tint/builtins/gen/var/textureLoad/3e16a8.wgsl
index f369aac..008a6fe 100644
--- a/test/tint/builtins/gen/var/textureLoad/3e16a8.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/3e16a8.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
diff --git a/test/tint/builtins/gen/var/textureLoad/424afd.wgsl b/test/tint/builtins/gen/var/textureLoad/424afd.wgsl
index d358ca7..e5f6347 100644
--- a/test/tint/builtins/gen/var/textureLoad/424afd.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/424afd.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32sint, read_write>;
diff --git a/test/tint/builtins/gen/var/textureLoad/44c826.wgsl b/test/tint/builtins/gen/var/textureLoad/44c826.wgsl
index 3b9e79a..976ed44 100644
--- a/test/tint/builtins/gen/var/textureLoad/44c826.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/44c826.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32uint, read>;
diff --git a/test/tint/builtins/gen/var/textureLoad/44c826.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/44c826.wgsl.expected.glsl
index 88d7bde..16a8cc3 100644
--- a/test/tint/builtins/gen/var/textureLoad/44c826.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/44c826.wgsl.expected.glsl
@@ -1,83 +1,49 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp readonly uimage2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec4 inner;
 } prevent_dce;
 
-void textureLoad_44c826() {
+layout(binding = 0, rg32ui) uniform highp readonly uimage2D arg_0;
+uvec4 textureLoad_44c826() {
   uint arg_1 = 1u;
   uvec4 res = imageLoad(arg_0, ivec2(uvec2(arg_1, 0u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureLoad_44c826();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp readonly uimage2D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
-void textureLoad_44c826() {
-  uint arg_1 = 1u;
-  uvec4 res = imageLoad(arg_0, ivec2(uvec2(arg_1, 0u)));
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  uvec4 prevent_dce;
+};
 
 void fragment_main() {
-  textureLoad_44c826();
+  prevent_dce.inner = textureLoad_44c826();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp readonly uimage2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec4 inner;
 } prevent_dce;
 
-void textureLoad_44c826() {
+layout(binding = 0, rg32ui) uniform highp readonly uimage2D arg_0;
+uvec4 textureLoad_44c826() {
   uint arg_1 = 1u;
   uvec4 res = imageLoad(arg_0, ivec2(uvec2(arg_1, 0u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec4 prevent_dce;
+};
+
 void compute_main() {
-  textureLoad_44c826();
+  prevent_dce.inner = textureLoad_44c826();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +51,34 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out uvec4 prevent_dce_1;
+layout(binding = 0, rg32ui) uniform highp readonly uimage2D arg_0;
+uvec4 textureLoad_44c826() {
+  uint arg_1 = 1u;
+  uvec4 res = imageLoad(arg_0, ivec2(uvec2(arg_1, 0u)));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uvec4 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), uvec4(0u, 0u, 0u, 0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureLoad_44c826();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureLoad/469912.wgsl b/test/tint/builtins/gen/var/textureLoad/469912.wgsl
index f0166eb..4e03493 100644
--- a/test/tint/builtins/gen/var/textureLoad/469912.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/469912.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32sint, read_write>;
diff --git a/test/tint/builtins/gen/var/textureLoad/482627.wgsl b/test/tint/builtins/gen/var/textureLoad/482627.wgsl
index 7d7974a..4d39bc8 100644
--- a/test/tint/builtins/gen/var/textureLoad/482627.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/482627.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32float, read_write>;
diff --git a/test/tint/builtins/gen/var/textureLoad/4951bb.wgsl b/test/tint/builtins/gen/var/textureLoad/4951bb.wgsl
index babe4b9..e10fd22 100644
--- a/test/tint/builtins/gen/var/textureLoad/4951bb.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/4951bb.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
diff --git a/test/tint/builtins/gen/var/textureLoad/4951bb.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/4951bb.wgsl.expected.glsl
index f41c485..6ab1744 100644
--- a/test/tint/builtins/gen/var/textureLoad/4951bb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/4951bb.wgsl.expected.glsl
@@ -1,86 +1,51 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp readonly image2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_4951bb() {
+layout(binding = 0, r8) uniform highp readonly image2DArray arg_0;
+vec4 textureLoad_4951bb() {
   uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
   vec4 res = imageLoad(arg_0, ivec3(uvec3(arg_1, uint(arg_2))));
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureLoad_4951bb();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp readonly image2DArray arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
-void textureLoad_4951bb() {
-  uvec2 arg_1 = uvec2(1u);
-  int arg_2 = 1;
-  vec4 res = imageLoad(arg_0, ivec3(uvec3(arg_1, uint(arg_2))));
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
 
 void fragment_main() {
-  textureLoad_4951bb();
+  prevent_dce.inner = textureLoad_4951bb();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp readonly image2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_4951bb() {
+layout(binding = 0, r8) uniform highp readonly image2DArray arg_0;
+vec4 textureLoad_4951bb() {
   uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
   vec4 res = imageLoad(arg_0, ivec3(uvec3(arg_1, uint(arg_2))));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
 void compute_main() {
-  textureLoad_4951bb();
+  prevent_dce.inner = textureLoad_4951bb();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -88,10 +53,35 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out vec4 prevent_dce_1;
+layout(binding = 0, r8) uniform highp readonly image2DArray arg_0;
+vec4 textureLoad_4951bb() {
+  uvec2 arg_1 = uvec2(1u);
+  int arg_2 = 1;
+  vec4 res = imageLoad(arg_0, ivec3(uvec3(arg_1, uint(arg_2))));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureLoad_4951bb();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureLoad/4c1a1e.wgsl b/test/tint/builtins/gen/var/textureLoad/4c1a1e.wgsl
index d4d3956..f359f2b 100644
--- a/test/tint/builtins/gen/var/textureLoad/4c1a1e.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/4c1a1e.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32uint, read_write>;
diff --git a/test/tint/builtins/gen/var/textureLoad/4ccf9a.wgsl b/test/tint/builtins/gen/var/textureLoad/4ccf9a.wgsl
index 8220699..1afb0cf 100644
--- a/test/tint/builtins/gen/var/textureLoad/4ccf9a.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/4ccf9a.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32uint, read_write>;
diff --git a/test/tint/builtins/gen/var/textureLoad/53378a.wgsl b/test/tint/builtins/gen/var/textureLoad/53378a.wgsl
index 6dc5117..19da5c4 100644
--- a/test/tint/builtins/gen/var/textureLoad/53378a.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/53378a.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32sint, read>;
diff --git a/test/tint/builtins/gen/var/textureLoad/53378a.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/53378a.wgsl.expected.glsl
index b9aa1e5..1c339b8 100644
--- a/test/tint/builtins/gen/var/textureLoad/53378a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/53378a.wgsl.expected.glsl
@@ -1,83 +1,49 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp readonly iimage2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec4 inner;
 } prevent_dce;
 
-void textureLoad_53378a() {
+layout(binding = 0, rg32i) uniform highp readonly iimage2D arg_0;
+ivec4 textureLoad_53378a() {
   ivec2 arg_1 = ivec2(1);
   ivec4 res = imageLoad(arg_0, arg_1);
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureLoad_53378a();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp readonly iimage2D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
-void textureLoad_53378a() {
-  ivec2 arg_1 = ivec2(1);
-  ivec4 res = imageLoad(arg_0, arg_1);
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  ivec4 prevent_dce;
+};
 
 void fragment_main() {
-  textureLoad_53378a();
+  prevent_dce.inner = textureLoad_53378a();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp readonly iimage2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec4 inner;
 } prevent_dce;
 
-void textureLoad_53378a() {
+layout(binding = 0, rg32i) uniform highp readonly iimage2D arg_0;
+ivec4 textureLoad_53378a() {
   ivec2 arg_1 = ivec2(1);
   ivec4 res = imageLoad(arg_0, arg_1);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  ivec4 prevent_dce;
+};
+
 void compute_main() {
-  textureLoad_53378a();
+  prevent_dce.inner = textureLoad_53378a();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +51,34 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out ivec4 prevent_dce_1;
+layout(binding = 0, rg32i) uniform highp readonly iimage2D arg_0;
+ivec4 textureLoad_53378a() {
+  ivec2 arg_1 = ivec2(1);
+  ivec4 res = imageLoad(arg_0, arg_1);
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  ivec4 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), ivec4(0, 0, 0, 0));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureLoad_53378a();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureLoad/54fb38.wgsl b/test/tint/builtins/gen/var/textureLoad/54fb38.wgsl
index 188e223..a476733 100644
--- a/test/tint/builtins/gen/var/textureLoad/54fb38.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/54fb38.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32uint, read_write>;
diff --git a/test/tint/builtins/gen/var/textureLoad/56a000.wgsl b/test/tint/builtins/gen/var/textureLoad/56a000.wgsl
index 73551e1..0d2426a 100644
--- a/test/tint/builtins/gen/var/textureLoad/56a000.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/56a000.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32float, read_write>;
diff --git a/test/tint/builtins/gen/var/textureLoad/5abbf2.wgsl b/test/tint/builtins/gen/var/textureLoad/5abbf2.wgsl
index e148dac..922f229 100644
--- a/test/tint/builtins/gen/var/textureLoad/5abbf2.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/5abbf2.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32float, read>;
diff --git a/test/tint/builtins/gen/var/textureLoad/5abbf2.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/5abbf2.wgsl.expected.glsl
index a728394..2174ab7 100644
--- a/test/tint/builtins/gen/var/textureLoad/5abbf2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/5abbf2.wgsl.expected.glsl
@@ -1,83 +1,49 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp readonly image2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_5abbf2() {
+layout(binding = 0, rg32f) uniform highp readonly image2D arg_0;
+vec4 textureLoad_5abbf2() {
   uint arg_1 = 1u;
   vec4 res = imageLoad(arg_0, ivec2(uvec2(arg_1, 0u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureLoad_5abbf2();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp readonly image2D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
-void textureLoad_5abbf2() {
-  uint arg_1 = 1u;
-  vec4 res = imageLoad(arg_0, ivec2(uvec2(arg_1, 0u)));
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
 
 void fragment_main() {
-  textureLoad_5abbf2();
+  prevent_dce.inner = textureLoad_5abbf2();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp readonly image2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_5abbf2() {
+layout(binding = 0, rg32f) uniform highp readonly image2D arg_0;
+vec4 textureLoad_5abbf2() {
   uint arg_1 = 1u;
   vec4 res = imageLoad(arg_0, ivec2(uvec2(arg_1, 0u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
 void compute_main() {
-  textureLoad_5abbf2();
+  prevent_dce.inner = textureLoad_5abbf2();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +51,34 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out vec4 prevent_dce_1;
+layout(binding = 0, rg32f) uniform highp readonly image2D arg_0;
+vec4 textureLoad_5abbf2() {
+  uint arg_1 = 1u;
+  vec4 res = imageLoad(arg_0, ivec2(uvec2(arg_1, 0u)));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureLoad_5abbf2();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureLoad/5bb7fb.wgsl b/test/tint/builtins/gen/var/textureLoad/5bb7fb.wgsl
index bcaf5c8..10f1ea7 100644
--- a/test/tint/builtins/gen/var/textureLoad/5bb7fb.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/5bb7fb.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32uint, read>;
diff --git a/test/tint/builtins/gen/var/textureLoad/5bb7fb.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/5bb7fb.wgsl.expected.glsl
index 0128e60..03a5a38 100644
--- a/test/tint/builtins/gen/var/textureLoad/5bb7fb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/5bb7fb.wgsl.expected.glsl
@@ -1,83 +1,49 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp readonly uimage2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec4 inner;
 } prevent_dce;
 
-void textureLoad_5bb7fb() {
+layout(binding = 0, rg32ui) uniform highp readonly uimage2D arg_0;
+uvec4 textureLoad_5bb7fb() {
   int arg_1 = 1;
   uvec4 res = imageLoad(arg_0, ivec2(arg_1, 0));
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureLoad_5bb7fb();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp readonly uimage2D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
-void textureLoad_5bb7fb() {
-  int arg_1 = 1;
-  uvec4 res = imageLoad(arg_0, ivec2(arg_1, 0));
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  uvec4 prevent_dce;
+};
 
 void fragment_main() {
-  textureLoad_5bb7fb();
+  prevent_dce.inner = textureLoad_5bb7fb();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp readonly uimage2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec4 inner;
 } prevent_dce;
 
-void textureLoad_5bb7fb() {
+layout(binding = 0, rg32ui) uniform highp readonly uimage2D arg_0;
+uvec4 textureLoad_5bb7fb() {
   int arg_1 = 1;
   uvec4 res = imageLoad(arg_0, ivec2(arg_1, 0));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec4 prevent_dce;
+};
+
 void compute_main() {
-  textureLoad_5bb7fb();
+  prevent_dce.inner = textureLoad_5bb7fb();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +51,34 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out uvec4 prevent_dce_1;
+layout(binding = 0, rg32ui) uniform highp readonly uimage2D arg_0;
+uvec4 textureLoad_5bb7fb() {
+  int arg_1 = 1;
+  uvec4 res = imageLoad(arg_0, ivec2(arg_1, 0));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uvec4 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), uvec4(0u, 0u, 0u, 0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureLoad_5bb7fb();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureLoad/5dd4c7.wgsl b/test/tint/builtins/gen/var/textureLoad/5dd4c7.wgsl
index e02ce237..2113ff1 100644
--- a/test/tint/builtins/gen/var/textureLoad/5dd4c7.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/5dd4c7.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
diff --git a/test/tint/builtins/gen/var/textureLoad/5dd4c7.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/5dd4c7.wgsl.expected.glsl
index 8e19ba1..d9dcc99 100644
--- a/test/tint/builtins/gen/var/textureLoad/5dd4c7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/5dd4c7.wgsl.expected.glsl
@@ -1,83 +1,49 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp readonly image2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_5dd4c7() {
+layout(binding = 0, r8) uniform highp readonly image2D arg_0;
+vec4 textureLoad_5dd4c7() {
   ivec2 arg_1 = ivec2(1);
   vec4 res = imageLoad(arg_0, arg_1);
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureLoad_5dd4c7();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp readonly image2D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
-void textureLoad_5dd4c7() {
-  ivec2 arg_1 = ivec2(1);
-  vec4 res = imageLoad(arg_0, arg_1);
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
 
 void fragment_main() {
-  textureLoad_5dd4c7();
+  prevent_dce.inner = textureLoad_5dd4c7();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp readonly image2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_5dd4c7() {
+layout(binding = 0, r8) uniform highp readonly image2D arg_0;
+vec4 textureLoad_5dd4c7() {
   ivec2 arg_1 = ivec2(1);
   vec4 res = imageLoad(arg_0, arg_1);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
 void compute_main() {
-  textureLoad_5dd4c7();
+  prevent_dce.inner = textureLoad_5dd4c7();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +51,34 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out vec4 prevent_dce_1;
+layout(binding = 0, r8) uniform highp readonly image2D arg_0;
+vec4 textureLoad_5dd4c7() {
+  ivec2 arg_1 = ivec2(1);
+  vec4 res = imageLoad(arg_0, arg_1);
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureLoad_5dd4c7();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureLoad/5ed6ad.wgsl b/test/tint/builtins/gen/var/textureLoad/5ed6ad.wgsl
index 6ea61f4..0c3e619 100644
--- a/test/tint/builtins/gen/var/textureLoad/5ed6ad.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/5ed6ad.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
diff --git a/test/tint/builtins/gen/var/textureLoad/5ed6ad.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/5ed6ad.wgsl.expected.glsl
index e916493..81b2882 100644
--- a/test/tint/builtins/gen/var/textureLoad/5ed6ad.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/5ed6ad.wgsl.expected.glsl
@@ -1,86 +1,51 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp readonly image2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_5ed6ad() {
+layout(binding = 0, r8) uniform highp readonly image2DArray arg_0;
+vec4 textureLoad_5ed6ad() {
   uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
   vec4 res = imageLoad(arg_0, ivec3(uvec3(arg_1, arg_2)));
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureLoad_5ed6ad();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp readonly image2DArray arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
-void textureLoad_5ed6ad() {
-  uvec2 arg_1 = uvec2(1u);
-  uint arg_2 = 1u;
-  vec4 res = imageLoad(arg_0, ivec3(uvec3(arg_1, arg_2)));
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
 
 void fragment_main() {
-  textureLoad_5ed6ad();
+  prevent_dce.inner = textureLoad_5ed6ad();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp readonly image2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_5ed6ad() {
+layout(binding = 0, r8) uniform highp readonly image2DArray arg_0;
+vec4 textureLoad_5ed6ad() {
   uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
   vec4 res = imageLoad(arg_0, ivec3(uvec3(arg_1, arg_2)));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
 void compute_main() {
-  textureLoad_5ed6ad();
+  prevent_dce.inner = textureLoad_5ed6ad();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -88,10 +53,35 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out vec4 prevent_dce_1;
+layout(binding = 0, r8) uniform highp readonly image2DArray arg_0;
+vec4 textureLoad_5ed6ad() {
+  uvec2 arg_1 = uvec2(1u);
+  uint arg_2 = 1u;
+  vec4 res = imageLoad(arg_0, ivec3(uvec3(arg_1, arg_2)));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureLoad_5ed6ad();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureLoad/61e2e8.wgsl b/test/tint/builtins/gen/var/textureLoad/61e2e8.wgsl
index 5148e46..254bfeb 100644
--- a/test/tint/builtins/gen/var/textureLoad/61e2e8.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/61e2e8.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32sint, read_write>;
diff --git a/test/tint/builtins/gen/var/textureLoad/620caa.wgsl b/test/tint/builtins/gen/var/textureLoad/620caa.wgsl
index 9672a4e..eb9062e 100644
--- a/test/tint/builtins/gen/var/textureLoad/620caa.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/620caa.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32sint, read>;
diff --git a/test/tint/builtins/gen/var/textureLoad/620caa.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/620caa.wgsl.expected.glsl
index 1a5d8d5..5352799 100644
--- a/test/tint/builtins/gen/var/textureLoad/620caa.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/620caa.wgsl.expected.glsl
@@ -1,83 +1,49 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp readonly iimage2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec4 inner;
 } prevent_dce;
 
-void textureLoad_620caa() {
+layout(binding = 0, rg32i) uniform highp readonly iimage2D arg_0;
+ivec4 textureLoad_620caa() {
   uvec2 arg_1 = uvec2(1u);
   ivec4 res = imageLoad(arg_0, ivec2(arg_1));
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureLoad_620caa();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp readonly iimage2D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
-void textureLoad_620caa() {
-  uvec2 arg_1 = uvec2(1u);
-  ivec4 res = imageLoad(arg_0, ivec2(arg_1));
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  ivec4 prevent_dce;
+};
 
 void fragment_main() {
-  textureLoad_620caa();
+  prevent_dce.inner = textureLoad_620caa();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp readonly iimage2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec4 inner;
 } prevent_dce;
 
-void textureLoad_620caa() {
+layout(binding = 0, rg32i) uniform highp readonly iimage2D arg_0;
+ivec4 textureLoad_620caa() {
   uvec2 arg_1 = uvec2(1u);
   ivec4 res = imageLoad(arg_0, ivec2(arg_1));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  ivec4 prevent_dce;
+};
+
 void compute_main() {
-  textureLoad_620caa();
+  prevent_dce.inner = textureLoad_620caa();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +51,34 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out ivec4 prevent_dce_1;
+layout(binding = 0, rg32i) uniform highp readonly iimage2D arg_0;
+ivec4 textureLoad_620caa() {
+  uvec2 arg_1 = uvec2(1u);
+  ivec4 res = imageLoad(arg_0, ivec2(arg_1));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  ivec4 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), ivec4(0, 0, 0, 0));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureLoad_620caa();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureLoad/63be18.wgsl b/test/tint/builtins/gen/var/textureLoad/63be18.wgsl
index c84d7df..b64decd 100644
--- a/test/tint/builtins/gen/var/textureLoad/63be18.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/63be18.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32sint, read>;
diff --git a/test/tint/builtins/gen/var/textureLoad/63be18.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/63be18.wgsl.expected.glsl
index d76b370..01ee7a6 100644
--- a/test/tint/builtins/gen/var/textureLoad/63be18.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/63be18.wgsl.expected.glsl
@@ -1,86 +1,51 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp readonly iimage2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec4 inner;
 } prevent_dce;
 
-void textureLoad_63be18() {
+layout(binding = 0, rg32i) uniform highp readonly iimage2DArray arg_0;
+ivec4 textureLoad_63be18() {
   uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
   ivec4 res = imageLoad(arg_0, ivec3(uvec3(arg_1, arg_2)));
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureLoad_63be18();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp readonly iimage2DArray arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
-void textureLoad_63be18() {
-  uvec2 arg_1 = uvec2(1u);
-  uint arg_2 = 1u;
-  ivec4 res = imageLoad(arg_0, ivec3(uvec3(arg_1, arg_2)));
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  ivec4 prevent_dce;
+};
 
 void fragment_main() {
-  textureLoad_63be18();
+  prevent_dce.inner = textureLoad_63be18();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp readonly iimage2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec4 inner;
 } prevent_dce;
 
-void textureLoad_63be18() {
+layout(binding = 0, rg32i) uniform highp readonly iimage2DArray arg_0;
+ivec4 textureLoad_63be18() {
   uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
   ivec4 res = imageLoad(arg_0, ivec3(uvec3(arg_1, arg_2)));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  ivec4 prevent_dce;
+};
+
 void compute_main() {
-  textureLoad_63be18();
+  prevent_dce.inner = textureLoad_63be18();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -88,10 +53,35 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out ivec4 prevent_dce_1;
+layout(binding = 0, rg32i) uniform highp readonly iimage2DArray arg_0;
+ivec4 textureLoad_63be18() {
+  uvec2 arg_1 = uvec2(1u);
+  uint arg_2 = 1u;
+  ivec4 res = imageLoad(arg_0, ivec3(uvec3(arg_1, arg_2)));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  ivec4 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), ivec4(0, 0, 0, 0));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureLoad_63be18();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureLoad/6f0370.wgsl b/test/tint/builtins/gen/var/textureLoad/6f0370.wgsl
index 4ea4fc0..76f475f 100644
--- a/test/tint/builtins/gen/var/textureLoad/6f0370.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/6f0370.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
diff --git a/test/tint/builtins/gen/var/textureLoad/6f0370.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/6f0370.wgsl.expected.glsl
index 64cc17c..ce6d75c 100644
--- a/test/tint/builtins/gen/var/textureLoad/6f0370.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/6f0370.wgsl.expected.glsl
@@ -1,83 +1,49 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp readonly image3D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_6f0370() {
+layout(binding = 0, r8) uniform highp readonly image3D arg_0;
+vec4 textureLoad_6f0370() {
   uvec3 arg_1 = uvec3(1u);
   vec4 res = imageLoad(arg_0, ivec3(arg_1));
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureLoad_6f0370();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp readonly image3D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
-void textureLoad_6f0370() {
-  uvec3 arg_1 = uvec3(1u);
-  vec4 res = imageLoad(arg_0, ivec3(arg_1));
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
 
 void fragment_main() {
-  textureLoad_6f0370();
+  prevent_dce.inner = textureLoad_6f0370();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp readonly image3D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_6f0370() {
+layout(binding = 0, r8) uniform highp readonly image3D arg_0;
+vec4 textureLoad_6f0370() {
   uvec3 arg_1 = uvec3(1u);
   vec4 res = imageLoad(arg_0, ivec3(arg_1));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
 void compute_main() {
-  textureLoad_6f0370();
+  prevent_dce.inner = textureLoad_6f0370();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +51,34 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out vec4 prevent_dce_1;
+layout(binding = 0, r8) uniform highp readonly image3D arg_0;
+vec4 textureLoad_6f0370() {
+  uvec3 arg_1 = uvec3(1u);
+  vec4 res = imageLoad(arg_0, ivec3(arg_1));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureLoad_6f0370();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureLoad/72c9c3.wgsl b/test/tint/builtins/gen/var/textureLoad/72c9c3.wgsl
index 9696b3b..17f3aed 100644
--- a/test/tint/builtins/gen/var/textureLoad/72c9c3.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/72c9c3.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
diff --git a/test/tint/builtins/gen/var/textureLoad/773c46.wgsl b/test/tint/builtins/gen/var/textureLoad/773c46.wgsl
index 3f601b3..9558ee8 100644
--- a/test/tint/builtins/gen/var/textureLoad/773c46.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/773c46.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32uint, read>;
diff --git a/test/tint/builtins/gen/var/textureLoad/773c46.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/773c46.wgsl.expected.glsl
index d5e991e..ecb998f 100644
--- a/test/tint/builtins/gen/var/textureLoad/773c46.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/773c46.wgsl.expected.glsl
@@ -1,83 +1,49 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp readonly uimage2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec4 inner;
 } prevent_dce;
 
-void textureLoad_773c46() {
+layout(binding = 0, rg32ui) uniform highp readonly uimage2D arg_0;
+uvec4 textureLoad_773c46() {
   uvec2 arg_1 = uvec2(1u);
   uvec4 res = imageLoad(arg_0, ivec2(arg_1));
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureLoad_773c46();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp readonly uimage2D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
-void textureLoad_773c46() {
-  uvec2 arg_1 = uvec2(1u);
-  uvec4 res = imageLoad(arg_0, ivec2(arg_1));
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  uvec4 prevent_dce;
+};
 
 void fragment_main() {
-  textureLoad_773c46();
+  prevent_dce.inner = textureLoad_773c46();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp readonly uimage2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec4 inner;
 } prevent_dce;
 
-void textureLoad_773c46() {
+layout(binding = 0, rg32ui) uniform highp readonly uimage2D arg_0;
+uvec4 textureLoad_773c46() {
   uvec2 arg_1 = uvec2(1u);
   uvec4 res = imageLoad(arg_0, ivec2(arg_1));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec4 prevent_dce;
+};
+
 void compute_main() {
-  textureLoad_773c46();
+  prevent_dce.inner = textureLoad_773c46();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +51,34 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out uvec4 prevent_dce_1;
+layout(binding = 0, rg32ui) uniform highp readonly uimage2D arg_0;
+uvec4 textureLoad_773c46() {
+  uvec2 arg_1 = uvec2(1u);
+  uvec4 res = imageLoad(arg_0, ivec2(arg_1));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uvec4 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), uvec4(0u, 0u, 0u, 0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureLoad_773c46();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureLoad/7dab57.wgsl b/test/tint/builtins/gen/var/textureLoad/7dab57.wgsl
index 3200785..a368fd3 100644
--- a/test/tint/builtins/gen/var/textureLoad/7dab57.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/7dab57.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32sint, read>;
diff --git a/test/tint/builtins/gen/var/textureLoad/7dab57.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/7dab57.wgsl.expected.glsl
index 00c0693..9d91f18 100644
--- a/test/tint/builtins/gen/var/textureLoad/7dab57.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/7dab57.wgsl.expected.glsl
@@ -1,86 +1,51 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp readonly iimage2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec4 inner;
 } prevent_dce;
 
-void textureLoad_7dab57() {
+layout(binding = 0, rg32i) uniform highp readonly iimage2DArray arg_0;
+ivec4 textureLoad_7dab57() {
   uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
   ivec4 res = imageLoad(arg_0, ivec3(uvec3(arg_1, uint(arg_2))));
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureLoad_7dab57();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp readonly iimage2DArray arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
-void textureLoad_7dab57() {
-  uvec2 arg_1 = uvec2(1u);
-  int arg_2 = 1;
-  ivec4 res = imageLoad(arg_0, ivec3(uvec3(arg_1, uint(arg_2))));
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  ivec4 prevent_dce;
+};
 
 void fragment_main() {
-  textureLoad_7dab57();
+  prevent_dce.inner = textureLoad_7dab57();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp readonly iimage2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec4 inner;
 } prevent_dce;
 
-void textureLoad_7dab57() {
+layout(binding = 0, rg32i) uniform highp readonly iimage2DArray arg_0;
+ivec4 textureLoad_7dab57() {
   uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
   ivec4 res = imageLoad(arg_0, ivec3(uvec3(arg_1, uint(arg_2))));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  ivec4 prevent_dce;
+};
+
 void compute_main() {
-  textureLoad_7dab57();
+  prevent_dce.inner = textureLoad_7dab57();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -88,10 +53,35 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out ivec4 prevent_dce_1;
+layout(binding = 0, rg32i) uniform highp readonly iimage2DArray arg_0;
+ivec4 textureLoad_7dab57() {
+  uvec2 arg_1 = uvec2(1u);
+  int arg_2 = 1;
+  ivec4 res = imageLoad(arg_0, ivec3(uvec3(arg_1, uint(arg_2))));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  ivec4 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), ivec4(0, 0, 0, 0));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureLoad_7dab57();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureLoad/7dd3d5.wgsl b/test/tint/builtins/gen/var/textureLoad/7dd3d5.wgsl
index 522b8a3..4657c59 100644
--- a/test/tint/builtins/gen/var/textureLoad/7dd3d5.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/7dd3d5.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
diff --git a/test/tint/builtins/gen/var/textureLoad/83162f.wgsl b/test/tint/builtins/gen/var/textureLoad/83162f.wgsl
index 0f5367b..ee20f11 100644
--- a/test/tint/builtins/gen/var/textureLoad/83162f.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/83162f.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32float, read>;
diff --git a/test/tint/builtins/gen/var/textureLoad/83162f.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/83162f.wgsl.expected.glsl
index 928f7c5..81de7f5 100644
--- a/test/tint/builtins/gen/var/textureLoad/83162f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/83162f.wgsl.expected.glsl
@@ -1,83 +1,49 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp readonly image3D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_83162f() {
+layout(binding = 0, rg32f) uniform highp readonly image3D arg_0;
+vec4 textureLoad_83162f() {
   uvec3 arg_1 = uvec3(1u);
   vec4 res = imageLoad(arg_0, ivec3(arg_1));
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureLoad_83162f();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp readonly image3D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
-void textureLoad_83162f() {
-  uvec3 arg_1 = uvec3(1u);
-  vec4 res = imageLoad(arg_0, ivec3(arg_1));
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
 
 void fragment_main() {
-  textureLoad_83162f();
+  prevent_dce.inner = textureLoad_83162f();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp readonly image3D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_83162f() {
+layout(binding = 0, rg32f) uniform highp readonly image3D arg_0;
+vec4 textureLoad_83162f() {
   uvec3 arg_1 = uvec3(1u);
   vec4 res = imageLoad(arg_0, ivec3(arg_1));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
 void compute_main() {
-  textureLoad_83162f();
+  prevent_dce.inner = textureLoad_83162f();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +51,34 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out vec4 prevent_dce_1;
+layout(binding = 0, rg32f) uniform highp readonly image3D arg_0;
+vec4 textureLoad_83162f() {
+  uvec3 arg_1 = uvec3(1u);
+  vec4 res = imageLoad(arg_0, ivec3(arg_1));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureLoad_83162f();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureLoad/881349.wgsl b/test/tint/builtins/gen/var/textureLoad/881349.wgsl
index 0992de7..441dd75 100644
--- a/test/tint/builtins/gen/var/textureLoad/881349.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/881349.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32float, read_write>;
diff --git a/test/tint/builtins/gen/var/textureLoad/8a9988.wgsl b/test/tint/builtins/gen/var/textureLoad/8a9988.wgsl
index a378123..5ed33f6 100644
--- a/test/tint/builtins/gen/var/textureLoad/8a9988.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/8a9988.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32sint, read>;
diff --git a/test/tint/builtins/gen/var/textureLoad/8a9988.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/8a9988.wgsl.expected.glsl
index e9eace7..6e1ce4d 100644
--- a/test/tint/builtins/gen/var/textureLoad/8a9988.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/8a9988.wgsl.expected.glsl
@@ -1,83 +1,49 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp readonly iimage3D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec4 inner;
 } prevent_dce;
 
-void textureLoad_8a9988() {
+layout(binding = 0, rg32i) uniform highp readonly iimage3D arg_0;
+ivec4 textureLoad_8a9988() {
   uvec3 arg_1 = uvec3(1u);
   ivec4 res = imageLoad(arg_0, ivec3(arg_1));
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureLoad_8a9988();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp readonly iimage3D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
-void textureLoad_8a9988() {
-  uvec3 arg_1 = uvec3(1u);
-  ivec4 res = imageLoad(arg_0, ivec3(arg_1));
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  ivec4 prevent_dce;
+};
 
 void fragment_main() {
-  textureLoad_8a9988();
+  prevent_dce.inner = textureLoad_8a9988();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp readonly iimage3D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec4 inner;
 } prevent_dce;
 
-void textureLoad_8a9988() {
+layout(binding = 0, rg32i) uniform highp readonly iimage3D arg_0;
+ivec4 textureLoad_8a9988() {
   uvec3 arg_1 = uvec3(1u);
   ivec4 res = imageLoad(arg_0, ivec3(arg_1));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  ivec4 prevent_dce;
+};
+
 void compute_main() {
-  textureLoad_8a9988();
+  prevent_dce.inner = textureLoad_8a9988();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +51,34 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out ivec4 prevent_dce_1;
+layout(binding = 0, rg32i) uniform highp readonly iimage3D arg_0;
+ivec4 textureLoad_8a9988() {
+  uvec3 arg_1 = uvec3(1u);
+  ivec4 res = imageLoad(arg_0, ivec3(arg_1));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  ivec4 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), ivec4(0, 0, 0, 0));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureLoad_8a9988();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureLoad/8c6176.wgsl b/test/tint/builtins/gen/var/textureLoad/8c6176.wgsl
index d0c5f04..3328601 100644
--- a/test/tint/builtins/gen/var/textureLoad/8c6176.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/8c6176.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32uint, read_write>;
diff --git a/test/tint/builtins/gen/var/textureLoad/8d64c3.wgsl b/test/tint/builtins/gen/var/textureLoad/8d64c3.wgsl
index 51b3a1e..63af572 100644
--- a/test/tint/builtins/gen/var/textureLoad/8d64c3.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/8d64c3.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32uint, read_write>;
diff --git a/test/tint/builtins/gen/var/textureLoad/8e5032.wgsl b/test/tint/builtins/gen/var/textureLoad/8e5032.wgsl
index 52615e6..93d7c47 100644
--- a/test/tint/builtins/gen/var/textureLoad/8e5032.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/8e5032.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32uint, read>;
diff --git a/test/tint/builtins/gen/var/textureLoad/8e5032.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/8e5032.wgsl.expected.glsl
index d8ffc43..21a0e49 100644
--- a/test/tint/builtins/gen/var/textureLoad/8e5032.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/8e5032.wgsl.expected.glsl
@@ -1,86 +1,51 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp readonly uimage2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec4 inner;
 } prevent_dce;
 
-void textureLoad_8e5032() {
+layout(binding = 0, rg32ui) uniform highp readonly uimage2DArray arg_0;
+uvec4 textureLoad_8e5032() {
   ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
   uvec4 res = imageLoad(arg_0, ivec3(arg_1, arg_2));
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureLoad_8e5032();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp readonly uimage2DArray arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
-void textureLoad_8e5032() {
-  ivec2 arg_1 = ivec2(1);
-  int arg_2 = 1;
-  uvec4 res = imageLoad(arg_0, ivec3(arg_1, arg_2));
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  uvec4 prevent_dce;
+};
 
 void fragment_main() {
-  textureLoad_8e5032();
+  prevent_dce.inner = textureLoad_8e5032();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp readonly uimage2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec4 inner;
 } prevent_dce;
 
-void textureLoad_8e5032() {
+layout(binding = 0, rg32ui) uniform highp readonly uimage2DArray arg_0;
+uvec4 textureLoad_8e5032() {
   ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
   uvec4 res = imageLoad(arg_0, ivec3(arg_1, arg_2));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec4 prevent_dce;
+};
+
 void compute_main() {
-  textureLoad_8e5032();
+  prevent_dce.inner = textureLoad_8e5032();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -88,10 +53,35 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out uvec4 prevent_dce_1;
+layout(binding = 0, rg32ui) uniform highp readonly uimage2DArray arg_0;
+uvec4 textureLoad_8e5032() {
+  ivec2 arg_1 = ivec2(1);
+  int arg_2 = 1;
+  uvec4 res = imageLoad(arg_0, ivec3(arg_1, arg_2));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uvec4 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), uvec4(0u, 0u, 0u, 0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureLoad_8e5032();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureLoad/91ede5.wgsl b/test/tint/builtins/gen/var/textureLoad/91ede5.wgsl
index 6993310..659fb10 100644
--- a/test/tint/builtins/gen/var/textureLoad/91ede5.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/91ede5.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32float, read_write>;
diff --git a/test/tint/builtins/gen/var/textureLoad/92dd61.wgsl b/test/tint/builtins/gen/var/textureLoad/92dd61.wgsl
index f763579..5d816ca 100644
--- a/test/tint/builtins/gen/var/textureLoad/92dd61.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/92dd61.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
diff --git a/test/tint/builtins/gen/var/textureLoad/947107.wgsl b/test/tint/builtins/gen/var/textureLoad/947107.wgsl
index 0e0cc9e..9abbe35 100644
--- a/test/tint/builtins/gen/var/textureLoad/947107.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/947107.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
diff --git a/test/tint/builtins/gen/var/textureLoad/947107.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/947107.wgsl.expected.glsl
index 243d06f..7e32fc0 100644
--- a/test/tint/builtins/gen/var/textureLoad/947107.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/947107.wgsl.expected.glsl
@@ -1,83 +1,49 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp readonly image2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_947107() {
+layout(binding = 0, r8) uniform highp readonly image2D arg_0;
+vec4 textureLoad_947107() {
   int arg_1 = 1;
   vec4 res = imageLoad(arg_0, ivec2(arg_1, 0));
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureLoad_947107();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp readonly image2D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
-void textureLoad_947107() {
-  int arg_1 = 1;
-  vec4 res = imageLoad(arg_0, ivec2(arg_1, 0));
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
 
 void fragment_main() {
-  textureLoad_947107();
+  prevent_dce.inner = textureLoad_947107();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp readonly image2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_947107() {
+layout(binding = 0, r8) uniform highp readonly image2D arg_0;
+vec4 textureLoad_947107() {
   int arg_1 = 1;
   vec4 res = imageLoad(arg_0, ivec2(arg_1, 0));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
 void compute_main() {
-  textureLoad_947107();
+  prevent_dce.inner = textureLoad_947107();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +51,34 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out vec4 prevent_dce_1;
+layout(binding = 0, r8) uniform highp readonly image2D arg_0;
+vec4 textureLoad_947107() {
+  int arg_1 = 1;
+  vec4 res = imageLoad(arg_0, ivec2(arg_1, 0));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureLoad_947107();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureLoad/99d8fa.wgsl b/test/tint/builtins/gen/var/textureLoad/99d8fa.wgsl
index 2121d80..89d2329 100644
--- a/test/tint/builtins/gen/var/textureLoad/99d8fa.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/99d8fa.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
diff --git a/test/tint/builtins/gen/var/textureLoad/9c2a14.wgsl b/test/tint/builtins/gen/var/textureLoad/9c2a14.wgsl
index 075d8f9..2f4c8c8 100644
--- a/test/tint/builtins/gen/var/textureLoad/9c2a14.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/9c2a14.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32float, read>;
diff --git a/test/tint/builtins/gen/var/textureLoad/9c2a14.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/9c2a14.wgsl.expected.glsl
index be3374e..bfcd328 100644
--- a/test/tint/builtins/gen/var/textureLoad/9c2a14.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/9c2a14.wgsl.expected.glsl
@@ -1,83 +1,49 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp readonly image2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_9c2a14() {
+layout(binding = 0, rg32f) uniform highp readonly image2D arg_0;
+vec4 textureLoad_9c2a14() {
   ivec2 arg_1 = ivec2(1);
   vec4 res = imageLoad(arg_0, arg_1);
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureLoad_9c2a14();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp readonly image2D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
-void textureLoad_9c2a14() {
-  ivec2 arg_1 = ivec2(1);
-  vec4 res = imageLoad(arg_0, arg_1);
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
 
 void fragment_main() {
-  textureLoad_9c2a14();
+  prevent_dce.inner = textureLoad_9c2a14();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp readonly image2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_9c2a14() {
+layout(binding = 0, rg32f) uniform highp readonly image2D arg_0;
+vec4 textureLoad_9c2a14() {
   ivec2 arg_1 = ivec2(1);
   vec4 res = imageLoad(arg_0, arg_1);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
 void compute_main() {
-  textureLoad_9c2a14();
+  prevent_dce.inner = textureLoad_9c2a14();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +51,34 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out vec4 prevent_dce_1;
+layout(binding = 0, rg32f) uniform highp readonly image2D arg_0;
+vec4 textureLoad_9c2a14() {
+  ivec2 arg_1 = ivec2(1);
+  vec4 res = imageLoad(arg_0, arg_1);
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureLoad_9c2a14();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureLoad/9cf7df.wgsl b/test/tint/builtins/gen/var/textureLoad/9cf7df.wgsl
index d0cf111..b93654d 100644
--- a/test/tint/builtins/gen/var/textureLoad/9cf7df.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/9cf7df.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32sint, read>;
diff --git a/test/tint/builtins/gen/var/textureLoad/9cf7df.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/9cf7df.wgsl.expected.glsl
index 7e8a940..0cf0859 100644
--- a/test/tint/builtins/gen/var/textureLoad/9cf7df.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/9cf7df.wgsl.expected.glsl
@@ -1,86 +1,51 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp readonly iimage2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec4 inner;
 } prevent_dce;
 
-void textureLoad_9cf7df() {
+layout(binding = 0, rg32i) uniform highp readonly iimage2DArray arg_0;
+ivec4 textureLoad_9cf7df() {
   ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
   ivec4 res = imageLoad(arg_0, ivec3(arg_1, int(arg_2)));
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureLoad_9cf7df();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp readonly iimage2DArray arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
-void textureLoad_9cf7df() {
-  ivec2 arg_1 = ivec2(1);
-  uint arg_2 = 1u;
-  ivec4 res = imageLoad(arg_0, ivec3(arg_1, int(arg_2)));
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  ivec4 prevent_dce;
+};
 
 void fragment_main() {
-  textureLoad_9cf7df();
+  prevent_dce.inner = textureLoad_9cf7df();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp readonly iimage2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec4 inner;
 } prevent_dce;
 
-void textureLoad_9cf7df() {
+layout(binding = 0, rg32i) uniform highp readonly iimage2DArray arg_0;
+ivec4 textureLoad_9cf7df() {
   ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
   ivec4 res = imageLoad(arg_0, ivec3(arg_1, int(arg_2)));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  ivec4 prevent_dce;
+};
+
 void compute_main() {
-  textureLoad_9cf7df();
+  prevent_dce.inner = textureLoad_9cf7df();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -88,10 +53,35 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out ivec4 prevent_dce_1;
+layout(binding = 0, rg32i) uniform highp readonly iimage2DArray arg_0;
+ivec4 textureLoad_9cf7df() {
+  ivec2 arg_1 = ivec2(1);
+  uint arg_2 = 1u;
+  ivec4 res = imageLoad(arg_0, ivec3(arg_1, int(arg_2)));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  ivec4 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), ivec4(0, 0, 0, 0));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureLoad_9cf7df();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureLoad/a5c4e2.wgsl b/test/tint/builtins/gen/var/textureLoad/a5c4e2.wgsl
index cf3cf97..5c2377b 100644
--- a/test/tint/builtins/gen/var/textureLoad/a5c4e2.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/a5c4e2.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32uint, read_write>;
diff --git a/test/tint/builtins/gen/var/textureLoad/aa6130.wgsl b/test/tint/builtins/gen/var/textureLoad/aa6130.wgsl
index 9d1f542..109d032 100644
--- a/test/tint/builtins/gen/var/textureLoad/aa6130.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/aa6130.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32sint, read_write>;
diff --git a/test/tint/builtins/gen/var/textureLoad/af0507.wgsl b/test/tint/builtins/gen/var/textureLoad/af0507.wgsl
index 16b4129..1c55e83 100644
--- a/test/tint/builtins/gen/var/textureLoad/af0507.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/af0507.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32float, read_write>;
diff --git a/test/tint/builtins/gen/var/textureLoad/b1ca35.wgsl b/test/tint/builtins/gen/var/textureLoad/b1ca35.wgsl
index ba4acc8..3df51a2 100644
--- a/test/tint/builtins/gen/var/textureLoad/b1ca35.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/b1ca35.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32sint, read_write>;
diff --git a/test/tint/builtins/gen/var/textureLoad/b4d6c4.wgsl b/test/tint/builtins/gen/var/textureLoad/b4d6c4.wgsl
index d4f6aba..2cf3081 100644
--- a/test/tint/builtins/gen/var/textureLoad/b4d6c4.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/b4d6c4.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32float, read_write>;
diff --git a/test/tint/builtins/gen/var/textureLoad/bba04a.wgsl b/test/tint/builtins/gen/var/textureLoad/bba04a.wgsl
index d51ff0f..e8c5fea 100644
--- a/test/tint/builtins/gen/var/textureLoad/bba04a.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/bba04a.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32uint, read_write>;
diff --git a/test/tint/builtins/gen/var/textureLoad/bc882d.wgsl b/test/tint/builtins/gen/var/textureLoad/bc882d.wgsl
index 905d0f6..2e0a2af 100644
--- a/test/tint/builtins/gen/var/textureLoad/bc882d.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/bc882d.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
diff --git a/test/tint/builtins/gen/var/textureLoad/bdc67a.wgsl b/test/tint/builtins/gen/var/textureLoad/bdc67a.wgsl
index 0bb14e9..a820f27 100644
--- a/test/tint/builtins/gen/var/textureLoad/bdc67a.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/bdc67a.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32float, read_write>;
diff --git a/test/tint/builtins/gen/var/textureLoad/c8ed19.wgsl b/test/tint/builtins/gen/var/textureLoad/c8ed19.wgsl
index 2661d89..07a9c13 100644
--- a/test/tint/builtins/gen/var/textureLoad/c8ed19.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/c8ed19.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32uint, read>;
diff --git a/test/tint/builtins/gen/var/textureLoad/c8ed19.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/c8ed19.wgsl.expected.glsl
index e7c187d..0f743f0 100644
--- a/test/tint/builtins/gen/var/textureLoad/c8ed19.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/c8ed19.wgsl.expected.glsl
@@ -1,86 +1,51 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp readonly uimage2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec4 inner;
 } prevent_dce;
 
-void textureLoad_c8ed19() {
+layout(binding = 0, rg32ui) uniform highp readonly uimage2DArray arg_0;
+uvec4 textureLoad_c8ed19() {
   uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
   uvec4 res = imageLoad(arg_0, ivec3(uvec3(arg_1, arg_2)));
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureLoad_c8ed19();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp readonly uimage2DArray arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
-void textureLoad_c8ed19() {
-  uvec2 arg_1 = uvec2(1u);
-  uint arg_2 = 1u;
-  uvec4 res = imageLoad(arg_0, ivec3(uvec3(arg_1, arg_2)));
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  uvec4 prevent_dce;
+};
 
 void fragment_main() {
-  textureLoad_c8ed19();
+  prevent_dce.inner = textureLoad_c8ed19();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp readonly uimage2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec4 inner;
 } prevent_dce;
 
-void textureLoad_c8ed19() {
+layout(binding = 0, rg32ui) uniform highp readonly uimage2DArray arg_0;
+uvec4 textureLoad_c8ed19() {
   uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
   uvec4 res = imageLoad(arg_0, ivec3(uvec3(arg_1, arg_2)));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec4 prevent_dce;
+};
+
 void compute_main() {
-  textureLoad_c8ed19();
+  prevent_dce.inner = textureLoad_c8ed19();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -88,10 +53,35 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out uvec4 prevent_dce_1;
+layout(binding = 0, rg32ui) uniform highp readonly uimage2DArray arg_0;
+uvec4 textureLoad_c8ed19() {
+  uvec2 arg_1 = uvec2(1u);
+  uint arg_2 = 1u;
+  uvec4 res = imageLoad(arg_0, ivec3(uvec3(arg_1, arg_2)));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uvec4 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), uvec4(0u, 0u, 0u, 0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureLoad_c8ed19();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureLoad/cdccd2.wgsl b/test/tint/builtins/gen/var/textureLoad/cdccd2.wgsl
index f7609d1..093bbe9 100644
--- a/test/tint/builtins/gen/var/textureLoad/cdccd2.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/cdccd2.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32uint, read_write>;
diff --git a/test/tint/builtins/gen/var/textureLoad/cece6c.wgsl b/test/tint/builtins/gen/var/textureLoad/cece6c.wgsl
index 942ce61..2b88441 100644
--- a/test/tint/builtins/gen/var/textureLoad/cece6c.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/cece6c.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
diff --git a/test/tint/builtins/gen/var/textureLoad/cece6c.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/cece6c.wgsl.expected.glsl
index 8cf30e8..3c1c930 100644
--- a/test/tint/builtins/gen/var/textureLoad/cece6c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/cece6c.wgsl.expected.glsl
@@ -1,83 +1,49 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp readonly image3D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_cece6c() {
+layout(binding = 0, r8) uniform highp readonly image3D arg_0;
+vec4 textureLoad_cece6c() {
   ivec3 arg_1 = ivec3(1);
   vec4 res = imageLoad(arg_0, arg_1);
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureLoad_cece6c();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp readonly image3D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
-void textureLoad_cece6c() {
-  ivec3 arg_1 = ivec3(1);
-  vec4 res = imageLoad(arg_0, arg_1);
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
 
 void fragment_main() {
-  textureLoad_cece6c();
+  prevent_dce.inner = textureLoad_cece6c();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp readonly image3D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_cece6c() {
+layout(binding = 0, r8) uniform highp readonly image3D arg_0;
+vec4 textureLoad_cece6c() {
   ivec3 arg_1 = ivec3(1);
   vec4 res = imageLoad(arg_0, arg_1);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
 void compute_main() {
-  textureLoad_cece6c();
+  prevent_dce.inner = textureLoad_cece6c();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +51,34 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out vec4 prevent_dce_1;
+layout(binding = 0, r8) uniform highp readonly image3D arg_0;
+vec4 textureLoad_cece6c() {
+  ivec3 arg_1 = ivec3(1);
+  vec4 res = imageLoad(arg_0, arg_1);
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureLoad_cece6c();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureLoad/d0e351.wgsl b/test/tint/builtins/gen/var/textureLoad/d0e351.wgsl
index 9bb7d27..3a5759e 100644
--- a/test/tint/builtins/gen/var/textureLoad/d0e351.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/d0e351.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32uint, read_write>;
diff --git a/test/tint/builtins/gen/var/textureLoad/d41c72.wgsl b/test/tint/builtins/gen/var/textureLoad/d41c72.wgsl
index 2208906..fbe5a50 100644
--- a/test/tint/builtins/gen/var/textureLoad/d41c72.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/d41c72.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32sint, read_write>;
diff --git a/test/tint/builtins/gen/var/textureLoad/d81c57.wgsl b/test/tint/builtins/gen/var/textureLoad/d81c57.wgsl
index 1225320..5e29f05 100644
--- a/test/tint/builtins/gen/var/textureLoad/d81c57.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/d81c57.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32float, read>;
diff --git a/test/tint/builtins/gen/var/textureLoad/d81c57.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/d81c57.wgsl.expected.glsl
index 04ec9b0..08c94f5 100644
--- a/test/tint/builtins/gen/var/textureLoad/d81c57.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/d81c57.wgsl.expected.glsl
@@ -1,83 +1,49 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp readonly image2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_d81c57() {
+layout(binding = 0, rg32f) uniform highp readonly image2D arg_0;
+vec4 textureLoad_d81c57() {
   int arg_1 = 1;
   vec4 res = imageLoad(arg_0, ivec2(arg_1, 0));
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureLoad_d81c57();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp readonly image2D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
-void textureLoad_d81c57() {
-  int arg_1 = 1;
-  vec4 res = imageLoad(arg_0, ivec2(arg_1, 0));
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
 
 void fragment_main() {
-  textureLoad_d81c57();
+  prevent_dce.inner = textureLoad_d81c57();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp readonly image2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_d81c57() {
+layout(binding = 0, rg32f) uniform highp readonly image2D arg_0;
+vec4 textureLoad_d81c57() {
   int arg_1 = 1;
   vec4 res = imageLoad(arg_0, ivec2(arg_1, 0));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
 void compute_main() {
-  textureLoad_d81c57();
+  prevent_dce.inner = textureLoad_d81c57();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +51,34 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out vec4 prevent_dce_1;
+layout(binding = 0, rg32f) uniform highp readonly image2D arg_0;
+vec4 textureLoad_d81c57() {
+  int arg_1 = 1;
+  vec4 res = imageLoad(arg_0, ivec2(arg_1, 0));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureLoad_d81c57();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureLoad/d8617f.wgsl b/test/tint/builtins/gen/var/textureLoad/d8617f.wgsl
index 670792e..8158bec 100644
--- a/test/tint/builtins/gen/var/textureLoad/d8617f.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/d8617f.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32sint, read>;
diff --git a/test/tint/builtins/gen/var/textureLoad/d8617f.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/d8617f.wgsl.expected.glsl
index e88d4cd..87b0587 100644
--- a/test/tint/builtins/gen/var/textureLoad/d8617f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/d8617f.wgsl.expected.glsl
@@ -1,86 +1,51 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp readonly iimage2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec4 inner;
 } prevent_dce;
 
-void textureLoad_d8617f() {
+layout(binding = 0, rg32i) uniform highp readonly iimage2DArray arg_0;
+ivec4 textureLoad_d8617f() {
   ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
   ivec4 res = imageLoad(arg_0, ivec3(arg_1, arg_2));
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureLoad_d8617f();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp readonly iimage2DArray arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
-void textureLoad_d8617f() {
-  ivec2 arg_1 = ivec2(1);
-  int arg_2 = 1;
-  ivec4 res = imageLoad(arg_0, ivec3(arg_1, arg_2));
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  ivec4 prevent_dce;
+};
 
 void fragment_main() {
-  textureLoad_d8617f();
+  prevent_dce.inner = textureLoad_d8617f();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp readonly iimage2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec4 inner;
 } prevent_dce;
 
-void textureLoad_d8617f() {
+layout(binding = 0, rg32i) uniform highp readonly iimage2DArray arg_0;
+ivec4 textureLoad_d8617f() {
   ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
   ivec4 res = imageLoad(arg_0, ivec3(arg_1, arg_2));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  ivec4 prevent_dce;
+};
+
 void compute_main() {
-  textureLoad_d8617f();
+  prevent_dce.inner = textureLoad_d8617f();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -88,10 +53,35 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out ivec4 prevent_dce_1;
+layout(binding = 0, rg32i) uniform highp readonly iimage2DArray arg_0;
+ivec4 textureLoad_d8617f() {
+  ivec2 arg_1 = ivec2(1);
+  int arg_2 = 1;
+  ivec4 res = imageLoad(arg_0, ivec3(arg_1, arg_2));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  ivec4 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), ivec4(0, 0, 0, 0));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureLoad_d8617f();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureLoad/dd8776.wgsl b/test/tint/builtins/gen/var/textureLoad/dd8776.wgsl
index 7cc58a5..8cf1a67 100644
--- a/test/tint/builtins/gen/var/textureLoad/dd8776.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/dd8776.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32float, read>;
diff --git a/test/tint/builtins/gen/var/textureLoad/dd8776.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/dd8776.wgsl.expected.glsl
index 4087ca9..d052849 100644
--- a/test/tint/builtins/gen/var/textureLoad/dd8776.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/dd8776.wgsl.expected.glsl
@@ -1,86 +1,51 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp readonly image2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_dd8776() {
+layout(binding = 0, rg32f) uniform highp readonly image2DArray arg_0;
+vec4 textureLoad_dd8776() {
   uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
   vec4 res = imageLoad(arg_0, ivec3(uvec3(arg_1, arg_2)));
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureLoad_dd8776();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp readonly image2DArray arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
-void textureLoad_dd8776() {
-  uvec2 arg_1 = uvec2(1u);
-  uint arg_2 = 1u;
-  vec4 res = imageLoad(arg_0, ivec3(uvec3(arg_1, arg_2)));
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
 
 void fragment_main() {
-  textureLoad_dd8776();
+  prevent_dce.inner = textureLoad_dd8776();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp readonly image2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_dd8776() {
+layout(binding = 0, rg32f) uniform highp readonly image2DArray arg_0;
+vec4 textureLoad_dd8776() {
   uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
   vec4 res = imageLoad(arg_0, ivec3(uvec3(arg_1, arg_2)));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
 void compute_main() {
-  textureLoad_dd8776();
+  prevent_dce.inner = textureLoad_dd8776();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -88,10 +53,35 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out vec4 prevent_dce_1;
+layout(binding = 0, rg32f) uniform highp readonly image2DArray arg_0;
+vec4 textureLoad_dd8776() {
+  uvec2 arg_1 = uvec2(1u);
+  uint arg_2 = 1u;
+  vec4 res = imageLoad(arg_0, ivec3(uvec3(arg_1, arg_2)));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureLoad_dd8776();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureLoad/defd9a.wgsl b/test/tint/builtins/gen/var/textureLoad/defd9a.wgsl
index 8b6e079..38b3d1f 100644
--- a/test/tint/builtins/gen/var/textureLoad/defd9a.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/defd9a.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32float, read_write>;
diff --git a/test/tint/builtins/gen/var/textureLoad/e2b3a1.wgsl b/test/tint/builtins/gen/var/textureLoad/e2b3a1.wgsl
index 21903b3..982b08d 100644
--- a/test/tint/builtins/gen/var/textureLoad/e2b3a1.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/e2b3a1.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32sint, read_write>;
diff --git a/test/tint/builtins/gen/var/textureLoad/e4051a.wgsl b/test/tint/builtins/gen/var/textureLoad/e4051a.wgsl
index 513a977..8201143 100644
--- a/test/tint/builtins/gen/var/textureLoad/e4051a.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/e4051a.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
diff --git a/test/tint/builtins/gen/var/textureLoad/e59fdf.wgsl b/test/tint/builtins/gen/var/textureLoad/e59fdf.wgsl
index 1bdf370..655447a 100644
--- a/test/tint/builtins/gen/var/textureLoad/e59fdf.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/e59fdf.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32uint, read>;
diff --git a/test/tint/builtins/gen/var/textureLoad/e59fdf.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/e59fdf.wgsl.expected.glsl
index ea6afbb..3f54f6e 100644
--- a/test/tint/builtins/gen/var/textureLoad/e59fdf.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/e59fdf.wgsl.expected.glsl
@@ -1,83 +1,49 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp readonly uimage3D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec4 inner;
 } prevent_dce;
 
-void textureLoad_e59fdf() {
+layout(binding = 0, rg32ui) uniform highp readonly uimage3D arg_0;
+uvec4 textureLoad_e59fdf() {
   uvec3 arg_1 = uvec3(1u);
   uvec4 res = imageLoad(arg_0, ivec3(arg_1));
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureLoad_e59fdf();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp readonly uimage3D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
-void textureLoad_e59fdf() {
-  uvec3 arg_1 = uvec3(1u);
-  uvec4 res = imageLoad(arg_0, ivec3(arg_1));
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  uvec4 prevent_dce;
+};
 
 void fragment_main() {
-  textureLoad_e59fdf();
+  prevent_dce.inner = textureLoad_e59fdf();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp readonly uimage3D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec4 inner;
 } prevent_dce;
 
-void textureLoad_e59fdf() {
+layout(binding = 0, rg32ui) uniform highp readonly uimage3D arg_0;
+uvec4 textureLoad_e59fdf() {
   uvec3 arg_1 = uvec3(1u);
   uvec4 res = imageLoad(arg_0, ivec3(arg_1));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec4 prevent_dce;
+};
+
 void compute_main() {
-  textureLoad_e59fdf();
+  prevent_dce.inner = textureLoad_e59fdf();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +51,34 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out uvec4 prevent_dce_1;
+layout(binding = 0, rg32ui) uniform highp readonly uimage3D arg_0;
+uvec4 textureLoad_e59fdf() {
+  uvec3 arg_1 = uvec3(1u);
+  uvec4 res = imageLoad(arg_0, ivec3(arg_1));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uvec4 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), uvec4(0u, 0u, 0u, 0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureLoad_e59fdf();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureLoad/e65916.wgsl b/test/tint/builtins/gen/var/textureLoad/e65916.wgsl
index 07e2528..3aa101e 100644
--- a/test/tint/builtins/gen/var/textureLoad/e65916.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/e65916.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32sint, read>;
diff --git a/test/tint/builtins/gen/var/textureLoad/e65916.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/e65916.wgsl.expected.glsl
index 5c4a985..ebbb92f 100644
--- a/test/tint/builtins/gen/var/textureLoad/e65916.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/e65916.wgsl.expected.glsl
@@ -1,83 +1,49 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp readonly iimage3D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec4 inner;
 } prevent_dce;
 
-void textureLoad_e65916() {
+layout(binding = 0, rg32i) uniform highp readonly iimage3D arg_0;
+ivec4 textureLoad_e65916() {
   ivec3 arg_1 = ivec3(1);
   ivec4 res = imageLoad(arg_0, arg_1);
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureLoad_e65916();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp readonly iimage3D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
-void textureLoad_e65916() {
-  ivec3 arg_1 = ivec3(1);
-  ivec4 res = imageLoad(arg_0, arg_1);
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  ivec4 prevent_dce;
+};
 
 void fragment_main() {
-  textureLoad_e65916();
+  prevent_dce.inner = textureLoad_e65916();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp readonly iimage3D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec4 inner;
 } prevent_dce;
 
-void textureLoad_e65916() {
+layout(binding = 0, rg32i) uniform highp readonly iimage3D arg_0;
+ivec4 textureLoad_e65916() {
   ivec3 arg_1 = ivec3(1);
   ivec4 res = imageLoad(arg_0, arg_1);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  ivec4 prevent_dce;
+};
+
 void compute_main() {
-  textureLoad_e65916();
+  prevent_dce.inner = textureLoad_e65916();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +51,34 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out ivec4 prevent_dce_1;
+layout(binding = 0, rg32i) uniform highp readonly iimage3D arg_0;
+ivec4 textureLoad_e65916() {
+  ivec3 arg_1 = ivec3(1);
+  ivec4 res = imageLoad(arg_0, arg_1);
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  ivec4 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), ivec4(0, 0, 0, 0));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureLoad_e65916();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureLoad/ed55a8.wgsl b/test/tint/builtins/gen/var/textureLoad/ed55a8.wgsl
index 4cd3354..cd195f1 100644
--- a/test/tint/builtins/gen/var/textureLoad/ed55a8.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/ed55a8.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32sint, read_write>;
diff --git a/test/tint/builtins/gen/var/textureLoad/eecf7d.wgsl b/test/tint/builtins/gen/var/textureLoad/eecf7d.wgsl
index f08cc12..1dcfda1 100644
--- a/test/tint/builtins/gen/var/textureLoad/eecf7d.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/eecf7d.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32uint, read>;
diff --git a/test/tint/builtins/gen/var/textureLoad/eecf7d.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/eecf7d.wgsl.expected.glsl
index 034b6d5..6476c10 100644
--- a/test/tint/builtins/gen/var/textureLoad/eecf7d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/eecf7d.wgsl.expected.glsl
@@ -1,86 +1,51 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp readonly uimage2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec4 inner;
 } prevent_dce;
 
-void textureLoad_eecf7d() {
+layout(binding = 0, rg32ui) uniform highp readonly uimage2DArray arg_0;
+uvec4 textureLoad_eecf7d() {
   ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
   uvec4 res = imageLoad(arg_0, ivec3(arg_1, int(arg_2)));
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureLoad_eecf7d();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp readonly uimage2DArray arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
-void textureLoad_eecf7d() {
-  ivec2 arg_1 = ivec2(1);
-  uint arg_2 = 1u;
-  uvec4 res = imageLoad(arg_0, ivec3(arg_1, int(arg_2)));
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  uvec4 prevent_dce;
+};
 
 void fragment_main() {
-  textureLoad_eecf7d();
+  prevent_dce.inner = textureLoad_eecf7d();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp readonly uimage2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec4 inner;
 } prevent_dce;
 
-void textureLoad_eecf7d() {
+layout(binding = 0, rg32ui) uniform highp readonly uimage2DArray arg_0;
+uvec4 textureLoad_eecf7d() {
   ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
   uvec4 res = imageLoad(arg_0, ivec3(arg_1, int(arg_2)));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec4 prevent_dce;
+};
+
 void compute_main() {
-  textureLoad_eecf7d();
+  prevent_dce.inner = textureLoad_eecf7d();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -88,10 +53,35 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out uvec4 prevent_dce_1;
+layout(binding = 0, rg32ui) uniform highp readonly uimage2DArray arg_0;
+uvec4 textureLoad_eecf7d() {
+  ivec2 arg_1 = ivec2(1);
+  uint arg_2 = 1u;
+  uvec4 res = imageLoad(arg_0, ivec3(arg_1, int(arg_2)));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uvec4 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), uvec4(0u, 0u, 0u, 0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureLoad_eecf7d();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureLoad/ef2ec3.wgsl b/test/tint/builtins/gen/var/textureLoad/ef2ec3.wgsl
index f2a03f6..4d461f1 100644
--- a/test/tint/builtins/gen/var/textureLoad/ef2ec3.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/ef2ec3.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32sint, read_write>;
diff --git a/test/tint/builtins/gen/var/textureLoad/ef5405.wgsl b/test/tint/builtins/gen/var/textureLoad/ef5405.wgsl
index 3232d78..5252a0e 100644
--- a/test/tint/builtins/gen/var/textureLoad/ef5405.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/ef5405.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32uint, read>;
diff --git a/test/tint/builtins/gen/var/textureLoad/ef5405.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/ef5405.wgsl.expected.glsl
index 55ad2de..27e2779 100644
--- a/test/tint/builtins/gen/var/textureLoad/ef5405.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/ef5405.wgsl.expected.glsl
@@ -1,83 +1,49 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp readonly uimage3D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec4 inner;
 } prevent_dce;
 
-void textureLoad_ef5405() {
+layout(binding = 0, rg32ui) uniform highp readonly uimage3D arg_0;
+uvec4 textureLoad_ef5405() {
   ivec3 arg_1 = ivec3(1);
   uvec4 res = imageLoad(arg_0, arg_1);
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureLoad_ef5405();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp readonly uimage3D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
-void textureLoad_ef5405() {
-  ivec3 arg_1 = ivec3(1);
-  uvec4 res = imageLoad(arg_0, arg_1);
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  uvec4 prevent_dce;
+};
 
 void fragment_main() {
-  textureLoad_ef5405();
+  prevent_dce.inner = textureLoad_ef5405();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp readonly uimage3D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec4 inner;
 } prevent_dce;
 
-void textureLoad_ef5405() {
+layout(binding = 0, rg32ui) uniform highp readonly uimage3D arg_0;
+uvec4 textureLoad_ef5405() {
   ivec3 arg_1 = ivec3(1);
   uvec4 res = imageLoad(arg_0, arg_1);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uvec4 prevent_dce;
+};
+
 void compute_main() {
-  textureLoad_ef5405();
+  prevent_dce.inner = textureLoad_ef5405();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +51,34 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out uvec4 prevent_dce_1;
+layout(binding = 0, rg32ui) uniform highp readonly uimage3D arg_0;
+uvec4 textureLoad_ef5405() {
+  ivec3 arg_1 = ivec3(1);
+  uvec4 res = imageLoad(arg_0, arg_1);
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uvec4 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), uvec4(0u, 0u, 0u, 0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureLoad_ef5405();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureLoad/f2bdd4.wgsl b/test/tint/builtins/gen/var/textureLoad/f2bdd4.wgsl
index 578a323..34eff8f 100644
--- a/test/tint/builtins/gen/var/textureLoad/f2bdd4.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/f2bdd4.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
diff --git a/test/tint/builtins/gen/var/textureLoad/f5aee2.wgsl b/test/tint/builtins/gen/var/textureLoad/f5aee2.wgsl
index 53cbf36..fc328f9 100644
--- a/test/tint/builtins/gen/var/textureLoad/f5aee2.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/f5aee2.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
diff --git a/test/tint/builtins/gen/var/textureLoad/f5aee2.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/f5aee2.wgsl.expected.glsl
index 99c5f2a..cf85b56 100644
--- a/test/tint/builtins/gen/var/textureLoad/f5aee2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/f5aee2.wgsl.expected.glsl
@@ -1,83 +1,49 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp readonly image2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_f5aee2() {
+layout(binding = 0, r8) uniform highp readonly image2D arg_0;
+vec4 textureLoad_f5aee2() {
   uvec2 arg_1 = uvec2(1u);
   vec4 res = imageLoad(arg_0, ivec2(arg_1));
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureLoad_f5aee2();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp readonly image2D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
-void textureLoad_f5aee2() {
-  uvec2 arg_1 = uvec2(1u);
-  vec4 res = imageLoad(arg_0, ivec2(arg_1));
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
 
 void fragment_main() {
-  textureLoad_f5aee2();
+  prevent_dce.inner = textureLoad_f5aee2();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp readonly image2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_f5aee2() {
+layout(binding = 0, r8) uniform highp readonly image2D arg_0;
+vec4 textureLoad_f5aee2() {
   uvec2 arg_1 = uvec2(1u);
   vec4 res = imageLoad(arg_0, ivec2(arg_1));
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
 void compute_main() {
-  textureLoad_f5aee2();
+  prevent_dce.inner = textureLoad_f5aee2();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +51,34 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out vec4 prevent_dce_1;
+layout(binding = 0, r8) uniform highp readonly image2D arg_0;
+vec4 textureLoad_f5aee2() {
+  uvec2 arg_1 = uvec2(1u);
+  vec4 res = imageLoad(arg_0, ivec2(arg_1));
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureLoad_f5aee2();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureLoad/f74bd8.wgsl b/test/tint/builtins/gen/var/textureLoad/f74bd8.wgsl
index fe4b5a7..7f534b9 100644
--- a/test/tint/builtins/gen/var/textureLoad/f74bd8.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/f74bd8.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
 
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32float, read>;
diff --git a/test/tint/builtins/gen/var/textureLoad/f74bd8.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/f74bd8.wgsl.expected.glsl
index d8111e7..4d1c627 100644
--- a/test/tint/builtins/gen/var/textureLoad/f74bd8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/f74bd8.wgsl.expected.glsl
@@ -1,83 +1,49 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp readonly image3D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_f74bd8() {
+layout(binding = 0, rg32f) uniform highp readonly image3D arg_0;
+vec4 textureLoad_f74bd8() {
   ivec3 arg_1 = ivec3(1);
   vec4 res = imageLoad(arg_0, arg_1);
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureLoad_f74bd8();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp readonly image3D arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
-void textureLoad_f74bd8() {
-  ivec3 arg_1 = ivec3(1);
-  vec4 res = imageLoad(arg_0, arg_1);
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
 
 void fragment_main() {
-  textureLoad_f74bd8();
+  prevent_dce.inner = textureLoad_f74bd8();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp readonly image3D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_f74bd8() {
+layout(binding = 0, rg32f) uniform highp readonly image3D arg_0;
+vec4 textureLoad_f74bd8() {
   ivec3 arg_1 = ivec3(1);
   vec4 res = imageLoad(arg_0, arg_1);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
 void compute_main() {
-  textureLoad_f74bd8();
+  prevent_dce.inner = textureLoad_f74bd8();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +51,34 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out vec4 prevent_dce_1;
+layout(binding = 0, rg32f) uniform highp readonly image3D arg_0;
+vec4 textureLoad_f74bd8() {
+  ivec3 arg_1 = ivec3(1);
+  vec4 res = imageLoad(arg_0, arg_1);
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureLoad_f74bd8();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureNumLayers/071ebc.wgsl b/test/tint/builtins/gen/var/textureNumLayers/071ebc.wgsl
index daa0621..338675b 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/071ebc.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/071ebc.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32uint, write>;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/071ebc.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/071ebc.wgsl.expected.glsl
index f4307a67..bbcc1c4 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/071ebc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/071ebc.wgsl.expected.glsl
@@ -1,80 +1,37 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureNumLayers_071ebc() {
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2DArray arg_0;
+uint textureNumLayers_071ebc() {
   uint res = uint(imageSize(arg_0).z);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureNumLayers_071ebc();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp writeonly uimage2DArray arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
-void textureNumLayers_071ebc() {
-  uint res = uint(imageSize(arg_0).z);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureNumLayers_071ebc();
+  prevent_dce.inner = textureNumLayers_071ebc();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureNumLayers_071ebc() {
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2DArray arg_0;
+uint textureNumLayers_071ebc() {
   uint res = uint(imageSize(arg_0).z);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureNumLayers_071ebc();
+  prevent_dce.inner = textureNumLayers_071ebc();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +39,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureNumLayers/071ebc.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureNumLayers/071ebc.wgsl.expected.ir.glsl
index c7310b2..4e584f8 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/071ebc.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/071ebc.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2DArray arg_0;
+uint textureNumLayers_071ebc() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_071ebc();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2DArray arg_0;
+uint textureNumLayers_071ebc() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureNumLayers_071ebc();
+}
diff --git a/test/tint/builtins/gen/var/textureNumLayers/17ccad.wgsl b/test/tint/builtins/gen/var/textureNumLayers/17ccad.wgsl
index f175533..b0dfc84 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/17ccad.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/17ccad.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32float, read_write>;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/17ccad.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/17ccad.wgsl.expected.glsl
index 5fb990b..f5b9bb6 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/17ccad.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/17ccad.wgsl.expected.glsl
@@ -1,80 +1,37 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureNumLayers_17ccad() {
+layout(binding = 0, rg32f) uniform highp writeonly image2DArray arg_0;
+uint textureNumLayers_17ccad() {
   uint res = uint(imageSize(arg_0).z);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureNumLayers_17ccad();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp writeonly image2DArray arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
-void textureNumLayers_17ccad() {
-  uint res = uint(imageSize(arg_0).z);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureNumLayers_17ccad();
+  prevent_dce.inner = textureNumLayers_17ccad();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureNumLayers_17ccad() {
+layout(binding = 0, rg32f) uniform highp writeonly image2DArray arg_0;
+uint textureNumLayers_17ccad() {
   uint res = uint(imageSize(arg_0).z);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureNumLayers_17ccad();
+  prevent_dce.inner = textureNumLayers_17ccad();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +39,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureNumLayers/24d572.wgsl b/test/tint/builtins/gen/var/textureNumLayers/24d572.wgsl
index aafb7a6..6813e87 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/24d572.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/24d572.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32uint, read_write>;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/24d572.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/24d572.wgsl.expected.glsl
index 2a5c2b9..e19a925 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/24d572.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/24d572.wgsl.expected.glsl
@@ -1,80 +1,37 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureNumLayers_24d572() {
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2DArray arg_0;
+uint textureNumLayers_24d572() {
   uint res = uint(imageSize(arg_0).z);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureNumLayers_24d572();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp writeonly uimage2DArray arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
-void textureNumLayers_24d572() {
-  uint res = uint(imageSize(arg_0).z);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureNumLayers_24d572();
+  prevent_dce.inner = textureNumLayers_24d572();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureNumLayers_24d572() {
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2DArray arg_0;
+uint textureNumLayers_24d572() {
   uint res = uint(imageSize(arg_0).z);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureNumLayers_24d572();
+  prevent_dce.inner = textureNumLayers_24d572();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +39,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureNumLayers/2d95ea.wgsl b/test/tint/builtins/gen/var/textureNumLayers/2d95ea.wgsl
index 191e63c..e9fece3 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/2d95ea.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/2d95ea.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32uint, read>;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/2d95ea.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/2d95ea.wgsl.expected.glsl
index 449c31b..0af6da6 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/2d95ea.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/2d95ea.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp readonly uimage2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureNumLayers_2d95ea() {
+layout(binding = 0, rg32ui) uniform highp readonly uimage2DArray arg_0;
+uint textureNumLayers_2d95ea() {
   uint res = uint(imageSize(arg_0).z);
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureNumLayers_2d95ea();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp readonly uimage2DArray arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
-void textureNumLayers_2d95ea() {
-  uint res = uint(imageSize(arg_0).z);
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
 
 void fragment_main() {
-  textureNumLayers_2d95ea();
+  prevent_dce.inner = textureNumLayers_2d95ea();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp readonly uimage2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureNumLayers_2d95ea() {
+layout(binding = 0, rg32ui) uniform highp readonly uimage2DArray arg_0;
+uint textureNumLayers_2d95ea() {
   uint res = uint(imageSize(arg_0).z);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
 void compute_main() {
-  textureNumLayers_2d95ea();
+  prevent_dce.inner = textureNumLayers_2d95ea();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out uint prevent_dce_1;
+layout(binding = 0, rg32ui) uniform highp readonly uimage2DArray arg_0;
+uint textureNumLayers_2d95ea() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), 0u);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureNumLayers_2d95ea();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureNumLayers/2d95ea.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureNumLayers/2d95ea.wgsl.expected.ir.glsl
index c7310b2..d576bac 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/2d95ea.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/2d95ea.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, rg32ui) uniform highp readonly uimage2DArray arg_0;
+uint textureNumLayers_2d95ea() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_2d95ea();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, rg32ui) uniform highp readonly uimage2DArray arg_0;
+uint textureNumLayers_2d95ea() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureNumLayers_2d95ea();
+}
+#version 460
+
+
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
+layout(binding = 0, rg32ui) uniform highp readonly uimage2DArray arg_0;
+layout(location = 0) flat out uint vertex_main_loc0_Output;
+uint textureNumLayers_2d95ea() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), 0u);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureNumLayers_2d95ea();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/textureNumLayers/34cefa.wgsl b/test/tint/builtins/gen/var/textureNumLayers/34cefa.wgsl
index d6334d8..6e726be 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/34cefa.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/34cefa.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
 
 @group(1) @binding(0) var arg_0: texture_cube_array<f32>;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/34cefa.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/34cefa.wgsl.expected.glsl
index fefaea1..ab4341e 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/34cefa.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/34cefa.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-uniform highp samplerCubeArray arg_0_1;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureNumLayers_34cefa() {
-  uint res = uint(textureSize(arg_0_1, 0).z);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureNumLayers_34cefa();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
 uniform highp samplerCubeArray arg_0_1;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
-void textureNumLayers_34cefa() {
+uint textureNumLayers_34cefa() {
   uint res = uint(textureSize(arg_0_1, 0).z);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
 void fragment_main() {
-  textureNumLayers_34cefa();
+  prevent_dce.inner = textureNumLayers_34cefa();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-uniform highp samplerCubeArray arg_0_1;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureNumLayers_34cefa() {
+uniform highp samplerCubeArray arg_0_1;
+uint textureNumLayers_34cefa() {
   uint res = uint(textureSize(arg_0_1, 0).z);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
 void compute_main() {
-  textureNumLayers_34cefa();
+  prevent_dce.inner = textureNumLayers_34cefa();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
+layout(location = 0) flat out uint prevent_dce_1;
+uniform highp samplerCubeArray arg_0_1;
+uint textureNumLayers_34cefa() {
+  uint res = uint(textureSize(arg_0_1, 0).z);
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), 0u);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureNumLayers_34cefa();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureNumLayers/34cefa.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureNumLayers/34cefa.wgsl.expected.ir.glsl
index c7310b2..123faa5 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/34cefa.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/34cefa.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+uniform highp samplerCubeArray arg_0;
+uint textureNumLayers_34cefa() {
+  uint res = uint(textureSize(arg_0, 0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_34cefa();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+uniform highp samplerCubeArray arg_0;
+uint textureNumLayers_34cefa() {
+  uint res = uint(textureSize(arg_0, 0).z);
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureNumLayers_34cefa();
+}
+#version 460
+
+
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
+uniform highp samplerCubeArray arg_0;
+layout(location = 0) flat out uint vertex_main_loc0_Output;
+uint textureNumLayers_34cefa() {
+  uint res = uint(textureSize(arg_0, 0).z);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), 0u);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureNumLayers_34cefa();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/textureNumLayers/3580ab.wgsl b/test/tint/builtins/gen/var/textureNumLayers/3580ab.wgsl
index 0a776b1..8d89765 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/3580ab.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/3580ab.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32sint, write>;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/3580ab.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/3580ab.wgsl.expected.glsl
index 91a14c6..827e229 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/3580ab.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/3580ab.wgsl.expected.glsl
@@ -1,80 +1,37 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureNumLayers_3580ab() {
+layout(binding = 0, rg32i) uniform highp writeonly iimage2DArray arg_0;
+uint textureNumLayers_3580ab() {
   uint res = uint(imageSize(arg_0).z);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureNumLayers_3580ab();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp writeonly iimage2DArray arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
-void textureNumLayers_3580ab() {
-  uint res = uint(imageSize(arg_0).z);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureNumLayers_3580ab();
+  prevent_dce.inner = textureNumLayers_3580ab();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureNumLayers_3580ab() {
+layout(binding = 0, rg32i) uniform highp writeonly iimage2DArray arg_0;
+uint textureNumLayers_3580ab() {
   uint res = uint(imageSize(arg_0).z);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureNumLayers_3580ab();
+  prevent_dce.inner = textureNumLayers_3580ab();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +39,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureNumLayers/3580ab.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureNumLayers/3580ab.wgsl.expected.ir.glsl
index c7310b2..4e1ffdc 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/3580ab.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/3580ab.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, rg32i) uniform highp writeonly iimage2DArray arg_0;
+uint textureNumLayers_3580ab() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_3580ab();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, rg32i) uniform highp writeonly iimage2DArray arg_0;
+uint textureNumLayers_3580ab() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureNumLayers_3580ab();
+}
diff --git a/test/tint/builtins/gen/var/textureNumLayers/48ef47.wgsl b/test/tint/builtins/gen/var/textureNumLayers/48ef47.wgsl
index b575761..bd50f0d 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/48ef47.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/48ef47.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
 
 @group(1) @binding(0) var arg_0: texture_depth_cube_array;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/48ef47.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/48ef47.wgsl.expected.glsl
index 2f19a4d..e0309de 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/48ef47.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/48ef47.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-uniform highp samplerCubeArray arg_0_1;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureNumLayers_48ef47() {
-  uint res = uint(textureSize(arg_0_1, 0).z);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureNumLayers_48ef47();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
 uniform highp samplerCubeArray arg_0_1;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
-void textureNumLayers_48ef47() {
+uint textureNumLayers_48ef47() {
   uint res = uint(textureSize(arg_0_1, 0).z);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
 void fragment_main() {
-  textureNumLayers_48ef47();
+  prevent_dce.inner = textureNumLayers_48ef47();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-uniform highp samplerCubeArray arg_0_1;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureNumLayers_48ef47() {
+uniform highp samplerCubeArray arg_0_1;
+uint textureNumLayers_48ef47() {
   uint res = uint(textureSize(arg_0_1, 0).z);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
 void compute_main() {
-  textureNumLayers_48ef47();
+  prevent_dce.inner = textureNumLayers_48ef47();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
+layout(location = 0) flat out uint prevent_dce_1;
+uniform highp samplerCubeArray arg_0_1;
+uint textureNumLayers_48ef47() {
+  uint res = uint(textureSize(arg_0_1, 0).z);
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), 0u);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureNumLayers_48ef47();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureNumLayers/48ef47.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureNumLayers/48ef47.wgsl.expected.ir.glsl
index c7310b2..2972baf 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/48ef47.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/48ef47.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+uniform highp samplerCubeArrayShadow arg_0;
+uint textureNumLayers_48ef47() {
+  uint res = uint(textureSize(arg_0, 0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_48ef47();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+uniform highp samplerCubeArrayShadow arg_0;
+uint textureNumLayers_48ef47() {
+  uint res = uint(textureSize(arg_0, 0).z);
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureNumLayers_48ef47();
+}
+#version 460
+
+
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
+uniform highp samplerCubeArrayShadow arg_0;
+layout(location = 0) flat out uint vertex_main_loc0_Output;
+uint textureNumLayers_48ef47() {
+  uint res = uint(textureSize(arg_0, 0).z);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), 0u);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureNumLayers_48ef47();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/textureNumLayers/59cc27.wgsl b/test/tint/builtins/gen/var/textureNumLayers/59cc27.wgsl
index 6a651ce..2c08347 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/59cc27.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/59cc27.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 
 @group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/59cc27.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/59cc27.wgsl.expected.glsl
index 54839d4..6a9daf8 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/59cc27.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/59cc27.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp readonly image2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureNumLayers_59cc27() {
+layout(binding = 0, r8) uniform highp readonly image2DArray arg_0;
+uint textureNumLayers_59cc27() {
   uint res = uint(imageSize(arg_0).z);
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureNumLayers_59cc27();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp readonly image2DArray arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
-void textureNumLayers_59cc27() {
-  uint res = uint(imageSize(arg_0).z);
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
 
 void fragment_main() {
-  textureNumLayers_59cc27();
+  prevent_dce.inner = textureNumLayers_59cc27();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp readonly image2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureNumLayers_59cc27() {
+layout(binding = 0, r8) uniform highp readonly image2DArray arg_0;
+uint textureNumLayers_59cc27() {
   uint res = uint(imageSize(arg_0).z);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
 void compute_main() {
-  textureNumLayers_59cc27();
+  prevent_dce.inner = textureNumLayers_59cc27();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out uint prevent_dce_1;
+layout(binding = 0, r8) uniform highp readonly image2DArray arg_0;
+uint textureNumLayers_59cc27() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), 0u);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureNumLayers_59cc27();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureNumLayers/59cc27.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureNumLayers/59cc27.wgsl.expected.ir.glsl
index c7310b2..fab7bd6 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/59cc27.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/59cc27.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, r8) uniform highp readonly image2DArray arg_0;
+uint textureNumLayers_59cc27() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_59cc27();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, r8) uniform highp readonly image2DArray arg_0;
+uint textureNumLayers_59cc27() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureNumLayers_59cc27();
+}
+#version 460
+
+
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
+layout(binding = 0, r8) uniform highp readonly image2DArray arg_0;
+layout(location = 0) flat out uint vertex_main_loc0_Output;
+uint textureNumLayers_59cc27() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), 0u);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureNumLayers_59cc27();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/textureNumLayers/622aa2.wgsl b/test/tint/builtins/gen/var/textureNumLayers/622aa2.wgsl
index 6f020cb..a69a069 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/622aa2.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/622aa2.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32sint, read_write>;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/622aa2.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/622aa2.wgsl.expected.glsl
index f5fcbd2..ad05818 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/622aa2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/622aa2.wgsl.expected.glsl
@@ -1,80 +1,37 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureNumLayers_622aa2() {
+layout(binding = 0, rg32i) uniform highp writeonly iimage2DArray arg_0;
+uint textureNumLayers_622aa2() {
   uint res = uint(imageSize(arg_0).z);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureNumLayers_622aa2();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp writeonly iimage2DArray arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
-void textureNumLayers_622aa2() {
-  uint res = uint(imageSize(arg_0).z);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureNumLayers_622aa2();
+  prevent_dce.inner = textureNumLayers_622aa2();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureNumLayers_622aa2() {
+layout(binding = 0, rg32i) uniform highp writeonly iimage2DArray arg_0;
+uint textureNumLayers_622aa2() {
   uint res = uint(imageSize(arg_0).z);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureNumLayers_622aa2();
+  prevent_dce.inner = textureNumLayers_622aa2();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +39,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureNumLayers/6b4321.wgsl b/test/tint/builtins/gen/var/textureNumLayers/6b4321.wgsl
index 5786afa..4c5b99d 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/6b4321.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/6b4321.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
 
 @group(1) @binding(0) var arg_0: texture_cube_array<i32>;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/6b4321.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/6b4321.wgsl.expected.glsl
index ce3296f..87eb908 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/6b4321.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/6b4321.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-uniform highp isamplerCubeArray arg_0_1;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureNumLayers_6b4321() {
-  uint res = uint(textureSize(arg_0_1, 0).z);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureNumLayers_6b4321();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'isamplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
 uniform highp isamplerCubeArray arg_0_1;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
-void textureNumLayers_6b4321() {
+uint textureNumLayers_6b4321() {
   uint res = uint(textureSize(arg_0_1, 0).z);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
 void fragment_main() {
-  textureNumLayers_6b4321();
+  prevent_dce.inner = textureNumLayers_6b4321();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'isamplerCubeArray' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-uniform highp isamplerCubeArray arg_0_1;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureNumLayers_6b4321() {
+uniform highp isamplerCubeArray arg_0_1;
+uint textureNumLayers_6b4321() {
   uint res = uint(textureSize(arg_0_1, 0).z);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
 void compute_main() {
-  textureNumLayers_6b4321();
+  prevent_dce.inner = textureNumLayers_6b4321();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'isamplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
+layout(location = 0) flat out uint prevent_dce_1;
+uniform highp isamplerCubeArray arg_0_1;
+uint textureNumLayers_6b4321() {
+  uint res = uint(textureSize(arg_0_1, 0).z);
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), 0u);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureNumLayers_6b4321();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureNumLayers/6b4321.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureNumLayers/6b4321.wgsl.expected.ir.glsl
index c7310b2..c884052 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/6b4321.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/6b4321.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+uniform highp isamplerCubeArray arg_0;
+uint textureNumLayers_6b4321() {
+  uint res = uint(textureSize(arg_0, 0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_6b4321();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+uniform highp isamplerCubeArray arg_0;
+uint textureNumLayers_6b4321() {
+  uint res = uint(textureSize(arg_0, 0).z);
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureNumLayers_6b4321();
+}
+#version 460
+
+
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
+uniform highp isamplerCubeArray arg_0;
+layout(location = 0) flat out uint vertex_main_loc0_Output;
+uint textureNumLayers_6b4321() {
+  uint res = uint(textureSize(arg_0, 0).z);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), 0u);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureNumLayers_6b4321();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/textureNumLayers/7f28cf.wgsl b/test/tint/builtins/gen/var/textureNumLayers/7f28cf.wgsl
index 064e334..4830637 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/7f28cf.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/7f28cf.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32float, write>;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/7f28cf.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/7f28cf.wgsl.expected.glsl
index dfe709b..7637f3a 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/7f28cf.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/7f28cf.wgsl.expected.glsl
@@ -1,80 +1,37 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureNumLayers_7f28cf() {
+layout(binding = 0, rg32f) uniform highp writeonly image2DArray arg_0;
+uint textureNumLayers_7f28cf() {
   uint res = uint(imageSize(arg_0).z);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureNumLayers_7f28cf();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp writeonly image2DArray arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
-void textureNumLayers_7f28cf() {
-  uint res = uint(imageSize(arg_0).z);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureNumLayers_7f28cf();
+  prevent_dce.inner = textureNumLayers_7f28cf();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureNumLayers_7f28cf() {
+layout(binding = 0, rg32f) uniform highp writeonly image2DArray arg_0;
+uint textureNumLayers_7f28cf() {
   uint res = uint(imageSize(arg_0).z);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureNumLayers_7f28cf();
+  prevent_dce.inner = textureNumLayers_7f28cf();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +39,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureNumLayers/7f28cf.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureNumLayers/7f28cf.wgsl.expected.ir.glsl
index c7310b2..668afa8 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/7f28cf.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/7f28cf.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, rg32f) uniform highp writeonly image2DArray arg_0;
+uint textureNumLayers_7f28cf() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_7f28cf();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, rg32f) uniform highp writeonly image2DArray arg_0;
+uint textureNumLayers_7f28cf() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureNumLayers_7f28cf();
+}
diff --git a/test/tint/builtins/gen/var/textureNumLayers/8356f7.wgsl b/test/tint/builtins/gen/var/textureNumLayers/8356f7.wgsl
index 37e39e5..e1dee66 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/8356f7.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/8356f7.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 
 @group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/8356f7.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/8356f7.wgsl.expected.glsl
index 76782d9..15d7299 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/8356f7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/8356f7.wgsl.expected.glsl
@@ -1,80 +1,37 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp writeonly image2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureNumLayers_8356f7() {
+layout(binding = 0, r8) uniform highp writeonly image2DArray arg_0;
+uint textureNumLayers_8356f7() {
   uint res = uint(imageSize(arg_0).z);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureNumLayers_8356f7();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp writeonly image2DArray arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
-void textureNumLayers_8356f7() {
-  uint res = uint(imageSize(arg_0).z);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureNumLayers_8356f7();
+  prevent_dce.inner = textureNumLayers_8356f7();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp writeonly image2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureNumLayers_8356f7() {
+layout(binding = 0, r8) uniform highp writeonly image2DArray arg_0;
+uint textureNumLayers_8356f7() {
   uint res = uint(imageSize(arg_0).z);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureNumLayers_8356f7();
+  prevent_dce.inner = textureNumLayers_8356f7();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +39,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureNumLayers/8356f7.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureNumLayers/8356f7.wgsl.expected.ir.glsl
index c7310b2..db0e190 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/8356f7.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/8356f7.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, r8) uniform highp writeonly image2DArray arg_0;
+uint textureNumLayers_8356f7() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_8356f7();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, r8) uniform highp writeonly image2DArray arg_0;
+uint textureNumLayers_8356f7() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureNumLayers_8356f7();
+}
diff --git a/test/tint/builtins/gen/var/textureNumLayers/90b8cc.wgsl b/test/tint/builtins/gen/var/textureNumLayers/90b8cc.wgsl
index adcb962..9ce04d9 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/90b8cc.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/90b8cc.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32float, read>;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/90b8cc.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/90b8cc.wgsl.expected.glsl
index 8125766..777c68d 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/90b8cc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/90b8cc.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp readonly image2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureNumLayers_90b8cc() {
+layout(binding = 0, rg32f) uniform highp readonly image2DArray arg_0;
+uint textureNumLayers_90b8cc() {
   uint res = uint(imageSize(arg_0).z);
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureNumLayers_90b8cc();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp readonly image2DArray arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
-void textureNumLayers_90b8cc() {
-  uint res = uint(imageSize(arg_0).z);
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
 
 void fragment_main() {
-  textureNumLayers_90b8cc();
+  prevent_dce.inner = textureNumLayers_90b8cc();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp readonly image2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureNumLayers_90b8cc() {
+layout(binding = 0, rg32f) uniform highp readonly image2DArray arg_0;
+uint textureNumLayers_90b8cc() {
   uint res = uint(imageSize(arg_0).z);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
 void compute_main() {
-  textureNumLayers_90b8cc();
+  prevent_dce.inner = textureNumLayers_90b8cc();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out uint prevent_dce_1;
+layout(binding = 0, rg32f) uniform highp readonly image2DArray arg_0;
+uint textureNumLayers_90b8cc() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), 0u);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureNumLayers_90b8cc();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureNumLayers/90b8cc.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureNumLayers/90b8cc.wgsl.expected.ir.glsl
index c7310b2..5ebeb79 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/90b8cc.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/90b8cc.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, rg32f) uniform highp readonly image2DArray arg_0;
+uint textureNumLayers_90b8cc() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_90b8cc();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, rg32f) uniform highp readonly image2DArray arg_0;
+uint textureNumLayers_90b8cc() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureNumLayers_90b8cc();
+}
+#version 460
+
+
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
+layout(binding = 0, rg32f) uniform highp readonly image2DArray arg_0;
+layout(location = 0) flat out uint vertex_main_loc0_Output;
+uint textureNumLayers_90b8cc() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), 0u);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureNumLayers_90b8cc();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/textureNumLayers/aac630.wgsl b/test/tint/builtins/gen/var/textureNumLayers/aac630.wgsl
index 4fa8c85..3fbb361 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/aac630.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/aac630.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 
 @group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/aac630.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/aac630.wgsl.expected.glsl
index 2853882..8679ddd 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/aac630.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/aac630.wgsl.expected.glsl
@@ -1,80 +1,37 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp writeonly image2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureNumLayers_aac630() {
+layout(binding = 0, r8) uniform highp writeonly image2DArray arg_0;
+uint textureNumLayers_aac630() {
   uint res = uint(imageSize(arg_0).z);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureNumLayers_aac630();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp writeonly image2DArray arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
-void textureNumLayers_aac630() {
-  uint res = uint(imageSize(arg_0).z);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureNumLayers_aac630();
+  prevent_dce.inner = textureNumLayers_aac630();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp writeonly image2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureNumLayers_aac630() {
+layout(binding = 0, r8) uniform highp writeonly image2DArray arg_0;
+uint textureNumLayers_aac630() {
   uint res = uint(imageSize(arg_0).z);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureNumLayers_aac630();
+  prevent_dce.inner = textureNumLayers_aac630();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +39,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureNumLayers/bf2f76.wgsl b/test/tint/builtins/gen/var/textureNumLayers/bf2f76.wgsl
index c6ba9a1..f5a056c 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/bf2f76.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/bf2f76.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
 
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32sint, read>;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/bf2f76.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/bf2f76.wgsl.expected.glsl
index 86fd086..aa72402 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/bf2f76.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/bf2f76.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp readonly iimage2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureNumLayers_bf2f76() {
+layout(binding = 0, rg32i) uniform highp readonly iimage2DArray arg_0;
+uint textureNumLayers_bf2f76() {
   uint res = uint(imageSize(arg_0).z);
-  prevent_dce.inner = res;
+  return res;
 }
 
-vec4 vertex_main() {
-  textureNumLayers_bf2f76();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp readonly iimage2DArray arg_0;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
-void textureNumLayers_bf2f76() {
-  uint res = uint(imageSize(arg_0).z);
-  prevent_dce.inner = res;
-}
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
 
 void fragment_main() {
-  textureNumLayers_bf2f76();
+  prevent_dce.inner = textureNumLayers_bf2f76();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp readonly iimage2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureNumLayers_bf2f76() {
+layout(binding = 0, rg32i) uniform highp readonly iimage2DArray arg_0;
+uint textureNumLayers_bf2f76() {
   uint res = uint(imageSize(arg_0).z);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
 void compute_main() {
-  textureNumLayers_bf2f76();
+  prevent_dce.inner = textureNumLayers_bf2f76();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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.
+#version 460
 
+layout(location = 0) flat out uint prevent_dce_1;
+layout(binding = 0, rg32i) uniform highp readonly iimage2DArray arg_0;
+uint textureNumLayers_bf2f76() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), 0u);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureNumLayers_bf2f76();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureNumLayers/bf2f76.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureNumLayers/bf2f76.wgsl.expected.ir.glsl
index c7310b2..31ed410 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/bf2f76.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/bf2f76.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, rg32i) uniform highp readonly iimage2DArray arg_0;
+uint textureNumLayers_bf2f76() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_bf2f76();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, rg32i) uniform highp readonly iimage2DArray arg_0;
+uint textureNumLayers_bf2f76() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureNumLayers_bf2f76();
+}
+#version 460
+
+
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
+layout(binding = 0, rg32i) uniform highp readonly iimage2DArray arg_0;
+layout(location = 0) flat out uint vertex_main_loc0_Output;
+uint textureNumLayers_bf2f76() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), 0u);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureNumLayers_bf2f76();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/textureNumLayers/c1eca9.wgsl b/test/tint/builtins/gen/var/textureNumLayers/c1eca9.wgsl
index 6579aa8..c702720 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/c1eca9.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/c1eca9.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
 
 @group(1) @binding(0) var arg_0: texture_cube_array<u32>;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/c1eca9.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/c1eca9.wgsl.expected.glsl
index 389a0c4..bae6a46 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/c1eca9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/c1eca9.wgsl.expected.glsl
@@ -1,80 +1,47 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-uniform highp usamplerCubeArray arg_0_1;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureNumLayers_c1eca9() {
-  uint res = uint(textureSize(arg_0_1, 0).z);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureNumLayers_c1eca9();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'usamplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
 uniform highp usamplerCubeArray arg_0_1;
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
-void textureNumLayers_c1eca9() {
+uint textureNumLayers_c1eca9() {
   uint res = uint(textureSize(arg_0_1, 0).z);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
 void fragment_main() {
-  textureNumLayers_c1eca9();
+  prevent_dce.inner = textureNumLayers_c1eca9();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'usamplerCubeArray' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-uniform highp usamplerCubeArray arg_0_1;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uint inner;
 } prevent_dce;
 
-void textureNumLayers_c1eca9() {
+uniform highp usamplerCubeArray arg_0_1;
+uint textureNumLayers_c1eca9() {
   uint res = uint(textureSize(arg_0_1, 0).z);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
 void compute_main() {
-  textureNumLayers_c1eca9();
+  prevent_dce.inner = textureNumLayers_c1eca9();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -82,10 +49,33 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'usamplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
+layout(location = 0) flat out uint prevent_dce_1;
+uniform highp usamplerCubeArray arg_0_1;
+uint textureNumLayers_c1eca9() {
+  uint res = uint(textureSize(arg_0_1, 0).z);
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
 
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), 0u);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureNumLayers_c1eca9();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureNumLayers/c1eca9.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureNumLayers/c1eca9.wgsl.expected.ir.glsl
index c7310b2..942b68b 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/c1eca9.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/c1eca9.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+uniform highp usamplerCubeArray arg_0;
+uint textureNumLayers_c1eca9() {
+  uint res = uint(textureSize(arg_0, 0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_c1eca9();
+}
+#version 460
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+uniform highp usamplerCubeArray arg_0;
+uint textureNumLayers_c1eca9() {
+  uint res = uint(textureSize(arg_0, 0).z);
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureNumLayers_c1eca9();
+}
+#version 460
+
+
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
+uniform highp usamplerCubeArray arg_0;
+layout(location = 0) flat out uint vertex_main_loc0_Output;
+uint textureNumLayers_c1eca9() {
+  uint res = uint(textureSize(arg_0, 0).z);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), 0u);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureNumLayers_c1eca9();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/textureNumLevels/2bea6c.wgsl b/test/tint/builtins/gen/var/textureNumLevels/2bea6c.wgsl
index f4c8b6e..e34bacc 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/2bea6c.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/2bea6c.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
 
 @group(1) @binding(0) var arg_0: texture_depth_cube_array;
diff --git a/test/tint/builtins/gen/var/textureNumLevels/2bea6c.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLevels/2bea6c.wgsl.expected.glsl
index e8b0207..49f81ce 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/2bea6c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/2bea6c.wgsl.expected.glsl
@@ -1,6 +1,4 @@
-#version 310 es
-precision highp float;
-precision highp int;
+#version 460
 
 struct tint_symbol_1 {
   uint texture_builtin_value_0;
@@ -32,7 +30,7 @@
   fragment_main();
   return;
 }
-#version 310 es
+#version 460
 
 struct tint_symbol_1 {
   uint texture_builtin_value_0;
@@ -65,7 +63,7 @@
   compute_main();
   return;
 }
-#version 310 es
+#version 460
 
 layout(location = 0) flat out uint prevent_dce_1;
 struct tint_symbol_1 {
diff --git a/test/tint/builtins/gen/var/textureNumLevels/903920.wgsl b/test/tint/builtins/gen/var/textureNumLevels/903920.wgsl
index 007bc0f..c121c52 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/903920.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/903920.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
 
 @group(1) @binding(0) var arg_0: texture_cube_array<i32>;
diff --git a/test/tint/builtins/gen/var/textureNumLevels/903920.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLevels/903920.wgsl.expected.glsl
index eeeb047..118781a 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/903920.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/903920.wgsl.expected.glsl
@@ -1,6 +1,4 @@
-#version 310 es
-precision highp float;
-precision highp int;
+#version 460
 
 struct tint_symbol_1 {
   uint texture_builtin_value_0;
@@ -32,7 +30,7 @@
   fragment_main();
   return;
 }
-#version 310 es
+#version 460
 
 struct tint_symbol_1 {
   uint texture_builtin_value_0;
@@ -65,7 +63,7 @@
   compute_main();
   return;
 }
-#version 310 es
+#version 460
 
 layout(location = 0) flat out uint prevent_dce_1;
 struct tint_symbol_1 {
diff --git a/test/tint/builtins/gen/var/textureNumLevels/d8f73b.wgsl b/test/tint/builtins/gen/var/textureNumLevels/d8f73b.wgsl
index 0909779..6592fa1 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/d8f73b.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/d8f73b.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
 
 @group(1) @binding(0) var arg_0: texture_cube_array<f32>;
diff --git a/test/tint/builtins/gen/var/textureNumLevels/d8f73b.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLevels/d8f73b.wgsl.expected.glsl
index fc0c35a..4eb27ed 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/d8f73b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/d8f73b.wgsl.expected.glsl
@@ -1,6 +1,4 @@
-#version 310 es
-precision highp float;
-precision highp int;
+#version 460
 
 struct tint_symbol_1 {
   uint texture_builtin_value_0;
@@ -32,7 +30,7 @@
   fragment_main();
   return;
 }
-#version 310 es
+#version 460
 
 struct tint_symbol_1 {
   uint texture_builtin_value_0;
@@ -65,7 +63,7 @@
   compute_main();
   return;
 }
-#version 310 es
+#version 460
 
 layout(location = 0) flat out uint prevent_dce_1;
 struct tint_symbol_1 {
diff --git a/test/tint/builtins/gen/var/textureNumLevels/fe2171.wgsl b/test/tint/builtins/gen/var/textureNumLevels/fe2171.wgsl
index 3269fa6..55ee0c5 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/fe2171.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/fe2171.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
 
 @group(1) @binding(0) var arg_0: texture_cube_array<u32>;
diff --git a/test/tint/builtins/gen/var/textureNumLevels/fe2171.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLevels/fe2171.wgsl.expected.glsl
index b48c422..930c25a 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/fe2171.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/fe2171.wgsl.expected.glsl
@@ -1,6 +1,4 @@
-#version 310 es
-precision highp float;
-precision highp int;
+#version 460
 
 struct tint_symbol_1 {
   uint texture_builtin_value_0;
@@ -32,7 +30,7 @@
   fragment_main();
   return;
 }
-#version 310 es
+#version 460
 
 struct tint_symbol_1 {
   uint texture_builtin_value_0;
@@ -65,7 +63,7 @@
   compute_main();
   return;
 }
-#version 310 es
+#version 460
 
 layout(location = 0) flat out uint prevent_dce_1;
 struct tint_symbol_1 {
diff --git a/test/tint/builtins/gen/var/textureSample/4dd1bf.wgsl b/test/tint/builtins/gen/var/textureSample/4dd1bf.wgsl
index 193672f..496dea1 100644
--- a/test/tint/builtins/gen/var/textureSample/4dd1bf.wgsl
+++ b/test/tint/builtins/gen/var/textureSample/4dd1bf.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
 
 @group(1) @binding(0) var arg_0: texture_cube_array<f32>;
diff --git a/test/tint/builtins/gen/var/textureSample/4dd1bf.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSample/4dd1bf.wgsl.expected.glsl
index dabcc2a..c0a38494 100644
--- a/test/tint/builtins/gen/var/textureSample/4dd1bf.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSample/4dd1bf.wgsl.expected.glsl
@@ -1,34 +1,23 @@
-SKIP: FAILED
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-uniform highp samplerCubeArray arg_0_arg_1;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureSample_4dd1bf() {
+uniform highp samplerCubeArray arg_0_arg_1;
+
+vec4 textureSample_4dd1bf() {
   vec3 arg_2 = vec3(1.0f);
   int arg_3 = 1;
   vec4 res = texture(arg_0_arg_1, vec4(arg_2, float(arg_3)));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureSample_4dd1bf();
+  prevent_dce.inner = textureSample_4dd1bf();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
diff --git a/test/tint/builtins/gen/var/textureSample/7fd8cb.wgsl b/test/tint/builtins/gen/var/textureSample/7fd8cb.wgsl
index d7494a4..3b90ce6 100644
--- a/test/tint/builtins/gen/var/textureSample/7fd8cb.wgsl
+++ b/test/tint/builtins/gen/var/textureSample/7fd8cb.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
 
 @group(1) @binding(0) var arg_0: texture_depth_cube_array;
diff --git a/test/tint/builtins/gen/var/textureSample/7fd8cb.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSample/7fd8cb.wgsl.expected.glsl
index 68c4c22..6a885d2 100644
--- a/test/tint/builtins/gen/var/textureSample/7fd8cb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSample/7fd8cb.wgsl.expected.glsl
@@ -1,34 +1,23 @@
-SKIP: FAILED
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-uniform highp samplerCubeArrayShadow arg_0_arg_1;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   float inner;
 } prevent_dce;
 
-void textureSample_7fd8cb() {
+uniform highp samplerCubeArrayShadow arg_0_arg_1;
+
+float textureSample_7fd8cb() {
   vec3 arg_2 = vec3(1.0f);
   uint arg_3 = 1u;
   float res = texture(arg_0_arg_1, vec4(arg_2, float(arg_3)), 0.0f);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureSample_7fd8cb();
+  prevent_dce.inner = textureSample_7fd8cb();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'samplerCubeArrayShadow' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
diff --git a/test/tint/builtins/gen/var/textureSample/bc7477.wgsl b/test/tint/builtins/gen/var/textureSample/bc7477.wgsl
index c98e217..5f61354 100644
--- a/test/tint/builtins/gen/var/textureSample/bc7477.wgsl
+++ b/test/tint/builtins/gen/var/textureSample/bc7477.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
 
 @group(1) @binding(0) var arg_0: texture_cube_array<f32>;
diff --git a/test/tint/builtins/gen/var/textureSample/bc7477.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSample/bc7477.wgsl.expected.glsl
index f1bd516..7400a06 100644
--- a/test/tint/builtins/gen/var/textureSample/bc7477.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSample/bc7477.wgsl.expected.glsl
@@ -1,34 +1,23 @@
-SKIP: FAILED
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-uniform highp samplerCubeArray arg_0_arg_1;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureSample_bc7477() {
+uniform highp samplerCubeArray arg_0_arg_1;
+
+vec4 textureSample_bc7477() {
   vec3 arg_2 = vec3(1.0f);
   uint arg_3 = 1u;
   vec4 res = texture(arg_0_arg_1, vec4(arg_2, float(arg_3)));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureSample_bc7477();
+  prevent_dce.inner = textureSample_bc7477();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
diff --git a/test/tint/builtins/gen/var/textureSample/c2f4e8.wgsl b/test/tint/builtins/gen/var/textureSample/c2f4e8.wgsl
index 1771e1b..646b9af 100644
--- a/test/tint/builtins/gen/var/textureSample/c2f4e8.wgsl
+++ b/test/tint/builtins/gen/var/textureSample/c2f4e8.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
 
 @group(1) @binding(0) var arg_0: texture_depth_cube_array;
diff --git a/test/tint/builtins/gen/var/textureSample/c2f4e8.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSample/c2f4e8.wgsl.expected.glsl
index d916de2..d04c39e 100644
--- a/test/tint/builtins/gen/var/textureSample/c2f4e8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSample/c2f4e8.wgsl.expected.glsl
@@ -1,34 +1,23 @@
-SKIP: FAILED
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-uniform highp samplerCubeArrayShadow arg_0_arg_1;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   float inner;
 } prevent_dce;
 
-void textureSample_c2f4e8() {
+uniform highp samplerCubeArrayShadow arg_0_arg_1;
+
+float textureSample_c2f4e8() {
   vec3 arg_2 = vec3(1.0f);
   int arg_3 = 1;
   float res = texture(arg_0_arg_1, vec4(arg_2, float(arg_3)), 0.0f);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureSample_c2f4e8();
+  prevent_dce.inner = textureSample_c2f4e8();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'samplerCubeArrayShadow' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
diff --git a/test/tint/builtins/gen/var/textureSampleBias/c6953d.wgsl b/test/tint/builtins/gen/var/textureSampleBias/c6953d.wgsl
index bddb20e..9e14aee 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/c6953d.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/c6953d.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
 
 @group(1) @binding(0) var arg_0: texture_cube_array<f32>;
diff --git a/test/tint/builtins/gen/var/textureSampleBias/c6953d.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleBias/c6953d.wgsl.expected.glsl
index add0a82..91a1076 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/c6953d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/c6953d.wgsl.expected.glsl
@@ -1,35 +1,24 @@
-SKIP: FAILED
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-uniform highp samplerCubeArray arg_0_arg_1;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureSampleBias_c6953d() {
+uniform highp samplerCubeArray arg_0_arg_1;
+
+vec4 textureSampleBias_c6953d() {
   vec3 arg_2 = vec3(1.0f);
   uint arg_3 = 1u;
   float arg_4 = 1.0f;
   vec4 res = texture(arg_0_arg_1, vec4(arg_2, float(arg_3)), arg_4);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureSampleBias_c6953d();
+  prevent_dce.inner = textureSampleBias_c6953d();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
diff --git a/test/tint/builtins/gen/var/textureSampleBias/eed7c4.wgsl b/test/tint/builtins/gen/var/textureSampleBias/eed7c4.wgsl
index dd42ca4..e892193 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/eed7c4.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/eed7c4.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
 
 @group(1) @binding(0) var arg_0: texture_cube_array<f32>;
diff --git a/test/tint/builtins/gen/var/textureSampleBias/eed7c4.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleBias/eed7c4.wgsl.expected.glsl
index 2690313..585b7f7 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/eed7c4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/eed7c4.wgsl.expected.glsl
@@ -1,35 +1,24 @@
-SKIP: FAILED
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-uniform highp samplerCubeArray arg_0_arg_1;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureSampleBias_eed7c4() {
+uniform highp samplerCubeArray arg_0_arg_1;
+
+vec4 textureSampleBias_eed7c4() {
   vec3 arg_2 = vec3(1.0f);
   int arg_3 = 1;
   float arg_4 = 1.0f;
   vec4 res = texture(arg_0_arg_1, vec4(arg_2, float(arg_3)), arg_4);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureSampleBias_eed7c4();
+  prevent_dce.inner = textureSampleBias_eed7c4();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/1912e5.wgsl b/test/tint/builtins/gen/var/textureSampleCompare/1912e5.wgsl
index d4e9614..648a7b9 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/1912e5.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/1912e5.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
 
 @group(1) @binding(0) var arg_0: texture_depth_cube_array;
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/1912e5.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleCompare/1912e5.wgsl.expected.glsl
index da380cc..b0ffa4b 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/1912e5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/1912e5.wgsl.expected.glsl
@@ -1,35 +1,24 @@
-SKIP: FAILED
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-uniform highp samplerCubeArrayShadow arg_0_arg_1;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   float inner;
 } prevent_dce;
 
-void textureSampleCompare_1912e5() {
+uniform highp samplerCubeArrayShadow arg_0_arg_1;
+
+float textureSampleCompare_1912e5() {
   vec3 arg_2 = vec3(1.0f);
   uint arg_3 = 1u;
   float arg_4 = 1.0f;
   float res = texture(arg_0_arg_1, vec4(arg_2, float(arg_3)), arg_4);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureSampleCompare_1912e5();
+  prevent_dce.inner = textureSampleCompare_1912e5();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'samplerCubeArrayShadow' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/a3ca7e.wgsl b/test/tint/builtins/gen/var/textureSampleCompare/a3ca7e.wgsl
index a0a1ed3..a493f00 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/a3ca7e.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/a3ca7e.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
 
 @group(1) @binding(0) var arg_0: texture_depth_cube_array;
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/a3ca7e.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleCompare/a3ca7e.wgsl.expected.glsl
index 8afb76d..789d890 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/a3ca7e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/a3ca7e.wgsl.expected.glsl
@@ -1,35 +1,24 @@
-SKIP: FAILED
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-uniform highp samplerCubeArrayShadow arg_0_arg_1;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   float inner;
 } prevent_dce;
 
-void textureSampleCompare_a3ca7e() {
+uniform highp samplerCubeArrayShadow arg_0_arg_1;
+
+float textureSampleCompare_a3ca7e() {
   vec3 arg_2 = vec3(1.0f);
   int arg_3 = 1;
   float arg_4 = 1.0f;
   float res = texture(arg_0_arg_1, vec4(arg_2, float(arg_3)), arg_4);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureSampleCompare_a3ca7e();
+  prevent_dce.inner = textureSampleCompare_a3ca7e();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'samplerCubeArrayShadow' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/4cf3a2.wgsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/4cf3a2.wgsl
index f76e4c3..b427e29 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/4cf3a2.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/4cf3a2.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
 
 @group(1) @binding(0) var arg_0: texture_depth_cube_array;
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/4cf3a2.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/4cf3a2.wgsl.expected.glsl
index b713623..0dc1fd1 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/4cf3a2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/4cf3a2.wgsl.expected.glsl
@@ -1,92 +1,55 @@
-SKIP: FAILED
-
-#version 310 es
-
-uniform highp samplerCubeArrayShadow arg_0_arg_1;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   float inner;
 } prevent_dce;
 
-void textureSampleCompareLevel_4cf3a2() {
-  vec3 arg_2 = vec3(1.0f);
-  int arg_3 = 1;
-  float arg_4 = 1.0f;
-  float res = texture(arg_0_arg_1, vec4(arg_2, float(arg_3)), arg_4);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureSampleCompareLevel_4cf3a2();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'samplerCubeArrayShadow' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
 uniform highp samplerCubeArrayShadow arg_0_arg_1;
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
-void textureSampleCompareLevel_4cf3a2() {
+float textureSampleCompareLevel_4cf3a2() {
   vec3 arg_2 = vec3(1.0f);
   int arg_3 = 1;
   float arg_4 = 1.0f;
   float res = texture(arg_0_arg_1, vec4(arg_2, float(arg_3)), arg_4);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  float prevent_dce;
+};
+
 void fragment_main() {
-  textureSampleCompareLevel_4cf3a2();
+  prevent_dce.inner = textureSampleCompareLevel_4cf3a2();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'samplerCubeArrayShadow' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-
-uniform highp samplerCubeArrayShadow arg_0_arg_1;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   float inner;
 } prevent_dce;
 
-void textureSampleCompareLevel_4cf3a2() {
+uniform highp samplerCubeArrayShadow arg_0_arg_1;
+
+float textureSampleCompareLevel_4cf3a2() {
   vec3 arg_2 = vec3(1.0f);
   int arg_3 = 1;
   float arg_4 = 1.0f;
   float res = texture(arg_0_arg_1, vec4(arg_2, float(arg_3)), arg_4);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  float prevent_dce;
+};
+
 void compute_main() {
-  textureSampleCompareLevel_4cf3a2();
+  prevent_dce.inner = textureSampleCompareLevel_4cf3a2();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -94,10 +57,37 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'samplerCubeArrayShadow' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
+layout(location = 0) flat out float prevent_dce_1;
+uniform highp samplerCubeArrayShadow arg_0_arg_1;
 
+float textureSampleCompareLevel_4cf3a2() {
+  vec3 arg_2 = vec3(1.0f);
+  int arg_3 = 1;
+  float arg_4 = 1.0f;
+  float res = texture(arg_0_arg_1, vec4(arg_2, float(arg_3)), arg_4);
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  float prevent_dce;
+};
+
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureSampleCompareLevel_4cf3a2();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/958c87.wgsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/958c87.wgsl
index 0071fc4..a0baf69 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/958c87.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/958c87.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
 
 @group(1) @binding(0) var arg_0: texture_depth_cube_array;
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/958c87.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/958c87.wgsl.expected.glsl
index d38fbcf..4f80692 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/958c87.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/958c87.wgsl.expected.glsl
@@ -1,92 +1,55 @@
-SKIP: FAILED
-
-#version 310 es
-
-uniform highp samplerCubeArrayShadow arg_0_arg_1;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   float inner;
 } prevent_dce;
 
-void textureSampleCompareLevel_958c87() {
-  vec3 arg_2 = vec3(1.0f);
-  uint arg_3 = 1u;
-  float arg_4 = 1.0f;
-  float res = texture(arg_0_arg_1, vec4(arg_2, float(arg_3)), arg_4);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureSampleCompareLevel_958c87();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'samplerCubeArrayShadow' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
 uniform highp samplerCubeArrayShadow arg_0_arg_1;
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
-void textureSampleCompareLevel_958c87() {
+float textureSampleCompareLevel_958c87() {
   vec3 arg_2 = vec3(1.0f);
   uint arg_3 = 1u;
   float arg_4 = 1.0f;
   float res = texture(arg_0_arg_1, vec4(arg_2, float(arg_3)), arg_4);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  float prevent_dce;
+};
+
 void fragment_main() {
-  textureSampleCompareLevel_958c87();
+  prevent_dce.inner = textureSampleCompareLevel_958c87();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'samplerCubeArrayShadow' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-
-uniform highp samplerCubeArrayShadow arg_0_arg_1;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   float inner;
 } prevent_dce;
 
-void textureSampleCompareLevel_958c87() {
+uniform highp samplerCubeArrayShadow arg_0_arg_1;
+
+float textureSampleCompareLevel_958c87() {
   vec3 arg_2 = vec3(1.0f);
   uint arg_3 = 1u;
   float arg_4 = 1.0f;
   float res = texture(arg_0_arg_1, vec4(arg_2, float(arg_3)), arg_4);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  float prevent_dce;
+};
+
 void compute_main() {
-  textureSampleCompareLevel_958c87();
+  prevent_dce.inner = textureSampleCompareLevel_958c87();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -94,10 +57,37 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'samplerCubeArrayShadow' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
+layout(location = 0) flat out float prevent_dce_1;
+uniform highp samplerCubeArrayShadow arg_0_arg_1;
 
+float textureSampleCompareLevel_958c87() {
+  vec3 arg_2 = vec3(1.0f);
+  uint arg_3 = 1u;
+  float arg_4 = 1.0f;
+  float res = texture(arg_0_arg_1, vec4(arg_2, float(arg_3)), arg_4);
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  float prevent_dce;
+};
+
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureSampleCompareLevel_958c87();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/bbb58f.wgsl b/test/tint/builtins/gen/var/textureSampleGrad/bbb58f.wgsl
index 3e4ddaf..1a77b06 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/bbb58f.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/bbb58f.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
 
 @group(1) @binding(0) var arg_0: texture_cube_array<f32>;
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/bbb58f.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleGrad/bbb58f.wgsl.expected.glsl
index 2949756..d4f5d5b 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/bbb58f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/bbb58f.wgsl.expected.glsl
@@ -1,95 +1,57 @@
-SKIP: FAILED
-
-#version 310 es
-
-uniform highp samplerCubeArray arg_0_arg_1;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureSampleGrad_bbb58f() {
-  vec3 arg_2 = vec3(1.0f);
-  uint arg_3 = 1u;
-  vec3 arg_4 = vec3(1.0f);
-  vec3 arg_5 = vec3(1.0f);
-  vec4 res = textureGrad(arg_0_arg_1, vec4(arg_2, float(arg_3)), arg_4, arg_5);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureSampleGrad_bbb58f();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
 uniform highp samplerCubeArray arg_0_arg_1;
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
-void textureSampleGrad_bbb58f() {
+vec4 textureSampleGrad_bbb58f() {
   vec3 arg_2 = vec3(1.0f);
   uint arg_3 = 1u;
   vec3 arg_4 = vec3(1.0f);
   vec3 arg_5 = vec3(1.0f);
   vec4 res = textureGrad(arg_0_arg_1, vec4(arg_2, float(arg_3)), arg_4, arg_5);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
 void fragment_main() {
-  textureSampleGrad_bbb58f();
+  prevent_dce.inner = textureSampleGrad_bbb58f();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-
-uniform highp samplerCubeArray arg_0_arg_1;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureSampleGrad_bbb58f() {
+uniform highp samplerCubeArray arg_0_arg_1;
+
+vec4 textureSampleGrad_bbb58f() {
   vec3 arg_2 = vec3(1.0f);
   uint arg_3 = 1u;
   vec3 arg_4 = vec3(1.0f);
   vec3 arg_5 = vec3(1.0f);
   vec4 res = textureGrad(arg_0_arg_1, vec4(arg_2, float(arg_3)), arg_4, arg_5);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
 void compute_main() {
-  textureSampleGrad_bbb58f();
+  prevent_dce.inner = textureSampleGrad_bbb58f();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -97,10 +59,38 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
+layout(location = 0) flat out vec4 prevent_dce_1;
+uniform highp samplerCubeArray arg_0_arg_1;
 
+vec4 textureSampleGrad_bbb58f() {
+  vec3 arg_2 = vec3(1.0f);
+  uint arg_3 = 1u;
+  vec3 arg_4 = vec3(1.0f);
+  vec3 arg_5 = vec3(1.0f);
+  vec4 res = textureGrad(arg_0_arg_1, vec4(arg_2, float(arg_3)), arg_4, arg_5);
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureSampleGrad_bbb58f();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/e383db.wgsl b/test/tint/builtins/gen/var/textureSampleGrad/e383db.wgsl
index dc6d315..a528648 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/e383db.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/e383db.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
 
 @group(1) @binding(0) var arg_0: texture_cube_array<f32>;
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/e383db.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleGrad/e383db.wgsl.expected.glsl
index 647d1a7..4567b0d 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/e383db.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/e383db.wgsl.expected.glsl
@@ -1,95 +1,57 @@
-SKIP: FAILED
-
-#version 310 es
-
-uniform highp samplerCubeArray arg_0_arg_1;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureSampleGrad_e383db() {
-  vec3 arg_2 = vec3(1.0f);
-  int arg_3 = 1;
-  vec3 arg_4 = vec3(1.0f);
-  vec3 arg_5 = vec3(1.0f);
-  vec4 res = textureGrad(arg_0_arg_1, vec4(arg_2, float(arg_3)), arg_4, arg_5);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureSampleGrad_e383db();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
 uniform highp samplerCubeArray arg_0_arg_1;
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
-void textureSampleGrad_e383db() {
+vec4 textureSampleGrad_e383db() {
   vec3 arg_2 = vec3(1.0f);
   int arg_3 = 1;
   vec3 arg_4 = vec3(1.0f);
   vec3 arg_5 = vec3(1.0f);
   vec4 res = textureGrad(arg_0_arg_1, vec4(arg_2, float(arg_3)), arg_4, arg_5);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
 void fragment_main() {
-  textureSampleGrad_e383db();
+  prevent_dce.inner = textureSampleGrad_e383db();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-
-uniform highp samplerCubeArray arg_0_arg_1;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureSampleGrad_e383db() {
+uniform highp samplerCubeArray arg_0_arg_1;
+
+vec4 textureSampleGrad_e383db() {
   vec3 arg_2 = vec3(1.0f);
   int arg_3 = 1;
   vec3 arg_4 = vec3(1.0f);
   vec3 arg_5 = vec3(1.0f);
   vec4 res = textureGrad(arg_0_arg_1, vec4(arg_2, float(arg_3)), arg_4, arg_5);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
 void compute_main() {
-  textureSampleGrad_e383db();
+  prevent_dce.inner = textureSampleGrad_e383db();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -97,10 +59,38 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
+layout(location = 0) flat out vec4 prevent_dce_1;
+uniform highp samplerCubeArray arg_0_arg_1;
 
+vec4 textureSampleGrad_e383db() {
+  vec3 arg_2 = vec3(1.0f);
+  int arg_3 = 1;
+  vec3 arg_4 = vec3(1.0f);
+  vec3 arg_5 = vec3(1.0f);
+  vec4 res = textureGrad(arg_0_arg_1, vec4(arg_2, float(arg_3)), arg_4, arg_5);
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureSampleGrad_e383db();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/0bdd9a.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/0bdd9a.wgsl
index 9936a28..32f16e4 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/0bdd9a.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/0bdd9a.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
 
 @group(1) @binding(0) var arg_0: texture_cube_array<f32>;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/0bdd9a.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleLevel/0bdd9a.wgsl.expected.glsl
index 37dfdf9..5979e83 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/0bdd9a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/0bdd9a.wgsl.expected.glsl
@@ -1,92 +1,55 @@
-SKIP: FAILED
-
-#version 310 es
-
-uniform highp samplerCubeArray arg_0_arg_1;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureSampleLevel_0bdd9a() {
-  vec3 arg_2 = vec3(1.0f);
-  int arg_3 = 1;
-  float arg_4 = 1.0f;
-  vec4 res = textureLod(arg_0_arg_1, vec4(arg_2, float(arg_3)), arg_4);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureSampleLevel_0bdd9a();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
 uniform highp samplerCubeArray arg_0_arg_1;
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
-void textureSampleLevel_0bdd9a() {
+vec4 textureSampleLevel_0bdd9a() {
   vec3 arg_2 = vec3(1.0f);
   int arg_3 = 1;
   float arg_4 = 1.0f;
   vec4 res = textureLod(arg_0_arg_1, vec4(arg_2, float(arg_3)), arg_4);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
 void fragment_main() {
-  textureSampleLevel_0bdd9a();
+  prevent_dce.inner = textureSampleLevel_0bdd9a();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-
-uniform highp samplerCubeArray arg_0_arg_1;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureSampleLevel_0bdd9a() {
+uniform highp samplerCubeArray arg_0_arg_1;
+
+vec4 textureSampleLevel_0bdd9a() {
   vec3 arg_2 = vec3(1.0f);
   int arg_3 = 1;
   float arg_4 = 1.0f;
   vec4 res = textureLod(arg_0_arg_1, vec4(arg_2, float(arg_3)), arg_4);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
 void compute_main() {
-  textureSampleLevel_0bdd9a();
+  prevent_dce.inner = textureSampleLevel_0bdd9a();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -94,10 +57,37 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
+layout(location = 0) flat out vec4 prevent_dce_1;
+uniform highp samplerCubeArray arg_0_arg_1;
 
+vec4 textureSampleLevel_0bdd9a() {
+  vec3 arg_2 = vec3(1.0f);
+  int arg_3 = 1;
+  float arg_4 = 1.0f;
+  vec4 res = textureLod(arg_0_arg_1, vec4(arg_2, float(arg_3)), arg_4);
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureSampleLevel_0bdd9a();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/941a53.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/941a53.wgsl
index 1dd319d..8ea81bc 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/941a53.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/941a53.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
 
 @group(1) @binding(0) var arg_0: texture_depth_cube_array;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/a12142.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/a12142.wgsl
index 862379a..527f943 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/a12142.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/a12142.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
 
 @group(1) @binding(0) var arg_0: texture_depth_cube_array;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/aab3b9.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/aab3b9.wgsl
index 97cceb9..2693f4f 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/aab3b9.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/aab3b9.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
 
 @group(1) @binding(0) var arg_0: texture_cube_array<f32>;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/aab3b9.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleLevel/aab3b9.wgsl.expected.glsl
index 2ac8ff0..3f7fd39 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/aab3b9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/aab3b9.wgsl.expected.glsl
@@ -1,92 +1,55 @@
-SKIP: FAILED
-
-#version 310 es
-
-uniform highp samplerCubeArray arg_0_arg_1;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureSampleLevel_aab3b9() {
-  vec3 arg_2 = vec3(1.0f);
-  uint arg_3 = 1u;
-  float arg_4 = 1.0f;
-  vec4 res = textureLod(arg_0_arg_1, vec4(arg_2, float(arg_3)), arg_4);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureSampleLevel_aab3b9();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
 uniform highp samplerCubeArray arg_0_arg_1;
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
-void textureSampleLevel_aab3b9() {
+vec4 textureSampleLevel_aab3b9() {
   vec3 arg_2 = vec3(1.0f);
   uint arg_3 = 1u;
   float arg_4 = 1.0f;
   vec4 res = textureLod(arg_0_arg_1, vec4(arg_2, float(arg_3)), arg_4);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
 void fragment_main() {
-  textureSampleLevel_aab3b9();
+  prevent_dce.inner = textureSampleLevel_aab3b9();
 }
 
 void main() {
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-
-uniform highp samplerCubeArray arg_0_arg_1;
+#version 460
 
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureSampleLevel_aab3b9() {
+uniform highp samplerCubeArray arg_0_arg_1;
+
+vec4 textureSampleLevel_aab3b9() {
   vec3 arg_2 = vec3(1.0f);
   uint arg_3 = 1u;
   float arg_4 = 1.0f;
   vec4 res = textureLod(arg_0_arg_1, vec4(arg_2, float(arg_3)), arg_4);
-  prevent_dce.inner = res;
+  return res;
 }
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
 void compute_main() {
-  textureSampleLevel_aab3b9();
+  prevent_dce.inner = textureSampleLevel_aab3b9();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -94,10 +57,37 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'samplerCubeArray' : Reserved word. 
-ERROR: 0:3: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
+layout(location = 0) flat out vec4 prevent_dce_1;
+uniform highp samplerCubeArray arg_0_arg_1;
 
+vec4 textureSampleLevel_aab3b9() {
+  vec3 arg_2 = vec3(1.0f);
+  uint arg_3 = 1u;
+  float arg_4 = 1.0f;
+  vec4 res = textureLod(arg_0_arg_1, vec4(arg_2, float(arg_3)), arg_4);
+  return res;
+}
 
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
+VertexOutput vertex_main() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureSampleLevel_aab3b9();
+  return tint_symbol;
+}
+
+void main() {
+  gl_PointSize = 1.0;
+  VertexOutput inner_result = vertex_main();
+  gl_Position = inner_result.pos;
+  prevent_dce_1 = inner_result.prevent_dce;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/ae5e39.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/ae5e39.wgsl
index e684452..5744e1d 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/ae5e39.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/ae5e39.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
 
 @group(1) @binding(0) var arg_0: texture_depth_cube_array;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/ff11bc.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/ff11bc.wgsl
index bc2cfcf..0b9a8ed 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/ff11bc.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/ff11bc.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 @group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
 
 @group(1) @binding(0) var arg_0: texture_depth_cube_array;
diff --git a/test/tint/builtins/gen/var/textureStore/064c7f.wgsl b/test/tint/builtins/gen/var/textureStore/064c7f.wgsl
index 0ee7352..cbc1cac 100644
--- a/test/tint/builtins/gen/var/textureStore/064c7f.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/064c7f.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32float, write>;
 
 // fn textureStore(texture: texture_storage_2d<rg32float, write>, coords: vec2<i32>, value: vec4<f32>)
diff --git a/test/tint/builtins/gen/var/textureStore/064c7f.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/064c7f.wgsl.expected.glsl
index f539e7b..ba2d8c9 100644
--- a/test/tint/builtins/gen/var/textureStore/064c7f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/064c7f.wgsl.expected.glsl
@@ -1,39 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2D arg_0;
-void textureStore_064c7f() {
-  ivec2 arg_1 = ivec2(1);
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, arg_1, arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_064c7f();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp writeonly image2D arg_0;
+layout(binding = 0, rg32f) uniform highp writeonly image2D arg_0;
 void textureStore_064c7f() {
   ivec2 arg_1 = ivec2(1);
   vec4 arg_2 = vec4(1.0f);
@@ -48,16 +15,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2D arg_0;
+layout(binding = 0, rg32f) uniform highp writeonly image2D arg_0;
 void textureStore_064c7f() {
   ivec2 arg_1 = ivec2(1);
   vec4 arg_2 = vec4(1.0f);
@@ -73,10 +33,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureStore/0ad124.wgsl b/test/tint/builtins/gen/var/textureStore/0ad124.wgsl
index ba53ea2..57d48e8 100644
--- a/test/tint/builtins/gen/var/textureStore/0ad124.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/0ad124.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 @group(1) @binding(0) var arg_0: texture_storage_1d<r8unorm, read_write>;
 
diff --git a/test/tint/builtins/gen/var/textureStore/0ad124.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/0ad124.wgsl.expected.glsl
index 7b42407..f237b49 100644
--- a/test/tint/builtins/gen/var/textureStore/0ad124.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/0ad124.wgsl.expected.glsl
@@ -1,39 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp writeonly image2D arg_0;
-void textureStore_0ad124() {
-  int arg_1 = 1;
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, ivec2(arg_1, 0), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_0ad124();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp writeonly image2D arg_0;
+layout(binding = 0, r8) uniform highp writeonly image2D arg_0;
 void textureStore_0ad124() {
   int arg_1 = 1;
   vec4 arg_2 = vec4(1.0f);
@@ -48,16 +15,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp writeonly image2D arg_0;
+layout(binding = 0, r8) uniform highp writeonly image2D arg_0;
 void textureStore_0ad124() {
   int arg_1 = 1;
   vec4 arg_2 = vec4(1.0f);
@@ -73,10 +33,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureStore/0ade9a.wgsl b/test/tint/builtins/gen/var/textureStore/0ade9a.wgsl
index 2d15737..18a8c11 100644
--- a/test/tint/builtins/gen/var/textureStore/0ade9a.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/0ade9a.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32uint, read_write>;
 
 // fn textureStore(texture: texture_storage_2d_array<rg32uint, read_write>, coords: vec2<u32>, array_index: u32, value: vec4<u32>)
diff --git a/test/tint/builtins/gen/var/textureStore/0ade9a.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/0ade9a.wgsl.expected.glsl
index 5d22e57..1451fe1 100644
--- a/test/tint/builtins/gen/var/textureStore/0ade9a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/0ade9a.wgsl.expected.glsl
@@ -1,40 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2DArray arg_0;
-void textureStore_0ade9a() {
-  uvec2 arg_1 = uvec2(1u);
-  uint arg_2 = 1u;
-  uvec4 arg_3 = uvec4(1u);
-  imageStore(arg_0, ivec3(uvec3(arg_1, arg_2)), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_0ade9a();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp writeonly uimage2DArray arg_0;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_0ade9a() {
   uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
@@ -50,16 +16,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2DArray arg_0;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_0ade9a() {
   uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
@@ -76,10 +35,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureStore/1a264d.wgsl b/test/tint/builtins/gen/var/textureStore/1a264d.wgsl
index 15e0d59..a18048d 100644
--- a/test/tint/builtins/gen/var/textureStore/1a264d.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/1a264d.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 @group(1) @binding(0) var arg_0: texture_storage_3d<r8unorm, write>;
 
diff --git a/test/tint/builtins/gen/var/textureStore/1a264d.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/1a264d.wgsl.expected.glsl
index 6fad338..783a0d9 100644
--- a/test/tint/builtins/gen/var/textureStore/1a264d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/1a264d.wgsl.expected.glsl
@@ -1,39 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp writeonly image3D arg_0;
-void textureStore_1a264d() {
-  ivec3 arg_1 = ivec3(1);
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, arg_1, arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_1a264d();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp writeonly image3D arg_0;
+layout(binding = 0, r8) uniform highp writeonly image3D arg_0;
 void textureStore_1a264d() {
   ivec3 arg_1 = ivec3(1);
   vec4 arg_2 = vec4(1.0f);
@@ -48,16 +15,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp writeonly image3D arg_0;
+layout(binding = 0, r8) uniform highp writeonly image3D arg_0;
 void textureStore_1a264d() {
   ivec3 arg_1 = ivec3(1);
   vec4 arg_2 = vec4(1.0f);
@@ -73,10 +33,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureStore/1a6c0b.wgsl b/test/tint/builtins/gen/var/textureStore/1a6c0b.wgsl
index 943ba39..3e01e8c 100644
--- a/test/tint/builtins/gen/var/textureStore/1a6c0b.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/1a6c0b.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32sint, read_write>;
 
 // fn textureStore(texture: texture_storage_2d_array<rg32sint, read_write>, coords: vec2<u32>, array_index: u32, value: vec4<i32>)
diff --git a/test/tint/builtins/gen/var/textureStore/1a6c0b.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/1a6c0b.wgsl.expected.glsl
index c943ad0..b193506 100644
--- a/test/tint/builtins/gen/var/textureStore/1a6c0b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/1a6c0b.wgsl.expected.glsl
@@ -1,40 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2DArray arg_0;
-void textureStore_1a6c0b() {
-  uvec2 arg_1 = uvec2(1u);
-  uint arg_2 = 1u;
-  ivec4 arg_3 = ivec4(1);
-  imageStore(arg_0, ivec3(uvec3(arg_1, arg_2)), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_1a6c0b();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp writeonly iimage2DArray arg_0;
+layout(binding = 0, rg32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_1a6c0b() {
   uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
@@ -50,16 +16,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2DArray arg_0;
+layout(binding = 0, rg32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_1a6c0b() {
   uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
@@ -76,10 +35,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureStore/1e79f0.wgsl b/test/tint/builtins/gen/var/textureStore/1e79f0.wgsl
index 63dd07a..7c42bab 100644
--- a/test/tint/builtins/gen/var/textureStore/1e79f0.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/1e79f0.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r8unorm, write>;
 
diff --git a/test/tint/builtins/gen/var/textureStore/1e79f0.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/1e79f0.wgsl.expected.glsl
index aa57dd2e..ad4c0ab 100644
--- a/test/tint/builtins/gen/var/textureStore/1e79f0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/1e79f0.wgsl.expected.glsl
@@ -1,40 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp writeonly image2DArray arg_0;
-void textureStore_1e79f0() {
-  ivec2 arg_1 = ivec2(1);
-  int arg_2 = 1;
-  vec4 arg_3 = vec4(1.0f);
-  imageStore(arg_0, ivec3(arg_1, arg_2), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_1e79f0();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, r8) uniform highp writeonly image2DArray arg_0;
 void textureStore_1e79f0() {
   ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
@@ -50,16 +16,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, r8) uniform highp writeonly image2DArray arg_0;
 void textureStore_1e79f0() {
   ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
@@ -76,10 +35,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureStore/272f5a.wgsl b/test/tint/builtins/gen/var/textureStore/272f5a.wgsl
index eb84408..37b0487 100644
--- a/test/tint/builtins/gen/var/textureStore/272f5a.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/272f5a.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r8unorm, read_write>;
 
diff --git a/test/tint/builtins/gen/var/textureStore/272f5a.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/272f5a.wgsl.expected.glsl
index 0a79c3d..41ff969 100644
--- a/test/tint/builtins/gen/var/textureStore/272f5a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/272f5a.wgsl.expected.glsl
@@ -1,40 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp writeonly image2DArray arg_0;
-void textureStore_272f5a() {
-  ivec2 arg_1 = ivec2(1);
-  uint arg_2 = 1u;
-  vec4 arg_3 = vec4(1.0f);
-  imageStore(arg_0, ivec3(arg_1, int(arg_2)), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_272f5a();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, r8) uniform highp writeonly image2DArray arg_0;
 void textureStore_272f5a() {
   ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
@@ -50,16 +16,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, r8) uniform highp writeonly image2DArray arg_0;
 void textureStore_272f5a() {
   ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
@@ -76,10 +35,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureStore/2796b4.wgsl b/test/tint/builtins/gen/var/textureStore/2796b4.wgsl
index cd5e22a..bc7107a 100644
--- a/test/tint/builtins/gen/var/textureStore/2796b4.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/2796b4.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32sint, write>;
 
 // fn textureStore(texture: texture_storage_3d<rg32sint, write>, coords: vec3<i32>, value: vec4<i32>)
diff --git a/test/tint/builtins/gen/var/textureStore/2796b4.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/2796b4.wgsl.expected.glsl
index dfe6eea..33a00ff 100644
--- a/test/tint/builtins/gen/var/textureStore/2796b4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/2796b4.wgsl.expected.glsl
@@ -1,39 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage3D arg_0;
-void textureStore_2796b4() {
-  ivec3 arg_1 = ivec3(1);
-  ivec4 arg_2 = ivec4(1);
-  imageStore(arg_0, arg_1, arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_2796b4();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp writeonly iimage3D arg_0;
+layout(binding = 0, rg32i) uniform highp writeonly iimage3D arg_0;
 void textureStore_2796b4() {
   ivec3 arg_1 = ivec3(1);
   ivec4 arg_2 = ivec4(1);
@@ -48,16 +15,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage3D arg_0;
+layout(binding = 0, rg32i) uniform highp writeonly iimage3D arg_0;
 void textureStore_2796b4() {
   ivec3 arg_1 = ivec3(1);
   ivec4 arg_2 = ivec4(1);
@@ -73,10 +33,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureStore/2d2835.wgsl b/test/tint/builtins/gen/var/textureStore/2d2835.wgsl
index bd14c04..f87cdf1 100644
--- a/test/tint/builtins/gen/var/textureStore/2d2835.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/2d2835.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32float, write>;
 
 // fn textureStore(texture: texture_storage_2d_array<rg32float, write>, coords: vec2<u32>, array_index: u32, value: vec4<f32>)
diff --git a/test/tint/builtins/gen/var/textureStore/2d2835.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/2d2835.wgsl.expected.glsl
index 6b2daec..ac69be5 100644
--- a/test/tint/builtins/gen/var/textureStore/2d2835.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/2d2835.wgsl.expected.glsl
@@ -1,40 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2DArray arg_0;
-void textureStore_2d2835() {
-  uvec2 arg_1 = uvec2(1u);
-  uint arg_2 = 1u;
-  vec4 arg_3 = vec4(1.0f);
-  imageStore(arg_0, ivec3(uvec3(arg_1, arg_2)), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_2d2835();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, rg32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_2d2835() {
   uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
@@ -50,16 +16,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, rg32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_2d2835() {
   uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
@@ -76,10 +35,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureStore/2e512f.wgsl b/test/tint/builtins/gen/var/textureStore/2e512f.wgsl
index 3a6b20d..cd071b3 100644
--- a/test/tint/builtins/gen/var/textureStore/2e512f.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/2e512f.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 @group(1) @binding(0) var arg_0: texture_storage_2d<r8unorm, read_write>;
 
diff --git a/test/tint/builtins/gen/var/textureStore/2e512f.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/2e512f.wgsl.expected.glsl
index 98416cd..721a446 100644
--- a/test/tint/builtins/gen/var/textureStore/2e512f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/2e512f.wgsl.expected.glsl
@@ -1,39 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp writeonly image2D arg_0;
-void textureStore_2e512f() {
-  uvec2 arg_1 = uvec2(1u);
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, ivec2(arg_1), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_2e512f();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp writeonly image2D arg_0;
+layout(binding = 0, r8) uniform highp writeonly image2D arg_0;
 void textureStore_2e512f() {
   uvec2 arg_1 = uvec2(1u);
   vec4 arg_2 = vec4(1.0f);
@@ -48,16 +15,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp writeonly image2D arg_0;
+layout(binding = 0, r8) uniform highp writeonly image2D arg_0;
 void textureStore_2e512f() {
   uvec2 arg_1 = uvec2(1u);
   vec4 arg_2 = vec4(1.0f);
@@ -73,10 +33,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureStore/31745b.wgsl b/test/tint/builtins/gen/var/textureStore/31745b.wgsl
index 446f711..04a213e 100644
--- a/test/tint/builtins/gen/var/textureStore/31745b.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/31745b.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32sint, write>;
 
 // fn textureStore(texture: texture_storage_2d<rg32sint, write>, coords: vec2<i32>, value: vec4<i32>)
diff --git a/test/tint/builtins/gen/var/textureStore/31745b.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/31745b.wgsl.expected.glsl
index cf9bd1c..31055b6 100644
--- a/test/tint/builtins/gen/var/textureStore/31745b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/31745b.wgsl.expected.glsl
@@ -1,39 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2D arg_0;
-void textureStore_31745b() {
-  ivec2 arg_1 = ivec2(1);
-  ivec4 arg_2 = ivec4(1);
-  imageStore(arg_0, arg_1, arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_31745b();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp writeonly iimage2D arg_0;
+layout(binding = 0, rg32i) uniform highp writeonly iimage2D arg_0;
 void textureStore_31745b() {
   ivec2 arg_1 = ivec2(1);
   ivec4 arg_2 = ivec4(1);
@@ -48,16 +15,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2D arg_0;
+layout(binding = 0, rg32i) uniform highp writeonly iimage2D arg_0;
 void textureStore_31745b() {
   ivec2 arg_1 = ivec2(1);
   ivec4 arg_2 = ivec4(1);
@@ -73,10 +33,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureStore/37eeef.wgsl b/test/tint/builtins/gen/var/textureStore/37eeef.wgsl
index da044ef..d7e11f1 100644
--- a/test/tint/builtins/gen/var/textureStore/37eeef.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/37eeef.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r8unorm, write>;
 
diff --git a/test/tint/builtins/gen/var/textureStore/37eeef.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/37eeef.wgsl.expected.glsl
index c0ea882..77666fc 100644
--- a/test/tint/builtins/gen/var/textureStore/37eeef.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/37eeef.wgsl.expected.glsl
@@ -1,40 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp writeonly image2DArray arg_0;
-void textureStore_37eeef() {
-  ivec2 arg_1 = ivec2(1);
-  uint arg_2 = 1u;
-  vec4 arg_3 = vec4(1.0f);
-  imageStore(arg_0, ivec3(arg_1, int(arg_2)), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_37eeef();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, r8) uniform highp writeonly image2DArray arg_0;
 void textureStore_37eeef() {
   ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
@@ -50,16 +16,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, r8) uniform highp writeonly image2DArray arg_0;
 void textureStore_37eeef() {
   ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
@@ -76,10 +35,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureStore/3d6f01.wgsl b/test/tint/builtins/gen/var/textureStore/3d6f01.wgsl
index 5ad212f..43fdae7 100644
--- a/test/tint/builtins/gen/var/textureStore/3d6f01.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/3d6f01.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32sint, write>;
 
 // fn textureStore(texture: texture_storage_1d<rg32sint, write>, coords: u32, value: vec4<i32>)
diff --git a/test/tint/builtins/gen/var/textureStore/3d6f01.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/3d6f01.wgsl.expected.glsl
index 73cabfc..850c14e 100644
--- a/test/tint/builtins/gen/var/textureStore/3d6f01.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/3d6f01.wgsl.expected.glsl
@@ -1,39 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2D arg_0;
-void textureStore_3d6f01() {
-  uint arg_1 = 1u;
-  ivec4 arg_2 = ivec4(1);
-  imageStore(arg_0, ivec2(uvec2(arg_1, 0u)), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_3d6f01();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp writeonly iimage2D arg_0;
+layout(binding = 0, rg32i) uniform highp writeonly iimage2D arg_0;
 void textureStore_3d6f01() {
   uint arg_1 = 1u;
   ivec4 arg_2 = ivec4(1);
@@ -48,16 +15,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2D arg_0;
+layout(binding = 0, rg32i) uniform highp writeonly iimage2D arg_0;
 void textureStore_3d6f01() {
   uint arg_1 = 1u;
   ivec4 arg_2 = ivec4(1);
@@ -73,10 +33,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureStore/3e0dc4.wgsl b/test/tint/builtins/gen/var/textureStore/3e0dc4.wgsl
index fc3bc57..56bbdbe 100644
--- a/test/tint/builtins/gen/var/textureStore/3e0dc4.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/3e0dc4.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32float, read_write>;
 
 // fn textureStore(texture: texture_storage_2d_array<rg32float, read_write>, coords: vec2<i32>, array_index: u32, value: vec4<f32>)
diff --git a/test/tint/builtins/gen/var/textureStore/3e0dc4.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/3e0dc4.wgsl.expected.glsl
index 20ae07a..b8c0d1d 100644
--- a/test/tint/builtins/gen/var/textureStore/3e0dc4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/3e0dc4.wgsl.expected.glsl
@@ -1,40 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2DArray arg_0;
-void textureStore_3e0dc4() {
-  ivec2 arg_1 = ivec2(1);
-  uint arg_2 = 1u;
-  vec4 arg_3 = vec4(1.0f);
-  imageStore(arg_0, ivec3(arg_1, int(arg_2)), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_3e0dc4();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, rg32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_3e0dc4() {
   ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
@@ -50,16 +16,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, rg32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_3e0dc4() {
   ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
@@ -76,10 +35,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureStore/3fb31f.wgsl b/test/tint/builtins/gen/var/textureStore/3fb31f.wgsl
index 4a9e083..994ebbe 100644
--- a/test/tint/builtins/gen/var/textureStore/3fb31f.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/3fb31f.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32uint, write>;
 
 // fn textureStore(texture: texture_storage_3d<rg32uint, write>, coords: vec3<u32>, value: vec4<u32>)
diff --git a/test/tint/builtins/gen/var/textureStore/3fb31f.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/3fb31f.wgsl.expected.glsl
index 25bf3ec..0c711e3 100644
--- a/test/tint/builtins/gen/var/textureStore/3fb31f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/3fb31f.wgsl.expected.glsl
@@ -1,39 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage3D arg_0;
-void textureStore_3fb31f() {
-  uvec3 arg_1 = uvec3(1u);
-  uvec4 arg_2 = uvec4(1u);
-  imageStore(arg_0, ivec3(arg_1), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_3fb31f();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp writeonly uimage3D arg_0;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage3D arg_0;
 void textureStore_3fb31f() {
   uvec3 arg_1 = uvec3(1u);
   uvec4 arg_2 = uvec4(1u);
@@ -48,16 +15,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage3D arg_0;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage3D arg_0;
 void textureStore_3fb31f() {
   uvec3 arg_1 = uvec3(1u);
   uvec4 arg_2 = uvec4(1u);
@@ -73,10 +33,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureStore/43d1df.wgsl b/test/tint/builtins/gen/var/textureStore/43d1df.wgsl
index 395e427..503485b 100644
--- a/test/tint/builtins/gen/var/textureStore/43d1df.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/43d1df.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r8unorm, read_write>;
 
diff --git a/test/tint/builtins/gen/var/textureStore/43d1df.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/43d1df.wgsl.expected.glsl
index 514c209..e00d1fb 100644
--- a/test/tint/builtins/gen/var/textureStore/43d1df.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/43d1df.wgsl.expected.glsl
@@ -1,40 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp writeonly image2DArray arg_0;
-void textureStore_43d1df() {
-  ivec2 arg_1 = ivec2(1);
-  int arg_2 = 1;
-  vec4 arg_3 = vec4(1.0f);
-  imageStore(arg_0, ivec3(arg_1, arg_2), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_43d1df();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, r8) uniform highp writeonly image2DArray arg_0;
 void textureStore_43d1df() {
   ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
@@ -50,16 +16,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, r8) uniform highp writeonly image2DArray arg_0;
 void textureStore_43d1df() {
   ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
@@ -76,10 +35,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureStore/473ead.wgsl b/test/tint/builtins/gen/var/textureStore/473ead.wgsl
index f76a295..71c0bb7 100644
--- a/test/tint/builtins/gen/var/textureStore/473ead.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/473ead.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32uint, read_write>;
 
 // fn textureStore(texture: texture_storage_3d<rg32uint, read_write>, coords: vec3<u32>, value: vec4<u32>)
diff --git a/test/tint/builtins/gen/var/textureStore/473ead.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/473ead.wgsl.expected.glsl
index a1dc019..4d8902e 100644
--- a/test/tint/builtins/gen/var/textureStore/473ead.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/473ead.wgsl.expected.glsl
@@ -1,39 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage3D arg_0;
-void textureStore_473ead() {
-  uvec3 arg_1 = uvec3(1u);
-  uvec4 arg_2 = uvec4(1u);
-  imageStore(arg_0, ivec3(arg_1), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_473ead();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp writeonly uimage3D arg_0;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage3D arg_0;
 void textureStore_473ead() {
   uvec3 arg_1 = uvec3(1u);
   uvec4 arg_2 = uvec4(1u);
@@ -48,16 +15,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage3D arg_0;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage3D arg_0;
 void textureStore_473ead() {
   uvec3 arg_1 = uvec3(1u);
   uvec4 arg_2 = uvec4(1u);
@@ -73,10 +33,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureStore/48eae1.wgsl b/test/tint/builtins/gen/var/textureStore/48eae1.wgsl
index 46867a0..978db09 100644
--- a/test/tint/builtins/gen/var/textureStore/48eae1.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/48eae1.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 @group(1) @binding(0) var arg_0: texture_storage_2d<r8unorm, write>;
 
diff --git a/test/tint/builtins/gen/var/textureStore/48eae1.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/48eae1.wgsl.expected.glsl
index 63df23a..664a58a 100644
--- a/test/tint/builtins/gen/var/textureStore/48eae1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/48eae1.wgsl.expected.glsl
@@ -1,39 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp writeonly image2D arg_0;
-void textureStore_48eae1() {
-  ivec2 arg_1 = ivec2(1);
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, arg_1, arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_48eae1();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp writeonly image2D arg_0;
+layout(binding = 0, r8) uniform highp writeonly image2D arg_0;
 void textureStore_48eae1() {
   ivec2 arg_1 = ivec2(1);
   vec4 arg_2 = vec4(1.0f);
@@ -48,16 +15,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp writeonly image2D arg_0;
+layout(binding = 0, r8) uniform highp writeonly image2D arg_0;
 void textureStore_48eae1() {
   ivec2 arg_1 = ivec2(1);
   vec4 arg_2 = vec4(1.0f);
@@ -73,10 +33,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureStore/4c454f.wgsl b/test/tint/builtins/gen/var/textureStore/4c454f.wgsl
index 51ba582..f56de58 100644
--- a/test/tint/builtins/gen/var/textureStore/4c454f.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/4c454f.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32sint, write>;
 
 // fn textureStore(texture: texture_storage_2d_array<rg32sint, write>, coords: vec2<u32>, array_index: u32, value: vec4<i32>)
diff --git a/test/tint/builtins/gen/var/textureStore/4c454f.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/4c454f.wgsl.expected.glsl
index f19f7fd..6b44ede 100644
--- a/test/tint/builtins/gen/var/textureStore/4c454f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/4c454f.wgsl.expected.glsl
@@ -1,40 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2DArray arg_0;
-void textureStore_4c454f() {
-  uvec2 arg_1 = uvec2(1u);
-  uint arg_2 = 1u;
-  ivec4 arg_3 = ivec4(1);
-  imageStore(arg_0, ivec3(uvec3(arg_1, arg_2)), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_4c454f();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp writeonly iimage2DArray arg_0;
+layout(binding = 0, rg32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_4c454f() {
   uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
@@ -50,16 +16,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2DArray arg_0;
+layout(binding = 0, rg32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_4c454f() {
   uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
@@ -76,10 +35,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureStore/4cce74.wgsl b/test/tint/builtins/gen/var/textureStore/4cce74.wgsl
index b5e2913..7277fb3 100644
--- a/test/tint/builtins/gen/var/textureStore/4cce74.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/4cce74.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32uint, read_write>;
 
 // fn textureStore(texture: texture_storage_1d<rg32uint, read_write>, coords: i32, value: vec4<u32>)
diff --git a/test/tint/builtins/gen/var/textureStore/4cce74.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/4cce74.wgsl.expected.glsl
index c9b9ecf..0593867 100644
--- a/test/tint/builtins/gen/var/textureStore/4cce74.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/4cce74.wgsl.expected.glsl
@@ -1,39 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2D arg_0;
-void textureStore_4cce74() {
-  int arg_1 = 1;
-  uvec4 arg_2 = uvec4(1u);
-  imageStore(arg_0, ivec2(arg_1, 0), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_4cce74();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp writeonly uimage2D arg_0;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_4cce74() {
   int arg_1 = 1;
   uvec4 arg_2 = uvec4(1u);
@@ -48,16 +15,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2D arg_0;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_4cce74() {
   int arg_1 = 1;
   uvec4 arg_2 = uvec4(1u);
@@ -73,10 +33,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureStore/4d359d.wgsl b/test/tint/builtins/gen/var/textureStore/4d359d.wgsl
index 2a9b7ed..fc35468 100644
--- a/test/tint/builtins/gen/var/textureStore/4d359d.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/4d359d.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32uint, write>;
 
 // fn textureStore(texture: texture_storage_2d_array<rg32uint, write>, coords: vec2<u32>, array_index: i32, value: vec4<u32>)
diff --git a/test/tint/builtins/gen/var/textureStore/4d359d.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/4d359d.wgsl.expected.glsl
index c3d7443..0598534 100644
--- a/test/tint/builtins/gen/var/textureStore/4d359d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/4d359d.wgsl.expected.glsl
@@ -1,40 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2DArray arg_0;
-void textureStore_4d359d() {
-  uvec2 arg_1 = uvec2(1u);
-  int arg_2 = 1;
-  uvec4 arg_3 = uvec4(1u);
-  imageStore(arg_0, ivec3(uvec3(arg_1, uint(arg_2))), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_4d359d();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp writeonly uimage2DArray arg_0;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_4d359d() {
   uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
@@ -50,16 +16,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2DArray arg_0;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_4d359d() {
   uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
@@ -76,10 +35,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureStore/4e2b3a.wgsl b/test/tint/builtins/gen/var/textureStore/4e2b3a.wgsl
index f756772..b3583e9 100644
--- a/test/tint/builtins/gen/var/textureStore/4e2b3a.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/4e2b3a.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32float, read_write>;
 
 // fn textureStore(texture: texture_storage_2d_array<rg32float, read_write>, coords: vec2<i32>, array_index: i32, value: vec4<f32>)
diff --git a/test/tint/builtins/gen/var/textureStore/4e2b3a.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/4e2b3a.wgsl.expected.glsl
index 46604a8..53d6d7f 100644
--- a/test/tint/builtins/gen/var/textureStore/4e2b3a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/4e2b3a.wgsl.expected.glsl
@@ -1,40 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2DArray arg_0;
-void textureStore_4e2b3a() {
-  ivec2 arg_1 = ivec2(1);
-  int arg_2 = 1;
-  vec4 arg_3 = vec4(1.0f);
-  imageStore(arg_0, ivec3(arg_1, arg_2), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_4e2b3a();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, rg32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_4e2b3a() {
   ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
@@ -50,16 +16,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, rg32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_4e2b3a() {
   ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
@@ -76,10 +35,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureStore/506a71.wgsl b/test/tint/builtins/gen/var/textureStore/506a71.wgsl
index 471168a..9d8c323 100644
--- a/test/tint/builtins/gen/var/textureStore/506a71.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/506a71.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32uint, write>;
 
 // fn textureStore(texture: texture_storage_2d<rg32uint, write>, coords: vec2<u32>, value: vec4<u32>)
diff --git a/test/tint/builtins/gen/var/textureStore/506a71.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/506a71.wgsl.expected.glsl
index ead81a6..844e6ba 100644
--- a/test/tint/builtins/gen/var/textureStore/506a71.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/506a71.wgsl.expected.glsl
@@ -1,39 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2D arg_0;
-void textureStore_506a71() {
-  uvec2 arg_1 = uvec2(1u);
-  uvec4 arg_2 = uvec4(1u);
-  imageStore(arg_0, ivec2(arg_1), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_506a71();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp writeonly uimage2D arg_0;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_506a71() {
   uvec2 arg_1 = uvec2(1u);
   uvec4 arg_2 = uvec4(1u);
@@ -48,16 +15,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2D arg_0;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_506a71() {
   uvec2 arg_1 = uvec2(1u);
   uvec4 arg_2 = uvec4(1u);
@@ -73,10 +33,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureStore/51ec82.wgsl b/test/tint/builtins/gen/var/textureStore/51ec82.wgsl
index d7fafca..c05c81d 100644
--- a/test/tint/builtins/gen/var/textureStore/51ec82.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/51ec82.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32float, read_write>;
 
 // fn textureStore(texture: texture_storage_1d<rg32float, read_write>, coords: i32, value: vec4<f32>)
diff --git a/test/tint/builtins/gen/var/textureStore/51ec82.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/51ec82.wgsl.expected.glsl
index 1ca4025..306ba95 100644
--- a/test/tint/builtins/gen/var/textureStore/51ec82.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/51ec82.wgsl.expected.glsl
@@ -1,39 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2D arg_0;
-void textureStore_51ec82() {
-  int arg_1 = 1;
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, ivec2(arg_1, 0), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_51ec82();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp writeonly image2D arg_0;
+layout(binding = 0, rg32f) uniform highp writeonly image2D arg_0;
 void textureStore_51ec82() {
   int arg_1 = 1;
   vec4 arg_2 = vec4(1.0f);
@@ -48,16 +15,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2D arg_0;
+layout(binding = 0, rg32f) uniform highp writeonly image2D arg_0;
 void textureStore_51ec82() {
   int arg_1 = 1;
   vec4 arg_2 = vec4(1.0f);
@@ -73,10 +33,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureStore/5425ab.wgsl b/test/tint/builtins/gen/var/textureStore/5425ab.wgsl
index 1de2d96..a8a966e 100644
--- a/test/tint/builtins/gen/var/textureStore/5425ab.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/5425ab.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32uint, read_write>;
 
 // fn textureStore(texture: texture_storage_2d<rg32uint, read_write>, coords: vec2<i32>, value: vec4<u32>)
diff --git a/test/tint/builtins/gen/var/textureStore/5425ab.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/5425ab.wgsl.expected.glsl
index c7bedac..3cd2b36 100644
--- a/test/tint/builtins/gen/var/textureStore/5425ab.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/5425ab.wgsl.expected.glsl
@@ -1,39 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2D arg_0;
-void textureStore_5425ab() {
-  ivec2 arg_1 = ivec2(1);
-  uvec4 arg_2 = uvec4(1u);
-  imageStore(arg_0, arg_1, arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_5425ab();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp writeonly uimage2D arg_0;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_5425ab() {
   ivec2 arg_1 = ivec2(1);
   uvec4 arg_2 = uvec4(1u);
@@ -48,16 +15,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2D arg_0;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_5425ab() {
   ivec2 arg_1 = ivec2(1);
   uvec4 arg_2 = uvec4(1u);
@@ -73,10 +33,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureStore/574a31.wgsl b/test/tint/builtins/gen/var/textureStore/574a31.wgsl
index 8ed0862..c567f80 100644
--- a/test/tint/builtins/gen/var/textureStore/574a31.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/574a31.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32sint, read_write>;
 
 // fn textureStore(texture: texture_storage_1d<rg32sint, read_write>, coords: u32, value: vec4<i32>)
diff --git a/test/tint/builtins/gen/var/textureStore/574a31.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/574a31.wgsl.expected.glsl
index 8422273..b7fde52 100644
--- a/test/tint/builtins/gen/var/textureStore/574a31.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/574a31.wgsl.expected.glsl
@@ -1,39 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2D arg_0;
-void textureStore_574a31() {
-  uint arg_1 = 1u;
-  ivec4 arg_2 = ivec4(1);
-  imageStore(arg_0, ivec2(uvec2(arg_1, 0u)), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_574a31();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp writeonly iimage2D arg_0;
+layout(binding = 0, rg32i) uniform highp writeonly iimage2D arg_0;
 void textureStore_574a31() {
   uint arg_1 = 1u;
   ivec4 arg_2 = ivec4(1);
@@ -48,16 +15,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2D arg_0;
+layout(binding = 0, rg32i) uniform highp writeonly iimage2D arg_0;
 void textureStore_574a31() {
   uint arg_1 = 1u;
   ivec4 arg_2 = ivec4(1);
@@ -73,10 +33,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureStore/5b17eb.wgsl b/test/tint/builtins/gen/var/textureStore/5b17eb.wgsl
index a980aa9..9dc383e 100644
--- a/test/tint/builtins/gen/var/textureStore/5b17eb.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/5b17eb.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32float, read_write>;
 
 // fn textureStore(texture: texture_storage_2d<rg32float, read_write>, coords: vec2<u32>, value: vec4<f32>)
diff --git a/test/tint/builtins/gen/var/textureStore/5b17eb.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/5b17eb.wgsl.expected.glsl
index 7cbf952..cc99611 100644
--- a/test/tint/builtins/gen/var/textureStore/5b17eb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/5b17eb.wgsl.expected.glsl
@@ -1,39 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2D arg_0;
-void textureStore_5b17eb() {
-  uvec2 arg_1 = uvec2(1u);
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, ivec2(arg_1), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_5b17eb();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp writeonly image2D arg_0;
+layout(binding = 0, rg32f) uniform highp writeonly image2D arg_0;
 void textureStore_5b17eb() {
   uvec2 arg_1 = uvec2(1u);
   vec4 arg_2 = vec4(1.0f);
@@ -48,16 +15,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2D arg_0;
+layout(binding = 0, rg32f) uniform highp writeonly image2D arg_0;
 void textureStore_5b17eb() {
   uvec2 arg_1 = uvec2(1u);
   vec4 arg_2 = vec4(1.0f);
@@ -73,10 +33,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureStore/5bc4f3.wgsl b/test/tint/builtins/gen/var/textureStore/5bc4f3.wgsl
index 527c263..c4bec55 100644
--- a/test/tint/builtins/gen/var/textureStore/5bc4f3.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/5bc4f3.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32uint, write>;
 
 // fn textureStore(texture: texture_storage_2d_array<rg32uint, write>, coords: vec2<u32>, array_index: u32, value: vec4<u32>)
diff --git a/test/tint/builtins/gen/var/textureStore/5bc4f3.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/5bc4f3.wgsl.expected.glsl
index 6da884c..9bb6dc3 100644
--- a/test/tint/builtins/gen/var/textureStore/5bc4f3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/5bc4f3.wgsl.expected.glsl
@@ -1,40 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2DArray arg_0;
-void textureStore_5bc4f3() {
-  uvec2 arg_1 = uvec2(1u);
-  uint arg_2 = 1u;
-  uvec4 arg_3 = uvec4(1u);
-  imageStore(arg_0, ivec3(uvec3(arg_1, arg_2)), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_5bc4f3();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp writeonly uimage2DArray arg_0;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_5bc4f3() {
   uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
@@ -50,16 +16,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2DArray arg_0;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_5bc4f3() {
   uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
@@ -76,10 +35,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureStore/5ee194.wgsl b/test/tint/builtins/gen/var/textureStore/5ee194.wgsl
index 6512f06..f9b0e9e 100644
--- a/test/tint/builtins/gen/var/textureStore/5ee194.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/5ee194.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32float, read_write>;
 
 // fn textureStore(texture: texture_storage_2d_array<rg32float, read_write>, coords: vec2<u32>, array_index: u32, value: vec4<f32>)
diff --git a/test/tint/builtins/gen/var/textureStore/5ee194.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/5ee194.wgsl.expected.glsl
index 5f3aeea..cd3a51c8 100644
--- a/test/tint/builtins/gen/var/textureStore/5ee194.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/5ee194.wgsl.expected.glsl
@@ -1,40 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2DArray arg_0;
-void textureStore_5ee194() {
-  uvec2 arg_1 = uvec2(1u);
-  uint arg_2 = 1u;
-  vec4 arg_3 = vec4(1.0f);
-  imageStore(arg_0, ivec3(uvec3(arg_1, arg_2)), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_5ee194();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, rg32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_5ee194() {
   uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
@@ -50,16 +16,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, rg32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_5ee194() {
   uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
@@ -76,10 +35,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureStore/602b5a.wgsl b/test/tint/builtins/gen/var/textureStore/602b5a.wgsl
index fb2bff5..522998c 100644
--- a/test/tint/builtins/gen/var/textureStore/602b5a.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/602b5a.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32float, write>;
 
 // fn textureStore(texture: texture_storage_1d<rg32float, write>, coords: u32, value: vec4<f32>)
diff --git a/test/tint/builtins/gen/var/textureStore/602b5a.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/602b5a.wgsl.expected.glsl
index 0d769b4..77ff429 100644
--- a/test/tint/builtins/gen/var/textureStore/602b5a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/602b5a.wgsl.expected.glsl
@@ -1,39 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2D arg_0;
-void textureStore_602b5a() {
-  uint arg_1 = 1u;
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, ivec2(uvec2(arg_1, 0u)), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_602b5a();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp writeonly image2D arg_0;
+layout(binding = 0, rg32f) uniform highp writeonly image2D arg_0;
 void textureStore_602b5a() {
   uint arg_1 = 1u;
   vec4 arg_2 = vec4(1.0f);
@@ -48,16 +15,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2D arg_0;
+layout(binding = 0, rg32f) uniform highp writeonly image2D arg_0;
 void textureStore_602b5a() {
   uint arg_1 = 1u;
   vec4 arg_2 = vec4(1.0f);
@@ -73,10 +33,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureStore/635584.wgsl b/test/tint/builtins/gen/var/textureStore/635584.wgsl
index a963113..d9f4d82 100644
--- a/test/tint/builtins/gen/var/textureStore/635584.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/635584.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32float, read_write>;
 
 // fn textureStore(texture: texture_storage_1d<rg32float, read_write>, coords: u32, value: vec4<f32>)
diff --git a/test/tint/builtins/gen/var/textureStore/635584.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/635584.wgsl.expected.glsl
index 3ee1887..d64c8d4 100644
--- a/test/tint/builtins/gen/var/textureStore/635584.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/635584.wgsl.expected.glsl
@@ -1,39 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2D arg_0;
-void textureStore_635584() {
-  uint arg_1 = 1u;
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, ivec2(uvec2(arg_1, 0u)), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_635584();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp writeonly image2D arg_0;
+layout(binding = 0, rg32f) uniform highp writeonly image2D arg_0;
 void textureStore_635584() {
   uint arg_1 = 1u;
   vec4 arg_2 = vec4(1.0f);
@@ -48,16 +15,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2D arg_0;
+layout(binding = 0, rg32f) uniform highp writeonly image2D arg_0;
 void textureStore_635584() {
   uint arg_1 = 1u;
   vec4 arg_2 = vec4(1.0f);
@@ -73,10 +33,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureStore/63f34a.wgsl b/test/tint/builtins/gen/var/textureStore/63f34a.wgsl
index 375c84c..5900000 100644
--- a/test/tint/builtins/gen/var/textureStore/63f34a.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/63f34a.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32sint, read_write>;
 
 // fn textureStore(texture: texture_storage_2d<rg32sint, read_write>, coords: vec2<u32>, value: vec4<i32>)
diff --git a/test/tint/builtins/gen/var/textureStore/63f34a.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/63f34a.wgsl.expected.glsl
index d95897f..724d9e4 100644
--- a/test/tint/builtins/gen/var/textureStore/63f34a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/63f34a.wgsl.expected.glsl
@@ -1,39 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2D arg_0;
-void textureStore_63f34a() {
-  uvec2 arg_1 = uvec2(1u);
-  ivec4 arg_2 = ivec4(1);
-  imageStore(arg_0, ivec2(arg_1), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_63f34a();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp writeonly iimage2D arg_0;
+layout(binding = 0, rg32i) uniform highp writeonly iimage2D arg_0;
 void textureStore_63f34a() {
   uvec2 arg_1 = uvec2(1u);
   ivec4 arg_2 = ivec4(1);
@@ -48,16 +15,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2D arg_0;
+layout(binding = 0, rg32i) uniform highp writeonly iimage2D arg_0;
 void textureStore_63f34a() {
   uvec2 arg_1 = uvec2(1u);
   ivec4 arg_2 = ivec4(1);
@@ -73,10 +33,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureStore/658a74.wgsl b/test/tint/builtins/gen/var/textureStore/658a74.wgsl
index 49e016f..4886c3c 100644
--- a/test/tint/builtins/gen/var/textureStore/658a74.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/658a74.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32float, write>;
 
 // fn textureStore(texture: texture_storage_2d_array<rg32float, write>, coords: vec2<i32>, array_index: u32, value: vec4<f32>)
diff --git a/test/tint/builtins/gen/var/textureStore/658a74.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/658a74.wgsl.expected.glsl
index 4be6928..f98a9bd 100644
--- a/test/tint/builtins/gen/var/textureStore/658a74.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/658a74.wgsl.expected.glsl
@@ -1,40 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2DArray arg_0;
-void textureStore_658a74() {
-  ivec2 arg_1 = ivec2(1);
-  uint arg_2 = 1u;
-  vec4 arg_3 = vec4(1.0f);
-  imageStore(arg_0, ivec3(arg_1, int(arg_2)), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_658a74();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, rg32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_658a74() {
   ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
@@ -50,16 +16,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, rg32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_658a74() {
   ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
@@ -76,10 +35,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureStore/65ba8b.wgsl b/test/tint/builtins/gen/var/textureStore/65ba8b.wgsl
index 2b9648c..fb58789 100644
--- a/test/tint/builtins/gen/var/textureStore/65ba8b.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/65ba8b.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 @group(1) @binding(0) var arg_0: texture_storage_2d<r8unorm, read_write>;
 
diff --git a/test/tint/builtins/gen/var/textureStore/65ba8b.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/65ba8b.wgsl.expected.glsl
index 0859b27..3dd8fd4 100644
--- a/test/tint/builtins/gen/var/textureStore/65ba8b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/65ba8b.wgsl.expected.glsl
@@ -1,39 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp writeonly image2D arg_0;
-void textureStore_65ba8b() {
-  ivec2 arg_1 = ivec2(1);
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, arg_1, arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_65ba8b();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp writeonly image2D arg_0;
+layout(binding = 0, r8) uniform highp writeonly image2D arg_0;
 void textureStore_65ba8b() {
   ivec2 arg_1 = ivec2(1);
   vec4 arg_2 = vec4(1.0f);
@@ -48,16 +15,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp writeonly image2D arg_0;
+layout(binding = 0, r8) uniform highp writeonly image2D arg_0;
 void textureStore_65ba8b() {
   ivec2 arg_1 = ivec2(1);
   vec4 arg_2 = vec4(1.0f);
@@ -73,10 +33,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureStore/682fd6.wgsl b/test/tint/builtins/gen/var/textureStore/682fd6.wgsl
index f70837a..e342c9c 100644
--- a/test/tint/builtins/gen/var/textureStore/682fd6.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/682fd6.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32uint, write>;
 
 // fn textureStore(texture: texture_storage_2d<rg32uint, write>, coords: vec2<i32>, value: vec4<u32>)
diff --git a/test/tint/builtins/gen/var/textureStore/682fd6.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/682fd6.wgsl.expected.glsl
index d03d25cb..2c43dbe 100644
--- a/test/tint/builtins/gen/var/textureStore/682fd6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/682fd6.wgsl.expected.glsl
@@ -1,39 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2D arg_0;
-void textureStore_682fd6() {
-  ivec2 arg_1 = ivec2(1);
-  uvec4 arg_2 = uvec4(1u);
-  imageStore(arg_0, arg_1, arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_682fd6();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp writeonly uimage2D arg_0;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_682fd6() {
   ivec2 arg_1 = ivec2(1);
   uvec4 arg_2 = uvec4(1u);
@@ -48,16 +15,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2D arg_0;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_682fd6() {
   ivec2 arg_1 = ivec2(1);
   uvec4 arg_2 = uvec4(1u);
@@ -73,10 +33,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureStore/6f0c92.wgsl b/test/tint/builtins/gen/var/textureStore/6f0c92.wgsl
index 5c8858a..78e1309 100644
--- a/test/tint/builtins/gen/var/textureStore/6f0c92.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/6f0c92.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r8unorm, read_write>;
 
diff --git a/test/tint/builtins/gen/var/textureStore/6f0c92.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/6f0c92.wgsl.expected.glsl
index 91e835a..4c7a9cc 100644
--- a/test/tint/builtins/gen/var/textureStore/6f0c92.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/6f0c92.wgsl.expected.glsl
@@ -1,40 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp writeonly image2DArray arg_0;
-void textureStore_6f0c92() {
-  uvec2 arg_1 = uvec2(1u);
-  int arg_2 = 1;
-  vec4 arg_3 = vec4(1.0f);
-  imageStore(arg_0, ivec3(uvec3(arg_1, uint(arg_2))), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_6f0c92();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, r8) uniform highp writeonly image2DArray arg_0;
 void textureStore_6f0c92() {
   uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
@@ -50,16 +16,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, r8) uniform highp writeonly image2DArray arg_0;
 void textureStore_6f0c92() {
   uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
@@ -76,10 +35,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureStore/6fd2b1.wgsl b/test/tint/builtins/gen/var/textureStore/6fd2b1.wgsl
index 06c8c6f..98911b1 100644
--- a/test/tint/builtins/gen/var/textureStore/6fd2b1.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/6fd2b1.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 @group(1) @binding(0) var arg_0: texture_storage_1d<r8unorm, write>;
 
diff --git a/test/tint/builtins/gen/var/textureStore/6fd2b1.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/6fd2b1.wgsl.expected.glsl
index c767840..5f1b61c 100644
--- a/test/tint/builtins/gen/var/textureStore/6fd2b1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/6fd2b1.wgsl.expected.glsl
@@ -1,39 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp writeonly image2D arg_0;
-void textureStore_6fd2b1() {
-  uint arg_1 = 1u;
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, ivec2(uvec2(arg_1, 0u)), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_6fd2b1();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp writeonly image2D arg_0;
+layout(binding = 0, r8) uniform highp writeonly image2D arg_0;
 void textureStore_6fd2b1() {
   uint arg_1 = 1u;
   vec4 arg_2 = vec4(1.0f);
@@ -48,16 +15,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp writeonly image2D arg_0;
+layout(binding = 0, r8) uniform highp writeonly image2D arg_0;
 void textureStore_6fd2b1() {
   uint arg_1 = 1u;
   vec4 arg_2 = vec4(1.0f);
@@ -73,10 +33,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureStore/726472.wgsl b/test/tint/builtins/gen/var/textureStore/726472.wgsl
index f4f8355..eb20e24 100644
--- a/test/tint/builtins/gen/var/textureStore/726472.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/726472.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32float, write>;
 
 // fn textureStore(texture: texture_storage_2d<rg32float, write>, coords: vec2<u32>, value: vec4<f32>)
diff --git a/test/tint/builtins/gen/var/textureStore/726472.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/726472.wgsl.expected.glsl
index d4be033..55d62f8 100644
--- a/test/tint/builtins/gen/var/textureStore/726472.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/726472.wgsl.expected.glsl
@@ -1,39 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2D arg_0;
-void textureStore_726472() {
-  uvec2 arg_1 = uvec2(1u);
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, ivec2(arg_1), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_726472();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp writeonly image2D arg_0;
+layout(binding = 0, rg32f) uniform highp writeonly image2D arg_0;
 void textureStore_726472() {
   uvec2 arg_1 = uvec2(1u);
   vec4 arg_2 = vec4(1.0f);
@@ -48,16 +15,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2D arg_0;
+layout(binding = 0, rg32f) uniform highp writeonly image2D arg_0;
 void textureStore_726472() {
   uvec2 arg_1 = uvec2(1u);
   vec4 arg_2 = vec4(1.0f);
@@ -73,10 +33,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureStore/72fa64.wgsl b/test/tint/builtins/gen/var/textureStore/72fa64.wgsl
index 2c88442..27a4e5c 100644
--- a/test/tint/builtins/gen/var/textureStore/72fa64.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/72fa64.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32sint, write>;
 
 // fn textureStore(texture: texture_storage_2d_array<rg32sint, write>, coords: vec2<u32>, array_index: i32, value: vec4<i32>)
diff --git a/test/tint/builtins/gen/var/textureStore/72fa64.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/72fa64.wgsl.expected.glsl
index fcc98fd..06cbc1f 100644
--- a/test/tint/builtins/gen/var/textureStore/72fa64.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/72fa64.wgsl.expected.glsl
@@ -1,40 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2DArray arg_0;
-void textureStore_72fa64() {
-  uvec2 arg_1 = uvec2(1u);
-  int arg_2 = 1;
-  ivec4 arg_3 = ivec4(1);
-  imageStore(arg_0, ivec3(uvec3(arg_1, uint(arg_2))), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_72fa64();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp writeonly iimage2DArray arg_0;
+layout(binding = 0, rg32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_72fa64() {
   uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
@@ -50,16 +16,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2DArray arg_0;
+layout(binding = 0, rg32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_72fa64() {
   uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
@@ -76,10 +35,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureStore/74886f.wgsl b/test/tint/builtins/gen/var/textureStore/74886f.wgsl
index 2506a2f..0a748f5 100644
--- a/test/tint/builtins/gen/var/textureStore/74886f.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/74886f.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 @group(1) @binding(0) var arg_0: texture_storage_1d<r8unorm, write>;
 
diff --git a/test/tint/builtins/gen/var/textureStore/74886f.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/74886f.wgsl.expected.glsl
index 0858532..0f3f924 100644
--- a/test/tint/builtins/gen/var/textureStore/74886f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/74886f.wgsl.expected.glsl
@@ -1,39 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp writeonly image2D arg_0;
-void textureStore_74886f() {
-  int arg_1 = 1;
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, ivec2(arg_1, 0), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_74886f();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp writeonly image2D arg_0;
+layout(binding = 0, r8) uniform highp writeonly image2D arg_0;
 void textureStore_74886f() {
   int arg_1 = 1;
   vec4 arg_2 = vec4(1.0f);
@@ -48,16 +15,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp writeonly image2D arg_0;
+layout(binding = 0, r8) uniform highp writeonly image2D arg_0;
 void textureStore_74886f() {
   int arg_1 = 1;
   vec4 arg_2 = vec4(1.0f);
@@ -73,10 +33,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureStore/75bbd5.wgsl b/test/tint/builtins/gen/var/textureStore/75bbd5.wgsl
index e0b613b..5562cc9 100644
--- a/test/tint/builtins/gen/var/textureStore/75bbd5.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/75bbd5.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32uint, read_write>;
 
 // fn textureStore(texture: texture_storage_2d_array<rg32uint, read_write>, coords: vec2<i32>, array_index: u32, value: vec4<u32>)
diff --git a/test/tint/builtins/gen/var/textureStore/75bbd5.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/75bbd5.wgsl.expected.glsl
index 3635060..6666349 100644
--- a/test/tint/builtins/gen/var/textureStore/75bbd5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/75bbd5.wgsl.expected.glsl
@@ -1,40 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2DArray arg_0;
-void textureStore_75bbd5() {
-  ivec2 arg_1 = ivec2(1);
-  uint arg_2 = 1u;
-  uvec4 arg_3 = uvec4(1u);
-  imageStore(arg_0, ivec3(arg_1, int(arg_2)), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_75bbd5();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp writeonly uimage2DArray arg_0;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_75bbd5() {
   ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
@@ -50,16 +16,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2DArray arg_0;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_75bbd5() {
   ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
@@ -76,10 +35,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureStore/7792fa.wgsl b/test/tint/builtins/gen/var/textureStore/7792fa.wgsl
index 6139078..4ff3f07 100644
--- a/test/tint/builtins/gen/var/textureStore/7792fa.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/7792fa.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32sint, read_write>;
 
 // fn textureStore(texture: texture_storage_3d<rg32sint, read_write>, coords: vec3<u32>, value: vec4<i32>)
diff --git a/test/tint/builtins/gen/var/textureStore/7792fa.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/7792fa.wgsl.expected.glsl
index 06dc945..71bbc8d 100644
--- a/test/tint/builtins/gen/var/textureStore/7792fa.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/7792fa.wgsl.expected.glsl
@@ -1,39 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage3D arg_0;
-void textureStore_7792fa() {
-  uvec3 arg_1 = uvec3(1u);
-  ivec4 arg_2 = ivec4(1);
-  imageStore(arg_0, ivec3(arg_1), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_7792fa();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp writeonly iimage3D arg_0;
+layout(binding = 0, rg32i) uniform highp writeonly iimage3D arg_0;
 void textureStore_7792fa() {
   uvec3 arg_1 = uvec3(1u);
   ivec4 arg_2 = ivec4(1);
@@ -48,16 +15,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage3D arg_0;
+layout(binding = 0, rg32i) uniform highp writeonly iimage3D arg_0;
 void textureStore_7792fa() {
   uvec3 arg_1 = uvec3(1u);
   ivec4 arg_2 = ivec4(1);
@@ -73,10 +33,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureStore/7b8f86.wgsl b/test/tint/builtins/gen/var/textureStore/7b8f86.wgsl
index 5c9a0f5..d1539c5 100644
--- a/test/tint/builtins/gen/var/textureStore/7b8f86.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/7b8f86.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32float, read_write>;
 
 // fn textureStore(texture: texture_storage_3d<rg32float, read_write>, coords: vec3<u32>, value: vec4<f32>)
diff --git a/test/tint/builtins/gen/var/textureStore/7b8f86.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/7b8f86.wgsl.expected.glsl
index 9be7e43..01ef0b3 100644
--- a/test/tint/builtins/gen/var/textureStore/7b8f86.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/7b8f86.wgsl.expected.glsl
@@ -1,39 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image3D arg_0;
-void textureStore_7b8f86() {
-  uvec3 arg_1 = uvec3(1u);
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, ivec3(arg_1), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_7b8f86();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp writeonly image3D arg_0;
+layout(binding = 0, rg32f) uniform highp writeonly image3D arg_0;
 void textureStore_7b8f86() {
   uvec3 arg_1 = uvec3(1u);
   vec4 arg_2 = vec4(1.0f);
@@ -48,16 +15,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image3D arg_0;
+layout(binding = 0, rg32f) uniform highp writeonly image3D arg_0;
 void textureStore_7b8f86() {
   uvec3 arg_1 = uvec3(1u);
   vec4 arg_2 = vec4(1.0f);
@@ -73,10 +33,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureStore/7bb211.wgsl b/test/tint/builtins/gen/var/textureStore/7bb211.wgsl
index 084788a..7c1ff00 100644
--- a/test/tint/builtins/gen/var/textureStore/7bb211.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/7bb211.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32sint, write>;
 
 // fn textureStore(texture: texture_storage_2d_array<rg32sint, write>, coords: vec2<i32>, array_index: u32, value: vec4<i32>)
diff --git a/test/tint/builtins/gen/var/textureStore/7bb211.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/7bb211.wgsl.expected.glsl
index 36e8f1b..0511aa4 100644
--- a/test/tint/builtins/gen/var/textureStore/7bb211.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/7bb211.wgsl.expected.glsl
@@ -1,40 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2DArray arg_0;
-void textureStore_7bb211() {
-  ivec2 arg_1 = ivec2(1);
-  uint arg_2 = 1u;
-  ivec4 arg_3 = ivec4(1);
-  imageStore(arg_0, ivec3(arg_1, int(arg_2)), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_7bb211();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp writeonly iimage2DArray arg_0;
+layout(binding = 0, rg32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_7bb211() {
   ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
@@ -50,16 +16,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2DArray arg_0;
+layout(binding = 0, rg32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_7bb211() {
   ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
@@ -76,10 +35,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureStore/803a10.wgsl b/test/tint/builtins/gen/var/textureStore/803a10.wgsl
index 6a11e19..93ffb7d 100644
--- a/test/tint/builtins/gen/var/textureStore/803a10.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/803a10.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 @group(1) @binding(0) var arg_0: texture_storage_3d<r8unorm, read_write>;
 
diff --git a/test/tint/builtins/gen/var/textureStore/803a10.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/803a10.wgsl.expected.glsl
index c4d2573..8dce4f9 100644
--- a/test/tint/builtins/gen/var/textureStore/803a10.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/803a10.wgsl.expected.glsl
@@ -1,39 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp writeonly image3D arg_0;
-void textureStore_803a10() {
-  uvec3 arg_1 = uvec3(1u);
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, ivec3(arg_1), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_803a10();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp writeonly image3D arg_0;
+layout(binding = 0, r8) uniform highp writeonly image3D arg_0;
 void textureStore_803a10() {
   uvec3 arg_1 = uvec3(1u);
   vec4 arg_2 = vec4(1.0f);
@@ -48,16 +15,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp writeonly image3D arg_0;
+layout(binding = 0, r8) uniform highp writeonly image3D arg_0;
 void textureStore_803a10() {
   uvec3 arg_1 = uvec3(1u);
   vec4 arg_2 = vec4(1.0f);
@@ -73,10 +33,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureStore/80bf1d.wgsl b/test/tint/builtins/gen/var/textureStore/80bf1d.wgsl
index b6b397a..b83fc0b 100644
--- a/test/tint/builtins/gen/var/textureStore/80bf1d.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/80bf1d.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32sint, read_write>;
 
 // fn textureStore(texture: texture_storage_2d<rg32sint, read_write>, coords: vec2<i32>, value: vec4<i32>)
diff --git a/test/tint/builtins/gen/var/textureStore/80bf1d.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/80bf1d.wgsl.expected.glsl
index 329e61a..8504f2f 100644
--- a/test/tint/builtins/gen/var/textureStore/80bf1d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/80bf1d.wgsl.expected.glsl
@@ -1,39 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2D arg_0;
-void textureStore_80bf1d() {
-  ivec2 arg_1 = ivec2(1);
-  ivec4 arg_2 = ivec4(1);
-  imageStore(arg_0, arg_1, arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_80bf1d();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp writeonly iimage2D arg_0;
+layout(binding = 0, rg32i) uniform highp writeonly iimage2D arg_0;
 void textureStore_80bf1d() {
   ivec2 arg_1 = ivec2(1);
   ivec4 arg_2 = ivec4(1);
@@ -48,16 +15,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2D arg_0;
+layout(binding = 0, rg32i) uniform highp writeonly iimage2D arg_0;
 void textureStore_80bf1d() {
   ivec2 arg_1 = ivec2(1);
   ivec4 arg_2 = ivec4(1);
@@ -73,10 +33,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureStore/820272.wgsl b/test/tint/builtins/gen/var/textureStore/820272.wgsl
index 2449602..4f673f0 100644
--- a/test/tint/builtins/gen/var/textureStore/820272.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/820272.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32sint, read_write>;
 
 // fn textureStore(texture: texture_storage_2d_array<rg32sint, read_write>, coords: vec2<i32>, array_index: u32, value: vec4<i32>)
diff --git a/test/tint/builtins/gen/var/textureStore/820272.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/820272.wgsl.expected.glsl
index 6b6961a..5c5c7d0 100644
--- a/test/tint/builtins/gen/var/textureStore/820272.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/820272.wgsl.expected.glsl
@@ -1,40 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2DArray arg_0;
-void textureStore_820272() {
-  ivec2 arg_1 = ivec2(1);
-  uint arg_2 = 1u;
-  ivec4 arg_3 = ivec4(1);
-  imageStore(arg_0, ivec3(arg_1, int(arg_2)), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_820272();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp writeonly iimage2DArray arg_0;
+layout(binding = 0, rg32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_820272() {
   ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
@@ -50,16 +16,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2DArray arg_0;
+layout(binding = 0, rg32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_820272() {
   ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
@@ -76,10 +35,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureStore/83bcc1.wgsl b/test/tint/builtins/gen/var/textureStore/83bcc1.wgsl
index 55f822b..ab528fd 100644
--- a/test/tint/builtins/gen/var/textureStore/83bcc1.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/83bcc1.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32uint, write>;
 
 // fn textureStore(texture: texture_storage_1d<rg32uint, write>, coords: i32, value: vec4<u32>)
diff --git a/test/tint/builtins/gen/var/textureStore/83bcc1.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/83bcc1.wgsl.expected.glsl
index 7e9a848..9f88d6f 100644
--- a/test/tint/builtins/gen/var/textureStore/83bcc1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/83bcc1.wgsl.expected.glsl
@@ -1,39 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2D arg_0;
-void textureStore_83bcc1() {
-  int arg_1 = 1;
-  uvec4 arg_2 = uvec4(1u);
-  imageStore(arg_0, ivec2(arg_1, 0), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_83bcc1();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp writeonly uimage2D arg_0;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_83bcc1() {
   int arg_1 = 1;
   uvec4 arg_2 = uvec4(1u);
@@ -48,16 +15,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2D arg_0;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_83bcc1() {
   int arg_1 = 1;
   uvec4 arg_2 = uvec4(1u);
@@ -73,10 +33,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureStore/84d435.wgsl b/test/tint/builtins/gen/var/textureStore/84d435.wgsl
index 723cda7..f63c604 100644
--- a/test/tint/builtins/gen/var/textureStore/84d435.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/84d435.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32sint, read_write>;
 
 // fn textureStore(texture: texture_storage_2d_array<rg32sint, read_write>, coords: vec2<i32>, array_index: i32, value: vec4<i32>)
diff --git a/test/tint/builtins/gen/var/textureStore/84d435.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/84d435.wgsl.expected.glsl
index 639f6df..355aaef 100644
--- a/test/tint/builtins/gen/var/textureStore/84d435.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/84d435.wgsl.expected.glsl
@@ -1,40 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2DArray arg_0;
-void textureStore_84d435() {
-  ivec2 arg_1 = ivec2(1);
-  int arg_2 = 1;
-  ivec4 arg_3 = ivec4(1);
-  imageStore(arg_0, ivec3(arg_1, arg_2), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_84d435();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp writeonly iimage2DArray arg_0;
+layout(binding = 0, rg32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_84d435() {
   ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
@@ -50,16 +16,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2DArray arg_0;
+layout(binding = 0, rg32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_84d435() {
   ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
@@ -76,10 +35,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureStore/872747.wgsl b/test/tint/builtins/gen/var/textureStore/872747.wgsl
index ac76149..65b6ed3 100644
--- a/test/tint/builtins/gen/var/textureStore/872747.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/872747.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32float, write>;
 
 // fn textureStore(texture: texture_storage_1d<rg32float, write>, coords: i32, value: vec4<f32>)
diff --git a/test/tint/builtins/gen/var/textureStore/872747.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/872747.wgsl.expected.glsl
index e76a667..aedcb67 100644
--- a/test/tint/builtins/gen/var/textureStore/872747.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/872747.wgsl.expected.glsl
@@ -1,39 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2D arg_0;
-void textureStore_872747() {
-  int arg_1 = 1;
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, ivec2(arg_1, 0), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_872747();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp writeonly image2D arg_0;
+layout(binding = 0, rg32f) uniform highp writeonly image2D arg_0;
 void textureStore_872747() {
   int arg_1 = 1;
   vec4 arg_2 = vec4(1.0f);
@@ -48,16 +15,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2D arg_0;
+layout(binding = 0, rg32f) uniform highp writeonly image2D arg_0;
 void textureStore_872747() {
   int arg_1 = 1;
   vec4 arg_2 = vec4(1.0f);
@@ -73,10 +33,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureStore/8a8681.wgsl b/test/tint/builtins/gen/var/textureStore/8a8681.wgsl
index 51478ec..0319652 100644
--- a/test/tint/builtins/gen/var/textureStore/8a8681.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/8a8681.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32uint, read_write>;
 
 // fn textureStore(texture: texture_storage_2d<rg32uint, read_write>, coords: vec2<u32>, value: vec4<u32>)
diff --git a/test/tint/builtins/gen/var/textureStore/8a8681.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/8a8681.wgsl.expected.glsl
index 8538872..048b598f 100644
--- a/test/tint/builtins/gen/var/textureStore/8a8681.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/8a8681.wgsl.expected.glsl
@@ -1,39 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2D arg_0;
-void textureStore_8a8681() {
-  uvec2 arg_1 = uvec2(1u);
-  uvec4 arg_2 = uvec4(1u);
-  imageStore(arg_0, ivec2(arg_1), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_8a8681();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp writeonly uimage2D arg_0;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_8a8681() {
   uvec2 arg_1 = uvec2(1u);
   uvec4 arg_2 = uvec4(1u);
@@ -48,16 +15,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2D arg_0;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_8a8681() {
   uvec2 arg_1 = uvec2(1u);
   uvec4 arg_2 = uvec4(1u);
@@ -73,10 +33,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureStore/8cd611.wgsl b/test/tint/builtins/gen/var/textureStore/8cd611.wgsl
index e35303b..8f5807f 100644
--- a/test/tint/builtins/gen/var/textureStore/8cd611.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/8cd611.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 @group(1) @binding(0) var arg_0: texture_storage_3d<r8unorm, write>;
 
diff --git a/test/tint/builtins/gen/var/textureStore/8cd611.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/8cd611.wgsl.expected.glsl
index b791e3d..97916f4 100644
--- a/test/tint/builtins/gen/var/textureStore/8cd611.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/8cd611.wgsl.expected.glsl
@@ -1,39 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp writeonly image3D arg_0;
-void textureStore_8cd611() {
-  uvec3 arg_1 = uvec3(1u);
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, ivec3(arg_1), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_8cd611();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp writeonly image3D arg_0;
+layout(binding = 0, r8) uniform highp writeonly image3D arg_0;
 void textureStore_8cd611() {
   uvec3 arg_1 = uvec3(1u);
   vec4 arg_2 = vec4(1.0f);
@@ -48,16 +15,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp writeonly image3D arg_0;
+layout(binding = 0, r8) uniform highp writeonly image3D arg_0;
 void textureStore_8cd611() {
   uvec3 arg_1 = uvec3(1u);
   vec4 arg_2 = vec4(1.0f);
@@ -73,10 +33,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureStore/9e5bc2.wgsl b/test/tint/builtins/gen/var/textureStore/9e5bc2.wgsl
index e2268ac..09cc6f8 100644
--- a/test/tint/builtins/gen/var/textureStore/9e5bc2.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/9e5bc2.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 @group(1) @binding(0) var arg_0: texture_storage_2d<r8unorm, write>;
 
diff --git a/test/tint/builtins/gen/var/textureStore/9e5bc2.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/9e5bc2.wgsl.expected.glsl
index 91d334a..0074b24 100644
--- a/test/tint/builtins/gen/var/textureStore/9e5bc2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/9e5bc2.wgsl.expected.glsl
@@ -1,39 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp writeonly image2D arg_0;
-void textureStore_9e5bc2() {
-  uvec2 arg_1 = uvec2(1u);
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, ivec2(arg_1), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_9e5bc2();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp writeonly image2D arg_0;
+layout(binding = 0, r8) uniform highp writeonly image2D arg_0;
 void textureStore_9e5bc2() {
   uvec2 arg_1 = uvec2(1u);
   vec4 arg_2 = vec4(1.0f);
@@ -48,16 +15,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp writeonly image2D arg_0;
+layout(binding = 0, r8) uniform highp writeonly image2D arg_0;
 void textureStore_9e5bc2() {
   uvec2 arg_1 = uvec2(1u);
   vec4 arg_2 = vec4(1.0f);
@@ -73,10 +33,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureStore/9f5318.wgsl b/test/tint/builtins/gen/var/textureStore/9f5318.wgsl
index 8bd612e..adce586 100644
--- a/test/tint/builtins/gen/var/textureStore/9f5318.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/9f5318.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32sint, write>;
 
 // fn textureStore(texture: texture_storage_2d<rg32sint, write>, coords: vec2<u32>, value: vec4<i32>)
diff --git a/test/tint/builtins/gen/var/textureStore/9f5318.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/9f5318.wgsl.expected.glsl
index 458cd61..9369e4e 100644
--- a/test/tint/builtins/gen/var/textureStore/9f5318.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/9f5318.wgsl.expected.glsl
@@ -1,39 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2D arg_0;
-void textureStore_9f5318() {
-  uvec2 arg_1 = uvec2(1u);
-  ivec4 arg_2 = ivec4(1);
-  imageStore(arg_0, ivec2(arg_1), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_9f5318();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp writeonly iimage2D arg_0;
+layout(binding = 0, rg32i) uniform highp writeonly iimage2D arg_0;
 void textureStore_9f5318() {
   uvec2 arg_1 = uvec2(1u);
   ivec4 arg_2 = ivec4(1);
@@ -48,16 +15,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2D arg_0;
+layout(binding = 0, rg32i) uniform highp writeonly iimage2D arg_0;
 void textureStore_9f5318() {
   uvec2 arg_1 = uvec2(1u);
   ivec4 arg_2 = ivec4(1);
@@ -73,10 +33,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureStore/a702b6.wgsl b/test/tint/builtins/gen/var/textureStore/a702b6.wgsl
index 15580ec..65a5ed5 100644
--- a/test/tint/builtins/gen/var/textureStore/a702b6.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/a702b6.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32uint, read_write>;
 
 // fn textureStore(texture: texture_storage_2d_array<rg32uint, read_write>, coords: vec2<i32>, array_index: i32, value: vec4<u32>)
diff --git a/test/tint/builtins/gen/var/textureStore/a702b6.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/a702b6.wgsl.expected.glsl
index 0ca4642..deb5cf9 100644
--- a/test/tint/builtins/gen/var/textureStore/a702b6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/a702b6.wgsl.expected.glsl
@@ -1,40 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2DArray arg_0;
-void textureStore_a702b6() {
-  ivec2 arg_1 = ivec2(1);
-  int arg_2 = 1;
-  uvec4 arg_3 = uvec4(1u);
-  imageStore(arg_0, ivec3(arg_1, arg_2), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_a702b6();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp writeonly uimage2DArray arg_0;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_a702b6() {
   ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
@@ -50,16 +16,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2DArray arg_0;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_a702b6() {
   ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
@@ -76,10 +35,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureStore/a7fc47.wgsl b/test/tint/builtins/gen/var/textureStore/a7fc47.wgsl
index 124a64f..ed3a284 100644
--- a/test/tint/builtins/gen/var/textureStore/a7fc47.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/a7fc47.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 @group(1) @binding(0) var arg_0: texture_storage_1d<r8unorm, read_write>;
 
diff --git a/test/tint/builtins/gen/var/textureStore/a7fc47.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/a7fc47.wgsl.expected.glsl
index b5f3a38..6d68490 100644
--- a/test/tint/builtins/gen/var/textureStore/a7fc47.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/a7fc47.wgsl.expected.glsl
@@ -1,39 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp writeonly image2D arg_0;
-void textureStore_a7fc47() {
-  uint arg_1 = 1u;
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, ivec2(uvec2(arg_1, 0u)), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_a7fc47();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp writeonly image2D arg_0;
+layout(binding = 0, r8) uniform highp writeonly image2D arg_0;
 void textureStore_a7fc47() {
   uint arg_1 = 1u;
   vec4 arg_2 = vec4(1.0f);
@@ -48,16 +15,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp writeonly image2D arg_0;
+layout(binding = 0, r8) uniform highp writeonly image2D arg_0;
 void textureStore_a7fc47() {
   uint arg_1 = 1u;
   vec4 arg_2 = vec4(1.0f);
@@ -73,10 +33,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureStore/a9298c.wgsl b/test/tint/builtins/gen/var/textureStore/a9298c.wgsl
index fd6d07e..a3ee08a 100644
--- a/test/tint/builtins/gen/var/textureStore/a9298c.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/a9298c.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32uint, read_write>;
 
 // fn textureStore(texture: texture_storage_1d<rg32uint, read_write>, coords: u32, value: vec4<u32>)
diff --git a/test/tint/builtins/gen/var/textureStore/a9298c.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/a9298c.wgsl.expected.glsl
index 99c44f6..904c816 100644
--- a/test/tint/builtins/gen/var/textureStore/a9298c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/a9298c.wgsl.expected.glsl
@@ -1,39 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2D arg_0;
-void textureStore_a9298c() {
-  uint arg_1 = 1u;
-  uvec4 arg_2 = uvec4(1u);
-  imageStore(arg_0, ivec2(uvec2(arg_1, 0u)), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_a9298c();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp writeonly uimage2D arg_0;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_a9298c() {
   uint arg_1 = 1u;
   uvec4 arg_2 = uvec4(1u);
@@ -48,16 +15,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2D arg_0;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_a9298c() {
   uint arg_1 = 1u;
   uvec4 arg_2 = uvec4(1u);
@@ -73,10 +33,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureStore/ab788e.wgsl b/test/tint/builtins/gen/var/textureStore/ab788e.wgsl
index 6e59cfd..302350a 100644
--- a/test/tint/builtins/gen/var/textureStore/ab788e.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/ab788e.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32float, read_write>;
 
 // fn textureStore(texture: texture_storage_2d<rg32float, read_write>, coords: vec2<i32>, value: vec4<f32>)
diff --git a/test/tint/builtins/gen/var/textureStore/ab788e.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/ab788e.wgsl.expected.glsl
index dcd9fd5..55684c1 100644
--- a/test/tint/builtins/gen/var/textureStore/ab788e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/ab788e.wgsl.expected.glsl
@@ -1,39 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2D arg_0;
-void textureStore_ab788e() {
-  ivec2 arg_1 = ivec2(1);
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, arg_1, arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_ab788e();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp writeonly image2D arg_0;
+layout(binding = 0, rg32f) uniform highp writeonly image2D arg_0;
 void textureStore_ab788e() {
   ivec2 arg_1 = ivec2(1);
   vec4 arg_2 = vec4(1.0f);
@@ -48,16 +15,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2D arg_0;
+layout(binding = 0, rg32f) uniform highp writeonly image2D arg_0;
 void textureStore_ab788e() {
   ivec2 arg_1 = ivec2(1);
   vec4 arg_2 = vec4(1.0f);
@@ -73,10 +33,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureStore/ac67aa.wgsl b/test/tint/builtins/gen/var/textureStore/ac67aa.wgsl
index 7ec1e30..216de3b 100644
--- a/test/tint/builtins/gen/var/textureStore/ac67aa.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/ac67aa.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32uint, write>;
 
 // fn textureStore(texture: texture_storage_3d<rg32uint, write>, coords: vec3<i32>, value: vec4<u32>)
diff --git a/test/tint/builtins/gen/var/textureStore/ac67aa.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/ac67aa.wgsl.expected.glsl
index 0d72d0b..74e33a5 100644
--- a/test/tint/builtins/gen/var/textureStore/ac67aa.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/ac67aa.wgsl.expected.glsl
@@ -1,39 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage3D arg_0;
-void textureStore_ac67aa() {
-  ivec3 arg_1 = ivec3(1);
-  uvec4 arg_2 = uvec4(1u);
-  imageStore(arg_0, arg_1, arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_ac67aa();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp writeonly uimage3D arg_0;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage3D arg_0;
 void textureStore_ac67aa() {
   ivec3 arg_1 = ivec3(1);
   uvec4 arg_2 = uvec4(1u);
@@ -48,16 +15,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage3D arg_0;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage3D arg_0;
 void textureStore_ac67aa() {
   ivec3 arg_1 = ivec3(1);
   uvec4 arg_2 = uvec4(1u);
@@ -73,10 +33,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureStore/ae6a2a.wgsl b/test/tint/builtins/gen/var/textureStore/ae6a2a.wgsl
index 0fb4b79..7eeecf2 100644
--- a/test/tint/builtins/gen/var/textureStore/ae6a2a.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/ae6a2a.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r8unorm, read_write>;
 
diff --git a/test/tint/builtins/gen/var/textureStore/ae6a2a.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/ae6a2a.wgsl.expected.glsl
index 0a6183c..7731dfa 100644
--- a/test/tint/builtins/gen/var/textureStore/ae6a2a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/ae6a2a.wgsl.expected.glsl
@@ -1,40 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp writeonly image2DArray arg_0;
-void textureStore_ae6a2a() {
-  uvec2 arg_1 = uvec2(1u);
-  uint arg_2 = 1u;
-  vec4 arg_3 = vec4(1.0f);
-  imageStore(arg_0, ivec3(uvec3(arg_1, arg_2)), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_ae6a2a();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, r8) uniform highp writeonly image2DArray arg_0;
 void textureStore_ae6a2a() {
   uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
@@ -50,16 +16,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, r8) uniform highp writeonly image2DArray arg_0;
 void textureStore_ae6a2a() {
   uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
@@ -76,10 +35,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureStore/b71c13.wgsl b/test/tint/builtins/gen/var/textureStore/b71c13.wgsl
index 111fdc2..a12bd46 100644
--- a/test/tint/builtins/gen/var/textureStore/b71c13.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/b71c13.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32float, read_write>;
 
 // fn textureStore(texture: texture_storage_2d_array<rg32float, read_write>, coords: vec2<u32>, array_index: i32, value: vec4<f32>)
diff --git a/test/tint/builtins/gen/var/textureStore/b71c13.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/b71c13.wgsl.expected.glsl
index b87bba4..590b3a6 100644
--- a/test/tint/builtins/gen/var/textureStore/b71c13.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/b71c13.wgsl.expected.glsl
@@ -1,40 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2DArray arg_0;
-void textureStore_b71c13() {
-  uvec2 arg_1 = uvec2(1u);
-  int arg_2 = 1;
-  vec4 arg_3 = vec4(1.0f);
-  imageStore(arg_0, ivec3(uvec3(arg_1, uint(arg_2))), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_b71c13();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, rg32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_b71c13() {
   uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
@@ -50,16 +16,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, rg32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_b71c13() {
   uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
@@ -76,10 +35,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureStore/b77161.wgsl b/test/tint/builtins/gen/var/textureStore/b77161.wgsl
index 2d65951..6009b08 100644
--- a/test/tint/builtins/gen/var/textureStore/b77161.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/b77161.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32uint, write>;
 
 // fn textureStore(texture: texture_storage_1d<rg32uint, write>, coords: u32, value: vec4<u32>)
diff --git a/test/tint/builtins/gen/var/textureStore/b77161.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/b77161.wgsl.expected.glsl
index daebd52..f1994e0 100644
--- a/test/tint/builtins/gen/var/textureStore/b77161.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/b77161.wgsl.expected.glsl
@@ -1,39 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2D arg_0;
-void textureStore_b77161() {
-  uint arg_1 = 1u;
-  uvec4 arg_2 = uvec4(1u);
-  imageStore(arg_0, ivec2(uvec2(arg_1, 0u)), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_b77161();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp writeonly uimage2D arg_0;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_b77161() {
   uint arg_1 = 1u;
   uvec4 arg_2 = uvec4(1u);
@@ -48,16 +15,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2D arg_0;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_b77161() {
   uint arg_1 = 1u;
   uvec4 arg_2 = uvec4(1u);
@@ -73,10 +33,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureStore/b91b86.wgsl b/test/tint/builtins/gen/var/textureStore/b91b86.wgsl
index 48441b4..fe71fab 100644
--- a/test/tint/builtins/gen/var/textureStore/b91b86.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/b91b86.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r8unorm, write>;
 
diff --git a/test/tint/builtins/gen/var/textureStore/b91b86.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/b91b86.wgsl.expected.glsl
index fcdeb07..156ff59 100644
--- a/test/tint/builtins/gen/var/textureStore/b91b86.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/b91b86.wgsl.expected.glsl
@@ -1,40 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp writeonly image2DArray arg_0;
-void textureStore_b91b86() {
-  uvec2 arg_1 = uvec2(1u);
-  int arg_2 = 1;
-  vec4 arg_3 = vec4(1.0f);
-  imageStore(arg_0, ivec3(uvec3(arg_1, uint(arg_2))), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_b91b86();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, r8) uniform highp writeonly image2DArray arg_0;
 void textureStore_b91b86() {
   uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
@@ -50,16 +16,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, r8) uniform highp writeonly image2DArray arg_0;
 void textureStore_b91b86() {
   uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
@@ -76,10 +35,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureStore/b9c81a.wgsl b/test/tint/builtins/gen/var/textureStore/b9c81a.wgsl
index 1470442..821cb52 100644
--- a/test/tint/builtins/gen/var/textureStore/b9c81a.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/b9c81a.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32uint, read_write>;
 
 // fn textureStore(texture: texture_storage_3d<rg32uint, read_write>, coords: vec3<i32>, value: vec4<u32>)
diff --git a/test/tint/builtins/gen/var/textureStore/b9c81a.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/b9c81a.wgsl.expected.glsl
index a71b0c7..3ef804c 100644
--- a/test/tint/builtins/gen/var/textureStore/b9c81a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/b9c81a.wgsl.expected.glsl
@@ -1,39 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage3D arg_0;
-void textureStore_b9c81a() {
-  ivec3 arg_1 = ivec3(1);
-  uvec4 arg_2 = uvec4(1u);
-  imageStore(arg_0, arg_1, arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_b9c81a();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp writeonly uimage3D arg_0;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage3D arg_0;
 void textureStore_b9c81a() {
   ivec3 arg_1 = ivec3(1);
   uvec4 arg_2 = uvec4(1u);
@@ -48,16 +15,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage3D arg_0;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage3D arg_0;
 void textureStore_b9c81a() {
   ivec3 arg_1 = ivec3(1);
   uvec4 arg_2 = uvec4(1u);
@@ -73,10 +33,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureStore/bd6602.wgsl b/test/tint/builtins/gen/var/textureStore/bd6602.wgsl
index 8a23e2d..5bf44a0 100644
--- a/test/tint/builtins/gen/var/textureStore/bd6602.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/bd6602.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32uint, read_write>;
 
 // fn textureStore(texture: texture_storage_2d_array<rg32uint, read_write>, coords: vec2<u32>, array_index: i32, value: vec4<u32>)
diff --git a/test/tint/builtins/gen/var/textureStore/bd6602.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/bd6602.wgsl.expected.glsl
index 1362b3a..6d45363 100644
--- a/test/tint/builtins/gen/var/textureStore/bd6602.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/bd6602.wgsl.expected.glsl
@@ -1,40 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2DArray arg_0;
-void textureStore_bd6602() {
-  uvec2 arg_1 = uvec2(1u);
-  int arg_2 = 1;
-  uvec4 arg_3 = uvec4(1u);
-  imageStore(arg_0, ivec3(uvec3(arg_1, uint(arg_2))), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_bd6602();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp writeonly uimage2DArray arg_0;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_bd6602() {
   uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
@@ -50,16 +16,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2DArray arg_0;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_bd6602() {
   uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
@@ -76,10 +35,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureStore/c33478.wgsl b/test/tint/builtins/gen/var/textureStore/c33478.wgsl
index 1dc5939..adc9038 100644
--- a/test/tint/builtins/gen/var/textureStore/c33478.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/c33478.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32float, read_write>;
 
 // fn textureStore(texture: texture_storage_3d<rg32float, read_write>, coords: vec3<i32>, value: vec4<f32>)
diff --git a/test/tint/builtins/gen/var/textureStore/c33478.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/c33478.wgsl.expected.glsl
index 7314732..86ea5b5 100644
--- a/test/tint/builtins/gen/var/textureStore/c33478.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/c33478.wgsl.expected.glsl
@@ -1,39 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image3D arg_0;
-void textureStore_c33478() {
-  ivec3 arg_1 = ivec3(1);
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, arg_1, arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_c33478();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp writeonly image3D arg_0;
+layout(binding = 0, rg32f) uniform highp writeonly image3D arg_0;
 void textureStore_c33478() {
   ivec3 arg_1 = ivec3(1);
   vec4 arg_2 = vec4(1.0f);
@@ -48,16 +15,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image3D arg_0;
+layout(binding = 0, rg32f) uniform highp writeonly image3D arg_0;
 void textureStore_c33478() {
   ivec3 arg_1 = ivec3(1);
   vec4 arg_2 = vec4(1.0f);
@@ -73,10 +33,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureStore/c863be.wgsl b/test/tint/builtins/gen/var/textureStore/c863be.wgsl
index eb65132..59b6d29 100644
--- a/test/tint/builtins/gen/var/textureStore/c863be.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/c863be.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32float, write>;
 
 // fn textureStore(texture: texture_storage_2d_array<rg32float, write>, coords: vec2<i32>, array_index: i32, value: vec4<f32>)
diff --git a/test/tint/builtins/gen/var/textureStore/c863be.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/c863be.wgsl.expected.glsl
index 90d2286..9ab4844 100644
--- a/test/tint/builtins/gen/var/textureStore/c863be.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/c863be.wgsl.expected.glsl
@@ -1,40 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2DArray arg_0;
-void textureStore_c863be() {
-  ivec2 arg_1 = ivec2(1);
-  int arg_2 = 1;
-  vec4 arg_3 = vec4(1.0f);
-  imageStore(arg_0, ivec3(arg_1, arg_2), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_c863be();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, rg32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_c863be() {
   ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
@@ -50,16 +16,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, rg32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_c863be() {
   ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
@@ -76,10 +35,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureStore/d19db4.wgsl b/test/tint/builtins/gen/var/textureStore/d19db4.wgsl
index fb71bd8..33c8dd3 100644
--- a/test/tint/builtins/gen/var/textureStore/d19db4.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/d19db4.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32sint, read_write>;
 
 // fn textureStore(texture: texture_storage_3d<rg32sint, read_write>, coords: vec3<i32>, value: vec4<i32>)
diff --git a/test/tint/builtins/gen/var/textureStore/d19db4.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/d19db4.wgsl.expected.glsl
index 8c7ca7c..979fe47 100644
--- a/test/tint/builtins/gen/var/textureStore/d19db4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/d19db4.wgsl.expected.glsl
@@ -1,39 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage3D arg_0;
-void textureStore_d19db4() {
-  ivec3 arg_1 = ivec3(1);
-  ivec4 arg_2 = ivec4(1);
-  imageStore(arg_0, arg_1, arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_d19db4();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp writeonly iimage3D arg_0;
+layout(binding = 0, rg32i) uniform highp writeonly iimage3D arg_0;
 void textureStore_d19db4() {
   ivec3 arg_1 = ivec3(1);
   ivec4 arg_2 = ivec4(1);
@@ -48,16 +15,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage3D arg_0;
+layout(binding = 0, rg32i) uniform highp writeonly iimage3D arg_0;
 void textureStore_d19db4() {
   ivec3 arg_1 = ivec3(1);
   ivec4 arg_2 = ivec4(1);
@@ -73,10 +33,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureStore/d73b5c.wgsl b/test/tint/builtins/gen/var/textureStore/d73b5c.wgsl
index 21e55b8..4c86ce9 100644
--- a/test/tint/builtins/gen/var/textureStore/d73b5c.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/d73b5c.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32sint, write>;
 
 // fn textureStore(texture: texture_storage_1d<rg32sint, write>, coords: i32, value: vec4<i32>)
diff --git a/test/tint/builtins/gen/var/textureStore/d73b5c.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/d73b5c.wgsl.expected.glsl
index 086b00a..1480189 100644
--- a/test/tint/builtins/gen/var/textureStore/d73b5c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/d73b5c.wgsl.expected.glsl
@@ -1,39 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2D arg_0;
-void textureStore_d73b5c() {
-  int arg_1 = 1;
-  ivec4 arg_2 = ivec4(1);
-  imageStore(arg_0, ivec2(arg_1, 0), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_d73b5c();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp writeonly iimage2D arg_0;
+layout(binding = 0, rg32i) uniform highp writeonly iimage2D arg_0;
 void textureStore_d73b5c() {
   int arg_1 = 1;
   ivec4 arg_2 = ivec4(1);
@@ -48,16 +15,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2D arg_0;
+layout(binding = 0, rg32i) uniform highp writeonly iimage2D arg_0;
 void textureStore_d73b5c() {
   int arg_1 = 1;
   ivec4 arg_2 = ivec4(1);
@@ -73,10 +33,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureStore/d82b0a.wgsl b/test/tint/builtins/gen/var/textureStore/d82b0a.wgsl
index 5e8e69c..b26c9ad 100644
--- a/test/tint/builtins/gen/var/textureStore/d82b0a.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/d82b0a.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32sint, write>;
 
 // fn textureStore(texture: texture_storage_3d<rg32sint, write>, coords: vec3<u32>, value: vec4<i32>)
diff --git a/test/tint/builtins/gen/var/textureStore/d82b0a.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/d82b0a.wgsl.expected.glsl
index 9c985fe..a807395 100644
--- a/test/tint/builtins/gen/var/textureStore/d82b0a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/d82b0a.wgsl.expected.glsl
@@ -1,39 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage3D arg_0;
-void textureStore_d82b0a() {
-  uvec3 arg_1 = uvec3(1u);
-  ivec4 arg_2 = ivec4(1);
-  imageStore(arg_0, ivec3(arg_1), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_d82b0a();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp writeonly iimage3D arg_0;
+layout(binding = 0, rg32i) uniform highp writeonly iimage3D arg_0;
 void textureStore_d82b0a() {
   uvec3 arg_1 = uvec3(1u);
   ivec4 arg_2 = ivec4(1);
@@ -48,16 +15,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage3D arg_0;
+layout(binding = 0, rg32i) uniform highp writeonly iimage3D arg_0;
 void textureStore_d82b0a() {
   uvec3 arg_1 = uvec3(1u);
   ivec4 arg_2 = ivec4(1);
@@ -73,10 +33,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureStore/dde364.wgsl b/test/tint/builtins/gen/var/textureStore/dde364.wgsl
index 557ab81..6334f91 100644
--- a/test/tint/builtins/gen/var/textureStore/dde364.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/dde364.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32uint, write>;
 
 // fn textureStore(texture: texture_storage_2d_array<rg32uint, write>, coords: vec2<i32>, array_index: i32, value: vec4<u32>)
diff --git a/test/tint/builtins/gen/var/textureStore/dde364.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/dde364.wgsl.expected.glsl
index 5c097df..112962a 100644
--- a/test/tint/builtins/gen/var/textureStore/dde364.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/dde364.wgsl.expected.glsl
@@ -1,40 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2DArray arg_0;
-void textureStore_dde364() {
-  ivec2 arg_1 = ivec2(1);
-  int arg_2 = 1;
-  uvec4 arg_3 = uvec4(1u);
-  imageStore(arg_0, ivec3(arg_1, arg_2), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_dde364();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp writeonly uimage2DArray arg_0;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_dde364() {
   ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
@@ -50,16 +16,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2DArray arg_0;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_dde364() {
   ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
@@ -76,10 +35,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureStore/dfa9a1.wgsl b/test/tint/builtins/gen/var/textureStore/dfa9a1.wgsl
index 15d509f..c16bb93 100644
--- a/test/tint/builtins/gen/var/textureStore/dfa9a1.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/dfa9a1.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32float, write>;
 
 // fn textureStore(texture: texture_storage_2d_array<rg32float, write>, coords: vec2<u32>, array_index: i32, value: vec4<f32>)
diff --git a/test/tint/builtins/gen/var/textureStore/dfa9a1.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/dfa9a1.wgsl.expected.glsl
index acf78d1..383f288 100644
--- a/test/tint/builtins/gen/var/textureStore/dfa9a1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/dfa9a1.wgsl.expected.glsl
@@ -1,40 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2DArray arg_0;
-void textureStore_dfa9a1() {
-  uvec2 arg_1 = uvec2(1u);
-  int arg_2 = 1;
-  vec4 arg_3 = vec4(1.0f);
-  imageStore(arg_0, ivec3(uvec3(arg_1, uint(arg_2))), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_dfa9a1();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, rg32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_dfa9a1() {
   uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
@@ -50,16 +16,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, rg32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_dfa9a1() {
   uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
@@ -76,10 +35,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureStore/dffb13.wgsl b/test/tint/builtins/gen/var/textureStore/dffb13.wgsl
index 4e00d90..bec7311 100644
--- a/test/tint/builtins/gen/var/textureStore/dffb13.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/dffb13.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32uint, write>;
 
 // fn textureStore(texture: texture_storage_2d_array<rg32uint, write>, coords: vec2<i32>, array_index: u32, value: vec4<u32>)
diff --git a/test/tint/builtins/gen/var/textureStore/dffb13.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/dffb13.wgsl.expected.glsl
index 2905def..3a82dac 100644
--- a/test/tint/builtins/gen/var/textureStore/dffb13.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/dffb13.wgsl.expected.glsl
@@ -1,40 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2DArray arg_0;
-void textureStore_dffb13() {
-  ivec2 arg_1 = ivec2(1);
-  uint arg_2 = 1u;
-  uvec4 arg_3 = uvec4(1u);
-  imageStore(arg_0, ivec3(arg_1, int(arg_2)), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_dffb13();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32ui) uniform highp writeonly uimage2DArray arg_0;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_dffb13() {
   ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
@@ -50,16 +16,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2DArray arg_0;
+layout(binding = 0, rg32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_dffb13() {
   ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
@@ -76,10 +35,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureStore/e077e7.wgsl b/test/tint/builtins/gen/var/textureStore/e077e7.wgsl
index 53309d9..d4506f2 100644
--- a/test/tint/builtins/gen/var/textureStore/e077e7.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/e077e7.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32sint, read_write>;
 
 // fn textureStore(texture: texture_storage_1d<rg32sint, read_write>, coords: i32, value: vec4<i32>)
diff --git a/test/tint/builtins/gen/var/textureStore/e077e7.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/e077e7.wgsl.expected.glsl
index 2ed4836..691cfa4 100644
--- a/test/tint/builtins/gen/var/textureStore/e077e7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/e077e7.wgsl.expected.glsl
@@ -1,39 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2D arg_0;
-void textureStore_e077e7() {
-  int arg_1 = 1;
-  ivec4 arg_2 = ivec4(1);
-  imageStore(arg_0, ivec2(arg_1, 0), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_e077e7();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp writeonly iimage2D arg_0;
+layout(binding = 0, rg32i) uniform highp writeonly iimage2D arg_0;
 void textureStore_e077e7() {
   int arg_1 = 1;
   ivec4 arg_2 = ivec4(1);
@@ -48,16 +15,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2D arg_0;
+layout(binding = 0, rg32i) uniform highp writeonly iimage2D arg_0;
 void textureStore_e077e7() {
   int arg_1 = 1;
   ivec4 arg_2 = ivec4(1);
@@ -73,10 +33,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureStore/ea30d2.wgsl b/test/tint/builtins/gen/var/textureStore/ea30d2.wgsl
index 82ae530..89ea92e 100644
--- a/test/tint/builtins/gen/var/textureStore/ea30d2.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/ea30d2.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32sint, read_write>;
 
 // fn textureStore(texture: texture_storage_2d_array<rg32sint, read_write>, coords: vec2<u32>, array_index: i32, value: vec4<i32>)
diff --git a/test/tint/builtins/gen/var/textureStore/ea30d2.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/ea30d2.wgsl.expected.glsl
index cac7071..2b3f2c9 100644
--- a/test/tint/builtins/gen/var/textureStore/ea30d2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/ea30d2.wgsl.expected.glsl
@@ -1,40 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2DArray arg_0;
-void textureStore_ea30d2() {
-  uvec2 arg_1 = uvec2(1u);
-  int arg_2 = 1;
-  ivec4 arg_3 = ivec4(1);
-  imageStore(arg_0, ivec3(uvec3(arg_1, uint(arg_2))), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_ea30d2();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp writeonly iimage2DArray arg_0;
+layout(binding = 0, rg32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_ea30d2() {
   uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
@@ -50,16 +16,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2DArray arg_0;
+layout(binding = 0, rg32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_ea30d2() {
   uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
@@ -76,10 +35,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureStore/ed6198.wgsl b/test/tint/builtins/gen/var/textureStore/ed6198.wgsl
index e45f934..f6e3c7d 100644
--- a/test/tint/builtins/gen/var/textureStore/ed6198.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/ed6198.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 @group(1) @binding(0) var arg_0: texture_storage_3d<r8unorm, read_write>;
 
diff --git a/test/tint/builtins/gen/var/textureStore/ed6198.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/ed6198.wgsl.expected.glsl
index 7b3beb7..d4c59f5 100644
--- a/test/tint/builtins/gen/var/textureStore/ed6198.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/ed6198.wgsl.expected.glsl
@@ -1,39 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp writeonly image3D arg_0;
-void textureStore_ed6198() {
-  ivec3 arg_1 = ivec3(1);
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, arg_1, arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_ed6198();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp writeonly image3D arg_0;
+layout(binding = 0, r8) uniform highp writeonly image3D arg_0;
 void textureStore_ed6198() {
   ivec3 arg_1 = ivec3(1);
   vec4 arg_2 = vec4(1.0f);
@@ -48,16 +15,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp writeonly image3D arg_0;
+layout(binding = 0, r8) uniform highp writeonly image3D arg_0;
 void textureStore_ed6198() {
   ivec3 arg_1 = ivec3(1);
   vec4 arg_2 = vec4(1.0f);
@@ -73,10 +33,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureStore/ee6acc.wgsl b/test/tint/builtins/gen/var/textureStore/ee6acc.wgsl
index 338e9d2..8e861d7 100644
--- a/test/tint/builtins/gen/var/textureStore/ee6acc.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/ee6acc.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32float, write>;
 
 // fn textureStore(texture: texture_storage_3d<rg32float, write>, coords: vec3<i32>, value: vec4<f32>)
diff --git a/test/tint/builtins/gen/var/textureStore/ee6acc.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/ee6acc.wgsl.expected.glsl
index 6b424cf..3d125fa 100644
--- a/test/tint/builtins/gen/var/textureStore/ee6acc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/ee6acc.wgsl.expected.glsl
@@ -1,39 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image3D arg_0;
-void textureStore_ee6acc() {
-  ivec3 arg_1 = ivec3(1);
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, arg_1, arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_ee6acc();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp writeonly image3D arg_0;
+layout(binding = 0, rg32f) uniform highp writeonly image3D arg_0;
 void textureStore_ee6acc() {
   ivec3 arg_1 = ivec3(1);
   vec4 arg_2 = vec4(1.0f);
@@ -48,16 +15,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image3D arg_0;
+layout(binding = 0, rg32f) uniform highp writeonly image3D arg_0;
 void textureStore_ee6acc() {
   ivec3 arg_1 = ivec3(1);
   vec4 arg_2 = vec4(1.0f);
@@ -73,10 +33,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureStore/f7b0ab.wgsl b/test/tint/builtins/gen/var/textureStore/f7b0ab.wgsl
index bfdd7b7..29f24da 100644
--- a/test/tint/builtins/gen/var/textureStore/f7b0ab.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/f7b0ab.wgsl
@@ -35,6 +35,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+// flags: --glsl-desktop
+
 enable chromium_internal_graphite;
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r8unorm, write>;
 
diff --git a/test/tint/builtins/gen/var/textureStore/f7b0ab.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/f7b0ab.wgsl.expected.glsl
index 1a34016..2fbb164 100644
--- a/test/tint/builtins/gen/var/textureStore/f7b0ab.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/f7b0ab.wgsl.expected.glsl
@@ -1,40 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp writeonly image2DArray arg_0;
-void textureStore_f7b0ab() {
-  uvec2 arg_1 = uvec2(1u);
-  uint arg_2 = 1u;
-  vec4 arg_3 = vec4(1.0f);
-  imageStore(arg_0, ivec3(uvec3(arg_1, arg_2)), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_f7b0ab();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(r8) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, r8) uniform highp writeonly image2DArray arg_0;
 void textureStore_f7b0ab() {
   uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
@@ -50,16 +16,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(r8) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, r8) uniform highp writeonly image2DArray arg_0;
 void textureStore_f7b0ab() {
   uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
@@ -76,10 +35,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureStore/f9be83.wgsl b/test/tint/builtins/gen/var/textureStore/f9be83.wgsl
index d1a402c..e215e24 100644
--- a/test/tint/builtins/gen/var/textureStore/f9be83.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/f9be83.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32sint, write>;
 
 // fn textureStore(texture: texture_storage_2d_array<rg32sint, write>, coords: vec2<i32>, array_index: i32, value: vec4<i32>)
diff --git a/test/tint/builtins/gen/var/textureStore/f9be83.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/f9be83.wgsl.expected.glsl
index bb87800..1506483 100644
--- a/test/tint/builtins/gen/var/textureStore/f9be83.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/f9be83.wgsl.expected.glsl
@@ -1,40 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2DArray arg_0;
-void textureStore_f9be83() {
-  ivec2 arg_1 = ivec2(1);
-  int arg_2 = 1;
-  ivec4 arg_3 = ivec4(1);
-  imageStore(arg_0, ivec3(arg_1, arg_2), arg_3);
-}
-
-vec4 vertex_main() {
-  textureStore_f9be83();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32i) uniform highp writeonly iimage2DArray arg_0;
+layout(binding = 0, rg32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_f9be83() {
   ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
@@ -50,16 +16,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2DArray arg_0;
+layout(binding = 0, rg32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_f9be83() {
   ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
@@ -76,10 +35,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tint/builtins/gen/var/textureStore/fcbe66.wgsl b/test/tint/builtins/gen/var/textureStore/fcbe66.wgsl
index 75e871a..4a16148 100644
--- a/test/tint/builtins/gen/var/textureStore/fcbe66.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/fcbe66.wgsl
@@ -34,6 +34,8 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+// flags: --glsl-desktop
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32float, write>;
 
 // fn textureStore(texture: texture_storage_3d<rg32float, write>, coords: vec3<u32>, value: vec4<f32>)
diff --git a/test/tint/builtins/gen/var/textureStore/fcbe66.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/fcbe66.wgsl.expected.glsl
index f79817f..34808ed 100644
--- a/test/tint/builtins/gen/var/textureStore/fcbe66.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/fcbe66.wgsl.expected.glsl
@@ -1,39 +1,6 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image3D arg_0;
-void textureStore_fcbe66() {
-  uvec3 arg_1 = uvec3(1u);
-  vec4 arg_2 = vec4(1.0f);
-  imageStore(arg_0, ivec3(arg_1), arg_2);
-}
-
-vec4 vertex_main() {
-  textureStore_fcbe66();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-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.
-
-
-
-#version 310 es
-precision highp float;
-precision highp int;
-
-layout(rg32f) uniform highp writeonly image3D arg_0;
+layout(binding = 0, rg32f) uniform highp writeonly image3D arg_0;
 void textureStore_fcbe66() {
   uvec3 arg_1 = uvec3(1u);
   vec4 arg_2 = vec4(1.0f);
@@ -48,16 +15,9 @@
   fragment_main();
   return;
 }
-error: Error parsing GLSL shader:
-ERROR: 0:5: 'image load-store format' : not supported with this profile: es
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
+#version 460
 
-
-
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image3D arg_0;
+layout(binding = 0, rg32f) uniform highp writeonly image3D arg_0;
 void textureStore_fcbe66() {
   uvec3 arg_1 = uvec3(1u);
   vec4 arg_2 = vec4(1.0f);
@@ -73,10 +33,3 @@
   compute_main();
   return;
 }
-error: Error parsing GLSL shader:
-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/tools/src/cmd/gen/templates/templates.go b/tools/src/cmd/gen/templates/templates.go
index 99158bf..05e1729 100644
--- a/tools/src/cmd/gen/templates/templates.go
+++ b/tools/src/cmd/gen/templates/templates.go
@@ -319,6 +319,7 @@
 		"IsHostShareable":                     gen.IsHostShareable,
 		"OverloadUsesType":                    gen.OverloadUsesType,
 		"OverloadUsesReadWriteStorageTexture": gen.OverloadUsesReadWriteStorageTexture,
+		"OverloadNeedsDesktopGLSL":            gen.OverloadNeedsDesktopGLSL,
 		"IsFirstIn":                           isFirstIn,
 		"IsLastIn":                            isLastIn,
 		"LoadIntrinsics":                      func(path string) *intrinsicCache { return g.cache.intrinsics(path) },
diff --git a/tools/src/tint/intrinsic/gen/gen.go b/tools/src/tint/intrinsic/gen/gen.go
index 2a53300..0322213 100644
--- a/tools/src/tint/intrinsic/gen/gen.go
+++ b/tools/src/tint/intrinsic/gen/gen.go
@@ -612,6 +612,23 @@
 	return false
 }
 
+// OverloadUsesGLESTexture returns true if the overload uses a texture value for GLSL ES 3.10
+func OverloadNeedsDesktopGLSL(overload sem.Overload) bool {
+	for _, param := range overload.Parameters {
+		if strings.HasPrefix(param.Type.Target.GetName(), "texture_storage") {
+			fmt := param.Type.TemplateArguments[0].(sem.FullyQualifiedName).Target.GetName()
+			if fmt == "rg32uint" || fmt == "rg32sint" || fmt == "rg32float" || fmt == "r8unorm" {
+				return true
+			}
+		}
+		if strings.HasPrefix(param.Type.Target.GetName(), "texture_cube_array") ||
+			strings.HasPrefix(param.Type.Target.GetName(), "texture_depth_cube_array") {
+			return true
+		}
+	}
+	return false
+}
+
 func loadOrMinusOne(p *int) int {
 	if p != nil {
 		return *p