[glsl] Only clamp access mode in ES.

In ES, only certain texel formats can be read/write. The current code
always clamps, but the clamping is not required on desktop GLSL. Update
the AST and IR paths.

Bug: 368110551
Change-Id: I56d8089642b252dbc06617988ad658496f318b5c
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/207195
Reviewed-by: Stephen White <senorblanco@chromium.org>
Commit-Queue: dan sinclair <dsinclair@chromium.org>
diff --git a/src/tint/lang/glsl/writer/ast_printer/ast_printer.cc b/src/tint/lang/glsl/writer/ast_printer/ast_printer.cc
index 4f6884e..7a70472 100644
--- a/src/tint/lang/glsl/writer/ast_printer/ast_printer.cc
+++ b/src/tint/lang/glsl/writer/ast_printer/ast_printer.cc
@@ -2743,23 +2743,26 @@
                     out << "writeonly ";
                     break;
                 case core::Access::kReadWrite: {
-                    // ESSL 3.1 SPEC (chapter 4.9, Memory Access Qualifiers):
-                    // Except for image variables qualified with the format qualifiers r32f, r32i,
-                    // and r32ui, image variables must specify either memory qualifier readonly or
-                    // the memory qualifier writeonly.
-                    switch (storage->TexelFormat()) {
-                        case core::TexelFormat::kR32Float:
-                        case core::TexelFormat::kR32Sint:
-                        case core::TexelFormat::kR32Uint:
-                            break;
-                        default: {
-                            // TODO(dawn:1972): Fix the tests that contain read-write storage
-                            // textures with illegal formats.
-                            out << "writeonly ";
-                            break;
+                    if (version_.IsES()) {
+                        // ESSL 3.1 SPEC (chapter 4.9, Memory Access Qualifiers):
+                        // Except for image variables qualified with the format qualifiers r32f,
+                        // r32i, and r32ui, image variables must specify either memory qualifier
+                        // readonly or the memory qualifier writeonly.
+                        switch (storage->TexelFormat()) {
+                            case core::TexelFormat::kR32Float:
+                            case core::TexelFormat::kR32Sint:
+                            case core::TexelFormat::kR32Uint:
+                                break;
+                            default: {
+                                // TODO(dawn:1972): Fix the tests that contain read-write storage
+                                // textures with illegal formats.
+                                out << "writeonly ";
+                                break;
+                            }
                         }
                     }
-                } break;
+                    break;
+                }
                 default:
                     TINT_UNREACHABLE() << "unexpected storage texture access " << storage->Access();
             }
diff --git a/src/tint/lang/glsl/writer/printer/printer.cc b/src/tint/lang/glsl/writer/printer/printer.cc
index 4146d1a..89e37f9 100644
--- a/src/tint/lang/glsl/writer/printer/printer.cc
+++ b/src/tint/lang/glsl/writer/printer/printer.cc
@@ -718,17 +718,19 @@
                     out << "writeonly ";
                     break;
                 case core::Access::kReadWrite: {
-                    // ESSL 3.1 SPEC (chapter 4.9, Memory Access Qualifiers):
-                    // Except for image variables qualified with the format qualifiers r32f, r32i,
-                    // and r32ui, image variables must specify either memory qualifier readonly or
-                    // the memory qualifier writeonly.
-                    switch (storage->TexelFormat()) {
-                        case core::TexelFormat::kR32Float:
-                        case core::TexelFormat::kR32Sint:
-                        case core::TexelFormat::kR32Uint:
-                            break;
-                        default:
-                            TINT_UNREACHABLE();
+                    if (version_.IsES()) {
+                        // ESSL 3.1 SPEC (chapter 4.9, Memory Access Qualifiers):
+                        // Except for image variables qualified with the format qualifiers r32f,
+                        // r32i, and r32ui, image variables must specify either memory qualifier
+                        // readonly or the memory qualifier writeonly.
+                        switch (storage->TexelFormat()) {
+                            case core::TexelFormat::kR32Float:
+                            case core::TexelFormat::kR32Sint:
+                            case core::TexelFormat::kR32Uint:
+                                break;
+                            default:
+                                TINT_UNREACHABLE();
+                        }
                     }
                     break;
                 }
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 196e85a..a88e6f6 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/01e21e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/01e21e.wgsl.expected.glsl
@@ -4,7 +4,7 @@
   uint inner;
 } prevent_dce;
 
-layout(binding = 0, rg32ui) uniform highp writeonly uimage2D arg_0;
+layout(binding = 0, rg32ui) uniform highp uimage2D arg_0;
 uint textureDimensions_01e21e() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
@@ -24,7 +24,7 @@
   uint inner;
 } prevent_dce;
 
-layout(binding = 0, rg32ui) uniform highp writeonly uimage2D arg_0;
+layout(binding = 0, rg32ui) uniform highp uimage2D arg_0;
 uint textureDimensions_01e21e() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/01e21e.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureDimensions/01e21e.wgsl.expected.ir.glsl
index 2d340e3..ff7d4c6 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/01e21e.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/01e21e.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: INVALID
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:731 internal compiler error: TINT_UNREACHABLE 
-********************************************************************
-*  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 uimage1D arg_0;
+uint textureDimensions_01e21e() {
+  uint res = uint(imageSize(arg_0));
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_01e21e();
+}
+#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 uimage1D arg_0;
+uint textureDimensions_01e21e() {
+  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_01e21e();
+}
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 c3786dd..e543227 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/029589.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/029589.wgsl.expected.glsl
@@ -4,7 +4,7 @@
   uvec2 inner;
 } prevent_dce;
 
-layout(binding = 0, rg32f) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, rg32f) uniform highp image2DArray arg_0;
 uvec2 textureDimensions_029589() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
@@ -24,7 +24,7 @@
   uvec2 inner;
 } prevent_dce;
 
-layout(binding = 0, rg32f) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, rg32f) uniform highp image2DArray arg_0;
 uvec2 textureDimensions_029589() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/029589.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureDimensions/029589.wgsl.expected.ir.glsl
index 2d340e3..0fc6aed 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/029589.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/029589.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: INVALID
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:731 internal compiler error: TINT_UNREACHABLE 
-********************************************************************
-*  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 image2DArray arg_0;
+uvec2 textureDimensions_029589() {
+  uvec2 res = uvec2(imageSize(arg_0).xy);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_029589();
+}
+#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 image2DArray arg_0;
+uvec2 textureDimensions_029589() {
+  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_029589();
+}
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 4fa929d..2c48612 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/18160d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/18160d.wgsl.expected.glsl
@@ -4,7 +4,7 @@
   uvec2 inner;
 } prevent_dce;
 
-layout(binding = 0, r8) uniform highp writeonly image2D arg_0;
+layout(binding = 0, r8) uniform highp image2D arg_0;
 uvec2 textureDimensions_18160d() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
@@ -24,7 +24,7 @@
   uvec2 inner;
 } prevent_dce;
 
-layout(binding = 0, r8) uniform highp writeonly image2D arg_0;
+layout(binding = 0, r8) uniform highp image2D arg_0;
 uvec2 textureDimensions_18160d() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/18160d.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureDimensions/18160d.wgsl.expected.ir.glsl
index 2d340e3..266082b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/18160d.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/18160d.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: INVALID
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:731 internal compiler error: TINT_UNREACHABLE 
-********************************************************************
-*  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 image2D arg_0;
+uvec2 textureDimensions_18160d() {
+  uvec2 res = uvec2(imageSize(arg_0));
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_18160d();
+}
+#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 image2D arg_0;
+uvec2 textureDimensions_18160d() {
+  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_18160d();
+}
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 5159002..a9779fb 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/282978.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/282978.wgsl.expected.glsl
@@ -4,7 +4,7 @@
   uvec3 inner;
 } prevent_dce;
 
-layout(binding = 0, r8) uniform highp writeonly image3D arg_0;
+layout(binding = 0, r8) uniform highp image3D arg_0;
 uvec3 textureDimensions_282978() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
@@ -24,7 +24,7 @@
   uvec3 inner;
 } prevent_dce;
 
-layout(binding = 0, r8) uniform highp writeonly image3D arg_0;
+layout(binding = 0, r8) uniform highp image3D arg_0;
 uvec3 textureDimensions_282978() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/282978.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureDimensions/282978.wgsl.expected.ir.glsl
index 2d340e3..f8ff648 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/282978.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/282978.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: INVALID
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:731 internal compiler error: TINT_UNREACHABLE 
-********************************************************************
-*  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 image3D arg_0;
+uvec3 textureDimensions_282978() {
+  uvec3 res = uvec3(imageSize(arg_0));
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_282978();
+}
+#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 image3D arg_0;
+uvec3 textureDimensions_282978() {
+  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_282978();
+}
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 a6a41aa..1a157be 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4df14c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/4df14c.wgsl.expected.glsl
@@ -4,7 +4,7 @@
   uvec3 inner;
 } prevent_dce;
 
-layout(binding = 0, rg32ui) uniform highp writeonly uimage3D arg_0;
+layout(binding = 0, rg32ui) uniform highp uimage3D arg_0;
 uvec3 textureDimensions_4df14c() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
@@ -24,7 +24,7 @@
   uvec3 inner;
 } prevent_dce;
 
-layout(binding = 0, rg32ui) uniform highp writeonly uimage3D arg_0;
+layout(binding = 0, rg32ui) uniform highp uimage3D arg_0;
 uvec3 textureDimensions_4df14c() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4df14c.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureDimensions/4df14c.wgsl.expected.ir.glsl
index 2d340e3..90caa53 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4df14c.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/4df14c.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: INVALID
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:731 internal compiler error: TINT_UNREACHABLE 
-********************************************************************
-*  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 uimage3D arg_0;
+uvec3 textureDimensions_4df14c() {
+  uvec3 res = uvec3(imageSize(arg_0));
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_4df14c();
+}
+#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 uimage3D arg_0;
+uvec3 textureDimensions_4df14c() {
+  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_4df14c();
+}
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 a0e39bc..7dccd93 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/578e75.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/578e75.wgsl.expected.glsl
@@ -4,7 +4,7 @@
   uvec2 inner;
 } prevent_dce;
 
-layout(binding = 0, r8) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, r8) uniform highp image2DArray arg_0;
 uvec2 textureDimensions_578e75() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
@@ -24,7 +24,7 @@
   uvec2 inner;
 } prevent_dce;
 
-layout(binding = 0, r8) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, r8) uniform highp image2DArray arg_0;
 uvec2 textureDimensions_578e75() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/578e75.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureDimensions/578e75.wgsl.expected.ir.glsl
index 2d340e3..8aa8588 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/578e75.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/578e75.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: INVALID
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:731 internal compiler error: TINT_UNREACHABLE 
-********************************************************************
-*  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 image2DArray arg_0;
+uvec2 textureDimensions_578e75() {
+  uvec2 res = uvec2(imageSize(arg_0).xy);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_578e75();
+}
+#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 image2DArray arg_0;
+uvec2 textureDimensions_578e75() {
+  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_578e75();
+}
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 7928ecb..5e99ad7 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/740e7c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/740e7c.wgsl.expected.glsl
@@ -4,7 +4,7 @@
   uint inner;
 } prevent_dce;
 
-layout(binding = 0, rg32i) uniform highp writeonly iimage2D arg_0;
+layout(binding = 0, rg32i) uniform highp iimage2D arg_0;
 uint textureDimensions_740e7c() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
@@ -24,7 +24,7 @@
   uint inner;
 } prevent_dce;
 
-layout(binding = 0, rg32i) uniform highp writeonly iimage2D arg_0;
+layout(binding = 0, rg32i) uniform highp iimage2D arg_0;
 uint textureDimensions_740e7c() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/740e7c.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureDimensions/740e7c.wgsl.expected.ir.glsl
index 2d340e3..bf76697 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/740e7c.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/740e7c.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: INVALID
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:731 internal compiler error: TINT_UNREACHABLE 
-********************************************************************
-*  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 iimage1D arg_0;
+uint textureDimensions_740e7c() {
+  uint res = uint(imageSize(arg_0));
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_740e7c();
+}
+#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 iimage1D arg_0;
+uint textureDimensions_740e7c() {
+  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_740e7c();
+}
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 6a1332c..541bc16 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7c7c64.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7c7c64.wgsl.expected.glsl
@@ -4,7 +4,7 @@
   uvec2 inner;
 } prevent_dce;
 
-layout(binding = 0, rg32i) uniform highp writeonly iimage2DArray arg_0;
+layout(binding = 0, rg32i) uniform highp iimage2DArray arg_0;
 uvec2 textureDimensions_7c7c64() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
@@ -24,7 +24,7 @@
   uvec2 inner;
 } prevent_dce;
 
-layout(binding = 0, rg32i) uniform highp writeonly iimage2DArray arg_0;
+layout(binding = 0, rg32i) uniform highp iimage2DArray arg_0;
 uvec2 textureDimensions_7c7c64() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7c7c64.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureDimensions/7c7c64.wgsl.expected.ir.glsl
index 2d340e3..5a984ba 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7c7c64.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7c7c64.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: INVALID
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:731 internal compiler error: TINT_UNREACHABLE 
-********************************************************************
-*  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 iimage2DArray arg_0;
+uvec2 textureDimensions_7c7c64() {
+  uvec2 res = uvec2(imageSize(arg_0).xy);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_7c7c64();
+}
+#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 iimage2DArray arg_0;
+uvec2 textureDimensions_7c7c64() {
+  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_7c7c64();
+}
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 166b1b5..1cb3aa7 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/835f90.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/835f90.wgsl.expected.glsl
@@ -4,7 +4,7 @@
   uvec2 inner;
 } prevent_dce;
 
-layout(binding = 0, rg32i) uniform highp writeonly iimage2D arg_0;
+layout(binding = 0, rg32i) uniform highp iimage2D arg_0;
 uvec2 textureDimensions_835f90() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
@@ -24,7 +24,7 @@
   uvec2 inner;
 } prevent_dce;
 
-layout(binding = 0, rg32i) uniform highp writeonly iimage2D arg_0;
+layout(binding = 0, rg32i) uniform highp iimage2D arg_0;
 uvec2 textureDimensions_835f90() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/835f90.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureDimensions/835f90.wgsl.expected.ir.glsl
index 2d340e3..526c1e3 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/835f90.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/835f90.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: INVALID
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:731 internal compiler error: TINT_UNREACHABLE 
-********************************************************************
-*  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 iimage2D arg_0;
+uvec2 textureDimensions_835f90() {
+  uvec2 res = uvec2(imageSize(arg_0));
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_835f90();
+}
+#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 iimage2D arg_0;
+uvec2 textureDimensions_835f90() {
+  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_835f90();
+}
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 29ecd2d..77a968b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/91e3b4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/91e3b4.wgsl.expected.glsl
@@ -4,7 +4,7 @@
   uvec3 inner;
 } prevent_dce;
 
-layout(binding = 0, rg32i) uniform highp writeonly iimage3D arg_0;
+layout(binding = 0, rg32i) uniform highp iimage3D arg_0;
 uvec3 textureDimensions_91e3b4() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
@@ -24,7 +24,7 @@
   uvec3 inner;
 } prevent_dce;
 
-layout(binding = 0, rg32i) uniform highp writeonly iimage3D arg_0;
+layout(binding = 0, rg32i) uniform highp iimage3D arg_0;
 uvec3 textureDimensions_91e3b4() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/91e3b4.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureDimensions/91e3b4.wgsl.expected.ir.glsl
index 2d340e3..788358f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/91e3b4.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/91e3b4.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: INVALID
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:731 internal compiler error: TINT_UNREACHABLE 
-********************************************************************
-*  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 iimage3D arg_0;
+uvec3 textureDimensions_91e3b4() {
+  uvec3 res = uvec3(imageSize(arg_0));
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_91e3b4();
+}
+#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 iimage3D arg_0;
+uvec3 textureDimensions_91e3b4() {
+  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_91e3b4();
+}
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 62cdc74..4221319 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ae4595.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/ae4595.wgsl.expected.glsl
@@ -4,7 +4,7 @@
   uvec3 inner;
 } prevent_dce;
 
-layout(binding = 0, rg32f) uniform highp writeonly image3D arg_0;
+layout(binding = 0, rg32f) uniform highp image3D arg_0;
 uvec3 textureDimensions_ae4595() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
@@ -24,7 +24,7 @@
   uvec3 inner;
 } prevent_dce;
 
-layout(binding = 0, rg32f) uniform highp writeonly image3D arg_0;
+layout(binding = 0, rg32f) uniform highp image3D arg_0;
 uvec3 textureDimensions_ae4595() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ae4595.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureDimensions/ae4595.wgsl.expected.ir.glsl
index 2d340e3..2961293 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ae4595.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/ae4595.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: INVALID
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:731 internal compiler error: TINT_UNREACHABLE 
-********************************************************************
-*  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 image3D arg_0;
+uvec3 textureDimensions_ae4595() {
+  uvec3 res = uvec3(imageSize(arg_0));
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_ae4595();
+}
+#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 image3D arg_0;
+uvec3 textureDimensions_ae4595() {
+  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_ae4595();
+}
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 fe85124..d547c94 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c6b985.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c6b985.wgsl.expected.glsl
@@ -4,7 +4,7 @@
   uint inner;
 } prevent_dce;
 
-layout(binding = 0, r8) uniform highp writeonly image2D arg_0;
+layout(binding = 0, r8) uniform highp image2D arg_0;
 uint textureDimensions_c6b985() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
@@ -24,7 +24,7 @@
   uint inner;
 } prevent_dce;
 
-layout(binding = 0, r8) uniform highp writeonly image2D arg_0;
+layout(binding = 0, r8) uniform highp image2D arg_0;
 uint textureDimensions_c6b985() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c6b985.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureDimensions/c6b985.wgsl.expected.ir.glsl
index 2d340e3..831ad2e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c6b985.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c6b985.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: INVALID
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:731 internal compiler error: TINT_UNREACHABLE 
-********************************************************************
-*  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 image1D arg_0;
+uint textureDimensions_c6b985() {
+  uint res = uint(imageSize(arg_0));
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_c6b985();
+}
+#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 image1D arg_0;
+uint textureDimensions_c6b985() {
+  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_c6b985();
+}
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 48eefeb..b6c827c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c7ea63.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c7ea63.wgsl.expected.glsl
@@ -4,7 +4,7 @@
   uint inner;
 } prevent_dce;
 
-layout(binding = 0, rg32f) uniform highp writeonly image2D arg_0;
+layout(binding = 0, rg32f) uniform highp image2D arg_0;
 uint textureDimensions_c7ea63() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
@@ -24,7 +24,7 @@
   uint inner;
 } prevent_dce;
 
-layout(binding = 0, rg32f) uniform highp writeonly image2D arg_0;
+layout(binding = 0, rg32f) uniform highp image2D arg_0;
 uint textureDimensions_c7ea63() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c7ea63.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureDimensions/c7ea63.wgsl.expected.ir.glsl
index 2d340e3..060bb69 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c7ea63.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c7ea63.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: INVALID
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:731 internal compiler error: TINT_UNREACHABLE 
-********************************************************************
-*  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 image1D arg_0;
+uint textureDimensions_c7ea63() {
+  uint res = uint(imageSize(arg_0));
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_c7ea63();
+}
+#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 image1D arg_0;
+uint textureDimensions_c7ea63() {
+  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_c7ea63();
+}
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 31b62cc..605ea0e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c82420.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c82420.wgsl.expected.glsl
@@ -4,7 +4,7 @@
   uvec2 inner;
 } prevent_dce;
 
-layout(binding = 0, rg32ui) uniform highp writeonly uimage2D arg_0;
+layout(binding = 0, rg32ui) uniform highp uimage2D arg_0;
 uvec2 textureDimensions_c82420() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
@@ -24,7 +24,7 @@
   uvec2 inner;
 } prevent_dce;
 
-layout(binding = 0, rg32ui) uniform highp writeonly uimage2D arg_0;
+layout(binding = 0, rg32ui) uniform highp uimage2D arg_0;
 uvec2 textureDimensions_c82420() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c82420.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureDimensions/c82420.wgsl.expected.ir.glsl
index 2d340e3..347c013 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c82420.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c82420.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: INVALID
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:731 internal compiler error: TINT_UNREACHABLE 
-********************************************************************
-*  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 uimage2D arg_0;
+uvec2 textureDimensions_c82420() {
+  uvec2 res = uvec2(imageSize(arg_0));
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_c82420();
+}
+#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 uimage2D arg_0;
+uvec2 textureDimensions_c82420() {
+  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_c82420();
+}
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 683b868..4a1dd62 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e824b6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e824b6.wgsl.expected.glsl
@@ -4,7 +4,7 @@
   uvec2 inner;
 } prevent_dce;
 
-layout(binding = 0, rg32ui) uniform highp writeonly uimage2DArray arg_0;
+layout(binding = 0, rg32ui) uniform highp uimage2DArray arg_0;
 uvec2 textureDimensions_e824b6() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
@@ -24,7 +24,7 @@
   uvec2 inner;
 } prevent_dce;
 
-layout(binding = 0, rg32ui) uniform highp writeonly uimage2DArray arg_0;
+layout(binding = 0, rg32ui) uniform highp uimage2DArray arg_0;
 uvec2 textureDimensions_e824b6() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e824b6.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureDimensions/e824b6.wgsl.expected.ir.glsl
index 2d340e3..87be9bac 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e824b6.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e824b6.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: INVALID
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:731 internal compiler error: TINT_UNREACHABLE 
-********************************************************************
-*  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 uimage2DArray arg_0;
+uvec2 textureDimensions_e824b6() {
+  uvec2 res = uvec2(imageSize(arg_0).xy);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_e824b6();
+}
+#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 uimage2DArray arg_0;
+uvec2 textureDimensions_e824b6() {
+  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_e824b6();
+}
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 0b4df6b..e251929 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f94e55.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f94e55.wgsl.expected.glsl
@@ -4,7 +4,7 @@
   uvec2 inner;
 } prevent_dce;
 
-layout(binding = 0, rg32f) uniform highp writeonly image2D arg_0;
+layout(binding = 0, rg32f) uniform highp image2D arg_0;
 uvec2 textureDimensions_f94e55() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
@@ -24,7 +24,7 @@
   uvec2 inner;
 } prevent_dce;
 
-layout(binding = 0, rg32f) uniform highp writeonly image2D arg_0;
+layout(binding = 0, rg32f) uniform highp image2D arg_0;
 uvec2 textureDimensions_f94e55() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f94e55.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureDimensions/f94e55.wgsl.expected.ir.glsl
index 2d340e3..aec3dad 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f94e55.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f94e55.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: INVALID
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:731 internal compiler error: TINT_UNREACHABLE 
-********************************************************************
-*  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 image2D arg_0;
+uvec2 textureDimensions_f94e55() {
+  uvec2 res = uvec2(imageSize(arg_0));
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_f94e55();
+}
+#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 image2D arg_0;
+uvec2 textureDimensions_f94e55() {
+  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_f94e55();
+}
diff --git a/test/tint/builtins/gen/literal/textureLoad/126466.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/126466.wgsl.expected.glsl
index d1d3b33..a472437 100644
--- a/test/tint/builtins/gen/literal/textureLoad/126466.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/126466.wgsl.expected.glsl
@@ -1,80 +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 {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_126466() {
+layout(binding = 0, rg32f) uniform highp image3D arg_0;
+vec4 textureLoad_126466() {
   vec4 res = imageLoad(arg_0, ivec3(1));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureLoad_126466();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'image load-store format' : not supported with this 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 {
-  vec4 inner;
-} prevent_dce;
-
-void textureLoad_126466() {
-  vec4 res = imageLoad(arg_0, ivec3(1));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureLoad_126466();
+  prevent_dce.inner = textureLoad_126466();
 }
 
 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 {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_126466() {
+layout(binding = 0, rg32f) uniform highp image3D arg_0;
+vec4 textureLoad_126466() {
   vec4 res = imageLoad(arg_0, ivec3(1));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureLoad_126466();
+  prevent_dce.inner = textureLoad_126466();
 }
 
 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/textureLoad/1e6baa.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/1e6baa.wgsl.expected.glsl
index c58a09e..13a17f9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1e6baa.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1e6baa.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 {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_1e6baa() {
+layout(binding = 0, rg32f) uniform highp image2D arg_0;
+vec4 textureLoad_1e6baa() {
   vec4 res = imageLoad(arg_0, ivec2(uvec2(1u, 0u)));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureLoad_1e6baa();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'image load-store format' : not supported with this 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 {
-  vec4 inner;
-} prevent_dce;
-
-void textureLoad_1e6baa() {
-  vec4 res = imageLoad(arg_0, ivec2(uvec2(1u, 0u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureLoad_1e6baa();
+  prevent_dce.inner = textureLoad_1e6baa();
 }
 
 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 {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_1e6baa() {
+layout(binding = 0, rg32f) uniform highp image2D arg_0;
+vec4 textureLoad_1e6baa() {
   vec4 res = imageLoad(arg_0, ivec2(uvec2(1u, 0u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureLoad_1e6baa();
+  prevent_dce.inner = textureLoad_1e6baa();
 }
 
 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/textureLoad/1fde63.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/1fde63.wgsl.expected.glsl
index 1c44f2c..5cefe60 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1fde63.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1fde63.wgsl.expected.glsl
@@ -1,80 +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 {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_1fde63() {
+layout(binding = 0, r8) uniform highp image3D arg_0;
+vec4 textureLoad_1fde63() {
   vec4 res = imageLoad(arg_0, ivec3(uvec3(1u)));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureLoad_1fde63();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'image load-store format' : not supported with this 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 {
-  vec4 inner;
-} prevent_dce;
-
-void textureLoad_1fde63() {
-  vec4 res = imageLoad(arg_0, ivec3(uvec3(1u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureLoad_1fde63();
+  prevent_dce.inner = textureLoad_1fde63();
 }
 
 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 {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_1fde63() {
+layout(binding = 0, r8) uniform highp image3D arg_0;
+vec4 textureLoad_1fde63() {
   vec4 res = imageLoad(arg_0, ivec3(uvec3(1u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureLoad_1fde63();
+  prevent_dce.inner = textureLoad_1fde63();
 }
 
 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/textureLoad/2eaf31.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/2eaf31.wgsl.expected.glsl
index 7c40354..cfd4448 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2eaf31.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2eaf31.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 {
   ivec4 inner;
 } prevent_dce;
 
-void textureLoad_2eaf31() {
+layout(binding = 0, rg32i) uniform highp iimage2D arg_0;
+ivec4 textureLoad_2eaf31() {
   ivec4 res = imageLoad(arg_0, ivec2(uvec2(1u)));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureLoad_2eaf31();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'image load-store format' : not supported with this 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 {
-  ivec4 inner;
-} prevent_dce;
-
-void textureLoad_2eaf31() {
-  ivec4 res = imageLoad(arg_0, ivec2(uvec2(1u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureLoad_2eaf31();
+  prevent_dce.inner = textureLoad_2eaf31();
 }
 
 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 {
   ivec4 inner;
 } prevent_dce;
 
-void textureLoad_2eaf31() {
+layout(binding = 0, rg32i) uniform highp iimage2D arg_0;
+ivec4 textureLoad_2eaf31() {
   ivec4 res = imageLoad(arg_0, ivec2(uvec2(1u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureLoad_2eaf31();
+  prevent_dce.inner = textureLoad_2eaf31();
 }
 
 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/textureLoad/34d97c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/34d97c.wgsl.expected.glsl
index 189f179..c92cfa4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/34d97c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/34d97c.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 {
   uvec4 inner;
 } prevent_dce;
 
-void textureLoad_34d97c() {
+layout(binding = 0, rg32ui) uniform highp uimage2DArray arg_0;
+uvec4 textureLoad_34d97c() {
   uvec4 res = imageLoad(arg_0, ivec3(ivec2(1), 1));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureLoad_34d97c();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'image load-store format' : not supported with this 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 {
-  uvec4 inner;
-} prevent_dce;
-
-void textureLoad_34d97c() {
-  uvec4 res = imageLoad(arg_0, ivec3(ivec2(1), 1));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureLoad_34d97c();
+  prevent_dce.inner = textureLoad_34d97c();
 }
 
 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 {
   uvec4 inner;
 } prevent_dce;
 
-void textureLoad_34d97c() {
+layout(binding = 0, rg32ui) uniform highp uimage2DArray arg_0;
+uvec4 textureLoad_34d97c() {
   uvec4 res = imageLoad(arg_0, ivec3(ivec2(1), 1));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureLoad_34d97c();
+  prevent_dce.inner = textureLoad_34d97c();
 }
 
 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/textureLoad/35a5e2.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/35a5e2.wgsl.expected.glsl
index 485118a..5ca4618 100644
--- a/test/tint/builtins/gen/literal/textureLoad/35a5e2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/35a5e2.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 {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_35a5e2() {
+layout(binding = 0, r8) uniform highp image2D arg_0;
+vec4 textureLoad_35a5e2() {
   vec4 res = imageLoad(arg_0, ivec2(1, 0));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureLoad_35a5e2();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'image load-store format' : not supported with this 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 {
-  vec4 inner;
-} prevent_dce;
-
-void textureLoad_35a5e2() {
-  vec4 res = imageLoad(arg_0, ivec2(1, 0));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureLoad_35a5e2();
+  prevent_dce.inner = textureLoad_35a5e2();
 }
 
 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 {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_35a5e2() {
+layout(binding = 0, r8) uniform highp image2D arg_0;
+vec4 textureLoad_35a5e2() {
   vec4 res = imageLoad(arg_0, ivec2(1, 0));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureLoad_35a5e2();
+  prevent_dce.inner = textureLoad_35a5e2();
 }
 
 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/textureLoad/3e16a8.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/3e16a8.wgsl.expected.glsl
index a43862e..f24e221 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3e16a8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3e16a8.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 {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_3e16a8() {
+layout(binding = 0, r8) uniform highp image2D arg_0;
+vec4 textureLoad_3e16a8() {
   vec4 res = imageLoad(arg_0, ivec2(1));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureLoad_3e16a8();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'image load-store format' : not supported with this 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 {
-  vec4 inner;
-} prevent_dce;
-
-void textureLoad_3e16a8() {
-  vec4 res = imageLoad(arg_0, ivec2(1));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureLoad_3e16a8();
+  prevent_dce.inner = textureLoad_3e16a8();
 }
 
 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 {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_3e16a8() {
+layout(binding = 0, r8) uniform highp image2D arg_0;
+vec4 textureLoad_3e16a8() {
   vec4 res = imageLoad(arg_0, ivec2(1));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureLoad_3e16a8();
+  prevent_dce.inner = textureLoad_3e16a8();
 }
 
 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/textureLoad/424afd.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/424afd.wgsl.expected.glsl
index b594c2a..b6b5ca7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/424afd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/424afd.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 {
   ivec4 inner;
 } prevent_dce;
 
-void textureLoad_424afd() {
+layout(binding = 0, rg32i) uniform highp iimage2DArray arg_0;
+ivec4 textureLoad_424afd() {
   ivec4 res = imageLoad(arg_0, ivec3(ivec2(1), 1));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureLoad_424afd();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'image load-store format' : not supported with this 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 {
-  ivec4 inner;
-} prevent_dce;
-
-void textureLoad_424afd() {
-  ivec4 res = imageLoad(arg_0, ivec3(ivec2(1), 1));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureLoad_424afd();
+  prevent_dce.inner = textureLoad_424afd();
 }
 
 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 {
   ivec4 inner;
 } prevent_dce;
 
-void textureLoad_424afd() {
+layout(binding = 0, rg32i) uniform highp iimage2DArray arg_0;
+ivec4 textureLoad_424afd() {
   ivec4 res = imageLoad(arg_0, ivec3(ivec2(1), 1));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureLoad_424afd();
+  prevent_dce.inner = textureLoad_424afd();
 }
 
 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/textureLoad/469912.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/469912.wgsl.expected.glsl
index c1cb7b5..6155f1b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/469912.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/469912.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 {
   ivec4 inner;
 } prevent_dce;
 
-void textureLoad_469912() {
+layout(binding = 0, rg32i) uniform highp iimage2D arg_0;
+ivec4 textureLoad_469912() {
   ivec4 res = imageLoad(arg_0, ivec2(1, 0));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureLoad_469912();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'image load-store format' : not supported with this 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 {
-  ivec4 inner;
-} prevent_dce;
-
-void textureLoad_469912() {
-  ivec4 res = imageLoad(arg_0, ivec2(1, 0));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureLoad_469912();
+  prevent_dce.inner = textureLoad_469912();
 }
 
 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 {
   ivec4 inner;
 } prevent_dce;
 
-void textureLoad_469912() {
+layout(binding = 0, rg32i) uniform highp iimage2D arg_0;
+ivec4 textureLoad_469912() {
   ivec4 res = imageLoad(arg_0, ivec2(1, 0));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureLoad_469912();
+  prevent_dce.inner = textureLoad_469912();
 }
 
 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/textureLoad/482627.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/482627.wgsl.expected.glsl
index 4656109..4d6eca3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/482627.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/482627.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 {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_482627() {
+layout(binding = 0, rg32f) uniform highp image2DArray arg_0;
+vec4 textureLoad_482627() {
   vec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), 1u)));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureLoad_482627();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'image load-store format' : not supported with this 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 {
-  vec4 inner;
-} prevent_dce;
-
-void textureLoad_482627() {
-  vec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), 1u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureLoad_482627();
+  prevent_dce.inner = textureLoad_482627();
 }
 
 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 {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_482627() {
+layout(binding = 0, rg32f) uniform highp image2DArray arg_0;
+vec4 textureLoad_482627() {
   vec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), 1u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureLoad_482627();
+  prevent_dce.inner = textureLoad_482627();
 }
 
 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/textureLoad/4c1a1e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/4c1a1e.wgsl.expected.glsl
index 1997f35..67b2c46 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4c1a1e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4c1a1e.wgsl.expected.glsl
@@ -1,80 +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 {
   uvec4 inner;
 } prevent_dce;
 
-void textureLoad_4c1a1e() {
+layout(binding = 0, rg32ui) uniform highp uimage3D arg_0;
+uvec4 textureLoad_4c1a1e() {
   uvec4 res = imageLoad(arg_0, ivec3(1));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureLoad_4c1a1e();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'image load-store format' : not supported with this 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 {
-  uvec4 inner;
-} prevent_dce;
-
-void textureLoad_4c1a1e() {
-  uvec4 res = imageLoad(arg_0, ivec3(1));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureLoad_4c1a1e();
+  prevent_dce.inner = textureLoad_4c1a1e();
 }
 
 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 {
   uvec4 inner;
 } prevent_dce;
 
-void textureLoad_4c1a1e() {
+layout(binding = 0, rg32ui) uniform highp uimage3D arg_0;
+uvec4 textureLoad_4c1a1e() {
   uvec4 res = imageLoad(arg_0, ivec3(1));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureLoad_4c1a1e();
+  prevent_dce.inner = textureLoad_4c1a1e();
 }
 
 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/textureLoad/4ccf9a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/4ccf9a.wgsl.expected.glsl
index 5d60119..346ebb0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4ccf9a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4ccf9a.wgsl.expected.glsl
@@ -1,80 +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 {
   uvec4 inner;
 } prevent_dce;
 
-void textureLoad_4ccf9a() {
+layout(binding = 0, rg32ui) uniform highp uimage3D arg_0;
+uvec4 textureLoad_4ccf9a() {
   uvec4 res = imageLoad(arg_0, ivec3(uvec3(1u)));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureLoad_4ccf9a();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'image load-store format' : not supported with this 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 {
-  uvec4 inner;
-} prevent_dce;
-
-void textureLoad_4ccf9a() {
-  uvec4 res = imageLoad(arg_0, ivec3(uvec3(1u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureLoad_4ccf9a();
+  prevent_dce.inner = textureLoad_4ccf9a();
 }
 
 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 {
   uvec4 inner;
 } prevent_dce;
 
-void textureLoad_4ccf9a() {
+layout(binding = 0, rg32ui) uniform highp uimage3D arg_0;
+uvec4 textureLoad_4ccf9a() {
   uvec4 res = imageLoad(arg_0, ivec3(uvec3(1u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureLoad_4ccf9a();
+  prevent_dce.inner = textureLoad_4ccf9a();
 }
 
 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/textureLoad/54fb38.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/54fb38.wgsl.expected.glsl
index 64e69aa..eaa11a7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/54fb38.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/54fb38.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 {
   uvec4 inner;
 } prevent_dce;
 
-void textureLoad_54fb38() {
+layout(binding = 0, rg32ui) uniform highp uimage2DArray arg_0;
+uvec4 textureLoad_54fb38() {
   uvec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), 1u)));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureLoad_54fb38();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'image load-store format' : not supported with this 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 {
-  uvec4 inner;
-} prevent_dce;
-
-void textureLoad_54fb38() {
-  uvec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), 1u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureLoad_54fb38();
+  prevent_dce.inner = textureLoad_54fb38();
 }
 
 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 {
   uvec4 inner;
 } prevent_dce;
 
-void textureLoad_54fb38() {
+layout(binding = 0, rg32ui) uniform highp uimage2DArray arg_0;
+uvec4 textureLoad_54fb38() {
   uvec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), 1u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureLoad_54fb38();
+  prevent_dce.inner = textureLoad_54fb38();
 }
 
 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/textureLoad/56a000.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/56a000.wgsl.expected.glsl
index 836d21e..3598f72 100644
--- a/test/tint/builtins/gen/literal/textureLoad/56a000.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/56a000.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 {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_56a000() {
+layout(binding = 0, rg32f) uniform highp image2D arg_0;
+vec4 textureLoad_56a000() {
   vec4 res = imageLoad(arg_0, ivec2(1, 0));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureLoad_56a000();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'image load-store format' : not supported with this 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 {
-  vec4 inner;
-} prevent_dce;
-
-void textureLoad_56a000() {
-  vec4 res = imageLoad(arg_0, ivec2(1, 0));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureLoad_56a000();
+  prevent_dce.inner = textureLoad_56a000();
 }
 
 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 {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_56a000() {
+layout(binding = 0, rg32f) uniform highp image2D arg_0;
+vec4 textureLoad_56a000() {
   vec4 res = imageLoad(arg_0, ivec2(1, 0));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureLoad_56a000();
+  prevent_dce.inner = textureLoad_56a000();
 }
 
 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/textureLoad/61e2e8.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/61e2e8.wgsl.expected.glsl
index b3b76ae..5fdc960 100644
--- a/test/tint/builtins/gen/literal/textureLoad/61e2e8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/61e2e8.wgsl.expected.glsl
@@ -1,80 +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 {
   ivec4 inner;
 } prevent_dce;
 
-void textureLoad_61e2e8() {
+layout(binding = 0, rg32i) uniform highp iimage3D arg_0;
+ivec4 textureLoad_61e2e8() {
   ivec4 res = imageLoad(arg_0, ivec3(uvec3(1u)));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureLoad_61e2e8();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'image load-store format' : not supported with this 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 {
-  ivec4 inner;
-} prevent_dce;
-
-void textureLoad_61e2e8() {
-  ivec4 res = imageLoad(arg_0, ivec3(uvec3(1u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureLoad_61e2e8();
+  prevent_dce.inner = textureLoad_61e2e8();
 }
 
 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 {
   ivec4 inner;
 } prevent_dce;
 
-void textureLoad_61e2e8() {
+layout(binding = 0, rg32i) uniform highp iimage3D arg_0;
+ivec4 textureLoad_61e2e8() {
   ivec4 res = imageLoad(arg_0, ivec3(uvec3(1u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureLoad_61e2e8();
+  prevent_dce.inner = textureLoad_61e2e8();
 }
 
 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/textureLoad/72c9c3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/72c9c3.wgsl.expected.glsl
index 4aedc4d..a57e94a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/72c9c3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/72c9c3.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 {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_72c9c3() {
+layout(binding = 0, r8) uniform highp image2DArray arg_0;
+vec4 textureLoad_72c9c3() {
   vec4 res = imageLoad(arg_0, ivec3(ivec2(1), int(1u)));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureLoad_72c9c3();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'image load-store format' : not supported with this 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 {
-  vec4 inner;
-} prevent_dce;
-
-void textureLoad_72c9c3() {
-  vec4 res = imageLoad(arg_0, ivec3(ivec2(1), int(1u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureLoad_72c9c3();
+  prevent_dce.inner = textureLoad_72c9c3();
 }
 
 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 {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_72c9c3() {
+layout(binding = 0, r8) uniform highp image2DArray arg_0;
+vec4 textureLoad_72c9c3() {
   vec4 res = imageLoad(arg_0, ivec3(ivec2(1), int(1u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureLoad_72c9c3();
+  prevent_dce.inner = textureLoad_72c9c3();
 }
 
 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/textureLoad/7dd3d5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/7dd3d5.wgsl.expected.glsl
index 095e37e..0a436ff 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7dd3d5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/7dd3d5.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 {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_7dd3d5() {
+layout(binding = 0, r8) uniform highp image2DArray arg_0;
+vec4 textureLoad_7dd3d5() {
   vec4 res = imageLoad(arg_0, ivec3(ivec2(1), 1));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureLoad_7dd3d5();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'image load-store format' : not supported with this 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 {
-  vec4 inner;
-} prevent_dce;
-
-void textureLoad_7dd3d5() {
-  vec4 res = imageLoad(arg_0, ivec3(ivec2(1), 1));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureLoad_7dd3d5();
+  prevent_dce.inner = textureLoad_7dd3d5();
 }
 
 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 {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_7dd3d5() {
+layout(binding = 0, r8) uniform highp image2DArray arg_0;
+vec4 textureLoad_7dd3d5() {
   vec4 res = imageLoad(arg_0, ivec3(ivec2(1), 1));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureLoad_7dd3d5();
+  prevent_dce.inner = textureLoad_7dd3d5();
 }
 
 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/textureLoad/881349.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/881349.wgsl.expected.glsl
index 758f743..a6cee45 100644
--- a/test/tint/builtins/gen/literal/textureLoad/881349.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/881349.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 {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_881349() {
+layout(binding = 0, rg32f) uniform highp image2DArray arg_0;
+vec4 textureLoad_881349() {
   vec4 res = imageLoad(arg_0, ivec3(ivec2(1), 1));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureLoad_881349();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'image load-store format' : not supported with this 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 {
-  vec4 inner;
-} prevent_dce;
-
-void textureLoad_881349() {
-  vec4 res = imageLoad(arg_0, ivec3(ivec2(1), 1));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureLoad_881349();
+  prevent_dce.inner = textureLoad_881349();
 }
 
 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 {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_881349() {
+layout(binding = 0, rg32f) uniform highp image2DArray arg_0;
+vec4 textureLoad_881349() {
   vec4 res = imageLoad(arg_0, ivec3(ivec2(1), 1));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureLoad_881349();
+  prevent_dce.inner = textureLoad_881349();
 }
 
 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/textureLoad/8c6176.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/8c6176.wgsl.expected.glsl
index b3d44c1..1fc3fd5 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8c6176.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8c6176.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 {
   uvec4 inner;
 } prevent_dce;
 
-void textureLoad_8c6176() {
+layout(binding = 0, rg32ui) uniform highp uimage2D arg_0;
+uvec4 textureLoad_8c6176() {
   uvec4 res = imageLoad(arg_0, ivec2(uvec2(1u)));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureLoad_8c6176();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'image load-store format' : not supported with this 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 {
-  uvec4 inner;
-} prevent_dce;
-
-void textureLoad_8c6176() {
-  uvec4 res = imageLoad(arg_0, ivec2(uvec2(1u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureLoad_8c6176();
+  prevent_dce.inner = textureLoad_8c6176();
 }
 
 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 {
   uvec4 inner;
 } prevent_dce;
 
-void textureLoad_8c6176() {
+layout(binding = 0, rg32ui) uniform highp uimage2D arg_0;
+uvec4 textureLoad_8c6176() {
   uvec4 res = imageLoad(arg_0, ivec2(uvec2(1u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureLoad_8c6176();
+  prevent_dce.inner = textureLoad_8c6176();
 }
 
 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/textureLoad/8d64c3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/8d64c3.wgsl.expected.glsl
index 8e18b3c..fc39d55 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8d64c3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8d64c3.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 {
   uvec4 inner;
 } prevent_dce;
 
-void textureLoad_8d64c3() {
+layout(binding = 0, rg32ui) uniform highp uimage2D arg_0;
+uvec4 textureLoad_8d64c3() {
   uvec4 res = imageLoad(arg_0, ivec2(1));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureLoad_8d64c3();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'image load-store format' : not supported with this 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 {
-  uvec4 inner;
-} prevent_dce;
-
-void textureLoad_8d64c3() {
-  uvec4 res = imageLoad(arg_0, ivec2(1));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureLoad_8d64c3();
+  prevent_dce.inner = textureLoad_8d64c3();
 }
 
 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 {
   uvec4 inner;
 } prevent_dce;
 
-void textureLoad_8d64c3() {
+layout(binding = 0, rg32ui) uniform highp uimage2D arg_0;
+uvec4 textureLoad_8d64c3() {
   uvec4 res = imageLoad(arg_0, ivec2(1));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureLoad_8d64c3();
+  prevent_dce.inner = textureLoad_8d64c3();
 }
 
 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/textureLoad/91ede5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/91ede5.wgsl.expected.glsl
index 8927c46..5af28da 100644
--- a/test/tint/builtins/gen/literal/textureLoad/91ede5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/91ede5.wgsl.expected.glsl
@@ -1,80 +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 {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_91ede5() {
+layout(binding = 0, rg32f) uniform highp image3D arg_0;
+vec4 textureLoad_91ede5() {
   vec4 res = imageLoad(arg_0, ivec3(uvec3(1u)));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureLoad_91ede5();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'image load-store format' : not supported with this 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 {
-  vec4 inner;
-} prevent_dce;
-
-void textureLoad_91ede5() {
-  vec4 res = imageLoad(arg_0, ivec3(uvec3(1u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureLoad_91ede5();
+  prevent_dce.inner = textureLoad_91ede5();
 }
 
 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 {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_91ede5() {
+layout(binding = 0, rg32f) uniform highp image3D arg_0;
+vec4 textureLoad_91ede5() {
   vec4 res = imageLoad(arg_0, ivec3(uvec3(1u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureLoad_91ede5();
+  prevent_dce.inner = textureLoad_91ede5();
 }
 
 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/textureLoad/92dd61.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/92dd61.wgsl.expected.glsl
index 02f8412..d4f61f1 100644
--- a/test/tint/builtins/gen/literal/textureLoad/92dd61.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/92dd61.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 {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_92dd61() {
+layout(binding = 0, r8) uniform highp image2D arg_0;
+vec4 textureLoad_92dd61() {
   vec4 res = imageLoad(arg_0, ivec2(uvec2(1u, 0u)));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureLoad_92dd61();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'image load-store format' : not supported with this 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 {
-  vec4 inner;
-} prevent_dce;
-
-void textureLoad_92dd61() {
-  vec4 res = imageLoad(arg_0, ivec2(uvec2(1u, 0u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureLoad_92dd61();
+  prevent_dce.inner = textureLoad_92dd61();
 }
 
 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 {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_92dd61() {
+layout(binding = 0, r8) uniform highp image2D arg_0;
+vec4 textureLoad_92dd61() {
   vec4 res = imageLoad(arg_0, ivec2(uvec2(1u, 0u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureLoad_92dd61();
+  prevent_dce.inner = textureLoad_92dd61();
 }
 
 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/textureLoad/99d8fa.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/99d8fa.wgsl.expected.glsl
index b1c73f3..b17c25c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/99d8fa.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/99d8fa.wgsl.expected.glsl
@@ -1,80 +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 {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_99d8fa() {
+layout(binding = 0, r8) uniform highp image3D arg_0;
+vec4 textureLoad_99d8fa() {
   vec4 res = imageLoad(arg_0, ivec3(1));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureLoad_99d8fa();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'image load-store format' : not supported with this 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 {
-  vec4 inner;
-} prevent_dce;
-
-void textureLoad_99d8fa() {
-  vec4 res = imageLoad(arg_0, ivec3(1));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureLoad_99d8fa();
+  prevent_dce.inner = textureLoad_99d8fa();
 }
 
 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 {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_99d8fa() {
+layout(binding = 0, r8) uniform highp image3D arg_0;
+vec4 textureLoad_99d8fa() {
   vec4 res = imageLoad(arg_0, ivec3(1));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureLoad_99d8fa();
+  prevent_dce.inner = textureLoad_99d8fa();
 }
 
 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/textureLoad/a5c4e2.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/a5c4e2.wgsl.expected.glsl
index 6f58bb0..4f385dc 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a5c4e2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a5c4e2.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 {
   uvec4 inner;
 } prevent_dce;
 
-void textureLoad_a5c4e2() {
+layout(binding = 0, rg32ui) uniform highp uimage2D arg_0;
+uvec4 textureLoad_a5c4e2() {
   uvec4 res = imageLoad(arg_0, ivec2(1, 0));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureLoad_a5c4e2();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'image load-store format' : not supported with this 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 {
-  uvec4 inner;
-} prevent_dce;
-
-void textureLoad_a5c4e2() {
-  uvec4 res = imageLoad(arg_0, ivec2(1, 0));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureLoad_a5c4e2();
+  prevent_dce.inner = textureLoad_a5c4e2();
 }
 
 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 {
   uvec4 inner;
 } prevent_dce;
 
-void textureLoad_a5c4e2() {
+layout(binding = 0, rg32ui) uniform highp uimage2D arg_0;
+uvec4 textureLoad_a5c4e2() {
   uvec4 res = imageLoad(arg_0, ivec2(1, 0));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureLoad_a5c4e2();
+  prevent_dce.inner = textureLoad_a5c4e2();
 }
 
 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/textureLoad/aa6130.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/aa6130.wgsl.expected.glsl
index 0e0dd6a..f85c4f8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/aa6130.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/aa6130.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 {
   ivec4 inner;
 } prevent_dce;
 
-void textureLoad_aa6130() {
+layout(binding = 0, rg32i) uniform highp iimage2D arg_0;
+ivec4 textureLoad_aa6130() {
   ivec4 res = imageLoad(arg_0, ivec2(1));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureLoad_aa6130();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'image load-store format' : not supported with this 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 {
-  ivec4 inner;
-} prevent_dce;
-
-void textureLoad_aa6130() {
-  ivec4 res = imageLoad(arg_0, ivec2(1));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureLoad_aa6130();
+  prevent_dce.inner = textureLoad_aa6130();
 }
 
 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 {
   ivec4 inner;
 } prevent_dce;
 
-void textureLoad_aa6130() {
+layout(binding = 0, rg32i) uniform highp iimage2D arg_0;
+ivec4 textureLoad_aa6130() {
   ivec4 res = imageLoad(arg_0, ivec2(1));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureLoad_aa6130();
+  prevent_dce.inner = textureLoad_aa6130();
 }
 
 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/textureLoad/af0507.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/af0507.wgsl.expected.glsl
index fc68552..16f7529 100644
--- a/test/tint/builtins/gen/literal/textureLoad/af0507.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/af0507.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 {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_af0507() {
+layout(binding = 0, rg32f) uniform highp image2DArray arg_0;
+vec4 textureLoad_af0507() {
   vec4 res = imageLoad(arg_0, ivec3(ivec2(1), int(1u)));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureLoad_af0507();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'image load-store format' : not supported with this 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 {
-  vec4 inner;
-} prevent_dce;
-
-void textureLoad_af0507() {
-  vec4 res = imageLoad(arg_0, ivec3(ivec2(1), int(1u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureLoad_af0507();
+  prevent_dce.inner = textureLoad_af0507();
 }
 
 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 {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_af0507() {
+layout(binding = 0, rg32f) uniform highp image2DArray arg_0;
+vec4 textureLoad_af0507() {
   vec4 res = imageLoad(arg_0, ivec3(ivec2(1), int(1u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureLoad_af0507();
+  prevent_dce.inner = textureLoad_af0507();
 }
 
 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/textureLoad/b1ca35.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/b1ca35.wgsl.expected.glsl
index ab39c6c..7c9f408 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b1ca35.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b1ca35.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 {
   ivec4 inner;
 } prevent_dce;
 
-void textureLoad_b1ca35() {
+layout(binding = 0, rg32i) uniform highp iimage2DArray arg_0;
+ivec4 textureLoad_b1ca35() {
   ivec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), 1u)));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureLoad_b1ca35();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'image load-store format' : not supported with this 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 {
-  ivec4 inner;
-} prevent_dce;
-
-void textureLoad_b1ca35() {
-  ivec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), 1u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureLoad_b1ca35();
+  prevent_dce.inner = textureLoad_b1ca35();
 }
 
 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 {
   ivec4 inner;
 } prevent_dce;
 
-void textureLoad_b1ca35() {
+layout(binding = 0, rg32i) uniform highp iimage2DArray arg_0;
+ivec4 textureLoad_b1ca35() {
   ivec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), 1u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureLoad_b1ca35();
+  prevent_dce.inner = textureLoad_b1ca35();
 }
 
 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/textureLoad/b4d6c4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/b4d6c4.wgsl.expected.glsl
index 6a5997b..bd5dfea 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b4d6c4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b4d6c4.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 {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_b4d6c4() {
+layout(binding = 0, rg32f) uniform highp image2D arg_0;
+vec4 textureLoad_b4d6c4() {
   vec4 res = imageLoad(arg_0, ivec2(uvec2(1u)));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureLoad_b4d6c4();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'image load-store format' : not supported with this 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 {
-  vec4 inner;
-} prevent_dce;
-
-void textureLoad_b4d6c4() {
-  vec4 res = imageLoad(arg_0, ivec2(uvec2(1u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureLoad_b4d6c4();
+  prevent_dce.inner = textureLoad_b4d6c4();
 }
 
 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 {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_b4d6c4() {
+layout(binding = 0, rg32f) uniform highp image2D arg_0;
+vec4 textureLoad_b4d6c4() {
   vec4 res = imageLoad(arg_0, ivec2(uvec2(1u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureLoad_b4d6c4();
+  prevent_dce.inner = textureLoad_b4d6c4();
 }
 
 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/textureLoad/bba04a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/bba04a.wgsl.expected.glsl
index 593d188..c2ad778 100644
--- a/test/tint/builtins/gen/literal/textureLoad/bba04a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/bba04a.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 {
   uvec4 inner;
 } prevent_dce;
 
-void textureLoad_bba04a() {
+layout(binding = 0, rg32ui) uniform highp uimage2D arg_0;
+uvec4 textureLoad_bba04a() {
   uvec4 res = imageLoad(arg_0, ivec2(uvec2(1u, 0u)));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureLoad_bba04a();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'image load-store format' : not supported with this 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 {
-  uvec4 inner;
-} prevent_dce;
-
-void textureLoad_bba04a() {
-  uvec4 res = imageLoad(arg_0, ivec2(uvec2(1u, 0u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureLoad_bba04a();
+  prevent_dce.inner = textureLoad_bba04a();
 }
 
 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 {
   uvec4 inner;
 } prevent_dce;
 
-void textureLoad_bba04a() {
+layout(binding = 0, rg32ui) uniform highp uimage2D arg_0;
+uvec4 textureLoad_bba04a() {
   uvec4 res = imageLoad(arg_0, ivec2(uvec2(1u, 0u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureLoad_bba04a();
+  prevent_dce.inner = textureLoad_bba04a();
 }
 
 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/textureLoad/bc882d.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/bc882d.wgsl.expected.glsl
index a892e35..c507d0a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/bc882d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/bc882d.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 {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_bc882d() {
+layout(binding = 0, r8) uniform highp image2DArray arg_0;
+vec4 textureLoad_bc882d() {
   vec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), uint(1))));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureLoad_bc882d();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'image load-store format' : not supported with this 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 {
-  vec4 inner;
-} prevent_dce;
-
-void textureLoad_bc882d() {
-  vec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), uint(1))));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureLoad_bc882d();
+  prevent_dce.inner = textureLoad_bc882d();
 }
 
 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 {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_bc882d() {
+layout(binding = 0, r8) uniform highp image2DArray arg_0;
+vec4 textureLoad_bc882d() {
   vec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), uint(1))));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureLoad_bc882d();
+  prevent_dce.inner = textureLoad_bc882d();
 }
 
 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/textureLoad/bdc67a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/bdc67a.wgsl.expected.glsl
index f907b8e..f20f38b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/bdc67a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/bdc67a.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 {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_bdc67a() {
+layout(binding = 0, rg32f) uniform highp image2DArray arg_0;
+vec4 textureLoad_bdc67a() {
   vec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), uint(1))));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureLoad_bdc67a();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'image load-store format' : not supported with this 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 {
-  vec4 inner;
-} prevent_dce;
-
-void textureLoad_bdc67a() {
-  vec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), uint(1))));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureLoad_bdc67a();
+  prevent_dce.inner = textureLoad_bdc67a();
 }
 
 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 {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_bdc67a() {
+layout(binding = 0, rg32f) uniform highp image2DArray arg_0;
+vec4 textureLoad_bdc67a() {
   vec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), uint(1))));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureLoad_bdc67a();
+  prevent_dce.inner = textureLoad_bdc67a();
 }
 
 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/textureLoad/cdccd2.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/cdccd2.wgsl.expected.glsl
index 39a23c1..9456329 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cdccd2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/cdccd2.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 {
   uvec4 inner;
 } prevent_dce;
 
-void textureLoad_cdccd2() {
+layout(binding = 0, rg32ui) uniform highp uimage2DArray arg_0;
+uvec4 textureLoad_cdccd2() {
   uvec4 res = imageLoad(arg_0, ivec3(ivec2(1), int(1u)));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureLoad_cdccd2();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'image load-store format' : not supported with this 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 {
-  uvec4 inner;
-} prevent_dce;
-
-void textureLoad_cdccd2() {
-  uvec4 res = imageLoad(arg_0, ivec3(ivec2(1), int(1u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureLoad_cdccd2();
+  prevent_dce.inner = textureLoad_cdccd2();
 }
 
 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 {
   uvec4 inner;
 } prevent_dce;
 
-void textureLoad_cdccd2() {
+layout(binding = 0, rg32ui) uniform highp uimage2DArray arg_0;
+uvec4 textureLoad_cdccd2() {
   uvec4 res = imageLoad(arg_0, ivec3(ivec2(1), int(1u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureLoad_cdccd2();
+  prevent_dce.inner = textureLoad_cdccd2();
 }
 
 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/textureLoad/d0e351.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/d0e351.wgsl.expected.glsl
index 0d50d67..55b82a8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d0e351.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d0e351.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 {
   uvec4 inner;
 } prevent_dce;
 
-void textureLoad_d0e351() {
+layout(binding = 0, rg32ui) uniform highp uimage2DArray arg_0;
+uvec4 textureLoad_d0e351() {
   uvec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), uint(1))));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureLoad_d0e351();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'image load-store format' : not supported with this 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 {
-  uvec4 inner;
-} prevent_dce;
-
-void textureLoad_d0e351() {
-  uvec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), uint(1))));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureLoad_d0e351();
+  prevent_dce.inner = textureLoad_d0e351();
 }
 
 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 {
   uvec4 inner;
 } prevent_dce;
 
-void textureLoad_d0e351() {
+layout(binding = 0, rg32ui) uniform highp uimage2DArray arg_0;
+uvec4 textureLoad_d0e351() {
   uvec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), uint(1))));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureLoad_d0e351();
+  prevent_dce.inner = textureLoad_d0e351();
 }
 
 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/textureLoad/d41c72.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/d41c72.wgsl.expected.glsl
index 03ba55e..0660468 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d41c72.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d41c72.wgsl.expected.glsl
@@ -1,80 +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 {
   ivec4 inner;
 } prevent_dce;
 
-void textureLoad_d41c72() {
+layout(binding = 0, rg32i) uniform highp iimage3D arg_0;
+ivec4 textureLoad_d41c72() {
   ivec4 res = imageLoad(arg_0, ivec3(1));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureLoad_d41c72();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'image load-store format' : not supported with this 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 {
-  ivec4 inner;
-} prevent_dce;
-
-void textureLoad_d41c72() {
-  ivec4 res = imageLoad(arg_0, ivec3(1));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureLoad_d41c72();
+  prevent_dce.inner = textureLoad_d41c72();
 }
 
 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 {
   ivec4 inner;
 } prevent_dce;
 
-void textureLoad_d41c72() {
+layout(binding = 0, rg32i) uniform highp iimage3D arg_0;
+ivec4 textureLoad_d41c72() {
   ivec4 res = imageLoad(arg_0, ivec3(1));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureLoad_d41c72();
+  prevent_dce.inner = textureLoad_d41c72();
 }
 
 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/textureLoad/defd9a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/defd9a.wgsl.expected.glsl
index 6c32715..b40620a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/defd9a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/defd9a.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 {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_defd9a() {
+layout(binding = 0, rg32f) uniform highp image2D arg_0;
+vec4 textureLoad_defd9a() {
   vec4 res = imageLoad(arg_0, ivec2(1));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureLoad_defd9a();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'image load-store format' : not supported with this 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 {
-  vec4 inner;
-} prevent_dce;
-
-void textureLoad_defd9a() {
-  vec4 res = imageLoad(arg_0, ivec2(1));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureLoad_defd9a();
+  prevent_dce.inner = textureLoad_defd9a();
 }
 
 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 {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_defd9a() {
+layout(binding = 0, rg32f) uniform highp image2D arg_0;
+vec4 textureLoad_defd9a() {
   vec4 res = imageLoad(arg_0, ivec2(1));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureLoad_defd9a();
+  prevent_dce.inner = textureLoad_defd9a();
 }
 
 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/textureLoad/e2b3a1.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/e2b3a1.wgsl.expected.glsl
index 8e9b263..fed9f3b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e2b3a1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e2b3a1.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 {
   ivec4 inner;
 } prevent_dce;
 
-void textureLoad_e2b3a1() {
+layout(binding = 0, rg32i) uniform highp iimage2DArray arg_0;
+ivec4 textureLoad_e2b3a1() {
   ivec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), uint(1))));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureLoad_e2b3a1();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'image load-store format' : not supported with this 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 {
-  ivec4 inner;
-} prevent_dce;
-
-void textureLoad_e2b3a1() {
-  ivec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), uint(1))));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureLoad_e2b3a1();
+  prevent_dce.inner = textureLoad_e2b3a1();
 }
 
 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 {
   ivec4 inner;
 } prevent_dce;
 
-void textureLoad_e2b3a1() {
+layout(binding = 0, rg32i) uniform highp iimage2DArray arg_0;
+ivec4 textureLoad_e2b3a1() {
   ivec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), uint(1))));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureLoad_e2b3a1();
+  prevent_dce.inner = textureLoad_e2b3a1();
 }
 
 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/textureLoad/e4051a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/e4051a.wgsl.expected.glsl
index 235854f..fdbfa3f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e4051a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e4051a.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 {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_e4051a() {
+layout(binding = 0, r8) uniform highp image2D arg_0;
+vec4 textureLoad_e4051a() {
   vec4 res = imageLoad(arg_0, ivec2(uvec2(1u)));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureLoad_e4051a();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'image load-store format' : not supported with this 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 {
-  vec4 inner;
-} prevent_dce;
-
-void textureLoad_e4051a() {
-  vec4 res = imageLoad(arg_0, ivec2(uvec2(1u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureLoad_e4051a();
+  prevent_dce.inner = textureLoad_e4051a();
 }
 
 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 {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_e4051a() {
+layout(binding = 0, r8) uniform highp image2D arg_0;
+vec4 textureLoad_e4051a() {
   vec4 res = imageLoad(arg_0, ivec2(uvec2(1u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureLoad_e4051a();
+  prevent_dce.inner = textureLoad_e4051a();
 }
 
 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/textureLoad/ed55a8.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/ed55a8.wgsl.expected.glsl
index 2e46808..5489f55 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ed55a8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ed55a8.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 {
   ivec4 inner;
 } prevent_dce;
 
-void textureLoad_ed55a8() {
+layout(binding = 0, rg32i) uniform highp iimage2DArray arg_0;
+ivec4 textureLoad_ed55a8() {
   ivec4 res = imageLoad(arg_0, ivec3(ivec2(1), int(1u)));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureLoad_ed55a8();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'image load-store format' : not supported with this 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 {
-  ivec4 inner;
-} prevent_dce;
-
-void textureLoad_ed55a8() {
-  ivec4 res = imageLoad(arg_0, ivec3(ivec2(1), int(1u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureLoad_ed55a8();
+  prevent_dce.inner = textureLoad_ed55a8();
 }
 
 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 {
   ivec4 inner;
 } prevent_dce;
 
-void textureLoad_ed55a8() {
+layout(binding = 0, rg32i) uniform highp iimage2DArray arg_0;
+ivec4 textureLoad_ed55a8() {
   ivec4 res = imageLoad(arg_0, ivec3(ivec2(1), int(1u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureLoad_ed55a8();
+  prevent_dce.inner = textureLoad_ed55a8();
 }
 
 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/textureLoad/ef2ec3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/ef2ec3.wgsl.expected.glsl
index 64d636a..f68279a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ef2ec3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ef2ec3.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 {
   ivec4 inner;
 } prevent_dce;
 
-void textureLoad_ef2ec3() {
+layout(binding = 0, rg32i) uniform highp iimage2D arg_0;
+ivec4 textureLoad_ef2ec3() {
   ivec4 res = imageLoad(arg_0, ivec2(uvec2(1u, 0u)));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureLoad_ef2ec3();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'image load-store format' : not supported with this 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 {
-  ivec4 inner;
-} prevent_dce;
-
-void textureLoad_ef2ec3() {
-  ivec4 res = imageLoad(arg_0, ivec2(uvec2(1u, 0u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureLoad_ef2ec3();
+  prevent_dce.inner = textureLoad_ef2ec3();
 }
 
 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 {
   ivec4 inner;
 } prevent_dce;
 
-void textureLoad_ef2ec3() {
+layout(binding = 0, rg32i) uniform highp iimage2D arg_0;
+ivec4 textureLoad_ef2ec3() {
   ivec4 res = imageLoad(arg_0, ivec2(uvec2(1u, 0u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureLoad_ef2ec3();
+  prevent_dce.inner = textureLoad_ef2ec3();
 }
 
 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/textureLoad/f2bdd4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/f2bdd4.wgsl.expected.glsl
index ba0e5fa..fae1e46 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f2bdd4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f2bdd4.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 {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_f2bdd4() {
+layout(binding = 0, r8) uniform highp image2DArray arg_0;
+vec4 textureLoad_f2bdd4() {
   vec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), 1u)));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureLoad_f2bdd4();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'image load-store format' : not supported with this 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 {
-  vec4 inner;
-} prevent_dce;
-
-void textureLoad_f2bdd4() {
-  vec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), 1u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureLoad_f2bdd4();
+  prevent_dce.inner = textureLoad_f2bdd4();
 }
 
 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 {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_f2bdd4() {
+layout(binding = 0, r8) uniform highp image2DArray arg_0;
+vec4 textureLoad_f2bdd4() {
   vec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), 1u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureLoad_f2bdd4();
+  prevent_dce.inner = textureLoad_f2bdd4();
 }
 
 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/17ccad.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/17ccad.wgsl.expected.glsl
index f5b9bb6..7c0c8f2 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/17ccad.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/17ccad.wgsl.expected.glsl
@@ -4,7 +4,7 @@
   uint inner;
 } prevent_dce;
 
-layout(binding = 0, rg32f) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, rg32f) uniform highp image2DArray arg_0;
 uint textureNumLayers_17ccad() {
   uint res = uint(imageSize(arg_0).z);
   return res;
@@ -24,7 +24,7 @@
   uint inner;
 } prevent_dce;
 
-layout(binding = 0, rg32f) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, rg32f) uniform highp image2DArray arg_0;
 uint textureNumLayers_17ccad() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/17ccad.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureNumLayers/17ccad.wgsl.expected.ir.glsl
index 2d340e3..2b1a7be 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/17ccad.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/17ccad.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: INVALID
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:731 internal compiler error: TINT_UNREACHABLE 
-********************************************************************
-*  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 image2DArray arg_0;
+uint textureNumLayers_17ccad() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_17ccad();
+}
+#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 image2DArray arg_0;
+uint textureNumLayers_17ccad() {
+  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_17ccad();
+}
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 e19a925..11a195c 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/24d572.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/24d572.wgsl.expected.glsl
@@ -4,7 +4,7 @@
   uint inner;
 } prevent_dce;
 
-layout(binding = 0, rg32ui) uniform highp writeonly uimage2DArray arg_0;
+layout(binding = 0, rg32ui) uniform highp uimage2DArray arg_0;
 uint textureNumLayers_24d572() {
   uint res = uint(imageSize(arg_0).z);
   return res;
@@ -24,7 +24,7 @@
   uint inner;
 } prevent_dce;
 
-layout(binding = 0, rg32ui) uniform highp writeonly uimage2DArray arg_0;
+layout(binding = 0, rg32ui) uniform highp uimage2DArray arg_0;
 uint textureNumLayers_24d572() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/24d572.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureNumLayers/24d572.wgsl.expected.ir.glsl
index 2d340e3..37d2723 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/24d572.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/24d572.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: INVALID
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:731 internal compiler error: TINT_UNREACHABLE 
-********************************************************************
-*  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 uimage2DArray arg_0;
+uint textureNumLayers_24d572() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_24d572();
+}
+#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 uimage2DArray arg_0;
+uint textureNumLayers_24d572() {
+  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_24d572();
+}
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 ad05818..c88e510 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/622aa2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/622aa2.wgsl.expected.glsl
@@ -4,7 +4,7 @@
   uint inner;
 } prevent_dce;
 
-layout(binding = 0, rg32i) uniform highp writeonly iimage2DArray arg_0;
+layout(binding = 0, rg32i) uniform highp iimage2DArray arg_0;
 uint textureNumLayers_622aa2() {
   uint res = uint(imageSize(arg_0).z);
   return res;
@@ -24,7 +24,7 @@
   uint inner;
 } prevent_dce;
 
-layout(binding = 0, rg32i) uniform highp writeonly iimage2DArray arg_0;
+layout(binding = 0, rg32i) uniform highp iimage2DArray arg_0;
 uint textureNumLayers_622aa2() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/622aa2.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureNumLayers/622aa2.wgsl.expected.ir.glsl
index 2d340e3..3480f5e 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/622aa2.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/622aa2.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: INVALID
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:731 internal compiler error: TINT_UNREACHABLE 
-********************************************************************
-*  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 iimage2DArray arg_0;
+uint textureNumLayers_622aa2() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_622aa2();
+}
+#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 iimage2DArray arg_0;
+uint textureNumLayers_622aa2() {
+  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_622aa2();
+}
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 8679ddd..077123c 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/aac630.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/aac630.wgsl.expected.glsl
@@ -4,7 +4,7 @@
   uint inner;
 } prevent_dce;
 
-layout(binding = 0, r8) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, r8) uniform highp image2DArray arg_0;
 uint textureNumLayers_aac630() {
   uint res = uint(imageSize(arg_0).z);
   return res;
@@ -24,7 +24,7 @@
   uint inner;
 } prevent_dce;
 
-layout(binding = 0, r8) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, r8) uniform highp image2DArray arg_0;
 uint textureNumLayers_aac630() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/aac630.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureNumLayers/aac630.wgsl.expected.ir.glsl
index 2d340e3..6b60e36 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/aac630.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/aac630.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: INVALID
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:731 internal compiler error: TINT_UNREACHABLE 
-********************************************************************
-*  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 image2DArray arg_0;
+uint textureNumLayers_aac630() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_aac630();
+}
+#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 image2DArray arg_0;
+uint textureNumLayers_aac630() {
+  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_aac630();
+}
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 a1f534c..5fc3c0c 100644
--- a/test/tint/builtins/gen/literal/textureStore/0ad124.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/0ad124.wgsl.expected.glsl
@@ -1,6 +1,6 @@
 #version 460
 
-layout(binding = 0, r8) uniform highp writeonly image2D arg_0;
+layout(binding = 0, r8) uniform highp image2D arg_0;
 void textureStore_0ad124() {
   imageStore(arg_0, ivec2(1, 0), vec4(1.0f));
 }
@@ -15,7 +15,7 @@
 }
 #version 460
 
-layout(binding = 0, r8) uniform highp writeonly image2D arg_0;
+layout(binding = 0, r8) uniform highp image2D arg_0;
 void textureStore_0ad124() {
   imageStore(arg_0, ivec2(1, 0), vec4(1.0f));
 }
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 ea0a189..33cfec7 100644
--- a/test/tint/builtins/gen/literal/textureStore/0ade9a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/0ade9a.wgsl.expected.glsl
@@ -1,6 +1,6 @@
 #version 460
 
-layout(binding = 0, rg32ui) uniform highp writeonly uimage2DArray arg_0;
+layout(binding = 0, rg32ui) uniform highp uimage2DArray arg_0;
 void textureStore_0ade9a() {
   imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), uvec4(1u));
 }
@@ -15,7 +15,7 @@
 }
 #version 460
 
-layout(binding = 0, rg32ui) uniform highp writeonly uimage2DArray arg_0;
+layout(binding = 0, rg32ui) uniform highp uimage2DArray arg_0;
 void textureStore_0ade9a() {
   imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), uvec4(1u));
 }
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 8a07748..4c7b431 100644
--- a/test/tint/builtins/gen/literal/textureStore/1a6c0b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/1a6c0b.wgsl.expected.glsl
@@ -1,6 +1,6 @@
 #version 460
 
-layout(binding = 0, rg32i) uniform highp writeonly iimage2DArray arg_0;
+layout(binding = 0, rg32i) uniform highp iimage2DArray arg_0;
 void textureStore_1a6c0b() {
   imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), ivec4(1));
 }
@@ -15,7 +15,7 @@
 }
 #version 460
 
-layout(binding = 0, rg32i) uniform highp writeonly iimage2DArray arg_0;
+layout(binding = 0, rg32i) uniform highp iimage2DArray arg_0;
 void textureStore_1a6c0b() {
   imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), ivec4(1));
 }
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 7a4c513..527426e 100644
--- a/test/tint/builtins/gen/literal/textureStore/272f5a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/272f5a.wgsl.expected.glsl
@@ -1,6 +1,6 @@
 #version 460
 
-layout(binding = 0, r8) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, r8) uniform highp image2DArray arg_0;
 void textureStore_272f5a() {
   imageStore(arg_0, ivec3(ivec2(1), int(1u)), vec4(1.0f));
 }
@@ -15,7 +15,7 @@
 }
 #version 460
 
-layout(binding = 0, r8) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, r8) uniform highp image2DArray arg_0;
 void textureStore_272f5a() {
   imageStore(arg_0, ivec3(ivec2(1), int(1u)), vec4(1.0f));
 }
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 b3b05a6..863aa2e 100644
--- a/test/tint/builtins/gen/literal/textureStore/2e512f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/2e512f.wgsl.expected.glsl
@@ -1,6 +1,6 @@
 #version 460
 
-layout(binding = 0, r8) uniform highp writeonly image2D arg_0;
+layout(binding = 0, r8) uniform highp image2D arg_0;
 void textureStore_2e512f() {
   imageStore(arg_0, ivec2(uvec2(1u)), vec4(1.0f));
 }
@@ -15,7 +15,7 @@
 }
 #version 460
 
-layout(binding = 0, r8) uniform highp writeonly image2D arg_0;
+layout(binding = 0, r8) uniform highp image2D arg_0;
 void textureStore_2e512f() {
   imageStore(arg_0, ivec2(uvec2(1u)), vec4(1.0f));
 }
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 9974efd..5a16764 100644
--- a/test/tint/builtins/gen/literal/textureStore/3e0dc4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/3e0dc4.wgsl.expected.glsl
@@ -1,6 +1,6 @@
 #version 460
 
-layout(binding = 0, rg32f) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, rg32f) uniform highp image2DArray arg_0;
 void textureStore_3e0dc4() {
   imageStore(arg_0, ivec3(ivec2(1), int(1u)), vec4(1.0f));
 }
@@ -15,7 +15,7 @@
 }
 #version 460
 
-layout(binding = 0, rg32f) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, rg32f) uniform highp image2DArray arg_0;
 void textureStore_3e0dc4() {
   imageStore(arg_0, ivec3(ivec2(1), int(1u)), vec4(1.0f));
 }
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 68ab6cb..d3f2b45 100644
--- a/test/tint/builtins/gen/literal/textureStore/43d1df.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/43d1df.wgsl.expected.glsl
@@ -1,6 +1,6 @@
 #version 460
 
-layout(binding = 0, r8) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, r8) uniform highp image2DArray arg_0;
 void textureStore_43d1df() {
   imageStore(arg_0, ivec3(ivec2(1), 1), vec4(1.0f));
 }
@@ -15,7 +15,7 @@
 }
 #version 460
 
-layout(binding = 0, r8) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, r8) uniform highp image2DArray arg_0;
 void textureStore_43d1df() {
   imageStore(arg_0, ivec3(ivec2(1), 1), vec4(1.0f));
 }
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 f8863e87..2fd84dd 100644
--- a/test/tint/builtins/gen/literal/textureStore/473ead.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/473ead.wgsl.expected.glsl
@@ -1,6 +1,6 @@
 #version 460
 
-layout(binding = 0, rg32ui) uniform highp writeonly uimage3D arg_0;
+layout(binding = 0, rg32ui) uniform highp uimage3D arg_0;
 void textureStore_473ead() {
   imageStore(arg_0, ivec3(uvec3(1u)), uvec4(1u));
 }
@@ -15,7 +15,7 @@
 }
 #version 460
 
-layout(binding = 0, rg32ui) uniform highp writeonly uimage3D arg_0;
+layout(binding = 0, rg32ui) uniform highp uimage3D arg_0;
 void textureStore_473ead() {
   imageStore(arg_0, ivec3(uvec3(1u)), uvec4(1u));
 }
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 3644c8f..a332c9a 100644
--- a/test/tint/builtins/gen/literal/textureStore/4cce74.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/4cce74.wgsl.expected.glsl
@@ -1,6 +1,6 @@
 #version 460
 
-layout(binding = 0, rg32ui) uniform highp writeonly uimage2D arg_0;
+layout(binding = 0, rg32ui) uniform highp uimage2D arg_0;
 void textureStore_4cce74() {
   imageStore(arg_0, ivec2(1, 0), uvec4(1u));
 }
@@ -15,7 +15,7 @@
 }
 #version 460
 
-layout(binding = 0, rg32ui) uniform highp writeonly uimage2D arg_0;
+layout(binding = 0, rg32ui) uniform highp uimage2D arg_0;
 void textureStore_4cce74() {
   imageStore(arg_0, ivec2(1, 0), uvec4(1u));
 }
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 652fa44..7c1865e 100644
--- a/test/tint/builtins/gen/literal/textureStore/4e2b3a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/4e2b3a.wgsl.expected.glsl
@@ -1,6 +1,6 @@
 #version 460
 
-layout(binding = 0, rg32f) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, rg32f) uniform highp image2DArray arg_0;
 void textureStore_4e2b3a() {
   imageStore(arg_0, ivec3(ivec2(1), 1), vec4(1.0f));
 }
@@ -15,7 +15,7 @@
 }
 #version 460
 
-layout(binding = 0, rg32f) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, rg32f) uniform highp image2DArray arg_0;
 void textureStore_4e2b3a() {
   imageStore(arg_0, ivec3(ivec2(1), 1), vec4(1.0f));
 }
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 5f457017..cbabfcb 100644
--- a/test/tint/builtins/gen/literal/textureStore/51ec82.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/51ec82.wgsl.expected.glsl
@@ -1,6 +1,6 @@
 #version 460
 
-layout(binding = 0, rg32f) uniform highp writeonly image2D arg_0;
+layout(binding = 0, rg32f) uniform highp image2D arg_0;
 void textureStore_51ec82() {
   imageStore(arg_0, ivec2(1, 0), vec4(1.0f));
 }
@@ -15,7 +15,7 @@
 }
 #version 460
 
-layout(binding = 0, rg32f) uniform highp writeonly image2D arg_0;
+layout(binding = 0, rg32f) uniform highp image2D arg_0;
 void textureStore_51ec82() {
   imageStore(arg_0, ivec2(1, 0), vec4(1.0f));
 }
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 a8b38f3..68cdec1 100644
--- a/test/tint/builtins/gen/literal/textureStore/5425ab.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/5425ab.wgsl.expected.glsl
@@ -1,6 +1,6 @@
 #version 460
 
-layout(binding = 0, rg32ui) uniform highp writeonly uimage2D arg_0;
+layout(binding = 0, rg32ui) uniform highp uimage2D arg_0;
 void textureStore_5425ab() {
   imageStore(arg_0, ivec2(1), uvec4(1u));
 }
@@ -15,7 +15,7 @@
 }
 #version 460
 
-layout(binding = 0, rg32ui) uniform highp writeonly uimage2D arg_0;
+layout(binding = 0, rg32ui) uniform highp uimage2D arg_0;
 void textureStore_5425ab() {
   imageStore(arg_0, ivec2(1), uvec4(1u));
 }
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 c2d2130..1ce617e 100644
--- a/test/tint/builtins/gen/literal/textureStore/574a31.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/574a31.wgsl.expected.glsl
@@ -1,6 +1,6 @@
 #version 460
 
-layout(binding = 0, rg32i) uniform highp writeonly iimage2D arg_0;
+layout(binding = 0, rg32i) uniform highp iimage2D arg_0;
 void textureStore_574a31() {
   imageStore(arg_0, ivec2(uvec2(1u, 0u)), ivec4(1));
 }
@@ -15,7 +15,7 @@
 }
 #version 460
 
-layout(binding = 0, rg32i) uniform highp writeonly iimage2D arg_0;
+layout(binding = 0, rg32i) uniform highp iimage2D arg_0;
 void textureStore_574a31() {
   imageStore(arg_0, ivec2(uvec2(1u, 0u)), ivec4(1));
 }
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 e426b0a..2f8fadc 100644
--- a/test/tint/builtins/gen/literal/textureStore/5b17eb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/5b17eb.wgsl.expected.glsl
@@ -1,6 +1,6 @@
 #version 460
 
-layout(binding = 0, rg32f) uniform highp writeonly image2D arg_0;
+layout(binding = 0, rg32f) uniform highp image2D arg_0;
 void textureStore_5b17eb() {
   imageStore(arg_0, ivec2(uvec2(1u)), vec4(1.0f));
 }
@@ -15,7 +15,7 @@
 }
 #version 460
 
-layout(binding = 0, rg32f) uniform highp writeonly image2D arg_0;
+layout(binding = 0, rg32f) uniform highp image2D arg_0;
 void textureStore_5b17eb() {
   imageStore(arg_0, ivec2(uvec2(1u)), vec4(1.0f));
 }
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 680a542..10f2a3b 100644
--- a/test/tint/builtins/gen/literal/textureStore/5ee194.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/5ee194.wgsl.expected.glsl
@@ -1,6 +1,6 @@
 #version 460
 
-layout(binding = 0, rg32f) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, rg32f) uniform highp image2DArray arg_0;
 void textureStore_5ee194() {
   imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), vec4(1.0f));
 }
@@ -15,7 +15,7 @@
 }
 #version 460
 
-layout(binding = 0, rg32f) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, rg32f) uniform highp image2DArray arg_0;
 void textureStore_5ee194() {
   imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), vec4(1.0f));
 }
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 b6f827d..652c781 100644
--- a/test/tint/builtins/gen/literal/textureStore/635584.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/635584.wgsl.expected.glsl
@@ -1,6 +1,6 @@
 #version 460
 
-layout(binding = 0, rg32f) uniform highp writeonly image2D arg_0;
+layout(binding = 0, rg32f) uniform highp image2D arg_0;
 void textureStore_635584() {
   imageStore(arg_0, ivec2(uvec2(1u, 0u)), vec4(1.0f));
 }
@@ -15,7 +15,7 @@
 }
 #version 460
 
-layout(binding = 0, rg32f) uniform highp writeonly image2D arg_0;
+layout(binding = 0, rg32f) uniform highp image2D arg_0;
 void textureStore_635584() {
   imageStore(arg_0, ivec2(uvec2(1u, 0u)), vec4(1.0f));
 }
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 528b347..62b4916 100644
--- a/test/tint/builtins/gen/literal/textureStore/63f34a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/63f34a.wgsl.expected.glsl
@@ -1,6 +1,6 @@
 #version 460
 
-layout(binding = 0, rg32i) uniform highp writeonly iimage2D arg_0;
+layout(binding = 0, rg32i) uniform highp iimage2D arg_0;
 void textureStore_63f34a() {
   imageStore(arg_0, ivec2(uvec2(1u)), ivec4(1));
 }
@@ -15,7 +15,7 @@
 }
 #version 460
 
-layout(binding = 0, rg32i) uniform highp writeonly iimage2D arg_0;
+layout(binding = 0, rg32i) uniform highp iimage2D arg_0;
 void textureStore_63f34a() {
   imageStore(arg_0, ivec2(uvec2(1u)), ivec4(1));
 }
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 ecb198a..dd808e8 100644
--- a/test/tint/builtins/gen/literal/textureStore/65ba8b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/65ba8b.wgsl.expected.glsl
@@ -1,6 +1,6 @@
 #version 460
 
-layout(binding = 0, r8) uniform highp writeonly image2D arg_0;
+layout(binding = 0, r8) uniform highp image2D arg_0;
 void textureStore_65ba8b() {
   imageStore(arg_0, ivec2(1), vec4(1.0f));
 }
@@ -15,7 +15,7 @@
 }
 #version 460
 
-layout(binding = 0, r8) uniform highp writeonly image2D arg_0;
+layout(binding = 0, r8) uniform highp image2D arg_0;
 void textureStore_65ba8b() {
   imageStore(arg_0, ivec2(1), vec4(1.0f));
 }
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 c62d3d1..e392824 100644
--- a/test/tint/builtins/gen/literal/textureStore/6f0c92.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/6f0c92.wgsl.expected.glsl
@@ -1,6 +1,6 @@
 #version 460
 
-layout(binding = 0, r8) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, r8) uniform highp image2DArray arg_0;
 void textureStore_6f0c92() {
   imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), vec4(1.0f));
 }
@@ -15,7 +15,7 @@
 }
 #version 460
 
-layout(binding = 0, r8) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, r8) uniform highp image2DArray arg_0;
 void textureStore_6f0c92() {
   imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), vec4(1.0f));
 }
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 38106e7..f23bc34 100644
--- a/test/tint/builtins/gen/literal/textureStore/75bbd5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/75bbd5.wgsl.expected.glsl
@@ -1,6 +1,6 @@
 #version 460
 
-layout(binding = 0, rg32ui) uniform highp writeonly uimage2DArray arg_0;
+layout(binding = 0, rg32ui) uniform highp uimage2DArray arg_0;
 void textureStore_75bbd5() {
   imageStore(arg_0, ivec3(ivec2(1), int(1u)), uvec4(1u));
 }
@@ -15,7 +15,7 @@
 }
 #version 460
 
-layout(binding = 0, rg32ui) uniform highp writeonly uimage2DArray arg_0;
+layout(binding = 0, rg32ui) uniform highp uimage2DArray arg_0;
 void textureStore_75bbd5() {
   imageStore(arg_0, ivec3(ivec2(1), int(1u)), uvec4(1u));
 }
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 08c3fac..fc76ce1 100644
--- a/test/tint/builtins/gen/literal/textureStore/7792fa.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/7792fa.wgsl.expected.glsl
@@ -1,6 +1,6 @@
 #version 460
 
-layout(binding = 0, rg32i) uniform highp writeonly iimage3D arg_0;
+layout(binding = 0, rg32i) uniform highp iimage3D arg_0;
 void textureStore_7792fa() {
   imageStore(arg_0, ivec3(uvec3(1u)), ivec4(1));
 }
@@ -15,7 +15,7 @@
 }
 #version 460
 
-layout(binding = 0, rg32i) uniform highp writeonly iimage3D arg_0;
+layout(binding = 0, rg32i) uniform highp iimage3D arg_0;
 void textureStore_7792fa() {
   imageStore(arg_0, ivec3(uvec3(1u)), ivec4(1));
 }
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 1518a4d..885fe6e 100644
--- a/test/tint/builtins/gen/literal/textureStore/7b8f86.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/7b8f86.wgsl.expected.glsl
@@ -1,6 +1,6 @@
 #version 460
 
-layout(binding = 0, rg32f) uniform highp writeonly image3D arg_0;
+layout(binding = 0, rg32f) uniform highp image3D arg_0;
 void textureStore_7b8f86() {
   imageStore(arg_0, ivec3(uvec3(1u)), vec4(1.0f));
 }
@@ -15,7 +15,7 @@
 }
 #version 460
 
-layout(binding = 0, rg32f) uniform highp writeonly image3D arg_0;
+layout(binding = 0, rg32f) uniform highp image3D arg_0;
 void textureStore_7b8f86() {
   imageStore(arg_0, ivec3(uvec3(1u)), vec4(1.0f));
 }
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 8d307a7..5624411 100644
--- a/test/tint/builtins/gen/literal/textureStore/803a10.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/803a10.wgsl.expected.glsl
@@ -1,6 +1,6 @@
 #version 460
 
-layout(binding = 0, r8) uniform highp writeonly image3D arg_0;
+layout(binding = 0, r8) uniform highp image3D arg_0;
 void textureStore_803a10() {
   imageStore(arg_0, ivec3(uvec3(1u)), vec4(1.0f));
 }
@@ -15,7 +15,7 @@
 }
 #version 460
 
-layout(binding = 0, r8) uniform highp writeonly image3D arg_0;
+layout(binding = 0, r8) uniform highp image3D arg_0;
 void textureStore_803a10() {
   imageStore(arg_0, ivec3(uvec3(1u)), vec4(1.0f));
 }
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 d1ebebf..d9572c4 100644
--- a/test/tint/builtins/gen/literal/textureStore/80bf1d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/80bf1d.wgsl.expected.glsl
@@ -1,6 +1,6 @@
 #version 460
 
-layout(binding = 0, rg32i) uniform highp writeonly iimage2D arg_0;
+layout(binding = 0, rg32i) uniform highp iimage2D arg_0;
 void textureStore_80bf1d() {
   imageStore(arg_0, ivec2(1), ivec4(1));
 }
@@ -15,7 +15,7 @@
 }
 #version 460
 
-layout(binding = 0, rg32i) uniform highp writeonly iimage2D arg_0;
+layout(binding = 0, rg32i) uniform highp iimage2D arg_0;
 void textureStore_80bf1d() {
   imageStore(arg_0, ivec2(1), ivec4(1));
 }
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 f6307da..3c25b3e 100644
--- a/test/tint/builtins/gen/literal/textureStore/820272.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/820272.wgsl.expected.glsl
@@ -1,6 +1,6 @@
 #version 460
 
-layout(binding = 0, rg32i) uniform highp writeonly iimage2DArray arg_0;
+layout(binding = 0, rg32i) uniform highp iimage2DArray arg_0;
 void textureStore_820272() {
   imageStore(arg_0, ivec3(ivec2(1), int(1u)), ivec4(1));
 }
@@ -15,7 +15,7 @@
 }
 #version 460
 
-layout(binding = 0, rg32i) uniform highp writeonly iimage2DArray arg_0;
+layout(binding = 0, rg32i) uniform highp iimage2DArray arg_0;
 void textureStore_820272() {
   imageStore(arg_0, ivec3(ivec2(1), int(1u)), ivec4(1));
 }
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 0319b75..794a733 100644
--- a/test/tint/builtins/gen/literal/textureStore/84d435.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/84d435.wgsl.expected.glsl
@@ -1,6 +1,6 @@
 #version 460
 
-layout(binding = 0, rg32i) uniform highp writeonly iimage2DArray arg_0;
+layout(binding = 0, rg32i) uniform highp iimage2DArray arg_0;
 void textureStore_84d435() {
   imageStore(arg_0, ivec3(ivec2(1), 1), ivec4(1));
 }
@@ -15,7 +15,7 @@
 }
 #version 460
 
-layout(binding = 0, rg32i) uniform highp writeonly iimage2DArray arg_0;
+layout(binding = 0, rg32i) uniform highp iimage2DArray arg_0;
 void textureStore_84d435() {
   imageStore(arg_0, ivec3(ivec2(1), 1), ivec4(1));
 }
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 6541171..47eb03d 100644
--- a/test/tint/builtins/gen/literal/textureStore/8a8681.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/8a8681.wgsl.expected.glsl
@@ -1,6 +1,6 @@
 #version 460
 
-layout(binding = 0, rg32ui) uniform highp writeonly uimage2D arg_0;
+layout(binding = 0, rg32ui) uniform highp uimage2D arg_0;
 void textureStore_8a8681() {
   imageStore(arg_0, ivec2(uvec2(1u)), uvec4(1u));
 }
@@ -15,7 +15,7 @@
 }
 #version 460
 
-layout(binding = 0, rg32ui) uniform highp writeonly uimage2D arg_0;
+layout(binding = 0, rg32ui) uniform highp uimage2D arg_0;
 void textureStore_8a8681() {
   imageStore(arg_0, ivec2(uvec2(1u)), uvec4(1u));
 }
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 e3a4ecd..2dcde2c 100644
--- a/test/tint/builtins/gen/literal/textureStore/a702b6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/a702b6.wgsl.expected.glsl
@@ -1,6 +1,6 @@
 #version 460
 
-layout(binding = 0, rg32ui) uniform highp writeonly uimage2DArray arg_0;
+layout(binding = 0, rg32ui) uniform highp uimage2DArray arg_0;
 void textureStore_a702b6() {
   imageStore(arg_0, ivec3(ivec2(1), 1), uvec4(1u));
 }
@@ -15,7 +15,7 @@
 }
 #version 460
 
-layout(binding = 0, rg32ui) uniform highp writeonly uimage2DArray arg_0;
+layout(binding = 0, rg32ui) uniform highp uimage2DArray arg_0;
 void textureStore_a702b6() {
   imageStore(arg_0, ivec3(ivec2(1), 1), uvec4(1u));
 }
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 e32b238..cbddf00 100644
--- a/test/tint/builtins/gen/literal/textureStore/a7fc47.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/a7fc47.wgsl.expected.glsl
@@ -1,6 +1,6 @@
 #version 460
 
-layout(binding = 0, r8) uniform highp writeonly image2D arg_0;
+layout(binding = 0, r8) uniform highp image2D arg_0;
 void textureStore_a7fc47() {
   imageStore(arg_0, ivec2(uvec2(1u, 0u)), vec4(1.0f));
 }
@@ -15,7 +15,7 @@
 }
 #version 460
 
-layout(binding = 0, r8) uniform highp writeonly image2D arg_0;
+layout(binding = 0, r8) uniform highp image2D arg_0;
 void textureStore_a7fc47() {
   imageStore(arg_0, ivec2(uvec2(1u, 0u)), vec4(1.0f));
 }
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 42fc498..595cf42 100644
--- a/test/tint/builtins/gen/literal/textureStore/a9298c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/a9298c.wgsl.expected.glsl
@@ -1,6 +1,6 @@
 #version 460
 
-layout(binding = 0, rg32ui) uniform highp writeonly uimage2D arg_0;
+layout(binding = 0, rg32ui) uniform highp uimage2D arg_0;
 void textureStore_a9298c() {
   imageStore(arg_0, ivec2(uvec2(1u, 0u)), uvec4(1u));
 }
@@ -15,7 +15,7 @@
 }
 #version 460
 
-layout(binding = 0, rg32ui) uniform highp writeonly uimage2D arg_0;
+layout(binding = 0, rg32ui) uniform highp uimage2D arg_0;
 void textureStore_a9298c() {
   imageStore(arg_0, ivec2(uvec2(1u, 0u)), uvec4(1u));
 }
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 5cf4c2d..ade48f7 100644
--- a/test/tint/builtins/gen/literal/textureStore/ab788e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/ab788e.wgsl.expected.glsl
@@ -1,6 +1,6 @@
 #version 460
 
-layout(binding = 0, rg32f) uniform highp writeonly image2D arg_0;
+layout(binding = 0, rg32f) uniform highp image2D arg_0;
 void textureStore_ab788e() {
   imageStore(arg_0, ivec2(1), vec4(1.0f));
 }
@@ -15,7 +15,7 @@
 }
 #version 460
 
-layout(binding = 0, rg32f) uniform highp writeonly image2D arg_0;
+layout(binding = 0, rg32f) uniform highp image2D arg_0;
 void textureStore_ab788e() {
   imageStore(arg_0, ivec2(1), vec4(1.0f));
 }
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 a8d030f..e9b931f 100644
--- a/test/tint/builtins/gen/literal/textureStore/ae6a2a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/ae6a2a.wgsl.expected.glsl
@@ -1,6 +1,6 @@
 #version 460
 
-layout(binding = 0, r8) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, r8) uniform highp image2DArray arg_0;
 void textureStore_ae6a2a() {
   imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), vec4(1.0f));
 }
@@ -15,7 +15,7 @@
 }
 #version 460
 
-layout(binding = 0, r8) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, r8) uniform highp image2DArray arg_0;
 void textureStore_ae6a2a() {
   imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), vec4(1.0f));
 }
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 f909c31..9666437 100644
--- a/test/tint/builtins/gen/literal/textureStore/b71c13.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/b71c13.wgsl.expected.glsl
@@ -1,6 +1,6 @@
 #version 460
 
-layout(binding = 0, rg32f) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, rg32f) uniform highp image2DArray arg_0;
 void textureStore_b71c13() {
   imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), vec4(1.0f));
 }
@@ -15,7 +15,7 @@
 }
 #version 460
 
-layout(binding = 0, rg32f) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, rg32f) uniform highp image2DArray arg_0;
 void textureStore_b71c13() {
   imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), vec4(1.0f));
 }
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 8286d82..5dee9f4 100644
--- a/test/tint/builtins/gen/literal/textureStore/b9c81a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/b9c81a.wgsl.expected.glsl
@@ -1,6 +1,6 @@
 #version 460
 
-layout(binding = 0, rg32ui) uniform highp writeonly uimage3D arg_0;
+layout(binding = 0, rg32ui) uniform highp uimage3D arg_0;
 void textureStore_b9c81a() {
   imageStore(arg_0, ivec3(1), uvec4(1u));
 }
@@ -15,7 +15,7 @@
 }
 #version 460
 
-layout(binding = 0, rg32ui) uniform highp writeonly uimage3D arg_0;
+layout(binding = 0, rg32ui) uniform highp uimage3D arg_0;
 void textureStore_b9c81a() {
   imageStore(arg_0, ivec3(1), uvec4(1u));
 }
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 b4c8d06..e7055ff 100644
--- a/test/tint/builtins/gen/literal/textureStore/bd6602.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/bd6602.wgsl.expected.glsl
@@ -1,6 +1,6 @@
 #version 460
 
-layout(binding = 0, rg32ui) uniform highp writeonly uimage2DArray arg_0;
+layout(binding = 0, rg32ui) uniform highp uimage2DArray arg_0;
 void textureStore_bd6602() {
   imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), uvec4(1u));
 }
@@ -15,7 +15,7 @@
 }
 #version 460
 
-layout(binding = 0, rg32ui) uniform highp writeonly uimage2DArray arg_0;
+layout(binding = 0, rg32ui) uniform highp uimage2DArray arg_0;
 void textureStore_bd6602() {
   imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), uvec4(1u));
 }
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 8407c6d..db79cd0 100644
--- a/test/tint/builtins/gen/literal/textureStore/c33478.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/c33478.wgsl.expected.glsl
@@ -1,6 +1,6 @@
 #version 460
 
-layout(binding = 0, rg32f) uniform highp writeonly image3D arg_0;
+layout(binding = 0, rg32f) uniform highp image3D arg_0;
 void textureStore_c33478() {
   imageStore(arg_0, ivec3(1), vec4(1.0f));
 }
@@ -15,7 +15,7 @@
 }
 #version 460
 
-layout(binding = 0, rg32f) uniform highp writeonly image3D arg_0;
+layout(binding = 0, rg32f) uniform highp image3D arg_0;
 void textureStore_c33478() {
   imageStore(arg_0, ivec3(1), vec4(1.0f));
 }
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 1d01236..ba5e088 100644
--- a/test/tint/builtins/gen/literal/textureStore/d19db4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/d19db4.wgsl.expected.glsl
@@ -1,6 +1,6 @@
 #version 460
 
-layout(binding = 0, rg32i) uniform highp writeonly iimage3D arg_0;
+layout(binding = 0, rg32i) uniform highp iimage3D arg_0;
 void textureStore_d19db4() {
   imageStore(arg_0, ivec3(1), ivec4(1));
 }
@@ -15,7 +15,7 @@
 }
 #version 460
 
-layout(binding = 0, rg32i) uniform highp writeonly iimage3D arg_0;
+layout(binding = 0, rg32i) uniform highp iimage3D arg_0;
 void textureStore_d19db4() {
   imageStore(arg_0, ivec3(1), ivec4(1));
 }
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 00f7144..6ded2fe 100644
--- a/test/tint/builtins/gen/literal/textureStore/e077e7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/e077e7.wgsl.expected.glsl
@@ -1,6 +1,6 @@
 #version 460
 
-layout(binding = 0, rg32i) uniform highp writeonly iimage2D arg_0;
+layout(binding = 0, rg32i) uniform highp iimage2D arg_0;
 void textureStore_e077e7() {
   imageStore(arg_0, ivec2(1, 0), ivec4(1));
 }
@@ -15,7 +15,7 @@
 }
 #version 460
 
-layout(binding = 0, rg32i) uniform highp writeonly iimage2D arg_0;
+layout(binding = 0, rg32i) uniform highp iimage2D arg_0;
 void textureStore_e077e7() {
   imageStore(arg_0, ivec2(1, 0), ivec4(1));
 }
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 24a9d51..4bb5faf 100644
--- a/test/tint/builtins/gen/literal/textureStore/ea30d2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/ea30d2.wgsl.expected.glsl
@@ -1,6 +1,6 @@
 #version 460
 
-layout(binding = 0, rg32i) uniform highp writeonly iimage2DArray arg_0;
+layout(binding = 0, rg32i) uniform highp iimage2DArray arg_0;
 void textureStore_ea30d2() {
   imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), ivec4(1));
 }
@@ -15,7 +15,7 @@
 }
 #version 460
 
-layout(binding = 0, rg32i) uniform highp writeonly iimage2DArray arg_0;
+layout(binding = 0, rg32i) uniform highp iimage2DArray arg_0;
 void textureStore_ea30d2() {
   imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), ivec4(1));
 }
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 4b567e2..e70ea99 100644
--- a/test/tint/builtins/gen/literal/textureStore/ed6198.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/ed6198.wgsl.expected.glsl
@@ -1,6 +1,6 @@
 #version 460
 
-layout(binding = 0, r8) uniform highp writeonly image3D arg_0;
+layout(binding = 0, r8) uniform highp image3D arg_0;
 void textureStore_ed6198() {
   imageStore(arg_0, ivec3(1), vec4(1.0f));
 }
@@ -15,7 +15,7 @@
 }
 #version 460
 
-layout(binding = 0, r8) uniform highp writeonly image3D arg_0;
+layout(binding = 0, r8) uniform highp image3D arg_0;
 void textureStore_ed6198() {
   imageStore(arg_0, ivec3(1), vec4(1.0f));
 }
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 196e85a..a88e6f6 100644
--- a/test/tint/builtins/gen/var/textureDimensions/01e21e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/01e21e.wgsl.expected.glsl
@@ -4,7 +4,7 @@
   uint inner;
 } prevent_dce;
 
-layout(binding = 0, rg32ui) uniform highp writeonly uimage2D arg_0;
+layout(binding = 0, rg32ui) uniform highp uimage2D arg_0;
 uint textureDimensions_01e21e() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
@@ -24,7 +24,7 @@
   uint inner;
 } prevent_dce;
 
-layout(binding = 0, rg32ui) uniform highp writeonly uimage2D arg_0;
+layout(binding = 0, rg32ui) uniform highp uimage2D arg_0;
 uint textureDimensions_01e21e() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/01e21e.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureDimensions/01e21e.wgsl.expected.ir.glsl
index 2d340e3..ff7d4c6 100644
--- a/test/tint/builtins/gen/var/textureDimensions/01e21e.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/01e21e.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: INVALID
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:731 internal compiler error: TINT_UNREACHABLE 
-********************************************************************
-*  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 uimage1D arg_0;
+uint textureDimensions_01e21e() {
+  uint res = uint(imageSize(arg_0));
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_01e21e();
+}
+#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 uimage1D arg_0;
+uint textureDimensions_01e21e() {
+  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_01e21e();
+}
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 c3786dd..e543227 100644
--- a/test/tint/builtins/gen/var/textureDimensions/029589.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/029589.wgsl.expected.glsl
@@ -4,7 +4,7 @@
   uvec2 inner;
 } prevent_dce;
 
-layout(binding = 0, rg32f) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, rg32f) uniform highp image2DArray arg_0;
 uvec2 textureDimensions_029589() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
@@ -24,7 +24,7 @@
   uvec2 inner;
 } prevent_dce;
 
-layout(binding = 0, rg32f) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, rg32f) uniform highp image2DArray arg_0;
 uvec2 textureDimensions_029589() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/029589.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureDimensions/029589.wgsl.expected.ir.glsl
index 2d340e3..0fc6aed 100644
--- a/test/tint/builtins/gen/var/textureDimensions/029589.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/029589.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: INVALID
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:731 internal compiler error: TINT_UNREACHABLE 
-********************************************************************
-*  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 image2DArray arg_0;
+uvec2 textureDimensions_029589() {
+  uvec2 res = uvec2(imageSize(arg_0).xy);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_029589();
+}
+#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 image2DArray arg_0;
+uvec2 textureDimensions_029589() {
+  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_029589();
+}
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 4fa929d..2c48612 100644
--- a/test/tint/builtins/gen/var/textureDimensions/18160d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/18160d.wgsl.expected.glsl
@@ -4,7 +4,7 @@
   uvec2 inner;
 } prevent_dce;
 
-layout(binding = 0, r8) uniform highp writeonly image2D arg_0;
+layout(binding = 0, r8) uniform highp image2D arg_0;
 uvec2 textureDimensions_18160d() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
@@ -24,7 +24,7 @@
   uvec2 inner;
 } prevent_dce;
 
-layout(binding = 0, r8) uniform highp writeonly image2D arg_0;
+layout(binding = 0, r8) uniform highp image2D arg_0;
 uvec2 textureDimensions_18160d() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/18160d.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureDimensions/18160d.wgsl.expected.ir.glsl
index 2d340e3..266082b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/18160d.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/18160d.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: INVALID
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:731 internal compiler error: TINT_UNREACHABLE 
-********************************************************************
-*  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 image2D arg_0;
+uvec2 textureDimensions_18160d() {
+  uvec2 res = uvec2(imageSize(arg_0));
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_18160d();
+}
+#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 image2D arg_0;
+uvec2 textureDimensions_18160d() {
+  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_18160d();
+}
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 5159002..a9779fb 100644
--- a/test/tint/builtins/gen/var/textureDimensions/282978.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/282978.wgsl.expected.glsl
@@ -4,7 +4,7 @@
   uvec3 inner;
 } prevent_dce;
 
-layout(binding = 0, r8) uniform highp writeonly image3D arg_0;
+layout(binding = 0, r8) uniform highp image3D arg_0;
 uvec3 textureDimensions_282978() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
@@ -24,7 +24,7 @@
   uvec3 inner;
 } prevent_dce;
 
-layout(binding = 0, r8) uniform highp writeonly image3D arg_0;
+layout(binding = 0, r8) uniform highp image3D arg_0;
 uvec3 textureDimensions_282978() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/282978.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureDimensions/282978.wgsl.expected.ir.glsl
index 2d340e3..f8ff648 100644
--- a/test/tint/builtins/gen/var/textureDimensions/282978.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/282978.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: INVALID
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:731 internal compiler error: TINT_UNREACHABLE 
-********************************************************************
-*  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 image3D arg_0;
+uvec3 textureDimensions_282978() {
+  uvec3 res = uvec3(imageSize(arg_0));
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_282978();
+}
+#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 image3D arg_0;
+uvec3 textureDimensions_282978() {
+  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_282978();
+}
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 a6a41aa..1a157be 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4df14c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/4df14c.wgsl.expected.glsl
@@ -4,7 +4,7 @@
   uvec3 inner;
 } prevent_dce;
 
-layout(binding = 0, rg32ui) uniform highp writeonly uimage3D arg_0;
+layout(binding = 0, rg32ui) uniform highp uimage3D arg_0;
 uvec3 textureDimensions_4df14c() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
@@ -24,7 +24,7 @@
   uvec3 inner;
 } prevent_dce;
 
-layout(binding = 0, rg32ui) uniform highp writeonly uimage3D arg_0;
+layout(binding = 0, rg32ui) uniform highp uimage3D arg_0;
 uvec3 textureDimensions_4df14c() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/4df14c.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureDimensions/4df14c.wgsl.expected.ir.glsl
index 2d340e3..90caa53 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4df14c.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/4df14c.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: INVALID
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:731 internal compiler error: TINT_UNREACHABLE 
-********************************************************************
-*  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 uimage3D arg_0;
+uvec3 textureDimensions_4df14c() {
+  uvec3 res = uvec3(imageSize(arg_0));
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_4df14c();
+}
+#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 uimage3D arg_0;
+uvec3 textureDimensions_4df14c() {
+  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_4df14c();
+}
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 a0e39bc..7dccd93 100644
--- a/test/tint/builtins/gen/var/textureDimensions/578e75.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/578e75.wgsl.expected.glsl
@@ -4,7 +4,7 @@
   uvec2 inner;
 } prevent_dce;
 
-layout(binding = 0, r8) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, r8) uniform highp image2DArray arg_0;
 uvec2 textureDimensions_578e75() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
@@ -24,7 +24,7 @@
   uvec2 inner;
 } prevent_dce;
 
-layout(binding = 0, r8) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, r8) uniform highp image2DArray arg_0;
 uvec2 textureDimensions_578e75() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/578e75.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureDimensions/578e75.wgsl.expected.ir.glsl
index 2d340e3..8aa8588 100644
--- a/test/tint/builtins/gen/var/textureDimensions/578e75.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/578e75.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: INVALID
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:731 internal compiler error: TINT_UNREACHABLE 
-********************************************************************
-*  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 image2DArray arg_0;
+uvec2 textureDimensions_578e75() {
+  uvec2 res = uvec2(imageSize(arg_0).xy);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_578e75();
+}
+#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 image2DArray arg_0;
+uvec2 textureDimensions_578e75() {
+  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_578e75();
+}
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 7928ecb..5e99ad7 100644
--- a/test/tint/builtins/gen/var/textureDimensions/740e7c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/740e7c.wgsl.expected.glsl
@@ -4,7 +4,7 @@
   uint inner;
 } prevent_dce;
 
-layout(binding = 0, rg32i) uniform highp writeonly iimage2D arg_0;
+layout(binding = 0, rg32i) uniform highp iimage2D arg_0;
 uint textureDimensions_740e7c() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
@@ -24,7 +24,7 @@
   uint inner;
 } prevent_dce;
 
-layout(binding = 0, rg32i) uniform highp writeonly iimage2D arg_0;
+layout(binding = 0, rg32i) uniform highp iimage2D arg_0;
 uint textureDimensions_740e7c() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/740e7c.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureDimensions/740e7c.wgsl.expected.ir.glsl
index 2d340e3..bf76697 100644
--- a/test/tint/builtins/gen/var/textureDimensions/740e7c.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/740e7c.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: INVALID
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:731 internal compiler error: TINT_UNREACHABLE 
-********************************************************************
-*  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 iimage1D arg_0;
+uint textureDimensions_740e7c() {
+  uint res = uint(imageSize(arg_0));
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_740e7c();
+}
+#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 iimage1D arg_0;
+uint textureDimensions_740e7c() {
+  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_740e7c();
+}
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 6a1332c..541bc16 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7c7c64.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/7c7c64.wgsl.expected.glsl
@@ -4,7 +4,7 @@
   uvec2 inner;
 } prevent_dce;
 
-layout(binding = 0, rg32i) uniform highp writeonly iimage2DArray arg_0;
+layout(binding = 0, rg32i) uniform highp iimage2DArray arg_0;
 uvec2 textureDimensions_7c7c64() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
@@ -24,7 +24,7 @@
   uvec2 inner;
 } prevent_dce;
 
-layout(binding = 0, rg32i) uniform highp writeonly iimage2DArray arg_0;
+layout(binding = 0, rg32i) uniform highp iimage2DArray arg_0;
 uvec2 textureDimensions_7c7c64() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/7c7c64.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureDimensions/7c7c64.wgsl.expected.ir.glsl
index 2d340e3..5a984ba 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7c7c64.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/7c7c64.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: INVALID
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:731 internal compiler error: TINT_UNREACHABLE 
-********************************************************************
-*  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 iimage2DArray arg_0;
+uvec2 textureDimensions_7c7c64() {
+  uvec2 res = uvec2(imageSize(arg_0).xy);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_7c7c64();
+}
+#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 iimage2DArray arg_0;
+uvec2 textureDimensions_7c7c64() {
+  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_7c7c64();
+}
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 166b1b5..1cb3aa7 100644
--- a/test/tint/builtins/gen/var/textureDimensions/835f90.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/835f90.wgsl.expected.glsl
@@ -4,7 +4,7 @@
   uvec2 inner;
 } prevent_dce;
 
-layout(binding = 0, rg32i) uniform highp writeonly iimage2D arg_0;
+layout(binding = 0, rg32i) uniform highp iimage2D arg_0;
 uvec2 textureDimensions_835f90() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
@@ -24,7 +24,7 @@
   uvec2 inner;
 } prevent_dce;
 
-layout(binding = 0, rg32i) uniform highp writeonly iimage2D arg_0;
+layout(binding = 0, rg32i) uniform highp iimage2D arg_0;
 uvec2 textureDimensions_835f90() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/835f90.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureDimensions/835f90.wgsl.expected.ir.glsl
index 2d340e3..526c1e3 100644
--- a/test/tint/builtins/gen/var/textureDimensions/835f90.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/835f90.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: INVALID
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:731 internal compiler error: TINT_UNREACHABLE 
-********************************************************************
-*  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 iimage2D arg_0;
+uvec2 textureDimensions_835f90() {
+  uvec2 res = uvec2(imageSize(arg_0));
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_835f90();
+}
+#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 iimage2D arg_0;
+uvec2 textureDimensions_835f90() {
+  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_835f90();
+}
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 29ecd2d..77a968b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/91e3b4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/91e3b4.wgsl.expected.glsl
@@ -4,7 +4,7 @@
   uvec3 inner;
 } prevent_dce;
 
-layout(binding = 0, rg32i) uniform highp writeonly iimage3D arg_0;
+layout(binding = 0, rg32i) uniform highp iimage3D arg_0;
 uvec3 textureDimensions_91e3b4() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
@@ -24,7 +24,7 @@
   uvec3 inner;
 } prevent_dce;
 
-layout(binding = 0, rg32i) uniform highp writeonly iimage3D arg_0;
+layout(binding = 0, rg32i) uniform highp iimage3D arg_0;
 uvec3 textureDimensions_91e3b4() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/91e3b4.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureDimensions/91e3b4.wgsl.expected.ir.glsl
index 2d340e3..788358f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/91e3b4.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/91e3b4.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: INVALID
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:731 internal compiler error: TINT_UNREACHABLE 
-********************************************************************
-*  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 iimage3D arg_0;
+uvec3 textureDimensions_91e3b4() {
+  uvec3 res = uvec3(imageSize(arg_0));
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_91e3b4();
+}
+#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 iimage3D arg_0;
+uvec3 textureDimensions_91e3b4() {
+  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_91e3b4();
+}
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 62cdc74..4221319 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ae4595.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/ae4595.wgsl.expected.glsl
@@ -4,7 +4,7 @@
   uvec3 inner;
 } prevent_dce;
 
-layout(binding = 0, rg32f) uniform highp writeonly image3D arg_0;
+layout(binding = 0, rg32f) uniform highp image3D arg_0;
 uvec3 textureDimensions_ae4595() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
@@ -24,7 +24,7 @@
   uvec3 inner;
 } prevent_dce;
 
-layout(binding = 0, rg32f) uniform highp writeonly image3D arg_0;
+layout(binding = 0, rg32f) uniform highp image3D arg_0;
 uvec3 textureDimensions_ae4595() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/ae4595.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureDimensions/ae4595.wgsl.expected.ir.glsl
index 2d340e3..2961293 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ae4595.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/ae4595.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: INVALID
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:731 internal compiler error: TINT_UNREACHABLE 
-********************************************************************
-*  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 image3D arg_0;
+uvec3 textureDimensions_ae4595() {
+  uvec3 res = uvec3(imageSize(arg_0));
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_ae4595();
+}
+#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 image3D arg_0;
+uvec3 textureDimensions_ae4595() {
+  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_ae4595();
+}
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 fe85124..d547c94 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c6b985.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c6b985.wgsl.expected.glsl
@@ -4,7 +4,7 @@
   uint inner;
 } prevent_dce;
 
-layout(binding = 0, r8) uniform highp writeonly image2D arg_0;
+layout(binding = 0, r8) uniform highp image2D arg_0;
 uint textureDimensions_c6b985() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
@@ -24,7 +24,7 @@
   uint inner;
 } prevent_dce;
 
-layout(binding = 0, r8) uniform highp writeonly image2D arg_0;
+layout(binding = 0, r8) uniform highp image2D arg_0;
 uint textureDimensions_c6b985() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/c6b985.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureDimensions/c6b985.wgsl.expected.ir.glsl
index 2d340e3..831ad2e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c6b985.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c6b985.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: INVALID
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:731 internal compiler error: TINT_UNREACHABLE 
-********************************************************************
-*  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 image1D arg_0;
+uint textureDimensions_c6b985() {
+  uint res = uint(imageSize(arg_0));
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_c6b985();
+}
+#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 image1D arg_0;
+uint textureDimensions_c6b985() {
+  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_c6b985();
+}
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 48eefeb..b6c827c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c7ea63.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c7ea63.wgsl.expected.glsl
@@ -4,7 +4,7 @@
   uint inner;
 } prevent_dce;
 
-layout(binding = 0, rg32f) uniform highp writeonly image2D arg_0;
+layout(binding = 0, rg32f) uniform highp image2D arg_0;
 uint textureDimensions_c7ea63() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
@@ -24,7 +24,7 @@
   uint inner;
 } prevent_dce;
 
-layout(binding = 0, rg32f) uniform highp writeonly image2D arg_0;
+layout(binding = 0, rg32f) uniform highp image2D arg_0;
 uint textureDimensions_c7ea63() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/c7ea63.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureDimensions/c7ea63.wgsl.expected.ir.glsl
index 2d340e3..060bb69 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c7ea63.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c7ea63.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: INVALID
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:731 internal compiler error: TINT_UNREACHABLE 
-********************************************************************
-*  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 image1D arg_0;
+uint textureDimensions_c7ea63() {
+  uint res = uint(imageSize(arg_0));
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_c7ea63();
+}
+#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 image1D arg_0;
+uint textureDimensions_c7ea63() {
+  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_c7ea63();
+}
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 31b62cc..605ea0e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c82420.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c82420.wgsl.expected.glsl
@@ -4,7 +4,7 @@
   uvec2 inner;
 } prevent_dce;
 
-layout(binding = 0, rg32ui) uniform highp writeonly uimage2D arg_0;
+layout(binding = 0, rg32ui) uniform highp uimage2D arg_0;
 uvec2 textureDimensions_c82420() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
@@ -24,7 +24,7 @@
   uvec2 inner;
 } prevent_dce;
 
-layout(binding = 0, rg32ui) uniform highp writeonly uimage2D arg_0;
+layout(binding = 0, rg32ui) uniform highp uimage2D arg_0;
 uvec2 textureDimensions_c82420() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/c82420.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureDimensions/c82420.wgsl.expected.ir.glsl
index 2d340e3..347c013 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c82420.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c82420.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: INVALID
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:731 internal compiler error: TINT_UNREACHABLE 
-********************************************************************
-*  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 uimage2D arg_0;
+uvec2 textureDimensions_c82420() {
+  uvec2 res = uvec2(imageSize(arg_0));
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_c82420();
+}
+#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 uimage2D arg_0;
+uvec2 textureDimensions_c82420() {
+  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_c82420();
+}
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 683b868..4a1dd62 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e824b6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e824b6.wgsl.expected.glsl
@@ -4,7 +4,7 @@
   uvec2 inner;
 } prevent_dce;
 
-layout(binding = 0, rg32ui) uniform highp writeonly uimage2DArray arg_0;
+layout(binding = 0, rg32ui) uniform highp uimage2DArray arg_0;
 uvec2 textureDimensions_e824b6() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
@@ -24,7 +24,7 @@
   uvec2 inner;
 } prevent_dce;
 
-layout(binding = 0, rg32ui) uniform highp writeonly uimage2DArray arg_0;
+layout(binding = 0, rg32ui) uniform highp uimage2DArray arg_0;
 uvec2 textureDimensions_e824b6() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/e824b6.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureDimensions/e824b6.wgsl.expected.ir.glsl
index 2d340e3..87be9bac 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e824b6.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e824b6.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: INVALID
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:731 internal compiler error: TINT_UNREACHABLE 
-********************************************************************
-*  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 uimage2DArray arg_0;
+uvec2 textureDimensions_e824b6() {
+  uvec2 res = uvec2(imageSize(arg_0).xy);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_e824b6();
+}
+#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 uimage2DArray arg_0;
+uvec2 textureDimensions_e824b6() {
+  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_e824b6();
+}
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 0b4df6b..e251929 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f94e55.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f94e55.wgsl.expected.glsl
@@ -4,7 +4,7 @@
   uvec2 inner;
 } prevent_dce;
 
-layout(binding = 0, rg32f) uniform highp writeonly image2D arg_0;
+layout(binding = 0, rg32f) uniform highp image2D arg_0;
 uvec2 textureDimensions_f94e55() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
@@ -24,7 +24,7 @@
   uvec2 inner;
 } prevent_dce;
 
-layout(binding = 0, rg32f) uniform highp writeonly image2D arg_0;
+layout(binding = 0, rg32f) uniform highp image2D arg_0;
 uvec2 textureDimensions_f94e55() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/f94e55.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureDimensions/f94e55.wgsl.expected.ir.glsl
index 2d340e3..aec3dad 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f94e55.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f94e55.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: INVALID
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:731 internal compiler error: TINT_UNREACHABLE 
-********************************************************************
-*  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 image2D arg_0;
+uvec2 textureDimensions_f94e55() {
+  uvec2 res = uvec2(imageSize(arg_0));
+  return res;
+}
+void main() {
+  v.tint_symbol = textureDimensions_f94e55();
+}
+#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 image2D arg_0;
+uvec2 textureDimensions_f94e55() {
+  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_f94e55();
+}
diff --git a/test/tint/builtins/gen/var/textureLoad/126466.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/126466.wgsl.expected.glsl
index 6dd4988..13257a8 100644
--- a/test/tint/builtins/gen/var/textureLoad/126466.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/126466.wgsl.expected.glsl
@@ -1,83 +1,39 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image3D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_126466() {
+layout(binding = 0, rg32f) uniform highp image3D arg_0;
+vec4 textureLoad_126466() {
   ivec3 arg_1 = ivec3(1);
   vec4 res = imageLoad(arg_0, arg_1);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureLoad_126466();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'image load-store format' : not supported with this 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 {
-  vec4 inner;
-} prevent_dce;
-
-void textureLoad_126466() {
-  ivec3 arg_1 = ivec3(1);
-  vec4 res = imageLoad(arg_0, arg_1);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureLoad_126466();
+  prevent_dce.inner = textureLoad_126466();
 }
 
 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 {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_126466() {
+layout(binding = 0, rg32f) uniform highp image3D arg_0;
+vec4 textureLoad_126466() {
   ivec3 arg_1 = ivec3(1);
   vec4 res = imageLoad(arg_0, arg_1);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureLoad_126466();
+  prevent_dce.inner = textureLoad_126466();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +41,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/textureLoad/1e6baa.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/1e6baa.wgsl.expected.glsl
index c712063..a16dc90 100644
--- a/test/tint/builtins/gen/var/textureLoad/1e6baa.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/1e6baa.wgsl.expected.glsl
@@ -1,83 +1,39 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_1e6baa() {
+layout(binding = 0, rg32f) uniform highp image2D arg_0;
+vec4 textureLoad_1e6baa() {
   uint arg_1 = 1u;
   vec4 res = imageLoad(arg_0, ivec2(uvec2(arg_1, 0u)));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureLoad_1e6baa();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'image load-store format' : not supported with this 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 {
-  vec4 inner;
-} prevent_dce;
-
-void textureLoad_1e6baa() {
-  uint arg_1 = 1u;
-  vec4 res = imageLoad(arg_0, ivec2(uvec2(arg_1, 0u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureLoad_1e6baa();
+  prevent_dce.inner = textureLoad_1e6baa();
 }
 
 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 {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_1e6baa() {
+layout(binding = 0, rg32f) uniform highp image2D arg_0;
+vec4 textureLoad_1e6baa() {
   uint arg_1 = 1u;
   vec4 res = imageLoad(arg_0, ivec2(uvec2(arg_1, 0u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureLoad_1e6baa();
+  prevent_dce.inner = textureLoad_1e6baa();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +41,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/textureLoad/1fde63.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/1fde63.wgsl.expected.glsl
index 71d72d8..a22ea95 100644
--- a/test/tint/builtins/gen/var/textureLoad/1fde63.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/1fde63.wgsl.expected.glsl
@@ -1,83 +1,39 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp writeonly image3D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_1fde63() {
+layout(binding = 0, r8) uniform highp image3D arg_0;
+vec4 textureLoad_1fde63() {
   uvec3 arg_1 = uvec3(1u);
   vec4 res = imageLoad(arg_0, ivec3(arg_1));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureLoad_1fde63();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'image load-store format' : not supported with this 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 {
-  vec4 inner;
-} prevent_dce;
-
-void textureLoad_1fde63() {
-  uvec3 arg_1 = uvec3(1u);
-  vec4 res = imageLoad(arg_0, ivec3(arg_1));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureLoad_1fde63();
+  prevent_dce.inner = textureLoad_1fde63();
 }
 
 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 {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_1fde63() {
+layout(binding = 0, r8) uniform highp image3D arg_0;
+vec4 textureLoad_1fde63() {
   uvec3 arg_1 = uvec3(1u);
   vec4 res = imageLoad(arg_0, ivec3(arg_1));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureLoad_1fde63();
+  prevent_dce.inner = textureLoad_1fde63();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +41,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/textureLoad/2eaf31.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/2eaf31.wgsl.expected.glsl
index 7cc33a0..aeab366 100644
--- a/test/tint/builtins/gen/var/textureLoad/2eaf31.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/2eaf31.wgsl.expected.glsl
@@ -1,83 +1,39 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec4 inner;
 } prevent_dce;
 
-void textureLoad_2eaf31() {
+layout(binding = 0, rg32i) uniform highp iimage2D arg_0;
+ivec4 textureLoad_2eaf31() {
   uvec2 arg_1 = uvec2(1u);
   ivec4 res = imageLoad(arg_0, ivec2(arg_1));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureLoad_2eaf31();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'image load-store format' : not supported with this 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 {
-  ivec4 inner;
-} prevent_dce;
-
-void textureLoad_2eaf31() {
-  uvec2 arg_1 = uvec2(1u);
-  ivec4 res = imageLoad(arg_0, ivec2(arg_1));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureLoad_2eaf31();
+  prevent_dce.inner = textureLoad_2eaf31();
 }
 
 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 {
   ivec4 inner;
 } prevent_dce;
 
-void textureLoad_2eaf31() {
+layout(binding = 0, rg32i) uniform highp iimage2D arg_0;
+ivec4 textureLoad_2eaf31() {
   uvec2 arg_1 = uvec2(1u);
   ivec4 res = imageLoad(arg_0, ivec2(arg_1));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureLoad_2eaf31();
+  prevent_dce.inner = textureLoad_2eaf31();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +41,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/textureLoad/34d97c.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/34d97c.wgsl.expected.glsl
index a2fd7ec..12d95dd 100644
--- a/test/tint/builtins/gen/var/textureLoad/34d97c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/34d97c.wgsl.expected.glsl
@@ -1,86 +1,41 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec4 inner;
 } prevent_dce;
 
-void textureLoad_34d97c() {
+layout(binding = 0, rg32ui) uniform highp uimage2DArray arg_0;
+uvec4 textureLoad_34d97c() {
   ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
   uvec4 res = imageLoad(arg_0, ivec3(arg_1, arg_2));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureLoad_34d97c();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'image load-store format' : not supported with this 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 {
-  uvec4 inner;
-} prevent_dce;
-
-void textureLoad_34d97c() {
-  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;
 }
 
 void fragment_main() {
-  textureLoad_34d97c();
+  prevent_dce.inner = textureLoad_34d97c();
 }
 
 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 {
   uvec4 inner;
 } prevent_dce;
 
-void textureLoad_34d97c() {
+layout(binding = 0, rg32ui) uniform highp uimage2DArray arg_0;
+uvec4 textureLoad_34d97c() {
   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;
 }
 
 void compute_main() {
-  textureLoad_34d97c();
+  prevent_dce.inner = textureLoad_34d97c();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -88,10 +43,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/textureLoad/35a5e2.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/35a5e2.wgsl.expected.glsl
index 1677eb6..9361448 100644
--- a/test/tint/builtins/gen/var/textureLoad/35a5e2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/35a5e2.wgsl.expected.glsl
@@ -1,83 +1,39 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp writeonly image2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_35a5e2() {
+layout(binding = 0, r8) uniform highp image2D arg_0;
+vec4 textureLoad_35a5e2() {
   int arg_1 = 1;
   vec4 res = imageLoad(arg_0, ivec2(arg_1, 0));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureLoad_35a5e2();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'image load-store format' : not supported with this 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 {
-  vec4 inner;
-} prevent_dce;
-
-void textureLoad_35a5e2() {
-  int arg_1 = 1;
-  vec4 res = imageLoad(arg_0, ivec2(arg_1, 0));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureLoad_35a5e2();
+  prevent_dce.inner = textureLoad_35a5e2();
 }
 
 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 {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_35a5e2() {
+layout(binding = 0, r8) uniform highp image2D arg_0;
+vec4 textureLoad_35a5e2() {
   int arg_1 = 1;
   vec4 res = imageLoad(arg_0, ivec2(arg_1, 0));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureLoad_35a5e2();
+  prevent_dce.inner = textureLoad_35a5e2();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +41,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/textureLoad/3e16a8.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/3e16a8.wgsl.expected.glsl
index c0fdc5b..8ee0814 100644
--- a/test/tint/builtins/gen/var/textureLoad/3e16a8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/3e16a8.wgsl.expected.glsl
@@ -1,83 +1,39 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp writeonly image2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_3e16a8() {
+layout(binding = 0, r8) uniform highp image2D arg_0;
+vec4 textureLoad_3e16a8() {
   ivec2 arg_1 = ivec2(1);
   vec4 res = imageLoad(arg_0, arg_1);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureLoad_3e16a8();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'image load-store format' : not supported with this 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 {
-  vec4 inner;
-} prevent_dce;
-
-void textureLoad_3e16a8() {
-  ivec2 arg_1 = ivec2(1);
-  vec4 res = imageLoad(arg_0, arg_1);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureLoad_3e16a8();
+  prevent_dce.inner = textureLoad_3e16a8();
 }
 
 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 {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_3e16a8() {
+layout(binding = 0, r8) uniform highp image2D arg_0;
+vec4 textureLoad_3e16a8() {
   ivec2 arg_1 = ivec2(1);
   vec4 res = imageLoad(arg_0, arg_1);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureLoad_3e16a8();
+  prevent_dce.inner = textureLoad_3e16a8();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +41,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/textureLoad/424afd.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/424afd.wgsl.expected.glsl
index d68f32f..061b814 100644
--- a/test/tint/builtins/gen/var/textureLoad/424afd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/424afd.wgsl.expected.glsl
@@ -1,86 +1,41 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec4 inner;
 } prevent_dce;
 
-void textureLoad_424afd() {
+layout(binding = 0, rg32i) uniform highp iimage2DArray arg_0;
+ivec4 textureLoad_424afd() {
   ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
   ivec4 res = imageLoad(arg_0, ivec3(arg_1, arg_2));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureLoad_424afd();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'image load-store format' : not supported with this 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 {
-  ivec4 inner;
-} prevent_dce;
-
-void textureLoad_424afd() {
-  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;
 }
 
 void fragment_main() {
-  textureLoad_424afd();
+  prevent_dce.inner = textureLoad_424afd();
 }
 
 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 {
   ivec4 inner;
 } prevent_dce;
 
-void textureLoad_424afd() {
+layout(binding = 0, rg32i) uniform highp iimage2DArray arg_0;
+ivec4 textureLoad_424afd() {
   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;
 }
 
 void compute_main() {
-  textureLoad_424afd();
+  prevent_dce.inner = textureLoad_424afd();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -88,10 +43,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/textureLoad/469912.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/469912.wgsl.expected.glsl
index 9972a5a..fccf514 100644
--- a/test/tint/builtins/gen/var/textureLoad/469912.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/469912.wgsl.expected.glsl
@@ -1,83 +1,39 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec4 inner;
 } prevent_dce;
 
-void textureLoad_469912() {
+layout(binding = 0, rg32i) uniform highp iimage2D arg_0;
+ivec4 textureLoad_469912() {
   int arg_1 = 1;
   ivec4 res = imageLoad(arg_0, ivec2(arg_1, 0));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureLoad_469912();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'image load-store format' : not supported with this 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 {
-  ivec4 inner;
-} prevent_dce;
-
-void textureLoad_469912() {
-  int arg_1 = 1;
-  ivec4 res = imageLoad(arg_0, ivec2(arg_1, 0));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureLoad_469912();
+  prevent_dce.inner = textureLoad_469912();
 }
 
 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 {
   ivec4 inner;
 } prevent_dce;
 
-void textureLoad_469912() {
+layout(binding = 0, rg32i) uniform highp iimage2D arg_0;
+ivec4 textureLoad_469912() {
   int arg_1 = 1;
   ivec4 res = imageLoad(arg_0, ivec2(arg_1, 0));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureLoad_469912();
+  prevent_dce.inner = textureLoad_469912();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +41,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/textureLoad/482627.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/482627.wgsl.expected.glsl
index 79a6429..5594f4f 100644
--- a/test/tint/builtins/gen/var/textureLoad/482627.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/482627.wgsl.expected.glsl
@@ -1,86 +1,41 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_482627() {
+layout(binding = 0, rg32f) uniform highp image2DArray arg_0;
+vec4 textureLoad_482627() {
   uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
   vec4 res = imageLoad(arg_0, ivec3(uvec3(arg_1, arg_2)));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureLoad_482627();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'image load-store format' : not supported with this 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 {
-  vec4 inner;
-} prevent_dce;
-
-void textureLoad_482627() {
-  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;
 }
 
 void fragment_main() {
-  textureLoad_482627();
+  prevent_dce.inner = textureLoad_482627();
 }
 
 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 {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_482627() {
+layout(binding = 0, rg32f) uniform highp image2DArray arg_0;
+vec4 textureLoad_482627() {
   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;
 }
 
 void compute_main() {
-  textureLoad_482627();
+  prevent_dce.inner = textureLoad_482627();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -88,10 +43,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/textureLoad/4c1a1e.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/4c1a1e.wgsl.expected.glsl
index 64d4f6b..9752bce 100644
--- a/test/tint/builtins/gen/var/textureLoad/4c1a1e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/4c1a1e.wgsl.expected.glsl
@@ -1,83 +1,39 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage3D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec4 inner;
 } prevent_dce;
 
-void textureLoad_4c1a1e() {
+layout(binding = 0, rg32ui) uniform highp uimage3D arg_0;
+uvec4 textureLoad_4c1a1e() {
   ivec3 arg_1 = ivec3(1);
   uvec4 res = imageLoad(arg_0, arg_1);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureLoad_4c1a1e();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'image load-store format' : not supported with this 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 {
-  uvec4 inner;
-} prevent_dce;
-
-void textureLoad_4c1a1e() {
-  ivec3 arg_1 = ivec3(1);
-  uvec4 res = imageLoad(arg_0, arg_1);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureLoad_4c1a1e();
+  prevent_dce.inner = textureLoad_4c1a1e();
 }
 
 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 {
   uvec4 inner;
 } prevent_dce;
 
-void textureLoad_4c1a1e() {
+layout(binding = 0, rg32ui) uniform highp uimage3D arg_0;
+uvec4 textureLoad_4c1a1e() {
   ivec3 arg_1 = ivec3(1);
   uvec4 res = imageLoad(arg_0, arg_1);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureLoad_4c1a1e();
+  prevent_dce.inner = textureLoad_4c1a1e();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +41,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/textureLoad/4ccf9a.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/4ccf9a.wgsl.expected.glsl
index 6892fce..67decc6 100644
--- a/test/tint/builtins/gen/var/textureLoad/4ccf9a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/4ccf9a.wgsl.expected.glsl
@@ -1,83 +1,39 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage3D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec4 inner;
 } prevent_dce;
 
-void textureLoad_4ccf9a() {
+layout(binding = 0, rg32ui) uniform highp uimage3D arg_0;
+uvec4 textureLoad_4ccf9a() {
   uvec3 arg_1 = uvec3(1u);
   uvec4 res = imageLoad(arg_0, ivec3(arg_1));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureLoad_4ccf9a();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'image load-store format' : not supported with this 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 {
-  uvec4 inner;
-} prevent_dce;
-
-void textureLoad_4ccf9a() {
-  uvec3 arg_1 = uvec3(1u);
-  uvec4 res = imageLoad(arg_0, ivec3(arg_1));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureLoad_4ccf9a();
+  prevent_dce.inner = textureLoad_4ccf9a();
 }
 
 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 {
   uvec4 inner;
 } prevent_dce;
 
-void textureLoad_4ccf9a() {
+layout(binding = 0, rg32ui) uniform highp uimage3D arg_0;
+uvec4 textureLoad_4ccf9a() {
   uvec3 arg_1 = uvec3(1u);
   uvec4 res = imageLoad(arg_0, ivec3(arg_1));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureLoad_4ccf9a();
+  prevent_dce.inner = textureLoad_4ccf9a();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +41,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/textureLoad/54fb38.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/54fb38.wgsl.expected.glsl
index e3a05e5..b4eb773 100644
--- a/test/tint/builtins/gen/var/textureLoad/54fb38.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/54fb38.wgsl.expected.glsl
@@ -1,86 +1,41 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec4 inner;
 } prevent_dce;
 
-void textureLoad_54fb38() {
+layout(binding = 0, rg32ui) uniform highp uimage2DArray arg_0;
+uvec4 textureLoad_54fb38() {
   uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
   uvec4 res = imageLoad(arg_0, ivec3(uvec3(arg_1, arg_2)));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureLoad_54fb38();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'image load-store format' : not supported with this 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 {
-  uvec4 inner;
-} prevent_dce;
-
-void textureLoad_54fb38() {
-  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;
 }
 
 void fragment_main() {
-  textureLoad_54fb38();
+  prevent_dce.inner = textureLoad_54fb38();
 }
 
 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 {
   uvec4 inner;
 } prevent_dce;
 
-void textureLoad_54fb38() {
+layout(binding = 0, rg32ui) uniform highp uimage2DArray arg_0;
+uvec4 textureLoad_54fb38() {
   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;
 }
 
 void compute_main() {
-  textureLoad_54fb38();
+  prevent_dce.inner = textureLoad_54fb38();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -88,10 +43,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/textureLoad/56a000.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/56a000.wgsl.expected.glsl
index 9fe699e..63ce624 100644
--- a/test/tint/builtins/gen/var/textureLoad/56a000.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/56a000.wgsl.expected.glsl
@@ -1,83 +1,39 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_56a000() {
+layout(binding = 0, rg32f) uniform highp image2D arg_0;
+vec4 textureLoad_56a000() {
   int arg_1 = 1;
   vec4 res = imageLoad(arg_0, ivec2(arg_1, 0));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureLoad_56a000();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'image load-store format' : not supported with this 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 {
-  vec4 inner;
-} prevent_dce;
-
-void textureLoad_56a000() {
-  int arg_1 = 1;
-  vec4 res = imageLoad(arg_0, ivec2(arg_1, 0));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureLoad_56a000();
+  prevent_dce.inner = textureLoad_56a000();
 }
 
 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 {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_56a000() {
+layout(binding = 0, rg32f) uniform highp image2D arg_0;
+vec4 textureLoad_56a000() {
   int arg_1 = 1;
   vec4 res = imageLoad(arg_0, ivec2(arg_1, 0));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureLoad_56a000();
+  prevent_dce.inner = textureLoad_56a000();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +41,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/textureLoad/61e2e8.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/61e2e8.wgsl.expected.glsl
index e29846c..82b1b7c 100644
--- a/test/tint/builtins/gen/var/textureLoad/61e2e8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/61e2e8.wgsl.expected.glsl
@@ -1,83 +1,39 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage3D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec4 inner;
 } prevent_dce;
 
-void textureLoad_61e2e8() {
+layout(binding = 0, rg32i) uniform highp iimage3D arg_0;
+ivec4 textureLoad_61e2e8() {
   uvec3 arg_1 = uvec3(1u);
   ivec4 res = imageLoad(arg_0, ivec3(arg_1));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureLoad_61e2e8();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'image load-store format' : not supported with this 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 {
-  ivec4 inner;
-} prevent_dce;
-
-void textureLoad_61e2e8() {
-  uvec3 arg_1 = uvec3(1u);
-  ivec4 res = imageLoad(arg_0, ivec3(arg_1));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureLoad_61e2e8();
+  prevent_dce.inner = textureLoad_61e2e8();
 }
 
 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 {
   ivec4 inner;
 } prevent_dce;
 
-void textureLoad_61e2e8() {
+layout(binding = 0, rg32i) uniform highp iimage3D arg_0;
+ivec4 textureLoad_61e2e8() {
   uvec3 arg_1 = uvec3(1u);
   ivec4 res = imageLoad(arg_0, ivec3(arg_1));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureLoad_61e2e8();
+  prevent_dce.inner = textureLoad_61e2e8();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +41,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/textureLoad/72c9c3.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/72c9c3.wgsl.expected.glsl
index 06311d9..c45d7d3 100644
--- a/test/tint/builtins/gen/var/textureLoad/72c9c3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/72c9c3.wgsl.expected.glsl
@@ -1,86 +1,41 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp writeonly image2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_72c9c3() {
+layout(binding = 0, r8) uniform highp image2DArray arg_0;
+vec4 textureLoad_72c9c3() {
   ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
   vec4 res = imageLoad(arg_0, ivec3(arg_1, int(arg_2)));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureLoad_72c9c3();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'image load-store format' : not supported with this 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 {
-  vec4 inner;
-} prevent_dce;
-
-void textureLoad_72c9c3() {
-  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;
 }
 
 void fragment_main() {
-  textureLoad_72c9c3();
+  prevent_dce.inner = textureLoad_72c9c3();
 }
 
 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 {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_72c9c3() {
+layout(binding = 0, r8) uniform highp image2DArray arg_0;
+vec4 textureLoad_72c9c3() {
   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;
 }
 
 void compute_main() {
-  textureLoad_72c9c3();
+  prevent_dce.inner = textureLoad_72c9c3();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -88,10 +43,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/textureLoad/7dd3d5.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/7dd3d5.wgsl.expected.glsl
index ac371b6..5f6287a 100644
--- a/test/tint/builtins/gen/var/textureLoad/7dd3d5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/7dd3d5.wgsl.expected.glsl
@@ -1,86 +1,41 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp writeonly image2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_7dd3d5() {
+layout(binding = 0, r8) uniform highp image2DArray arg_0;
+vec4 textureLoad_7dd3d5() {
   ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
   vec4 res = imageLoad(arg_0, ivec3(arg_1, arg_2));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureLoad_7dd3d5();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'image load-store format' : not supported with this 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 {
-  vec4 inner;
-} prevent_dce;
-
-void textureLoad_7dd3d5() {
-  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;
 }
 
 void fragment_main() {
-  textureLoad_7dd3d5();
+  prevent_dce.inner = textureLoad_7dd3d5();
 }
 
 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 {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_7dd3d5() {
+layout(binding = 0, r8) uniform highp image2DArray arg_0;
+vec4 textureLoad_7dd3d5() {
   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;
 }
 
 void compute_main() {
-  textureLoad_7dd3d5();
+  prevent_dce.inner = textureLoad_7dd3d5();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -88,10 +43,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/textureLoad/881349.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/881349.wgsl.expected.glsl
index c7b37d9..258af14 100644
--- a/test/tint/builtins/gen/var/textureLoad/881349.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/881349.wgsl.expected.glsl
@@ -1,86 +1,41 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_881349() {
+layout(binding = 0, rg32f) uniform highp image2DArray arg_0;
+vec4 textureLoad_881349() {
   ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
   vec4 res = imageLoad(arg_0, ivec3(arg_1, arg_2));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureLoad_881349();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'image load-store format' : not supported with this 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 {
-  vec4 inner;
-} prevent_dce;
-
-void textureLoad_881349() {
-  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;
 }
 
 void fragment_main() {
-  textureLoad_881349();
+  prevent_dce.inner = textureLoad_881349();
 }
 
 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 {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_881349() {
+layout(binding = 0, rg32f) uniform highp image2DArray arg_0;
+vec4 textureLoad_881349() {
   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;
 }
 
 void compute_main() {
-  textureLoad_881349();
+  prevent_dce.inner = textureLoad_881349();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -88,10 +43,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/textureLoad/8c6176.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/8c6176.wgsl.expected.glsl
index fb51468..443ee65 100644
--- a/test/tint/builtins/gen/var/textureLoad/8c6176.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/8c6176.wgsl.expected.glsl
@@ -1,83 +1,39 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec4 inner;
 } prevent_dce;
 
-void textureLoad_8c6176() {
+layout(binding = 0, rg32ui) uniform highp uimage2D arg_0;
+uvec4 textureLoad_8c6176() {
   uvec2 arg_1 = uvec2(1u);
   uvec4 res = imageLoad(arg_0, ivec2(arg_1));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureLoad_8c6176();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'image load-store format' : not supported with this 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 {
-  uvec4 inner;
-} prevent_dce;
-
-void textureLoad_8c6176() {
-  uvec2 arg_1 = uvec2(1u);
-  uvec4 res = imageLoad(arg_0, ivec2(arg_1));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureLoad_8c6176();
+  prevent_dce.inner = textureLoad_8c6176();
 }
 
 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 {
   uvec4 inner;
 } prevent_dce;
 
-void textureLoad_8c6176() {
+layout(binding = 0, rg32ui) uniform highp uimage2D arg_0;
+uvec4 textureLoad_8c6176() {
   uvec2 arg_1 = uvec2(1u);
   uvec4 res = imageLoad(arg_0, ivec2(arg_1));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureLoad_8c6176();
+  prevent_dce.inner = textureLoad_8c6176();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +41,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/textureLoad/8d64c3.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/8d64c3.wgsl.expected.glsl
index 410b532..dea686f 100644
--- a/test/tint/builtins/gen/var/textureLoad/8d64c3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/8d64c3.wgsl.expected.glsl
@@ -1,83 +1,39 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec4 inner;
 } prevent_dce;
 
-void textureLoad_8d64c3() {
+layout(binding = 0, rg32ui) uniform highp uimage2D arg_0;
+uvec4 textureLoad_8d64c3() {
   ivec2 arg_1 = ivec2(1);
   uvec4 res = imageLoad(arg_0, arg_1);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureLoad_8d64c3();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'image load-store format' : not supported with this 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 {
-  uvec4 inner;
-} prevent_dce;
-
-void textureLoad_8d64c3() {
-  ivec2 arg_1 = ivec2(1);
-  uvec4 res = imageLoad(arg_0, arg_1);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureLoad_8d64c3();
+  prevent_dce.inner = textureLoad_8d64c3();
 }
 
 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 {
   uvec4 inner;
 } prevent_dce;
 
-void textureLoad_8d64c3() {
+layout(binding = 0, rg32ui) uniform highp uimage2D arg_0;
+uvec4 textureLoad_8d64c3() {
   ivec2 arg_1 = ivec2(1);
   uvec4 res = imageLoad(arg_0, arg_1);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureLoad_8d64c3();
+  prevent_dce.inner = textureLoad_8d64c3();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +41,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/textureLoad/91ede5.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/91ede5.wgsl.expected.glsl
index 892afe2..26e7999 100644
--- a/test/tint/builtins/gen/var/textureLoad/91ede5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/91ede5.wgsl.expected.glsl
@@ -1,83 +1,39 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image3D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_91ede5() {
+layout(binding = 0, rg32f) uniform highp image3D arg_0;
+vec4 textureLoad_91ede5() {
   uvec3 arg_1 = uvec3(1u);
   vec4 res = imageLoad(arg_0, ivec3(arg_1));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureLoad_91ede5();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'image load-store format' : not supported with this 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 {
-  vec4 inner;
-} prevent_dce;
-
-void textureLoad_91ede5() {
-  uvec3 arg_1 = uvec3(1u);
-  vec4 res = imageLoad(arg_0, ivec3(arg_1));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureLoad_91ede5();
+  prevent_dce.inner = textureLoad_91ede5();
 }
 
 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 {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_91ede5() {
+layout(binding = 0, rg32f) uniform highp image3D arg_0;
+vec4 textureLoad_91ede5() {
   uvec3 arg_1 = uvec3(1u);
   vec4 res = imageLoad(arg_0, ivec3(arg_1));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureLoad_91ede5();
+  prevent_dce.inner = textureLoad_91ede5();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +41,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/textureLoad/92dd61.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/92dd61.wgsl.expected.glsl
index 9a5b2b7..46e6370 100644
--- a/test/tint/builtins/gen/var/textureLoad/92dd61.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/92dd61.wgsl.expected.glsl
@@ -1,83 +1,39 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp writeonly image2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_92dd61() {
+layout(binding = 0, r8) uniform highp image2D arg_0;
+vec4 textureLoad_92dd61() {
   uint arg_1 = 1u;
   vec4 res = imageLoad(arg_0, ivec2(uvec2(arg_1, 0u)));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureLoad_92dd61();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'image load-store format' : not supported with this 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 {
-  vec4 inner;
-} prevent_dce;
-
-void textureLoad_92dd61() {
-  uint arg_1 = 1u;
-  vec4 res = imageLoad(arg_0, ivec2(uvec2(arg_1, 0u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureLoad_92dd61();
+  prevent_dce.inner = textureLoad_92dd61();
 }
 
 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 {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_92dd61() {
+layout(binding = 0, r8) uniform highp image2D arg_0;
+vec4 textureLoad_92dd61() {
   uint arg_1 = 1u;
   vec4 res = imageLoad(arg_0, ivec2(uvec2(arg_1, 0u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureLoad_92dd61();
+  prevent_dce.inner = textureLoad_92dd61();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +41,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/textureLoad/99d8fa.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/99d8fa.wgsl.expected.glsl
index f6b6954..59ea68b 100644
--- a/test/tint/builtins/gen/var/textureLoad/99d8fa.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/99d8fa.wgsl.expected.glsl
@@ -1,83 +1,39 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp writeonly image3D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_99d8fa() {
+layout(binding = 0, r8) uniform highp image3D arg_0;
+vec4 textureLoad_99d8fa() {
   ivec3 arg_1 = ivec3(1);
   vec4 res = imageLoad(arg_0, arg_1);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureLoad_99d8fa();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'image load-store format' : not supported with this 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 {
-  vec4 inner;
-} prevent_dce;
-
-void textureLoad_99d8fa() {
-  ivec3 arg_1 = ivec3(1);
-  vec4 res = imageLoad(arg_0, arg_1);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureLoad_99d8fa();
+  prevent_dce.inner = textureLoad_99d8fa();
 }
 
 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 {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_99d8fa() {
+layout(binding = 0, r8) uniform highp image3D arg_0;
+vec4 textureLoad_99d8fa() {
   ivec3 arg_1 = ivec3(1);
   vec4 res = imageLoad(arg_0, arg_1);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureLoad_99d8fa();
+  prevent_dce.inner = textureLoad_99d8fa();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +41,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/textureLoad/a5c4e2.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/a5c4e2.wgsl.expected.glsl
index 7bf7ae8..4453c0fc 100644
--- a/test/tint/builtins/gen/var/textureLoad/a5c4e2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/a5c4e2.wgsl.expected.glsl
@@ -1,83 +1,39 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec4 inner;
 } prevent_dce;
 
-void textureLoad_a5c4e2() {
+layout(binding = 0, rg32ui) uniform highp uimage2D arg_0;
+uvec4 textureLoad_a5c4e2() {
   int arg_1 = 1;
   uvec4 res = imageLoad(arg_0, ivec2(arg_1, 0));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureLoad_a5c4e2();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'image load-store format' : not supported with this 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 {
-  uvec4 inner;
-} prevent_dce;
-
-void textureLoad_a5c4e2() {
-  int arg_1 = 1;
-  uvec4 res = imageLoad(arg_0, ivec2(arg_1, 0));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureLoad_a5c4e2();
+  prevent_dce.inner = textureLoad_a5c4e2();
 }
 
 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 {
   uvec4 inner;
 } prevent_dce;
 
-void textureLoad_a5c4e2() {
+layout(binding = 0, rg32ui) uniform highp uimage2D arg_0;
+uvec4 textureLoad_a5c4e2() {
   int arg_1 = 1;
   uvec4 res = imageLoad(arg_0, ivec2(arg_1, 0));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureLoad_a5c4e2();
+  prevent_dce.inner = textureLoad_a5c4e2();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +41,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/textureLoad/aa6130.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/aa6130.wgsl.expected.glsl
index 1c354ed..edf73e0 100644
--- a/test/tint/builtins/gen/var/textureLoad/aa6130.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/aa6130.wgsl.expected.glsl
@@ -1,83 +1,39 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec4 inner;
 } prevent_dce;
 
-void textureLoad_aa6130() {
+layout(binding = 0, rg32i) uniform highp iimage2D arg_0;
+ivec4 textureLoad_aa6130() {
   ivec2 arg_1 = ivec2(1);
   ivec4 res = imageLoad(arg_0, arg_1);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureLoad_aa6130();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'image load-store format' : not supported with this 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 {
-  ivec4 inner;
-} prevent_dce;
-
-void textureLoad_aa6130() {
-  ivec2 arg_1 = ivec2(1);
-  ivec4 res = imageLoad(arg_0, arg_1);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureLoad_aa6130();
+  prevent_dce.inner = textureLoad_aa6130();
 }
 
 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 {
   ivec4 inner;
 } prevent_dce;
 
-void textureLoad_aa6130() {
+layout(binding = 0, rg32i) uniform highp iimage2D arg_0;
+ivec4 textureLoad_aa6130() {
   ivec2 arg_1 = ivec2(1);
   ivec4 res = imageLoad(arg_0, arg_1);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureLoad_aa6130();
+  prevent_dce.inner = textureLoad_aa6130();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +41,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/textureLoad/af0507.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/af0507.wgsl.expected.glsl
index f57fbd2..0c58ec2 100644
--- a/test/tint/builtins/gen/var/textureLoad/af0507.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/af0507.wgsl.expected.glsl
@@ -1,86 +1,41 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_af0507() {
+layout(binding = 0, rg32f) uniform highp image2DArray arg_0;
+vec4 textureLoad_af0507() {
   ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
   vec4 res = imageLoad(arg_0, ivec3(arg_1, int(arg_2)));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureLoad_af0507();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'image load-store format' : not supported with this 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 {
-  vec4 inner;
-} prevent_dce;
-
-void textureLoad_af0507() {
-  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;
 }
 
 void fragment_main() {
-  textureLoad_af0507();
+  prevent_dce.inner = textureLoad_af0507();
 }
 
 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 {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_af0507() {
+layout(binding = 0, rg32f) uniform highp image2DArray arg_0;
+vec4 textureLoad_af0507() {
   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;
 }
 
 void compute_main() {
-  textureLoad_af0507();
+  prevent_dce.inner = textureLoad_af0507();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -88,10 +43,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/textureLoad/b1ca35.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/b1ca35.wgsl.expected.glsl
index 9d2d1160..6b24b2c 100644
--- a/test/tint/builtins/gen/var/textureLoad/b1ca35.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/b1ca35.wgsl.expected.glsl
@@ -1,86 +1,41 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec4 inner;
 } prevent_dce;
 
-void textureLoad_b1ca35() {
+layout(binding = 0, rg32i) uniform highp iimage2DArray arg_0;
+ivec4 textureLoad_b1ca35() {
   uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
   ivec4 res = imageLoad(arg_0, ivec3(uvec3(arg_1, arg_2)));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureLoad_b1ca35();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'image load-store format' : not supported with this 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 {
-  ivec4 inner;
-} prevent_dce;
-
-void textureLoad_b1ca35() {
-  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;
 }
 
 void fragment_main() {
-  textureLoad_b1ca35();
+  prevent_dce.inner = textureLoad_b1ca35();
 }
 
 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 {
   ivec4 inner;
 } prevent_dce;
 
-void textureLoad_b1ca35() {
+layout(binding = 0, rg32i) uniform highp iimage2DArray arg_0;
+ivec4 textureLoad_b1ca35() {
   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;
 }
 
 void compute_main() {
-  textureLoad_b1ca35();
+  prevent_dce.inner = textureLoad_b1ca35();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -88,10 +43,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/textureLoad/b4d6c4.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/b4d6c4.wgsl.expected.glsl
index 483b44c..bcb7948 100644
--- a/test/tint/builtins/gen/var/textureLoad/b4d6c4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/b4d6c4.wgsl.expected.glsl
@@ -1,83 +1,39 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_b4d6c4() {
+layout(binding = 0, rg32f) uniform highp image2D arg_0;
+vec4 textureLoad_b4d6c4() {
   uvec2 arg_1 = uvec2(1u);
   vec4 res = imageLoad(arg_0, ivec2(arg_1));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureLoad_b4d6c4();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'image load-store format' : not supported with this 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 {
-  vec4 inner;
-} prevent_dce;
-
-void textureLoad_b4d6c4() {
-  uvec2 arg_1 = uvec2(1u);
-  vec4 res = imageLoad(arg_0, ivec2(arg_1));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureLoad_b4d6c4();
+  prevent_dce.inner = textureLoad_b4d6c4();
 }
 
 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 {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_b4d6c4() {
+layout(binding = 0, rg32f) uniform highp image2D arg_0;
+vec4 textureLoad_b4d6c4() {
   uvec2 arg_1 = uvec2(1u);
   vec4 res = imageLoad(arg_0, ivec2(arg_1));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureLoad_b4d6c4();
+  prevent_dce.inner = textureLoad_b4d6c4();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +41,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/textureLoad/bba04a.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/bba04a.wgsl.expected.glsl
index 007afca..d565c64 100644
--- a/test/tint/builtins/gen/var/textureLoad/bba04a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/bba04a.wgsl.expected.glsl
@@ -1,83 +1,39 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec4 inner;
 } prevent_dce;
 
-void textureLoad_bba04a() {
+layout(binding = 0, rg32ui) uniform highp uimage2D arg_0;
+uvec4 textureLoad_bba04a() {
   uint arg_1 = 1u;
   uvec4 res = imageLoad(arg_0, ivec2(uvec2(arg_1, 0u)));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureLoad_bba04a();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'image load-store format' : not supported with this 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 {
-  uvec4 inner;
-} prevent_dce;
-
-void textureLoad_bba04a() {
-  uint arg_1 = 1u;
-  uvec4 res = imageLoad(arg_0, ivec2(uvec2(arg_1, 0u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureLoad_bba04a();
+  prevent_dce.inner = textureLoad_bba04a();
 }
 
 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 {
   uvec4 inner;
 } prevent_dce;
 
-void textureLoad_bba04a() {
+layout(binding = 0, rg32ui) uniform highp uimage2D arg_0;
+uvec4 textureLoad_bba04a() {
   uint arg_1 = 1u;
   uvec4 res = imageLoad(arg_0, ivec2(uvec2(arg_1, 0u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureLoad_bba04a();
+  prevent_dce.inner = textureLoad_bba04a();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +41,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/textureLoad/bc882d.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/bc882d.wgsl.expected.glsl
index 71380c8..e2dffb9 100644
--- a/test/tint/builtins/gen/var/textureLoad/bc882d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/bc882d.wgsl.expected.glsl
@@ -1,86 +1,41 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp writeonly image2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_bc882d() {
+layout(binding = 0, r8) uniform highp image2DArray arg_0;
+vec4 textureLoad_bc882d() {
   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;
-}
-
-vec4 vertex_main() {
-  textureLoad_bc882d();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'image load-store format' : not supported with this 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 {
-  vec4 inner;
-} prevent_dce;
-
-void textureLoad_bc882d() {
-  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;
 }
 
 void fragment_main() {
-  textureLoad_bc882d();
+  prevent_dce.inner = textureLoad_bc882d();
 }
 
 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 {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_bc882d() {
+layout(binding = 0, r8) uniform highp image2DArray arg_0;
+vec4 textureLoad_bc882d() {
   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;
 }
 
 void compute_main() {
-  textureLoad_bc882d();
+  prevent_dce.inner = textureLoad_bc882d();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -88,10 +43,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/textureLoad/bdc67a.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/bdc67a.wgsl.expected.glsl
index 7c2330e..a92080a 100644
--- a/test/tint/builtins/gen/var/textureLoad/bdc67a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/bdc67a.wgsl.expected.glsl
@@ -1,86 +1,41 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_bdc67a() {
+layout(binding = 0, rg32f) uniform highp image2DArray arg_0;
+vec4 textureLoad_bdc67a() {
   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;
-}
-
-vec4 vertex_main() {
-  textureLoad_bdc67a();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'image load-store format' : not supported with this 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 {
-  vec4 inner;
-} prevent_dce;
-
-void textureLoad_bdc67a() {
-  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;
 }
 
 void fragment_main() {
-  textureLoad_bdc67a();
+  prevent_dce.inner = textureLoad_bdc67a();
 }
 
 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 {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_bdc67a() {
+layout(binding = 0, rg32f) uniform highp image2DArray arg_0;
+vec4 textureLoad_bdc67a() {
   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;
 }
 
 void compute_main() {
-  textureLoad_bdc67a();
+  prevent_dce.inner = textureLoad_bdc67a();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -88,10 +43,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/textureLoad/cdccd2.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/cdccd2.wgsl.expected.glsl
index d4a10e9..87bcd3a 100644
--- a/test/tint/builtins/gen/var/textureLoad/cdccd2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/cdccd2.wgsl.expected.glsl
@@ -1,86 +1,41 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec4 inner;
 } prevent_dce;
 
-void textureLoad_cdccd2() {
+layout(binding = 0, rg32ui) uniform highp uimage2DArray arg_0;
+uvec4 textureLoad_cdccd2() {
   ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
   uvec4 res = imageLoad(arg_0, ivec3(arg_1, int(arg_2)));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureLoad_cdccd2();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'image load-store format' : not supported with this 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 {
-  uvec4 inner;
-} prevent_dce;
-
-void textureLoad_cdccd2() {
-  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;
 }
 
 void fragment_main() {
-  textureLoad_cdccd2();
+  prevent_dce.inner = textureLoad_cdccd2();
 }
 
 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 {
   uvec4 inner;
 } prevent_dce;
 
-void textureLoad_cdccd2() {
+layout(binding = 0, rg32ui) uniform highp uimage2DArray arg_0;
+uvec4 textureLoad_cdccd2() {
   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;
 }
 
 void compute_main() {
-  textureLoad_cdccd2();
+  prevent_dce.inner = textureLoad_cdccd2();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -88,10 +43,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/textureLoad/d0e351.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/d0e351.wgsl.expected.glsl
index 18913df..7dbb2ab 100644
--- a/test/tint/builtins/gen/var/textureLoad/d0e351.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/d0e351.wgsl.expected.glsl
@@ -1,86 +1,41 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32ui) uniform highp writeonly uimage2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec4 inner;
 } prevent_dce;
 
-void textureLoad_d0e351() {
+layout(binding = 0, rg32ui) uniform highp uimage2DArray arg_0;
+uvec4 textureLoad_d0e351() {
   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;
-}
-
-vec4 vertex_main() {
-  textureLoad_d0e351();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'image load-store format' : not supported with this 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 {
-  uvec4 inner;
-} prevent_dce;
-
-void textureLoad_d0e351() {
-  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;
 }
 
 void fragment_main() {
-  textureLoad_d0e351();
+  prevent_dce.inner = textureLoad_d0e351();
 }
 
 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 {
   uvec4 inner;
 } prevent_dce;
 
-void textureLoad_d0e351() {
+layout(binding = 0, rg32ui) uniform highp uimage2DArray arg_0;
+uvec4 textureLoad_d0e351() {
   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;
 }
 
 void compute_main() {
-  textureLoad_d0e351();
+  prevent_dce.inner = textureLoad_d0e351();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -88,10 +43,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/textureLoad/d41c72.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/d41c72.wgsl.expected.glsl
index a4c3673..20cbba8 100644
--- a/test/tint/builtins/gen/var/textureLoad/d41c72.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/d41c72.wgsl.expected.glsl
@@ -1,83 +1,39 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage3D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec4 inner;
 } prevent_dce;
 
-void textureLoad_d41c72() {
+layout(binding = 0, rg32i) uniform highp iimage3D arg_0;
+ivec4 textureLoad_d41c72() {
   ivec3 arg_1 = ivec3(1);
   ivec4 res = imageLoad(arg_0, arg_1);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureLoad_d41c72();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'image load-store format' : not supported with this 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 {
-  ivec4 inner;
-} prevent_dce;
-
-void textureLoad_d41c72() {
-  ivec3 arg_1 = ivec3(1);
-  ivec4 res = imageLoad(arg_0, arg_1);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureLoad_d41c72();
+  prevent_dce.inner = textureLoad_d41c72();
 }
 
 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 {
   ivec4 inner;
 } prevent_dce;
 
-void textureLoad_d41c72() {
+layout(binding = 0, rg32i) uniform highp iimage3D arg_0;
+ivec4 textureLoad_d41c72() {
   ivec3 arg_1 = ivec3(1);
   ivec4 res = imageLoad(arg_0, arg_1);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureLoad_d41c72();
+  prevent_dce.inner = textureLoad_d41c72();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +41,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/textureLoad/defd9a.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/defd9a.wgsl.expected.glsl
index e0e82b9..ca6f496 100644
--- a/test/tint/builtins/gen/var/textureLoad/defd9a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/defd9a.wgsl.expected.glsl
@@ -1,83 +1,39 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32f) uniform highp writeonly image2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_defd9a() {
+layout(binding = 0, rg32f) uniform highp image2D arg_0;
+vec4 textureLoad_defd9a() {
   ivec2 arg_1 = ivec2(1);
   vec4 res = imageLoad(arg_0, arg_1);
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureLoad_defd9a();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'image load-store format' : not supported with this 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 {
-  vec4 inner;
-} prevent_dce;
-
-void textureLoad_defd9a() {
-  ivec2 arg_1 = ivec2(1);
-  vec4 res = imageLoad(arg_0, arg_1);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureLoad_defd9a();
+  prevent_dce.inner = textureLoad_defd9a();
 }
 
 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 {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_defd9a() {
+layout(binding = 0, rg32f) uniform highp image2D arg_0;
+vec4 textureLoad_defd9a() {
   ivec2 arg_1 = ivec2(1);
   vec4 res = imageLoad(arg_0, arg_1);
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureLoad_defd9a();
+  prevent_dce.inner = textureLoad_defd9a();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +41,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/textureLoad/e2b3a1.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/e2b3a1.wgsl.expected.glsl
index 021ee94..0ae5a8c 100644
--- a/test/tint/builtins/gen/var/textureLoad/e2b3a1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/e2b3a1.wgsl.expected.glsl
@@ -1,86 +1,41 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec4 inner;
 } prevent_dce;
 
-void textureLoad_e2b3a1() {
+layout(binding = 0, rg32i) uniform highp iimage2DArray arg_0;
+ivec4 textureLoad_e2b3a1() {
   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;
-}
-
-vec4 vertex_main() {
-  textureLoad_e2b3a1();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'image load-store format' : not supported with this 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 {
-  ivec4 inner;
-} prevent_dce;
-
-void textureLoad_e2b3a1() {
-  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;
 }
 
 void fragment_main() {
-  textureLoad_e2b3a1();
+  prevent_dce.inner = textureLoad_e2b3a1();
 }
 
 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 {
   ivec4 inner;
 } prevent_dce;
 
-void textureLoad_e2b3a1() {
+layout(binding = 0, rg32i) uniform highp iimage2DArray arg_0;
+ivec4 textureLoad_e2b3a1() {
   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;
 }
 
 void compute_main() {
-  textureLoad_e2b3a1();
+  prevent_dce.inner = textureLoad_e2b3a1();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -88,10 +43,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/textureLoad/e4051a.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/e4051a.wgsl.expected.glsl
index bec9a78..297a454 100644
--- a/test/tint/builtins/gen/var/textureLoad/e4051a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/e4051a.wgsl.expected.glsl
@@ -1,83 +1,39 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp writeonly image2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_e4051a() {
+layout(binding = 0, r8) uniform highp image2D arg_0;
+vec4 textureLoad_e4051a() {
   uvec2 arg_1 = uvec2(1u);
   vec4 res = imageLoad(arg_0, ivec2(arg_1));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureLoad_e4051a();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'image load-store format' : not supported with this 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 {
-  vec4 inner;
-} prevent_dce;
-
-void textureLoad_e4051a() {
-  uvec2 arg_1 = uvec2(1u);
-  vec4 res = imageLoad(arg_0, ivec2(arg_1));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureLoad_e4051a();
+  prevent_dce.inner = textureLoad_e4051a();
 }
 
 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 {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_e4051a() {
+layout(binding = 0, r8) uniform highp image2D arg_0;
+vec4 textureLoad_e4051a() {
   uvec2 arg_1 = uvec2(1u);
   vec4 res = imageLoad(arg_0, ivec2(arg_1));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureLoad_e4051a();
+  prevent_dce.inner = textureLoad_e4051a();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +41,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/textureLoad/ed55a8.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/ed55a8.wgsl.expected.glsl
index 33a8490..35d81ce 100644
--- a/test/tint/builtins/gen/var/textureLoad/ed55a8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/ed55a8.wgsl.expected.glsl
@@ -1,86 +1,41 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec4 inner;
 } prevent_dce;
 
-void textureLoad_ed55a8() {
+layout(binding = 0, rg32i) uniform highp iimage2DArray arg_0;
+ivec4 textureLoad_ed55a8() {
   ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
   ivec4 res = imageLoad(arg_0, ivec3(arg_1, int(arg_2)));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureLoad_ed55a8();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'image load-store format' : not supported with this 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 {
-  ivec4 inner;
-} prevent_dce;
-
-void textureLoad_ed55a8() {
-  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;
 }
 
 void fragment_main() {
-  textureLoad_ed55a8();
+  prevent_dce.inner = textureLoad_ed55a8();
 }
 
 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 {
   ivec4 inner;
 } prevent_dce;
 
-void textureLoad_ed55a8() {
+layout(binding = 0, rg32i) uniform highp iimage2DArray arg_0;
+ivec4 textureLoad_ed55a8() {
   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;
 }
 
 void compute_main() {
-  textureLoad_ed55a8();
+  prevent_dce.inner = textureLoad_ed55a8();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -88,10 +43,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/textureLoad/ef2ec3.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/ef2ec3.wgsl.expected.glsl
index 82b3522..795108c 100644
--- a/test/tint/builtins/gen/var/textureLoad/ef2ec3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/ef2ec3.wgsl.expected.glsl
@@ -1,83 +1,39 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(rg32i) uniform highp writeonly iimage2D arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec4 inner;
 } prevent_dce;
 
-void textureLoad_ef2ec3() {
+layout(binding = 0, rg32i) uniform highp iimage2D arg_0;
+ivec4 textureLoad_ef2ec3() {
   uint arg_1 = 1u;
   ivec4 res = imageLoad(arg_0, ivec2(uvec2(arg_1, 0u)));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureLoad_ef2ec3();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'image load-store format' : not supported with this 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 {
-  ivec4 inner;
-} prevent_dce;
-
-void textureLoad_ef2ec3() {
-  uint arg_1 = 1u;
-  ivec4 res = imageLoad(arg_0, ivec2(uvec2(arg_1, 0u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void fragment_main() {
-  textureLoad_ef2ec3();
+  prevent_dce.inner = textureLoad_ef2ec3();
 }
 
 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 {
   ivec4 inner;
 } prevent_dce;
 
-void textureLoad_ef2ec3() {
+layout(binding = 0, rg32i) uniform highp iimage2D arg_0;
+ivec4 textureLoad_ef2ec3() {
   uint arg_1 = 1u;
   ivec4 res = imageLoad(arg_0, ivec2(uvec2(arg_1, 0u)));
-  prevent_dce.inner = res;
+  return res;
 }
 
 void compute_main() {
-  textureLoad_ef2ec3();
+  prevent_dce.inner = textureLoad_ef2ec3();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -85,10 +41,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/textureLoad/f2bdd4.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/f2bdd4.wgsl.expected.glsl
index 7d61254..b58dd3a 100644
--- a/test/tint/builtins/gen/var/textureLoad/f2bdd4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/f2bdd4.wgsl.expected.glsl
@@ -1,86 +1,41 @@
-SKIP: FAILED
+#version 460
 
-#version 310 es
-
-layout(r8) uniform highp writeonly image2DArray arg_0;
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_f2bdd4() {
+layout(binding = 0, r8) uniform highp image2DArray arg_0;
+vec4 textureLoad_f2bdd4() {
   uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
   vec4 res = imageLoad(arg_0, ivec3(uvec3(arg_1, arg_2)));
-  prevent_dce.inner = res;
-}
-
-vec4 vertex_main() {
-  textureLoad_f2bdd4();
-  return vec4(0.0f);
-}
-
-void main() {
-  gl_PointSize = 1.0;
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-error: Error parsing GLSL shader:
-ERROR: 0:3: 'image load-store format' : not supported with this 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 {
-  vec4 inner;
-} prevent_dce;
-
-void textureLoad_f2bdd4() {
-  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;
 }
 
 void fragment_main() {
-  textureLoad_f2bdd4();
+  prevent_dce.inner = textureLoad_f2bdd4();
 }
 
 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 {
   vec4 inner;
 } prevent_dce;
 
-void textureLoad_f2bdd4() {
+layout(binding = 0, r8) uniform highp image2DArray arg_0;
+vec4 textureLoad_f2bdd4() {
   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;
 }
 
 void compute_main() {
-  textureLoad_f2bdd4();
+  prevent_dce.inner = textureLoad_f2bdd4();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -88,10 +43,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/17ccad.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/17ccad.wgsl.expected.glsl
index f5b9bb6..7c0c8f2 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/17ccad.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/17ccad.wgsl.expected.glsl
@@ -4,7 +4,7 @@
   uint inner;
 } prevent_dce;
 
-layout(binding = 0, rg32f) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, rg32f) uniform highp image2DArray arg_0;
 uint textureNumLayers_17ccad() {
   uint res = uint(imageSize(arg_0).z);
   return res;
@@ -24,7 +24,7 @@
   uint inner;
 } prevent_dce;
 
-layout(binding = 0, rg32f) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, rg32f) uniform highp image2DArray arg_0;
 uint textureNumLayers_17ccad() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/17ccad.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureNumLayers/17ccad.wgsl.expected.ir.glsl
index 2d340e3..2b1a7be 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/17ccad.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/17ccad.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: INVALID
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:731 internal compiler error: TINT_UNREACHABLE 
-********************************************************************
-*  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 image2DArray arg_0;
+uint textureNumLayers_17ccad() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_17ccad();
+}
+#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 image2DArray arg_0;
+uint textureNumLayers_17ccad() {
+  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_17ccad();
+}
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 e19a925..11a195c 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/24d572.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/24d572.wgsl.expected.glsl
@@ -4,7 +4,7 @@
   uint inner;
 } prevent_dce;
 
-layout(binding = 0, rg32ui) uniform highp writeonly uimage2DArray arg_0;
+layout(binding = 0, rg32ui) uniform highp uimage2DArray arg_0;
 uint textureNumLayers_24d572() {
   uint res = uint(imageSize(arg_0).z);
   return res;
@@ -24,7 +24,7 @@
   uint inner;
 } prevent_dce;
 
-layout(binding = 0, rg32ui) uniform highp writeonly uimage2DArray arg_0;
+layout(binding = 0, rg32ui) uniform highp uimage2DArray arg_0;
 uint textureNumLayers_24d572() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/24d572.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureNumLayers/24d572.wgsl.expected.ir.glsl
index 2d340e3..37d2723 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/24d572.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/24d572.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: INVALID
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:731 internal compiler error: TINT_UNREACHABLE 
-********************************************************************
-*  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 uimage2DArray arg_0;
+uint textureNumLayers_24d572() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_24d572();
+}
+#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 uimage2DArray arg_0;
+uint textureNumLayers_24d572() {
+  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_24d572();
+}
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 ad05818..c88e510 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/622aa2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/622aa2.wgsl.expected.glsl
@@ -4,7 +4,7 @@
   uint inner;
 } prevent_dce;
 
-layout(binding = 0, rg32i) uniform highp writeonly iimage2DArray arg_0;
+layout(binding = 0, rg32i) uniform highp iimage2DArray arg_0;
 uint textureNumLayers_622aa2() {
   uint res = uint(imageSize(arg_0).z);
   return res;
@@ -24,7 +24,7 @@
   uint inner;
 } prevent_dce;
 
-layout(binding = 0, rg32i) uniform highp writeonly iimage2DArray arg_0;
+layout(binding = 0, rg32i) uniform highp iimage2DArray arg_0;
 uint textureNumLayers_622aa2() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/622aa2.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureNumLayers/622aa2.wgsl.expected.ir.glsl
index 2d340e3..3480f5e 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/622aa2.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/622aa2.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: INVALID
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:731 internal compiler error: TINT_UNREACHABLE 
-********************************************************************
-*  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 iimage2DArray arg_0;
+uint textureNumLayers_622aa2() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_622aa2();
+}
+#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 iimage2DArray arg_0;
+uint textureNumLayers_622aa2() {
+  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_622aa2();
+}
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 8679ddd..077123c 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/aac630.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/aac630.wgsl.expected.glsl
@@ -4,7 +4,7 @@
   uint inner;
 } prevent_dce;
 
-layout(binding = 0, r8) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, r8) uniform highp image2DArray arg_0;
 uint textureNumLayers_aac630() {
   uint res = uint(imageSize(arg_0).z);
   return res;
@@ -24,7 +24,7 @@
   uint inner;
 } prevent_dce;
 
-layout(binding = 0, r8) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, r8) uniform highp image2DArray arg_0;
 uint textureNumLayers_aac630() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/aac630.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureNumLayers/aac630.wgsl.expected.ir.glsl
index 2d340e3..6b60e36 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/aac630.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/aac630.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: INVALID
+#version 460
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:731 internal compiler error: TINT_UNREACHABLE 
-********************************************************************
-*  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 image2DArray arg_0;
+uint textureNumLayers_aac630() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_aac630();
+}
+#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 image2DArray arg_0;
+uint textureNumLayers_aac630() {
+  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_aac630();
+}
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 f237b49..3dcd482 100644
--- a/test/tint/builtins/gen/var/textureStore/0ad124.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/0ad124.wgsl.expected.glsl
@@ -1,6 +1,6 @@
 #version 460
 
-layout(binding = 0, r8) uniform highp writeonly image2D arg_0;
+layout(binding = 0, r8) uniform highp image2D arg_0;
 void textureStore_0ad124() {
   int arg_1 = 1;
   vec4 arg_2 = vec4(1.0f);
@@ -17,7 +17,7 @@
 }
 #version 460
 
-layout(binding = 0, r8) uniform highp writeonly image2D arg_0;
+layout(binding = 0, r8) uniform highp image2D arg_0;
 void textureStore_0ad124() {
   int arg_1 = 1;
   vec4 arg_2 = vec4(1.0f);
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 1451fe1..3fa045b 100644
--- a/test/tint/builtins/gen/var/textureStore/0ade9a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/0ade9a.wgsl.expected.glsl
@@ -1,6 +1,6 @@
 #version 460
 
-layout(binding = 0, rg32ui) uniform highp writeonly uimage2DArray arg_0;
+layout(binding = 0, rg32ui) uniform highp uimage2DArray arg_0;
 void textureStore_0ade9a() {
   uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
@@ -18,7 +18,7 @@
 }
 #version 460
 
-layout(binding = 0, rg32ui) uniform highp writeonly uimage2DArray arg_0;
+layout(binding = 0, rg32ui) uniform highp uimage2DArray arg_0;
 void textureStore_0ade9a() {
   uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
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 b193506..40f7f70 100644
--- a/test/tint/builtins/gen/var/textureStore/1a6c0b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/1a6c0b.wgsl.expected.glsl
@@ -1,6 +1,6 @@
 #version 460
 
-layout(binding = 0, rg32i) uniform highp writeonly iimage2DArray arg_0;
+layout(binding = 0, rg32i) uniform highp iimage2DArray arg_0;
 void textureStore_1a6c0b() {
   uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
@@ -18,7 +18,7 @@
 }
 #version 460
 
-layout(binding = 0, rg32i) uniform highp writeonly iimage2DArray arg_0;
+layout(binding = 0, rg32i) uniform highp iimage2DArray arg_0;
 void textureStore_1a6c0b() {
   uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
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 41ff969..c915d06 100644
--- a/test/tint/builtins/gen/var/textureStore/272f5a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/272f5a.wgsl.expected.glsl
@@ -1,6 +1,6 @@
 #version 460
 
-layout(binding = 0, r8) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, r8) uniform highp image2DArray arg_0;
 void textureStore_272f5a() {
   ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
@@ -18,7 +18,7 @@
 }
 #version 460
 
-layout(binding = 0, r8) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, r8) uniform highp image2DArray arg_0;
 void textureStore_272f5a() {
   ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
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 721a446..210b2e9 100644
--- a/test/tint/builtins/gen/var/textureStore/2e512f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/2e512f.wgsl.expected.glsl
@@ -1,6 +1,6 @@
 #version 460
 
-layout(binding = 0, r8) uniform highp writeonly image2D arg_0;
+layout(binding = 0, r8) uniform highp image2D arg_0;
 void textureStore_2e512f() {
   uvec2 arg_1 = uvec2(1u);
   vec4 arg_2 = vec4(1.0f);
@@ -17,7 +17,7 @@
 }
 #version 460
 
-layout(binding = 0, r8) uniform highp writeonly image2D arg_0;
+layout(binding = 0, r8) uniform highp image2D arg_0;
 void textureStore_2e512f() {
   uvec2 arg_1 = uvec2(1u);
   vec4 arg_2 = vec4(1.0f);
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 b8c0d1d..a0bb353 100644
--- a/test/tint/builtins/gen/var/textureStore/3e0dc4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/3e0dc4.wgsl.expected.glsl
@@ -1,6 +1,6 @@
 #version 460
 
-layout(binding = 0, rg32f) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, rg32f) uniform highp image2DArray arg_0;
 void textureStore_3e0dc4() {
   ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
@@ -18,7 +18,7 @@
 }
 #version 460
 
-layout(binding = 0, rg32f) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, rg32f) uniform highp image2DArray arg_0;
 void textureStore_3e0dc4() {
   ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
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 e00d1fb..c78cfd5 100644
--- a/test/tint/builtins/gen/var/textureStore/43d1df.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/43d1df.wgsl.expected.glsl
@@ -1,6 +1,6 @@
 #version 460
 
-layout(binding = 0, r8) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, r8) uniform highp image2DArray arg_0;
 void textureStore_43d1df() {
   ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
@@ -18,7 +18,7 @@
 }
 #version 460
 
-layout(binding = 0, r8) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, r8) uniform highp image2DArray arg_0;
 void textureStore_43d1df() {
   ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
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 4d8902e..1f7435e 100644
--- a/test/tint/builtins/gen/var/textureStore/473ead.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/473ead.wgsl.expected.glsl
@@ -1,6 +1,6 @@
 #version 460
 
-layout(binding = 0, rg32ui) uniform highp writeonly uimage3D arg_0;
+layout(binding = 0, rg32ui) uniform highp uimage3D arg_0;
 void textureStore_473ead() {
   uvec3 arg_1 = uvec3(1u);
   uvec4 arg_2 = uvec4(1u);
@@ -17,7 +17,7 @@
 }
 #version 460
 
-layout(binding = 0, rg32ui) uniform highp writeonly uimage3D arg_0;
+layout(binding = 0, rg32ui) uniform highp uimage3D arg_0;
 void textureStore_473ead() {
   uvec3 arg_1 = uvec3(1u);
   uvec4 arg_2 = uvec4(1u);
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 0593867..ba16c36 100644
--- a/test/tint/builtins/gen/var/textureStore/4cce74.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/4cce74.wgsl.expected.glsl
@@ -1,6 +1,6 @@
 #version 460
 
-layout(binding = 0, rg32ui) uniform highp writeonly uimage2D arg_0;
+layout(binding = 0, rg32ui) uniform highp uimage2D arg_0;
 void textureStore_4cce74() {
   int arg_1 = 1;
   uvec4 arg_2 = uvec4(1u);
@@ -17,7 +17,7 @@
 }
 #version 460
 
-layout(binding = 0, rg32ui) uniform highp writeonly uimage2D arg_0;
+layout(binding = 0, rg32ui) uniform highp uimage2D arg_0;
 void textureStore_4cce74() {
   int arg_1 = 1;
   uvec4 arg_2 = uvec4(1u);
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 53d6d7f..127ccf2 100644
--- a/test/tint/builtins/gen/var/textureStore/4e2b3a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/4e2b3a.wgsl.expected.glsl
@@ -1,6 +1,6 @@
 #version 460
 
-layout(binding = 0, rg32f) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, rg32f) uniform highp image2DArray arg_0;
 void textureStore_4e2b3a() {
   ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
@@ -18,7 +18,7 @@
 }
 #version 460
 
-layout(binding = 0, rg32f) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, rg32f) uniform highp image2DArray arg_0;
 void textureStore_4e2b3a() {
   ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
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 306ba95..1e1c4ba 100644
--- a/test/tint/builtins/gen/var/textureStore/51ec82.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/51ec82.wgsl.expected.glsl
@@ -1,6 +1,6 @@
 #version 460
 
-layout(binding = 0, rg32f) uniform highp writeonly image2D arg_0;
+layout(binding = 0, rg32f) uniform highp image2D arg_0;
 void textureStore_51ec82() {
   int arg_1 = 1;
   vec4 arg_2 = vec4(1.0f);
@@ -17,7 +17,7 @@
 }
 #version 460
 
-layout(binding = 0, rg32f) uniform highp writeonly image2D arg_0;
+layout(binding = 0, rg32f) uniform highp image2D arg_0;
 void textureStore_51ec82() {
   int arg_1 = 1;
   vec4 arg_2 = vec4(1.0f);
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 3cd2b36..373c122 100644
--- a/test/tint/builtins/gen/var/textureStore/5425ab.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/5425ab.wgsl.expected.glsl
@@ -1,6 +1,6 @@
 #version 460
 
-layout(binding = 0, rg32ui) uniform highp writeonly uimage2D arg_0;
+layout(binding = 0, rg32ui) uniform highp uimage2D arg_0;
 void textureStore_5425ab() {
   ivec2 arg_1 = ivec2(1);
   uvec4 arg_2 = uvec4(1u);
@@ -17,7 +17,7 @@
 }
 #version 460
 
-layout(binding = 0, rg32ui) uniform highp writeonly uimage2D arg_0;
+layout(binding = 0, rg32ui) uniform highp uimage2D arg_0;
 void textureStore_5425ab() {
   ivec2 arg_1 = ivec2(1);
   uvec4 arg_2 = uvec4(1u);
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 b7fde52..eae97a5 100644
--- a/test/tint/builtins/gen/var/textureStore/574a31.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/574a31.wgsl.expected.glsl
@@ -1,6 +1,6 @@
 #version 460
 
-layout(binding = 0, rg32i) uniform highp writeonly iimage2D arg_0;
+layout(binding = 0, rg32i) uniform highp iimage2D arg_0;
 void textureStore_574a31() {
   uint arg_1 = 1u;
   ivec4 arg_2 = ivec4(1);
@@ -17,7 +17,7 @@
 }
 #version 460
 
-layout(binding = 0, rg32i) uniform highp writeonly iimage2D arg_0;
+layout(binding = 0, rg32i) uniform highp iimage2D arg_0;
 void textureStore_574a31() {
   uint arg_1 = 1u;
   ivec4 arg_2 = ivec4(1);
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 cc99611..7016a15 100644
--- a/test/tint/builtins/gen/var/textureStore/5b17eb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/5b17eb.wgsl.expected.glsl
@@ -1,6 +1,6 @@
 #version 460
 
-layout(binding = 0, rg32f) uniform highp writeonly image2D arg_0;
+layout(binding = 0, rg32f) uniform highp image2D arg_0;
 void textureStore_5b17eb() {
   uvec2 arg_1 = uvec2(1u);
   vec4 arg_2 = vec4(1.0f);
@@ -17,7 +17,7 @@
 }
 #version 460
 
-layout(binding = 0, rg32f) uniform highp writeonly image2D arg_0;
+layout(binding = 0, rg32f) uniform highp image2D arg_0;
 void textureStore_5b17eb() {
   uvec2 arg_1 = uvec2(1u);
   vec4 arg_2 = vec4(1.0f);
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 cd3a51c8..65cdd73 100644
--- a/test/tint/builtins/gen/var/textureStore/5ee194.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/5ee194.wgsl.expected.glsl
@@ -1,6 +1,6 @@
 #version 460
 
-layout(binding = 0, rg32f) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, rg32f) uniform highp image2DArray arg_0;
 void textureStore_5ee194() {
   uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
@@ -18,7 +18,7 @@
 }
 #version 460
 
-layout(binding = 0, rg32f) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, rg32f) uniform highp image2DArray arg_0;
 void textureStore_5ee194() {
   uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
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 d64c8d4..694c19f 100644
--- a/test/tint/builtins/gen/var/textureStore/635584.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/635584.wgsl.expected.glsl
@@ -1,6 +1,6 @@
 #version 460
 
-layout(binding = 0, rg32f) uniform highp writeonly image2D arg_0;
+layout(binding = 0, rg32f) uniform highp image2D arg_0;
 void textureStore_635584() {
   uint arg_1 = 1u;
   vec4 arg_2 = vec4(1.0f);
@@ -17,7 +17,7 @@
 }
 #version 460
 
-layout(binding = 0, rg32f) uniform highp writeonly image2D arg_0;
+layout(binding = 0, rg32f) uniform highp image2D arg_0;
 void textureStore_635584() {
   uint arg_1 = 1u;
   vec4 arg_2 = vec4(1.0f);
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 724d9e4..a997f2a 100644
--- a/test/tint/builtins/gen/var/textureStore/63f34a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/63f34a.wgsl.expected.glsl
@@ -1,6 +1,6 @@
 #version 460
 
-layout(binding = 0, rg32i) uniform highp writeonly iimage2D arg_0;
+layout(binding = 0, rg32i) uniform highp iimage2D arg_0;
 void textureStore_63f34a() {
   uvec2 arg_1 = uvec2(1u);
   ivec4 arg_2 = ivec4(1);
@@ -17,7 +17,7 @@
 }
 #version 460
 
-layout(binding = 0, rg32i) uniform highp writeonly iimage2D arg_0;
+layout(binding = 0, rg32i) uniform highp iimage2D arg_0;
 void textureStore_63f34a() {
   uvec2 arg_1 = uvec2(1u);
   ivec4 arg_2 = ivec4(1);
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 3dd8fd4..0a37b9d 100644
--- a/test/tint/builtins/gen/var/textureStore/65ba8b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/65ba8b.wgsl.expected.glsl
@@ -1,6 +1,6 @@
 #version 460
 
-layout(binding = 0, r8) uniform highp writeonly image2D arg_0;
+layout(binding = 0, r8) uniform highp image2D arg_0;
 void textureStore_65ba8b() {
   ivec2 arg_1 = ivec2(1);
   vec4 arg_2 = vec4(1.0f);
@@ -17,7 +17,7 @@
 }
 #version 460
 
-layout(binding = 0, r8) uniform highp writeonly image2D arg_0;
+layout(binding = 0, r8) uniform highp image2D arg_0;
 void textureStore_65ba8b() {
   ivec2 arg_1 = ivec2(1);
   vec4 arg_2 = vec4(1.0f);
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 4c7a9cc..479cb61 100644
--- a/test/tint/builtins/gen/var/textureStore/6f0c92.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/6f0c92.wgsl.expected.glsl
@@ -1,6 +1,6 @@
 #version 460
 
-layout(binding = 0, r8) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, r8) uniform highp image2DArray arg_0;
 void textureStore_6f0c92() {
   uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
@@ -18,7 +18,7 @@
 }
 #version 460
 
-layout(binding = 0, r8) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, r8) uniform highp image2DArray arg_0;
 void textureStore_6f0c92() {
   uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
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 6666349..7e7256d 100644
--- a/test/tint/builtins/gen/var/textureStore/75bbd5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/75bbd5.wgsl.expected.glsl
@@ -1,6 +1,6 @@
 #version 460
 
-layout(binding = 0, rg32ui) uniform highp writeonly uimage2DArray arg_0;
+layout(binding = 0, rg32ui) uniform highp uimage2DArray arg_0;
 void textureStore_75bbd5() {
   ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
@@ -18,7 +18,7 @@
 }
 #version 460
 
-layout(binding = 0, rg32ui) uniform highp writeonly uimage2DArray arg_0;
+layout(binding = 0, rg32ui) uniform highp uimage2DArray arg_0;
 void textureStore_75bbd5() {
   ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
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 71bbc8d..a3be966 100644
--- a/test/tint/builtins/gen/var/textureStore/7792fa.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/7792fa.wgsl.expected.glsl
@@ -1,6 +1,6 @@
 #version 460
 
-layout(binding = 0, rg32i) uniform highp writeonly iimage3D arg_0;
+layout(binding = 0, rg32i) uniform highp iimage3D arg_0;
 void textureStore_7792fa() {
   uvec3 arg_1 = uvec3(1u);
   ivec4 arg_2 = ivec4(1);
@@ -17,7 +17,7 @@
 }
 #version 460
 
-layout(binding = 0, rg32i) uniform highp writeonly iimage3D arg_0;
+layout(binding = 0, rg32i) uniform highp iimage3D arg_0;
 void textureStore_7792fa() {
   uvec3 arg_1 = uvec3(1u);
   ivec4 arg_2 = ivec4(1);
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 01ef0b3..b20dc22 100644
--- a/test/tint/builtins/gen/var/textureStore/7b8f86.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/7b8f86.wgsl.expected.glsl
@@ -1,6 +1,6 @@
 #version 460
 
-layout(binding = 0, rg32f) uniform highp writeonly image3D arg_0;
+layout(binding = 0, rg32f) uniform highp image3D arg_0;
 void textureStore_7b8f86() {
   uvec3 arg_1 = uvec3(1u);
   vec4 arg_2 = vec4(1.0f);
@@ -17,7 +17,7 @@
 }
 #version 460
 
-layout(binding = 0, rg32f) uniform highp writeonly image3D arg_0;
+layout(binding = 0, rg32f) uniform highp image3D arg_0;
 void textureStore_7b8f86() {
   uvec3 arg_1 = uvec3(1u);
   vec4 arg_2 = vec4(1.0f);
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 8dce4f9..636c302 100644
--- a/test/tint/builtins/gen/var/textureStore/803a10.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/803a10.wgsl.expected.glsl
@@ -1,6 +1,6 @@
 #version 460
 
-layout(binding = 0, r8) uniform highp writeonly image3D arg_0;
+layout(binding = 0, r8) uniform highp image3D arg_0;
 void textureStore_803a10() {
   uvec3 arg_1 = uvec3(1u);
   vec4 arg_2 = vec4(1.0f);
@@ -17,7 +17,7 @@
 }
 #version 460
 
-layout(binding = 0, r8) uniform highp writeonly image3D arg_0;
+layout(binding = 0, r8) uniform highp image3D arg_0;
 void textureStore_803a10() {
   uvec3 arg_1 = uvec3(1u);
   vec4 arg_2 = vec4(1.0f);
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 8504f2f..3b3ec57 100644
--- a/test/tint/builtins/gen/var/textureStore/80bf1d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/80bf1d.wgsl.expected.glsl
@@ -1,6 +1,6 @@
 #version 460
 
-layout(binding = 0, rg32i) uniform highp writeonly iimage2D arg_0;
+layout(binding = 0, rg32i) uniform highp iimage2D arg_0;
 void textureStore_80bf1d() {
   ivec2 arg_1 = ivec2(1);
   ivec4 arg_2 = ivec4(1);
@@ -17,7 +17,7 @@
 }
 #version 460
 
-layout(binding = 0, rg32i) uniform highp writeonly iimage2D arg_0;
+layout(binding = 0, rg32i) uniform highp iimage2D arg_0;
 void textureStore_80bf1d() {
   ivec2 arg_1 = ivec2(1);
   ivec4 arg_2 = ivec4(1);
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 5c5c7d0..658e04b 100644
--- a/test/tint/builtins/gen/var/textureStore/820272.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/820272.wgsl.expected.glsl
@@ -1,6 +1,6 @@
 #version 460
 
-layout(binding = 0, rg32i) uniform highp writeonly iimage2DArray arg_0;
+layout(binding = 0, rg32i) uniform highp iimage2DArray arg_0;
 void textureStore_820272() {
   ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
@@ -18,7 +18,7 @@
 }
 #version 460
 
-layout(binding = 0, rg32i) uniform highp writeonly iimage2DArray arg_0;
+layout(binding = 0, rg32i) uniform highp iimage2DArray arg_0;
 void textureStore_820272() {
   ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
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 355aaef..3db6dd4 100644
--- a/test/tint/builtins/gen/var/textureStore/84d435.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/84d435.wgsl.expected.glsl
@@ -1,6 +1,6 @@
 #version 460
 
-layout(binding = 0, rg32i) uniform highp writeonly iimage2DArray arg_0;
+layout(binding = 0, rg32i) uniform highp iimage2DArray arg_0;
 void textureStore_84d435() {
   ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
@@ -18,7 +18,7 @@
 }
 #version 460
 
-layout(binding = 0, rg32i) uniform highp writeonly iimage2DArray arg_0;
+layout(binding = 0, rg32i) uniform highp iimage2DArray arg_0;
 void textureStore_84d435() {
   ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
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 048b598f..d5a0ae7 100644
--- a/test/tint/builtins/gen/var/textureStore/8a8681.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/8a8681.wgsl.expected.glsl
@@ -1,6 +1,6 @@
 #version 460
 
-layout(binding = 0, rg32ui) uniform highp writeonly uimage2D arg_0;
+layout(binding = 0, rg32ui) uniform highp uimage2D arg_0;
 void textureStore_8a8681() {
   uvec2 arg_1 = uvec2(1u);
   uvec4 arg_2 = uvec4(1u);
@@ -17,7 +17,7 @@
 }
 #version 460
 
-layout(binding = 0, rg32ui) uniform highp writeonly uimage2D arg_0;
+layout(binding = 0, rg32ui) uniform highp uimage2D arg_0;
 void textureStore_8a8681() {
   uvec2 arg_1 = uvec2(1u);
   uvec4 arg_2 = uvec4(1u);
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 deb5cf9..50682ca 100644
--- a/test/tint/builtins/gen/var/textureStore/a702b6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/a702b6.wgsl.expected.glsl
@@ -1,6 +1,6 @@
 #version 460
 
-layout(binding = 0, rg32ui) uniform highp writeonly uimage2DArray arg_0;
+layout(binding = 0, rg32ui) uniform highp uimage2DArray arg_0;
 void textureStore_a702b6() {
   ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
@@ -18,7 +18,7 @@
 }
 #version 460
 
-layout(binding = 0, rg32ui) uniform highp writeonly uimage2DArray arg_0;
+layout(binding = 0, rg32ui) uniform highp uimage2DArray arg_0;
 void textureStore_a702b6() {
   ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
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 6d68490..e5b6fc7 100644
--- a/test/tint/builtins/gen/var/textureStore/a7fc47.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/a7fc47.wgsl.expected.glsl
@@ -1,6 +1,6 @@
 #version 460
 
-layout(binding = 0, r8) uniform highp writeonly image2D arg_0;
+layout(binding = 0, r8) uniform highp image2D arg_0;
 void textureStore_a7fc47() {
   uint arg_1 = 1u;
   vec4 arg_2 = vec4(1.0f);
@@ -17,7 +17,7 @@
 }
 #version 460
 
-layout(binding = 0, r8) uniform highp writeonly image2D arg_0;
+layout(binding = 0, r8) uniform highp image2D arg_0;
 void textureStore_a7fc47() {
   uint arg_1 = 1u;
   vec4 arg_2 = vec4(1.0f);
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 904c816..f830402 100644
--- a/test/tint/builtins/gen/var/textureStore/a9298c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/a9298c.wgsl.expected.glsl
@@ -1,6 +1,6 @@
 #version 460
 
-layout(binding = 0, rg32ui) uniform highp writeonly uimage2D arg_0;
+layout(binding = 0, rg32ui) uniform highp uimage2D arg_0;
 void textureStore_a9298c() {
   uint arg_1 = 1u;
   uvec4 arg_2 = uvec4(1u);
@@ -17,7 +17,7 @@
 }
 #version 460
 
-layout(binding = 0, rg32ui) uniform highp writeonly uimage2D arg_0;
+layout(binding = 0, rg32ui) uniform highp uimage2D arg_0;
 void textureStore_a9298c() {
   uint arg_1 = 1u;
   uvec4 arg_2 = uvec4(1u);
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 55684c1..6374e14 100644
--- a/test/tint/builtins/gen/var/textureStore/ab788e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/ab788e.wgsl.expected.glsl
@@ -1,6 +1,6 @@
 #version 460
 
-layout(binding = 0, rg32f) uniform highp writeonly image2D arg_0;
+layout(binding = 0, rg32f) uniform highp image2D arg_0;
 void textureStore_ab788e() {
   ivec2 arg_1 = ivec2(1);
   vec4 arg_2 = vec4(1.0f);
@@ -17,7 +17,7 @@
 }
 #version 460
 
-layout(binding = 0, rg32f) uniform highp writeonly image2D arg_0;
+layout(binding = 0, rg32f) uniform highp image2D arg_0;
 void textureStore_ab788e() {
   ivec2 arg_1 = ivec2(1);
   vec4 arg_2 = vec4(1.0f);
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 7731dfa..7f3589a 100644
--- a/test/tint/builtins/gen/var/textureStore/ae6a2a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/ae6a2a.wgsl.expected.glsl
@@ -1,6 +1,6 @@
 #version 460
 
-layout(binding = 0, r8) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, r8) uniform highp image2DArray arg_0;
 void textureStore_ae6a2a() {
   uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
@@ -18,7 +18,7 @@
 }
 #version 460
 
-layout(binding = 0, r8) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, r8) uniform highp image2DArray arg_0;
 void textureStore_ae6a2a() {
   uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
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 590b3a6..83e8574 100644
--- a/test/tint/builtins/gen/var/textureStore/b71c13.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/b71c13.wgsl.expected.glsl
@@ -1,6 +1,6 @@
 #version 460
 
-layout(binding = 0, rg32f) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, rg32f) uniform highp image2DArray arg_0;
 void textureStore_b71c13() {
   uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
@@ -18,7 +18,7 @@
 }
 #version 460
 
-layout(binding = 0, rg32f) uniform highp writeonly image2DArray arg_0;
+layout(binding = 0, rg32f) uniform highp image2DArray arg_0;
 void textureStore_b71c13() {
   uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
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 3ef804c..eecaca5 100644
--- a/test/tint/builtins/gen/var/textureStore/b9c81a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/b9c81a.wgsl.expected.glsl
@@ -1,6 +1,6 @@
 #version 460
 
-layout(binding = 0, rg32ui) uniform highp writeonly uimage3D arg_0;
+layout(binding = 0, rg32ui) uniform highp uimage3D arg_0;
 void textureStore_b9c81a() {
   ivec3 arg_1 = ivec3(1);
   uvec4 arg_2 = uvec4(1u);
@@ -17,7 +17,7 @@
 }
 #version 460
 
-layout(binding = 0, rg32ui) uniform highp writeonly uimage3D arg_0;
+layout(binding = 0, rg32ui) uniform highp uimage3D arg_0;
 void textureStore_b9c81a() {
   ivec3 arg_1 = ivec3(1);
   uvec4 arg_2 = uvec4(1u);
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 6d45363..d02dc70 100644
--- a/test/tint/builtins/gen/var/textureStore/bd6602.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/bd6602.wgsl.expected.glsl
@@ -1,6 +1,6 @@
 #version 460
 
-layout(binding = 0, rg32ui) uniform highp writeonly uimage2DArray arg_0;
+layout(binding = 0, rg32ui) uniform highp uimage2DArray arg_0;
 void textureStore_bd6602() {
   uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
@@ -18,7 +18,7 @@
 }
 #version 460
 
-layout(binding = 0, rg32ui) uniform highp writeonly uimage2DArray arg_0;
+layout(binding = 0, rg32ui) uniform highp uimage2DArray arg_0;
 void textureStore_bd6602() {
   uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
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 86ea5b5..f966e76 100644
--- a/test/tint/builtins/gen/var/textureStore/c33478.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/c33478.wgsl.expected.glsl
@@ -1,6 +1,6 @@
 #version 460
 
-layout(binding = 0, rg32f) uniform highp writeonly image3D arg_0;
+layout(binding = 0, rg32f) uniform highp image3D arg_0;
 void textureStore_c33478() {
   ivec3 arg_1 = ivec3(1);
   vec4 arg_2 = vec4(1.0f);
@@ -17,7 +17,7 @@
 }
 #version 460
 
-layout(binding = 0, rg32f) uniform highp writeonly image3D arg_0;
+layout(binding = 0, rg32f) uniform highp image3D arg_0;
 void textureStore_c33478() {
   ivec3 arg_1 = ivec3(1);
   vec4 arg_2 = vec4(1.0f);
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 979fe47..0e396a7 100644
--- a/test/tint/builtins/gen/var/textureStore/d19db4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/d19db4.wgsl.expected.glsl
@@ -1,6 +1,6 @@
 #version 460
 
-layout(binding = 0, rg32i) uniform highp writeonly iimage3D arg_0;
+layout(binding = 0, rg32i) uniform highp iimage3D arg_0;
 void textureStore_d19db4() {
   ivec3 arg_1 = ivec3(1);
   ivec4 arg_2 = ivec4(1);
@@ -17,7 +17,7 @@
 }
 #version 460
 
-layout(binding = 0, rg32i) uniform highp writeonly iimage3D arg_0;
+layout(binding = 0, rg32i) uniform highp iimage3D arg_0;
 void textureStore_d19db4() {
   ivec3 arg_1 = ivec3(1);
   ivec4 arg_2 = ivec4(1);
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 691cfa4..26c6a1f 100644
--- a/test/tint/builtins/gen/var/textureStore/e077e7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/e077e7.wgsl.expected.glsl
@@ -1,6 +1,6 @@
 #version 460
 
-layout(binding = 0, rg32i) uniform highp writeonly iimage2D arg_0;
+layout(binding = 0, rg32i) uniform highp iimage2D arg_0;
 void textureStore_e077e7() {
   int arg_1 = 1;
   ivec4 arg_2 = ivec4(1);
@@ -17,7 +17,7 @@
 }
 #version 460
 
-layout(binding = 0, rg32i) uniform highp writeonly iimage2D arg_0;
+layout(binding = 0, rg32i) uniform highp iimage2D arg_0;
 void textureStore_e077e7() {
   int arg_1 = 1;
   ivec4 arg_2 = ivec4(1);
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 2b3f2c9..0b54a23 100644
--- a/test/tint/builtins/gen/var/textureStore/ea30d2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/ea30d2.wgsl.expected.glsl
@@ -1,6 +1,6 @@
 #version 460
 
-layout(binding = 0, rg32i) uniform highp writeonly iimage2DArray arg_0;
+layout(binding = 0, rg32i) uniform highp iimage2DArray arg_0;
 void textureStore_ea30d2() {
   uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
@@ -18,7 +18,7 @@
 }
 #version 460
 
-layout(binding = 0, rg32i) uniform highp writeonly iimage2DArray arg_0;
+layout(binding = 0, rg32i) uniform highp iimage2DArray arg_0;
 void textureStore_ea30d2() {
   uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
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 d4c59f5..d0e51e5 100644
--- a/test/tint/builtins/gen/var/textureStore/ed6198.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/ed6198.wgsl.expected.glsl
@@ -1,6 +1,6 @@
 #version 460
 
-layout(binding = 0, r8) uniform highp writeonly image3D arg_0;
+layout(binding = 0, r8) uniform highp image3D arg_0;
 void textureStore_ed6198() {
   ivec3 arg_1 = ivec3(1);
   vec4 arg_2 = vec4(1.0f);
@@ -17,7 +17,7 @@
 }
 #version 460
 
-layout(binding = 0, r8) uniform highp writeonly image3D arg_0;
+layout(binding = 0, r8) uniform highp image3D arg_0;
 void textureStore_ed6198() {
   ivec3 arg_1 = ivec3(1);
   vec4 arg_2 = vec4(1.0f);