[glsl][ir] Polyfill the `textureNumLayers` call

This Cl polyfills the `textureNumLayers` WGSL call.

Bug: 42251044
Change-Id: Iba54675de863a1fac83aca78e4e717105cd7c836
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/206935
Reviewed-by: James Price <jrprice@google.com>
Commit-Queue: dan sinclair <dsinclair@chromium.org>
diff --git a/src/tint/lang/glsl/writer/builtin_test.cc b/src/tint/lang/glsl/writer/builtin_test.cc
index 21c0c7c..84f9d07 100644
--- a/src/tint/lang/glsl/writer/builtin_test.cc
+++ b/src/tint/lang/glsl/writer/builtin_test.cc
@@ -1014,5 +1014,138 @@
 )");
 }
 
+TEST_F(GlslWriterTest, TextureNumLayers_2DArray) {
+    auto* var =
+        b.Var("v", handle,
+              ty.Get<core::type::SampledTexture>(core::type::TextureDimension::k2dArray, ty.f32()),
+              core::Access::kReadWrite);
+    var->SetBindingPoint(0, 0);
+    b.ir.root_block->Append(var);
+
+    auto* func = b.Function("foo", ty.void_(), core::ir::Function::PipelineStage::kFragment);
+    b.Append(func->Block(), [&] {
+        b.Let("x", b.Call(ty.u32(), core::BuiltinFn::kTextureNumLayers, b.Load(var)));
+        b.Return(func);
+    });
+
+    ASSERT_TRUE(Generate()) << err_ << output_.glsl;
+    EXPECT_EQ(output_.glsl, GlslHeader() + R"(precision highp float;
+precision highp int;
+
+uniform highp sampler2DArray v;
+void main() {
+  uint x = uint(textureSize(v, 0).z);
+}
+)");
+}
+
+TEST_F(GlslWriterTest, TextureNumLayers_Depth2DArray) {
+    auto* var =
+        b.Var("v", handle, ty.Get<core::type::DepthTexture>(core::type::TextureDimension::k2dArray),
+              core::Access::kReadWrite);
+    var->SetBindingPoint(0, 0);
+    b.ir.root_block->Append(var);
+
+    auto* func = b.Function("foo", ty.void_(), core::ir::Function::PipelineStage::kFragment);
+    b.Append(func->Block(), [&] {
+        b.Let("x", b.Call(ty.u32(), core::BuiltinFn::kTextureNumLayers, b.Load(var)));
+        b.Return(func);
+    });
+
+    ASSERT_TRUE(Generate()) << err_ << output_.glsl;
+    EXPECT_EQ(output_.glsl, GlslHeader() + R"(precision highp float;
+precision highp int;
+
+uniform highp sampler2DArrayShadow v;
+void main() {
+  uint x = uint(textureSize(v, 0).z);
+}
+)");
+}
+
+TEST_F(GlslWriterTest, TextureNumLayers_CubeArray) {
+    auto* var = b.Var(
+        "v", handle,
+        ty.Get<core::type::SampledTexture>(core::type::TextureDimension::kCubeArray, ty.f32()),
+        core::Access::kReadWrite);
+    var->SetBindingPoint(0, 0);
+    b.ir.root_block->Append(var);
+
+    auto* func = b.Function("foo", ty.void_(), core::ir::Function::PipelineStage::kFragment);
+    b.Append(func->Block(), [&] {
+        b.Let("x", b.Call(ty.u32(), core::BuiltinFn::kTextureNumLayers, b.Load(var)));
+        b.Return(func);
+    });
+
+    Options opts{};
+    opts.version = Version(Version::Standard::kDesktop, 4, 6);
+    ASSERT_TRUE(Generate(opts)) << err_ << output_.glsl;
+    EXPECT_EQ(output_.glsl, R"(#version 460
+precision highp float;
+precision highp int;
+
+uniform highp samplerCubeArray v;
+void main() {
+  uint x = uint(textureSize(v, 0).z);
+}
+)");
+}
+
+TEST_F(GlslWriterTest, TextureNumLayers_DepthCubeArray) {
+    auto* var = b.Var("v", handle,
+                      ty.Get<core::type::DepthTexture>(core::type::TextureDimension::kCubeArray),
+                      core::Access::kReadWrite);
+    var->SetBindingPoint(0, 0);
+    b.ir.root_block->Append(var);
+
+    auto* func = b.Function("foo", ty.void_(), core::ir::Function::PipelineStage::kFragment);
+    b.Append(func->Block(), [&] {
+        b.Let("x", b.Call(ty.u32(), core::BuiltinFn::kTextureNumLayers, b.Load(var)));
+        b.Return(func);
+    });
+
+    Options opts{};
+    opts.version = Version(Version::Standard::kDesktop, 4, 6);
+    ASSERT_TRUE(Generate(opts)) << err_ << output_.glsl;
+    EXPECT_EQ(output_.glsl, R"(#version 460
+precision highp float;
+precision highp int;
+
+uniform highp samplerCubeArrayShadow v;
+void main() {
+  uint x = uint(textureSize(v, 0).z);
+}
+)");
+}
+
+TEST_F(GlslWriterTest, TextureNumLayers_Storage2DArray) {
+    auto* storage_ty = ty.Get<core::type::StorageTexture>(
+        core::type::TextureDimension::k2dArray, core::TexelFormat::kRg32Float, core::Access::kRead,
+        core::type::StorageTexture::SubtypeFor(core::TexelFormat::kRg32Float, ty));
+
+    auto* var = b.Var("v", handle, storage_ty, core::Access::kReadWrite);
+    var->SetBindingPoint(0, 0);
+    b.ir.root_block->Append(var);
+
+    auto* func = b.Function("foo", ty.void_(), core::ir::Function::PipelineStage::kFragment);
+    b.Append(func->Block(), [&] {
+        b.Let("x", b.Call(ty.u32(), core::BuiltinFn::kTextureNumLayers, b.Load(var)));
+        b.Return(func);
+    });
+
+    Options opts{};
+    opts.version = Version(Version::Standard::kDesktop, 4, 6);
+    ASSERT_TRUE(Generate(opts)) << err_ << output_.glsl;
+    EXPECT_EQ(output_.glsl, R"(#version 460
+precision highp float;
+precision highp int;
+
+layout(binding = 0, rg32f) uniform highp readonly image2DArray v;
+void main() {
+  uint x = uint(imageSize(v).z);
+}
+)");
+}
+
 }  // namespace
 }  // namespace tint::glsl::writer
diff --git a/src/tint/lang/glsl/writer/raise/builtin_polyfill.cc b/src/tint/lang/glsl/writer/raise/builtin_polyfill.cc
index e57d5e0..cc28cbe 100644
--- a/src/tint/lang/glsl/writer/raise/builtin_polyfill.cc
+++ b/src/tint/lang/glsl/writer/raise/builtin_polyfill.cc
@@ -74,6 +74,7 @@
                     case core::BuiltinFn::kStorageBarrier:
                     case core::BuiltinFn::kTextureBarrier:
                     case core::BuiltinFn::kTextureDimensions:
+                    case core::BuiltinFn::kTextureNumLayers:
                     case core::BuiltinFn::kWorkgroupBarrier:
                         call_worklist.Push(call);
                         break;
@@ -116,6 +117,9 @@
                 case core::BuiltinFn::kTextureDimensions:
                     TextureDimensions(call);
                     break;
+                case core::BuiltinFn::kTextureNumLayers:
+                    TextureNumLayers(call);
+                    break;
                 default:
                     TINT_UNREACHABLE();
             }
@@ -215,6 +219,37 @@
         call->Destroy();
     }
 
+    // `textureNumLayers` returns an unsigned scalar in WGSL. `textureSize` and `imageSize`
+    // return a signed scalar / vector in GLSL.
+    //
+    // For the `textureSize` and `imageSize` calls the valid WGSL values always produce a `vec3` in
+    // GLSL so we extract the `z` component for the number of layers.
+    void TextureNumLayers(core::ir::BuiltinCall* call) {
+        b.InsertBefore(call, [&] {
+            auto args = call->Args();
+            auto* tex = args[0]->Type()->As<core::type::Texture>();
+
+            auto func = glsl::BuiltinFn::kTextureSize;
+            if (tex->Is<core::type::StorageTexture>()) {
+                func = glsl::BuiltinFn::kImageSize;
+            }
+
+            Vector<core::ir::Value*, 2> new_args;
+            new_args.Push(args[0]);
+
+            // Non-storage textures require a LOD
+            if (!tex->Is<core::type::StorageTexture>()) {
+                new_args.Push(b.Constant(0_i));
+            }
+
+            auto* new_call = b.Call<glsl::ir::BuiltinCall>(ty.vec(ty.i32(), 3), func, new_args);
+
+            auto* swizzle = b.Swizzle(ty.i32(), new_call, {2});
+            b.BitcastWithResult(call->DetachResult(), swizzle->Result(0));
+        });
+        call->Destroy();
+    }
+
     void AtomicCompareExchangeWeak(core::ir::BuiltinCall* call) {
         auto args = call->Args();
         auto* type = args[1]->Type();
diff --git a/src/tint/lang/glsl/writer/raise/builtin_polyfill_test.cc b/src/tint/lang/glsl/writer/raise/builtin_polyfill_test.cc
index e0510b7..0411e07 100644
--- a/src/tint/lang/glsl/writer/raise/builtin_polyfill_test.cc
+++ b/src/tint/lang/glsl/writer/raise/builtin_polyfill_test.cc
@@ -721,5 +721,259 @@
     EXPECT_EQ(expect, str());
 }
 
+TEST_F(GlslWriter_BuiltinPolyfillTest, TextureNumLayers_2DArray) {
+    auto* var =
+        b.Var("v", handle,
+              ty.Get<core::type::SampledTexture>(core::type::TextureDimension::k2dArray, ty.f32()),
+              core::Access::kReadWrite);
+    var->SetBindingPoint(0, 0);
+    b.ir.root_block->Append(var);
+
+    auto* func = b.Function("foo", ty.void_(), core::ir::Function::PipelineStage::kFragment);
+    b.Append(func->Block(), [&] {
+        b.Let("x", b.Call(ty.u32(), core::BuiltinFn::kTextureNumLayers, b.Load(var)));
+        b.Return(func);
+    });
+
+    auto* src = R"(
+$B1: {  # root
+  %v:ptr<handle, texture_2d_array<f32>, read_write> = var @binding_point(0, 0)
+}
+
+%foo = @fragment func():void {
+  $B2: {
+    %3:texture_2d_array<f32> = load %v
+    %4:u32 = textureNumLayers %3
+    %x:u32 = let %4
+    ret
+  }
+}
+)";
+    EXPECT_EQ(src, str());
+
+    auto* expect = R"(
+$B1: {  # root
+  %v:ptr<handle, texture_2d_array<f32>, read_write> = var @binding_point(0, 0)
+}
+
+%foo = @fragment func():void {
+  $B2: {
+    %3:texture_2d_array<f32> = load %v
+    %4:vec3<i32> = glsl.textureSize %3, 0i
+    %5:i32 = swizzle %4, z
+    %6:u32 = bitcast %5
+    %x:u32 = let %6
+    ret
+  }
+}
+)";
+
+    Run(BuiltinPolyfill);
+    EXPECT_EQ(expect, str());
+}
+
+TEST_F(GlslWriter_BuiltinPolyfillTest, TextureNumLayers_Depth2DArray) {
+    auto* var =
+        b.Var("v", handle, ty.Get<core::type::DepthTexture>(core::type::TextureDimension::k2dArray),
+              core::Access::kReadWrite);
+    var->SetBindingPoint(0, 0);
+    b.ir.root_block->Append(var);
+
+    auto* func = b.Function("foo", ty.void_(), core::ir::Function::PipelineStage::kFragment);
+    b.Append(func->Block(), [&] {
+        b.Let("x", b.Call(ty.u32(), core::BuiltinFn::kTextureNumLayers, b.Load(var)));
+        b.Return(func);
+    });
+
+    auto* src = R"(
+$B1: {  # root
+  %v:ptr<handle, texture_depth_2d_array, read_write> = var @binding_point(0, 0)
+}
+
+%foo = @fragment func():void {
+  $B2: {
+    %3:texture_depth_2d_array = load %v
+    %4:u32 = textureNumLayers %3
+    %x:u32 = let %4
+    ret
+  }
+}
+)";
+    EXPECT_EQ(src, str());
+
+    auto* expect = R"(
+$B1: {  # root
+  %v:ptr<handle, texture_depth_2d_array, read_write> = var @binding_point(0, 0)
+}
+
+%foo = @fragment func():void {
+  $B2: {
+    %3:texture_depth_2d_array = load %v
+    %4:vec3<i32> = glsl.textureSize %3, 0i
+    %5:i32 = swizzle %4, z
+    %6:u32 = bitcast %5
+    %x:u32 = let %6
+    ret
+  }
+}
+)";
+
+    Run(BuiltinPolyfill);
+    EXPECT_EQ(expect, str());
+}
+
+TEST_F(GlslWriter_BuiltinPolyfillTest, TextureNumLayers_CubeArray) {
+    auto* var = b.Var(
+        "v", handle,
+        ty.Get<core::type::SampledTexture>(core::type::TextureDimension::kCubeArray, ty.f32()),
+        core::Access::kReadWrite);
+    var->SetBindingPoint(0, 0);
+    b.ir.root_block->Append(var);
+
+    auto* func = b.Function("foo", ty.void_(), core::ir::Function::PipelineStage::kFragment);
+    b.Append(func->Block(), [&] {
+        b.Let("x", b.Call(ty.u32(), core::BuiltinFn::kTextureNumLayers, b.Load(var)));
+        b.Return(func);
+    });
+
+    auto* src = R"(
+$B1: {  # root
+  %v:ptr<handle, texture_cube_array<f32>, read_write> = var @binding_point(0, 0)
+}
+
+%foo = @fragment func():void {
+  $B2: {
+    %3:texture_cube_array<f32> = load %v
+    %4:u32 = textureNumLayers %3
+    %x:u32 = let %4
+    ret
+  }
+}
+)";
+    EXPECT_EQ(src, str());
+
+    auto* expect = R"(
+$B1: {  # root
+  %v:ptr<handle, texture_cube_array<f32>, read_write> = var @binding_point(0, 0)
+}
+
+%foo = @fragment func():void {
+  $B2: {
+    %3:texture_cube_array<f32> = load %v
+    %4:vec3<i32> = glsl.textureSize %3, 0i
+    %5:i32 = swizzle %4, z
+    %6:u32 = bitcast %5
+    %x:u32 = let %6
+    ret
+  }
+}
+)";
+
+    Run(BuiltinPolyfill);
+    EXPECT_EQ(expect, str());
+}
+
+TEST_F(GlslWriter_BuiltinPolyfillTest, TextureNumLayers_DepthCubeArray) {
+    auto* var = b.Var("v", handle,
+                      ty.Get<core::type::DepthTexture>(core::type::TextureDimension::kCubeArray),
+                      core::Access::kReadWrite);
+    var->SetBindingPoint(0, 0);
+    b.ir.root_block->Append(var);
+
+    auto* func = b.Function("foo", ty.void_(), core::ir::Function::PipelineStage::kFragment);
+    b.Append(func->Block(), [&] {
+        b.Let("x", b.Call(ty.u32(), core::BuiltinFn::kTextureNumLayers, b.Load(var)));
+        b.Return(func);
+    });
+
+    auto* src = R"(
+$B1: {  # root
+  %v:ptr<handle, texture_depth_cube_array, read_write> = var @binding_point(0, 0)
+}
+
+%foo = @fragment func():void {
+  $B2: {
+    %3:texture_depth_cube_array = load %v
+    %4:u32 = textureNumLayers %3
+    %x:u32 = let %4
+    ret
+  }
+}
+)";
+    EXPECT_EQ(src, str());
+
+    auto* expect = R"(
+$B1: {  # root
+  %v:ptr<handle, texture_depth_cube_array, read_write> = var @binding_point(0, 0)
+}
+
+%foo = @fragment func():void {
+  $B2: {
+    %3:texture_depth_cube_array = load %v
+    %4:vec3<i32> = glsl.textureSize %3, 0i
+    %5:i32 = swizzle %4, z
+    %6:u32 = bitcast %5
+    %x:u32 = let %6
+    ret
+  }
+}
+)";
+
+    Run(BuiltinPolyfill);
+    EXPECT_EQ(expect, str());
+}
+
+TEST_F(GlslWriter_BuiltinPolyfillTest, TextureNumLayers_Storage2DArray) {
+    auto* storage_ty = ty.Get<core::type::StorageTexture>(
+        core::type::TextureDimension::k2dArray, core::TexelFormat::kRg32Float, core::Access::kRead,
+        core::type::StorageTexture::SubtypeFor(core::TexelFormat::kRg32Float, ty));
+
+    auto* var = b.Var("v", handle, storage_ty, core::Access::kReadWrite);
+    var->SetBindingPoint(0, 0);
+    b.ir.root_block->Append(var);
+
+    auto* func = b.Function("foo", ty.void_(), core::ir::Function::PipelineStage::kFragment);
+    b.Append(func->Block(), [&] {
+        b.Let("x", b.Call(ty.u32(), core::BuiltinFn::kTextureNumLayers, b.Load(var)));
+        b.Return(func);
+    });
+
+    auto* src = R"(
+$B1: {  # root
+  %v:ptr<handle, texture_storage_2d_array<rg32float, read>, read_write> = var @binding_point(0, 0)
+}
+
+%foo = @fragment func():void {
+  $B2: {
+    %3:texture_storage_2d_array<rg32float, read> = load %v
+    %4:u32 = textureNumLayers %3
+    %x:u32 = let %4
+    ret
+  }
+}
+)";
+    EXPECT_EQ(src, str());
+
+    auto* expect = R"(
+$B1: {  # root
+  %v:ptr<handle, texture_storage_2d_array<rg32float, read>, read_write> = var @binding_point(0, 0)
+}
+
+%foo = @fragment func():void {
+  $B2: {
+    %3:texture_storage_2d_array<rg32float, read> = load %v
+    %4:vec3<i32> = glsl.imageSize %3
+    %5:i32 = swizzle %4, z
+    %6:u32 = bitcast %5
+    %x:u32 = let %6
+    ret
+  }
+}
+)";
+
+    Run(BuiltinPolyfill);
+    EXPECT_EQ(expect, str());
+}
+
 }  // namespace
 }  // namespace tint::glsl::writer::raise
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/014a3b.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureNumLayers/014a3b.wgsl.expected.ir.glsl
index c7310b2..6ccd1da 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/014a3b.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/014a3b.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, rgba16ui) uniform highp writeonly uimage2DArray arg_0;
+uint textureNumLayers_014a3b() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_014a3b();
+}
+#version 310 es
 
-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, rgba16ui) uniform highp writeonly uimage2DArray arg_0;
+uint textureNumLayers_014a3b() {
+  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_014a3b();
+}
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/0ec222.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureNumLayers/0ec222.wgsl.expected.ir.glsl
index c7310b2..073543a 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/0ec222.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/0ec222.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+uniform highp sampler2DArray arg_0;
+uint textureNumLayers_0ec222() {
+  uint res = uint(textureSize(arg_0, 0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_0ec222();
+}
+#version 310 es
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+uniform highp sampler2DArray arg_0;
+uint textureNumLayers_0ec222() {
+  uint res = uint(textureSize(arg_0, 0).z);
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureNumLayers_0ec222();
+}
+#version 310 es
+
+
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
+uniform highp sampler2DArray arg_0;
+layout(location = 0) flat out uint vertex_main_loc0_Output;
+uint textureNumLayers_0ec222() {
+  uint res = uint(textureSize(arg_0, 0).z);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), 0u);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureNumLayers_0ec222();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/0fe8dc.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureNumLayers/0fe8dc.wgsl.expected.ir.glsl
index c7310b2..e10c70a 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/0fe8dc.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/0fe8dc.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, rgba32f) uniform highp readonly image2DArray arg_0;
+uint textureNumLayers_0fe8dc() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_0fe8dc();
+}
+#version 310 es
 
-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, rgba32f) uniform highp readonly image2DArray arg_0;
+uint textureNumLayers_0fe8dc() {
+  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_0fe8dc();
+}
+#version 310 es
+
+
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
+layout(binding = 0, rgba32f) uniform highp readonly image2DArray arg_0;
+layout(location = 0) flat out uint vertex_main_loc0_Output;
+uint textureNumLayers_0fe8dc() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), 0u);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureNumLayers_0fe8dc();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/26c9f9.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureNumLayers/26c9f9.wgsl.expected.ir.glsl
index c7310b2..75db214 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/26c9f9.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/26c9f9.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, r32i) uniform highp readonly iimage2DArray arg_0;
+uint textureNumLayers_26c9f9() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_26c9f9();
+}
+#version 310 es
 
-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, r32i) uniform highp readonly iimage2DArray arg_0;
+uint textureNumLayers_26c9f9() {
+  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_26c9f9();
+}
+#version 310 es
+
+
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
+layout(binding = 0, r32i) uniform highp readonly iimage2DArray arg_0;
+layout(location = 0) flat out uint vertex_main_loc0_Output;
+uint textureNumLayers_26c9f9() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), 0u);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureNumLayers_26c9f9();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/3465ec.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureNumLayers/3465ec.wgsl.expected.ir.glsl
index c7310b2..b9290b1 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/3465ec.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/3465ec.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, r32f) uniform highp writeonly image2DArray arg_0;
+uint textureNumLayers_3465ec() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_3465ec();
+}
+#version 310 es
 
-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, r32f) uniform highp writeonly image2DArray arg_0;
+uint textureNumLayers_3465ec() {
+  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_3465ec();
+}
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/379cc5.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureNumLayers/379cc5.wgsl.expected.ir.glsl
index c7310b2..5b8127c 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/379cc5.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/379cc5.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, r32f) uniform highp readonly image2DArray arg_0;
+uint textureNumLayers_379cc5() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_379cc5();
+}
+#version 310 es
 
-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, r32f) uniform highp readonly image2DArray arg_0;
+uint textureNumLayers_379cc5() {
+  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_379cc5();
+}
+#version 310 es
+
+
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
+layout(binding = 0, r32f) uniform highp readonly image2DArray arg_0;
+layout(location = 0) flat out uint vertex_main_loc0_Output;
+uint textureNumLayers_379cc5() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), 0u);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureNumLayers_379cc5();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/37bc8a.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureNumLayers/37bc8a.wgsl.expected.ir.glsl
index c7310b2..c9463c7 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/37bc8a.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/37bc8a.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, r32f) uniform highp image2DArray arg_0;
+uint textureNumLayers_37bc8a() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_37bc8a();
+}
+#version 310 es
 
-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, r32f) uniform highp image2DArray arg_0;
+uint textureNumLayers_37bc8a() {
+  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_37bc8a();
+}
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/3ad143.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureNumLayers/3ad143.wgsl.expected.ir.glsl
index c7310b2..0e424bd 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/3ad143.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/3ad143.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, rgba8i) uniform highp readonly iimage2DArray arg_0;
+uint textureNumLayers_3ad143() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_3ad143();
+}
+#version 310 es
 
-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, rgba8i) uniform highp readonly iimage2DArray arg_0;
+uint textureNumLayers_3ad143() {
+  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_3ad143();
+}
+#version 310 es
+
+
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
+layout(binding = 0, rgba8i) uniform highp readonly iimage2DArray arg_0;
+layout(location = 0) flat out uint vertex_main_loc0_Output;
+uint textureNumLayers_3ad143() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), 0u);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureNumLayers_3ad143();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/3eff89.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureNumLayers/3eff89.wgsl.expected.ir.glsl
index c7310b2..7a407a1 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/3eff89.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/3eff89.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, rgba8) uniform highp readonly image2DArray arg_0;
+uint textureNumLayers_3eff89() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_3eff89();
+}
+#version 310 es
 
-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, rgba8) uniform highp readonly image2DArray arg_0;
+uint textureNumLayers_3eff89() {
+  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_3eff89();
+}
+#version 310 es
+
+
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
+layout(binding = 0, rgba8) uniform highp readonly image2DArray arg_0;
+layout(location = 0) flat out uint vertex_main_loc0_Output;
+uint textureNumLayers_3eff89() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), 0u);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureNumLayers_3eff89();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/4adaad.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureNumLayers/4adaad.wgsl.expected.ir.glsl
index c7310b2..17db330 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/4adaad.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/4adaad.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, rgba32i) uniform highp readonly iimage2DArray arg_0;
+uint textureNumLayers_4adaad() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_4adaad();
+}
+#version 310 es
 
-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, rgba32i) uniform highp readonly iimage2DArray arg_0;
+uint textureNumLayers_4adaad() {
+  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_4adaad();
+}
+#version 310 es
+
+
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
+layout(binding = 0, rgba32i) uniform highp readonly iimage2DArray arg_0;
+layout(location = 0) flat out uint vertex_main_loc0_Output;
+uint textureNumLayers_4adaad() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), 0u);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureNumLayers_4adaad();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/4c4333.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureNumLayers/4c4333.wgsl.expected.ir.glsl
index c7310b2..a32e6d5 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/4c4333.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/4c4333.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, rgba8_snorm) uniform highp writeonly image2DArray arg_0;
+uint textureNumLayers_4c4333() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_4c4333();
+}
+#version 310 es
 
-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, rgba8_snorm) uniform highp writeonly image2DArray arg_0;
+uint textureNumLayers_4c4333() {
+  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_4c4333();
+}
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/520086.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureNumLayers/520086.wgsl.expected.ir.glsl
index c7310b2..120bc7e 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/520086.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/520086.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, r32ui) uniform highp uimage2DArray arg_0;
+uint textureNumLayers_520086() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_520086();
+}
+#version 310 es
 
-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, r32ui) uniform highp uimage2DArray arg_0;
+uint textureNumLayers_520086() {
+  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_520086();
+}
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/52dfc5.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureNumLayers/52dfc5.wgsl.expected.ir.glsl
index c7310b2..0a88441 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/52dfc5.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/52dfc5.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, rgba16i) uniform highp readonly iimage2DArray arg_0;
+uint textureNumLayers_52dfc5() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_52dfc5();
+}
+#version 310 es
 
-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, rgba16i) uniform highp readonly iimage2DArray arg_0;
+uint textureNumLayers_52dfc5() {
+  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_52dfc5();
+}
+#version 310 es
+
+
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
+layout(binding = 0, rgba16i) uniform highp readonly iimage2DArray arg_0;
+layout(location = 0) flat out uint vertex_main_loc0_Output;
+uint textureNumLayers_52dfc5() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), 0u);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureNumLayers_52dfc5();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/555f67.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureNumLayers/555f67.wgsl.expected.ir.glsl
index c7310b2..e6fe36c 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/555f67.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/555f67.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, rgba16ui) uniform highp readonly uimage2DArray arg_0;
+uint textureNumLayers_555f67() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_555f67();
+}
+#version 310 es
 
-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, rgba16ui) uniform highp readonly uimage2DArray arg_0;
+uint textureNumLayers_555f67() {
+  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_555f67();
+}
+#version 310 es
+
+
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
+layout(binding = 0, rgba16ui) uniform highp readonly uimage2DArray arg_0;
+layout(location = 0) flat out uint vertex_main_loc0_Output;
+uint textureNumLayers_555f67() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), 0u);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureNumLayers_555f67();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/59eb57.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureNumLayers/59eb57.wgsl.expected.ir.glsl
index c7310b2..0c932d4 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/59eb57.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/59eb57.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, r32i) uniform highp writeonly iimage2DArray arg_0;
+uint textureNumLayers_59eb57() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_59eb57();
+}
+#version 310 es
 
-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, r32i) uniform highp writeonly iimage2DArray arg_0;
+uint textureNumLayers_59eb57() {
+  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_59eb57();
+}
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/5f20d1.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureNumLayers/5f20d1.wgsl.expected.ir.glsl
index c7310b2..e14ca84 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/5f20d1.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/5f20d1.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, r32ui) uniform highp readonly uimage2DArray arg_0;
+uint textureNumLayers_5f20d1() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_5f20d1();
+}
+#version 310 es
 
-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, r32ui) uniform highp readonly uimage2DArray arg_0;
+uint textureNumLayers_5f20d1() {
+  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_5f20d1();
+}
+#version 310 es
+
+
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
+layout(binding = 0, r32ui) uniform highp readonly uimage2DArray arg_0;
+layout(location = 0) flat out uint vertex_main_loc0_Output;
+uint textureNumLayers_5f20d1() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), 0u);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureNumLayers_5f20d1();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/61bd23.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureNumLayers/61bd23.wgsl.expected.ir.glsl
index c7310b2..989ce9a 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/61bd23.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/61bd23.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, rgba8ui) uniform highp writeonly uimage2DArray arg_0;
+uint textureNumLayers_61bd23() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_61bd23();
+}
+#version 310 es
 
-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, rgba8ui) uniform highp writeonly uimage2DArray arg_0;
+uint textureNumLayers_61bd23() {
+  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_61bd23();
+}
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/77be7b.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureNumLayers/77be7b.wgsl.expected.ir.glsl
index c7310b2..57fa67b 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/77be7b.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/77be7b.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+uniform highp isampler2DArray arg_0;
+uint textureNumLayers_77be7b() {
+  uint res = uint(textureSize(arg_0, 0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_77be7b();
+}
+#version 310 es
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+uniform highp isampler2DArray arg_0;
+uint textureNumLayers_77be7b() {
+  uint res = uint(textureSize(arg_0, 0).z);
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureNumLayers_77be7b();
+}
+#version 310 es
+
+
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
+uniform highp isampler2DArray arg_0;
+layout(location = 0) flat out uint vertex_main_loc0_Output;
+uint textureNumLayers_77be7b() {
+  uint res = uint(textureSize(arg_0, 0).z);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), 0u);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureNumLayers_77be7b();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/7895f4.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureNumLayers/7895f4.wgsl.expected.ir.glsl
index c7310b2..426dce7 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/7895f4.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/7895f4.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, rgba8_snorm) uniform highp readonly image2DArray arg_0;
+uint textureNumLayers_7895f4() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_7895f4();
+}
+#version 310 es
 
-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, rgba8_snorm) uniform highp readonly image2DArray arg_0;
+uint textureNumLayers_7895f4() {
+  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_7895f4();
+}
+#version 310 es
+
+
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
+layout(binding = 0, rgba8_snorm) uniform highp readonly image2DArray arg_0;
+layout(location = 0) flat out uint vertex_main_loc0_Output;
+uint textureNumLayers_7895f4() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), 0u);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureNumLayers_7895f4();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/878dea.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureNumLayers/878dea.wgsl.expected.ir.glsl
index c7310b2..e880a59 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/878dea.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/878dea.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, rgba8i) uniform highp writeonly iimage2DArray arg_0;
+uint textureNumLayers_878dea() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_878dea();
+}
+#version 310 es
 
-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, rgba8i) uniform highp writeonly iimage2DArray arg_0;
+uint textureNumLayers_878dea() {
+  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_878dea();
+}
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/87faad.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureNumLayers/87faad.wgsl.expected.ir.glsl
index c7310b2..40350b4 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/87faad.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/87faad.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, r32ui) uniform highp writeonly uimage2DArray arg_0;
+uint textureNumLayers_87faad() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_87faad();
+}
+#version 310 es
 
-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, r32ui) uniform highp writeonly uimage2DArray arg_0;
+uint textureNumLayers_87faad() {
+  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_87faad();
+}
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/8ac32a.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureNumLayers/8ac32a.wgsl.expected.ir.glsl
index c7310b2..e597831 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/8ac32a.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/8ac32a.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+uniform highp usampler2DArray arg_0;
+uint textureNumLayers_8ac32a() {
+  uint res = uint(textureSize(arg_0, 0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_8ac32a();
+}
+#version 310 es
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+uniform highp usampler2DArray arg_0;
+uint textureNumLayers_8ac32a() {
+  uint res = uint(textureSize(arg_0, 0).z);
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureNumLayers_8ac32a();
+}
+#version 310 es
+
+
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
+uniform highp usampler2DArray arg_0;
+layout(location = 0) flat out uint vertex_main_loc0_Output;
+uint textureNumLayers_8ac32a() {
+  uint res = uint(textureSize(arg_0, 0).z);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), 0u);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureNumLayers_8ac32a();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/8bd987.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureNumLayers/8bd987.wgsl.expected.ir.glsl
index c7310b2..b5169d3 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/8bd987.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/8bd987.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, rgba32i) uniform highp writeonly iimage2DArray arg_0;
+uint textureNumLayers_8bd987() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_8bd987();
+}
+#version 310 es
 
-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, rgba32i) uniform highp writeonly iimage2DArray arg_0;
+uint textureNumLayers_8bd987() {
+  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_8bd987();
+}
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/8dbf23.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureNumLayers/8dbf23.wgsl.expected.ir.glsl
index c7310b2..d3a7082 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/8dbf23.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/8dbf23.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, rgba8) uniform highp writeonly image2DArray arg_0;
+uint textureNumLayers_8dbf23() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_8dbf23();
+}
+#version 310 es
 
-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, rgba8) uniform highp writeonly image2DArray arg_0;
+uint textureNumLayers_8dbf23() {
+  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_8dbf23();
+}
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/8e1bd0.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureNumLayers/8e1bd0.wgsl.expected.ir.glsl
index c7310b2..c26da01 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/8e1bd0.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/8e1bd0.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, r32i) uniform highp iimage2DArray arg_0;
+uint textureNumLayers_8e1bd0() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_8e1bd0();
+}
+#version 310 es
 
-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, r32i) uniform highp iimage2DArray arg_0;
+uint textureNumLayers_8e1bd0() {
+  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_8e1bd0();
+}
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/9695c6.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureNumLayers/9695c6.wgsl.expected.ir.glsl
index c7310b2..b636202 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/9695c6.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/9695c6.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, rgba32ui) uniform highp writeonly uimage2DArray arg_0;
+uint textureNumLayers_9695c6() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_9695c6();
+}
+#version 310 es
 
-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, rgba32ui) uniform highp writeonly uimage2DArray arg_0;
+uint textureNumLayers_9695c6() {
+  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_9695c6();
+}
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/98a9cf.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureNumLayers/98a9cf.wgsl.expected.ir.glsl
index c7310b2..b8eba71 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/98a9cf.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/98a9cf.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, rgba16f) uniform highp writeonly image2DArray arg_0;
+uint textureNumLayers_98a9cf() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_98a9cf();
+}
+#version 310 es
 
-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, rgba16f) uniform highp writeonly image2DArray arg_0;
+uint textureNumLayers_98a9cf() {
+  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_98a9cf();
+}
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/9c60e3.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureNumLayers/9c60e3.wgsl.expected.ir.glsl
index c7310b2..82f477b 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/9c60e3.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/9c60e3.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, rgba32ui) uniform highp readonly uimage2DArray arg_0;
+uint textureNumLayers_9c60e3() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_9c60e3();
+}
+#version 310 es
 
-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, rgba32ui) uniform highp readonly uimage2DArray arg_0;
+uint textureNumLayers_9c60e3() {
+  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_9c60e3();
+}
+#version 310 es
+
+
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
+layout(binding = 0, rgba32ui) uniform highp readonly uimage2DArray arg_0;
+layout(location = 0) flat out uint vertex_main_loc0_Output;
+uint textureNumLayers_9c60e3() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), 0u);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureNumLayers_9c60e3();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/a9d3f5.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureNumLayers/a9d3f5.wgsl.expected.ir.glsl
index c7310b2..a8f8628 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/a9d3f5.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/a9d3f5.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+uniform highp sampler2DArrayShadow arg_0;
+uint textureNumLayers_a9d3f5() {
+  uint res = uint(textureSize(arg_0, 0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_a9d3f5();
+}
+#version 310 es
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+uniform highp sampler2DArrayShadow arg_0;
+uint textureNumLayers_a9d3f5() {
+  uint res = uint(textureSize(arg_0, 0).z);
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureNumLayers_a9d3f5();
+}
+#version 310 es
+
+
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
+uniform highp sampler2DArrayShadow arg_0;
+layout(location = 0) flat out uint vertex_main_loc0_Output;
+uint textureNumLayers_a9d3f5() {
+  uint res = uint(textureSize(arg_0, 0).z);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), 0u);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureNumLayers_a9d3f5();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/d3e21f.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureNumLayers/d3e21f.wgsl.expected.ir.glsl
index c7310b2..ecb89e7 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/d3e21f.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/d3e21f.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, rgba8ui) uniform highp readonly uimage2DArray arg_0;
+uint textureNumLayers_d3e21f() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_d3e21f();
+}
+#version 310 es
 
-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, rgba8ui) uniform highp readonly uimage2DArray arg_0;
+uint textureNumLayers_d3e21f() {
+  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_d3e21f();
+}
+#version 310 es
+
+
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
+layout(binding = 0, rgba8ui) uniform highp readonly uimage2DArray arg_0;
+layout(location = 0) flat out uint vertex_main_loc0_Output;
+uint textureNumLayers_d3e21f() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), 0u);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureNumLayers_d3e21f();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/d75a0b.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureNumLayers/d75a0b.wgsl.expected.ir.glsl
index c7310b2..490eecf 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/d75a0b.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/d75a0b.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, rgba32f) uniform highp writeonly image2DArray arg_0;
+uint textureNumLayers_d75a0b() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_d75a0b();
+}
+#version 310 es
 
-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, rgba32f) uniform highp writeonly image2DArray arg_0;
+uint textureNumLayers_d75a0b() {
+  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_d75a0b();
+}
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/de8087.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureNumLayers/de8087.wgsl.expected.ir.glsl
index c7310b2..e9bd336 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/de8087.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/de8087.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, rgba16i) uniform highp writeonly iimage2DArray arg_0;
+uint textureNumLayers_de8087() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_de8087();
+}
+#version 310 es
 
-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, rgba16i) uniform highp writeonly iimage2DArray arg_0;
+uint textureNumLayers_de8087() {
+  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_de8087();
+}
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/f1783f.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureNumLayers/f1783f.wgsl.expected.ir.glsl
index c7310b2..fcbe006 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/f1783f.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/f1783f.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, rgba16f) uniform highp readonly image2DArray arg_0;
+uint textureNumLayers_f1783f() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_f1783f();
+}
+#version 310 es
 
-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, rgba16f) uniform highp readonly image2DArray arg_0;
+uint textureNumLayers_f1783f() {
+  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_f1783f();
+}
+#version 310 es
+
+
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
+layout(binding = 0, rgba16f) uniform highp readonly image2DArray arg_0;
+layout(location = 0) flat out uint vertex_main_loc0_Output;
+uint textureNumLayers_f1783f() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), 0u);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureNumLayers_f1783f();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/textureNumLayers/014a3b.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureNumLayers/014a3b.wgsl.expected.ir.glsl
index c7310b2..6ccd1da 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/014a3b.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/014a3b.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, rgba16ui) uniform highp writeonly uimage2DArray arg_0;
+uint textureNumLayers_014a3b() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_014a3b();
+}
+#version 310 es
 
-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, rgba16ui) uniform highp writeonly uimage2DArray arg_0;
+uint textureNumLayers_014a3b() {
+  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_014a3b();
+}
diff --git a/test/tint/builtins/gen/var/textureNumLayers/0ec222.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureNumLayers/0ec222.wgsl.expected.ir.glsl
index c7310b2..073543a 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/0ec222.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/0ec222.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+uniform highp sampler2DArray arg_0;
+uint textureNumLayers_0ec222() {
+  uint res = uint(textureSize(arg_0, 0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_0ec222();
+}
+#version 310 es
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+uniform highp sampler2DArray arg_0;
+uint textureNumLayers_0ec222() {
+  uint res = uint(textureSize(arg_0, 0).z);
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureNumLayers_0ec222();
+}
+#version 310 es
+
+
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
+uniform highp sampler2DArray arg_0;
+layout(location = 0) flat out uint vertex_main_loc0_Output;
+uint textureNumLayers_0ec222() {
+  uint res = uint(textureSize(arg_0, 0).z);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), 0u);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureNumLayers_0ec222();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/textureNumLayers/0fe8dc.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureNumLayers/0fe8dc.wgsl.expected.ir.glsl
index c7310b2..e10c70a 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/0fe8dc.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/0fe8dc.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, rgba32f) uniform highp readonly image2DArray arg_0;
+uint textureNumLayers_0fe8dc() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_0fe8dc();
+}
+#version 310 es
 
-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, rgba32f) uniform highp readonly image2DArray arg_0;
+uint textureNumLayers_0fe8dc() {
+  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_0fe8dc();
+}
+#version 310 es
+
+
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
+layout(binding = 0, rgba32f) uniform highp readonly image2DArray arg_0;
+layout(location = 0) flat out uint vertex_main_loc0_Output;
+uint textureNumLayers_0fe8dc() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), 0u);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureNumLayers_0fe8dc();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/textureNumLayers/26c9f9.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureNumLayers/26c9f9.wgsl.expected.ir.glsl
index c7310b2..75db214 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/26c9f9.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/26c9f9.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, r32i) uniform highp readonly iimage2DArray arg_0;
+uint textureNumLayers_26c9f9() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_26c9f9();
+}
+#version 310 es
 
-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, r32i) uniform highp readonly iimage2DArray arg_0;
+uint textureNumLayers_26c9f9() {
+  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_26c9f9();
+}
+#version 310 es
+
+
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
+layout(binding = 0, r32i) uniform highp readonly iimage2DArray arg_0;
+layout(location = 0) flat out uint vertex_main_loc0_Output;
+uint textureNumLayers_26c9f9() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), 0u);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureNumLayers_26c9f9();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/textureNumLayers/3465ec.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureNumLayers/3465ec.wgsl.expected.ir.glsl
index c7310b2..b9290b1 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/3465ec.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/3465ec.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, r32f) uniform highp writeonly image2DArray arg_0;
+uint textureNumLayers_3465ec() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_3465ec();
+}
+#version 310 es
 
-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, r32f) uniform highp writeonly image2DArray arg_0;
+uint textureNumLayers_3465ec() {
+  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_3465ec();
+}
diff --git a/test/tint/builtins/gen/var/textureNumLayers/379cc5.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureNumLayers/379cc5.wgsl.expected.ir.glsl
index c7310b2..5b8127c 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/379cc5.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/379cc5.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, r32f) uniform highp readonly image2DArray arg_0;
+uint textureNumLayers_379cc5() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_379cc5();
+}
+#version 310 es
 
-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, r32f) uniform highp readonly image2DArray arg_0;
+uint textureNumLayers_379cc5() {
+  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_379cc5();
+}
+#version 310 es
+
+
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
+layout(binding = 0, r32f) uniform highp readonly image2DArray arg_0;
+layout(location = 0) flat out uint vertex_main_loc0_Output;
+uint textureNumLayers_379cc5() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), 0u);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureNumLayers_379cc5();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/textureNumLayers/37bc8a.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureNumLayers/37bc8a.wgsl.expected.ir.glsl
index c7310b2..c9463c7 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/37bc8a.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/37bc8a.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, r32f) uniform highp image2DArray arg_0;
+uint textureNumLayers_37bc8a() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_37bc8a();
+}
+#version 310 es
 
-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, r32f) uniform highp image2DArray arg_0;
+uint textureNumLayers_37bc8a() {
+  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_37bc8a();
+}
diff --git a/test/tint/builtins/gen/var/textureNumLayers/3ad143.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureNumLayers/3ad143.wgsl.expected.ir.glsl
index c7310b2..0e424bd 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/3ad143.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/3ad143.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, rgba8i) uniform highp readonly iimage2DArray arg_0;
+uint textureNumLayers_3ad143() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_3ad143();
+}
+#version 310 es
 
-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, rgba8i) uniform highp readonly iimage2DArray arg_0;
+uint textureNumLayers_3ad143() {
+  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_3ad143();
+}
+#version 310 es
+
+
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
+layout(binding = 0, rgba8i) uniform highp readonly iimage2DArray arg_0;
+layout(location = 0) flat out uint vertex_main_loc0_Output;
+uint textureNumLayers_3ad143() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), 0u);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureNumLayers_3ad143();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/textureNumLayers/3eff89.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureNumLayers/3eff89.wgsl.expected.ir.glsl
index c7310b2..7a407a1 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/3eff89.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/3eff89.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, rgba8) uniform highp readonly image2DArray arg_0;
+uint textureNumLayers_3eff89() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_3eff89();
+}
+#version 310 es
 
-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, rgba8) uniform highp readonly image2DArray arg_0;
+uint textureNumLayers_3eff89() {
+  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_3eff89();
+}
+#version 310 es
+
+
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
+layout(binding = 0, rgba8) uniform highp readonly image2DArray arg_0;
+layout(location = 0) flat out uint vertex_main_loc0_Output;
+uint textureNumLayers_3eff89() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), 0u);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureNumLayers_3eff89();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/textureNumLayers/4adaad.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureNumLayers/4adaad.wgsl.expected.ir.glsl
index c7310b2..17db330 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/4adaad.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/4adaad.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, rgba32i) uniform highp readonly iimage2DArray arg_0;
+uint textureNumLayers_4adaad() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_4adaad();
+}
+#version 310 es
 
-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, rgba32i) uniform highp readonly iimage2DArray arg_0;
+uint textureNumLayers_4adaad() {
+  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_4adaad();
+}
+#version 310 es
+
+
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
+layout(binding = 0, rgba32i) uniform highp readonly iimage2DArray arg_0;
+layout(location = 0) flat out uint vertex_main_loc0_Output;
+uint textureNumLayers_4adaad() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), 0u);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureNumLayers_4adaad();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/textureNumLayers/4c4333.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureNumLayers/4c4333.wgsl.expected.ir.glsl
index c7310b2..a32e6d5 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/4c4333.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/4c4333.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, rgba8_snorm) uniform highp writeonly image2DArray arg_0;
+uint textureNumLayers_4c4333() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_4c4333();
+}
+#version 310 es
 
-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, rgba8_snorm) uniform highp writeonly image2DArray arg_0;
+uint textureNumLayers_4c4333() {
+  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_4c4333();
+}
diff --git a/test/tint/builtins/gen/var/textureNumLayers/520086.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureNumLayers/520086.wgsl.expected.ir.glsl
index c7310b2..120bc7e 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/520086.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/520086.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, r32ui) uniform highp uimage2DArray arg_0;
+uint textureNumLayers_520086() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_520086();
+}
+#version 310 es
 
-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, r32ui) uniform highp uimage2DArray arg_0;
+uint textureNumLayers_520086() {
+  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_520086();
+}
diff --git a/test/tint/builtins/gen/var/textureNumLayers/52dfc5.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureNumLayers/52dfc5.wgsl.expected.ir.glsl
index c7310b2..0a88441 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/52dfc5.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/52dfc5.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, rgba16i) uniform highp readonly iimage2DArray arg_0;
+uint textureNumLayers_52dfc5() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_52dfc5();
+}
+#version 310 es
 
-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, rgba16i) uniform highp readonly iimage2DArray arg_0;
+uint textureNumLayers_52dfc5() {
+  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_52dfc5();
+}
+#version 310 es
+
+
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
+layout(binding = 0, rgba16i) uniform highp readonly iimage2DArray arg_0;
+layout(location = 0) flat out uint vertex_main_loc0_Output;
+uint textureNumLayers_52dfc5() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), 0u);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureNumLayers_52dfc5();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/textureNumLayers/555f67.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureNumLayers/555f67.wgsl.expected.ir.glsl
index c7310b2..e6fe36c 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/555f67.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/555f67.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, rgba16ui) uniform highp readonly uimage2DArray arg_0;
+uint textureNumLayers_555f67() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_555f67();
+}
+#version 310 es
 
-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, rgba16ui) uniform highp readonly uimage2DArray arg_0;
+uint textureNumLayers_555f67() {
+  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_555f67();
+}
+#version 310 es
+
+
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
+layout(binding = 0, rgba16ui) uniform highp readonly uimage2DArray arg_0;
+layout(location = 0) flat out uint vertex_main_loc0_Output;
+uint textureNumLayers_555f67() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), 0u);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureNumLayers_555f67();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/textureNumLayers/59eb57.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureNumLayers/59eb57.wgsl.expected.ir.glsl
index c7310b2..0c932d4 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/59eb57.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/59eb57.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, r32i) uniform highp writeonly iimage2DArray arg_0;
+uint textureNumLayers_59eb57() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_59eb57();
+}
+#version 310 es
 
-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, r32i) uniform highp writeonly iimage2DArray arg_0;
+uint textureNumLayers_59eb57() {
+  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_59eb57();
+}
diff --git a/test/tint/builtins/gen/var/textureNumLayers/5f20d1.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureNumLayers/5f20d1.wgsl.expected.ir.glsl
index c7310b2..e14ca84 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/5f20d1.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/5f20d1.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, r32ui) uniform highp readonly uimage2DArray arg_0;
+uint textureNumLayers_5f20d1() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_5f20d1();
+}
+#version 310 es
 
-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, r32ui) uniform highp readonly uimage2DArray arg_0;
+uint textureNumLayers_5f20d1() {
+  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_5f20d1();
+}
+#version 310 es
+
+
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
+layout(binding = 0, r32ui) uniform highp readonly uimage2DArray arg_0;
+layout(location = 0) flat out uint vertex_main_loc0_Output;
+uint textureNumLayers_5f20d1() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), 0u);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureNumLayers_5f20d1();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/textureNumLayers/61bd23.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureNumLayers/61bd23.wgsl.expected.ir.glsl
index c7310b2..989ce9a 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/61bd23.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/61bd23.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, rgba8ui) uniform highp writeonly uimage2DArray arg_0;
+uint textureNumLayers_61bd23() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_61bd23();
+}
+#version 310 es
 
-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, rgba8ui) uniform highp writeonly uimage2DArray arg_0;
+uint textureNumLayers_61bd23() {
+  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_61bd23();
+}
diff --git a/test/tint/builtins/gen/var/textureNumLayers/77be7b.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureNumLayers/77be7b.wgsl.expected.ir.glsl
index c7310b2..57fa67b 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/77be7b.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/77be7b.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+uniform highp isampler2DArray arg_0;
+uint textureNumLayers_77be7b() {
+  uint res = uint(textureSize(arg_0, 0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_77be7b();
+}
+#version 310 es
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+uniform highp isampler2DArray arg_0;
+uint textureNumLayers_77be7b() {
+  uint res = uint(textureSize(arg_0, 0).z);
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureNumLayers_77be7b();
+}
+#version 310 es
+
+
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
+uniform highp isampler2DArray arg_0;
+layout(location = 0) flat out uint vertex_main_loc0_Output;
+uint textureNumLayers_77be7b() {
+  uint res = uint(textureSize(arg_0, 0).z);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), 0u);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureNumLayers_77be7b();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/textureNumLayers/7895f4.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureNumLayers/7895f4.wgsl.expected.ir.glsl
index c7310b2..426dce7 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/7895f4.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/7895f4.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, rgba8_snorm) uniform highp readonly image2DArray arg_0;
+uint textureNumLayers_7895f4() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_7895f4();
+}
+#version 310 es
 
-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, rgba8_snorm) uniform highp readonly image2DArray arg_0;
+uint textureNumLayers_7895f4() {
+  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_7895f4();
+}
+#version 310 es
+
+
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
+layout(binding = 0, rgba8_snorm) uniform highp readonly image2DArray arg_0;
+layout(location = 0) flat out uint vertex_main_loc0_Output;
+uint textureNumLayers_7895f4() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), 0u);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureNumLayers_7895f4();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/textureNumLayers/878dea.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureNumLayers/878dea.wgsl.expected.ir.glsl
index c7310b2..e880a59 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/878dea.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/878dea.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, rgba8i) uniform highp writeonly iimage2DArray arg_0;
+uint textureNumLayers_878dea() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_878dea();
+}
+#version 310 es
 
-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, rgba8i) uniform highp writeonly iimage2DArray arg_0;
+uint textureNumLayers_878dea() {
+  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_878dea();
+}
diff --git a/test/tint/builtins/gen/var/textureNumLayers/87faad.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureNumLayers/87faad.wgsl.expected.ir.glsl
index c7310b2..40350b4 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/87faad.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/87faad.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, r32ui) uniform highp writeonly uimage2DArray arg_0;
+uint textureNumLayers_87faad() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_87faad();
+}
+#version 310 es
 
-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, r32ui) uniform highp writeonly uimage2DArray arg_0;
+uint textureNumLayers_87faad() {
+  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_87faad();
+}
diff --git a/test/tint/builtins/gen/var/textureNumLayers/8ac32a.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureNumLayers/8ac32a.wgsl.expected.ir.glsl
index c7310b2..e597831 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/8ac32a.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/8ac32a.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+uniform highp usampler2DArray arg_0;
+uint textureNumLayers_8ac32a() {
+  uint res = uint(textureSize(arg_0, 0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_8ac32a();
+}
+#version 310 es
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+uniform highp usampler2DArray arg_0;
+uint textureNumLayers_8ac32a() {
+  uint res = uint(textureSize(arg_0, 0).z);
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureNumLayers_8ac32a();
+}
+#version 310 es
+
+
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
+uniform highp usampler2DArray arg_0;
+layout(location = 0) flat out uint vertex_main_loc0_Output;
+uint textureNumLayers_8ac32a() {
+  uint res = uint(textureSize(arg_0, 0).z);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), 0u);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureNumLayers_8ac32a();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/textureNumLayers/8bd987.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureNumLayers/8bd987.wgsl.expected.ir.glsl
index c7310b2..b5169d3 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/8bd987.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/8bd987.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, rgba32i) uniform highp writeonly iimage2DArray arg_0;
+uint textureNumLayers_8bd987() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_8bd987();
+}
+#version 310 es
 
-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, rgba32i) uniform highp writeonly iimage2DArray arg_0;
+uint textureNumLayers_8bd987() {
+  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_8bd987();
+}
diff --git a/test/tint/builtins/gen/var/textureNumLayers/8dbf23.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureNumLayers/8dbf23.wgsl.expected.ir.glsl
index c7310b2..d3a7082 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/8dbf23.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/8dbf23.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, rgba8) uniform highp writeonly image2DArray arg_0;
+uint textureNumLayers_8dbf23() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_8dbf23();
+}
+#version 310 es
 
-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, rgba8) uniform highp writeonly image2DArray arg_0;
+uint textureNumLayers_8dbf23() {
+  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_8dbf23();
+}
diff --git a/test/tint/builtins/gen/var/textureNumLayers/8e1bd0.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureNumLayers/8e1bd0.wgsl.expected.ir.glsl
index c7310b2..c26da01 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/8e1bd0.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/8e1bd0.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, r32i) uniform highp iimage2DArray arg_0;
+uint textureNumLayers_8e1bd0() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_8e1bd0();
+}
+#version 310 es
 
-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, r32i) uniform highp iimage2DArray arg_0;
+uint textureNumLayers_8e1bd0() {
+  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_8e1bd0();
+}
diff --git a/test/tint/builtins/gen/var/textureNumLayers/9695c6.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureNumLayers/9695c6.wgsl.expected.ir.glsl
index c7310b2..b636202 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/9695c6.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/9695c6.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, rgba32ui) uniform highp writeonly uimage2DArray arg_0;
+uint textureNumLayers_9695c6() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_9695c6();
+}
+#version 310 es
 
-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, rgba32ui) uniform highp writeonly uimage2DArray arg_0;
+uint textureNumLayers_9695c6() {
+  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_9695c6();
+}
diff --git a/test/tint/builtins/gen/var/textureNumLayers/98a9cf.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureNumLayers/98a9cf.wgsl.expected.ir.glsl
index c7310b2..b8eba71 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/98a9cf.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/98a9cf.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, rgba16f) uniform highp writeonly image2DArray arg_0;
+uint textureNumLayers_98a9cf() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_98a9cf();
+}
+#version 310 es
 
-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, rgba16f) uniform highp writeonly image2DArray arg_0;
+uint textureNumLayers_98a9cf() {
+  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_98a9cf();
+}
diff --git a/test/tint/builtins/gen/var/textureNumLayers/9c60e3.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureNumLayers/9c60e3.wgsl.expected.ir.glsl
index c7310b2..82f477b 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/9c60e3.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/9c60e3.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, rgba32ui) uniform highp readonly uimage2DArray arg_0;
+uint textureNumLayers_9c60e3() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_9c60e3();
+}
+#version 310 es
 
-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, rgba32ui) uniform highp readonly uimage2DArray arg_0;
+uint textureNumLayers_9c60e3() {
+  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_9c60e3();
+}
+#version 310 es
+
+
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
+layout(binding = 0, rgba32ui) uniform highp readonly uimage2DArray arg_0;
+layout(location = 0) flat out uint vertex_main_loc0_Output;
+uint textureNumLayers_9c60e3() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), 0u);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureNumLayers_9c60e3();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/textureNumLayers/a9d3f5.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureNumLayers/a9d3f5.wgsl.expected.ir.glsl
index c7310b2..a8f8628 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/a9d3f5.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/a9d3f5.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+uniform highp sampler2DArrayShadow arg_0;
+uint textureNumLayers_a9d3f5() {
+  uint res = uint(textureSize(arg_0, 0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_a9d3f5();
+}
+#version 310 es
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+uniform highp sampler2DArrayShadow arg_0;
+uint textureNumLayers_a9d3f5() {
+  uint res = uint(textureSize(arg_0, 0).z);
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = textureNumLayers_a9d3f5();
+}
+#version 310 es
+
+
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
+uniform highp sampler2DArrayShadow arg_0;
+layout(location = 0) flat out uint vertex_main_loc0_Output;
+uint textureNumLayers_a9d3f5() {
+  uint res = uint(textureSize(arg_0, 0).z);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), 0u);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureNumLayers_a9d3f5();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/textureNumLayers/d3e21f.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureNumLayers/d3e21f.wgsl.expected.ir.glsl
index c7310b2..ecb89e7 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/d3e21f.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/d3e21f.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, rgba8ui) uniform highp readonly uimage2DArray arg_0;
+uint textureNumLayers_d3e21f() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_d3e21f();
+}
+#version 310 es
 
-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, rgba8ui) uniform highp readonly uimage2DArray arg_0;
+uint textureNumLayers_d3e21f() {
+  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_d3e21f();
+}
+#version 310 es
+
+
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
+layout(binding = 0, rgba8ui) uniform highp readonly uimage2DArray arg_0;
+layout(location = 0) flat out uint vertex_main_loc0_Output;
+uint textureNumLayers_d3e21f() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), 0u);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureNumLayers_d3e21f();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/textureNumLayers/d75a0b.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureNumLayers/d75a0b.wgsl.expected.ir.glsl
index c7310b2..490eecf 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/d75a0b.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/d75a0b.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, rgba32f) uniform highp writeonly image2DArray arg_0;
+uint textureNumLayers_d75a0b() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_d75a0b();
+}
+#version 310 es
 
-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, rgba32f) uniform highp writeonly image2DArray arg_0;
+uint textureNumLayers_d75a0b() {
+  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_d75a0b();
+}
diff --git a/test/tint/builtins/gen/var/textureNumLayers/de8087.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureNumLayers/de8087.wgsl.expected.ir.glsl
index c7310b2..e9bd336 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/de8087.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/de8087.wgsl.expected.ir.glsl
@@ -1,11 +1,31 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, rgba16i) uniform highp writeonly iimage2DArray arg_0;
+uint textureNumLayers_de8087() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_de8087();
+}
+#version 310 es
 
-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, rgba16i) uniform highp writeonly iimage2DArray arg_0;
+uint textureNumLayers_de8087() {
+  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_de8087();
+}
diff --git a/test/tint/builtins/gen/var/textureNumLayers/f1783f.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureNumLayers/f1783f.wgsl.expected.ir.glsl
index c7310b2..fcbe006 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/f1783f.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/f1783f.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+layout(binding = 0, rgba16f) uniform highp readonly image2DArray arg_0;
+uint textureNumLayers_f1783f() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+void main() {
+  v.tint_symbol = textureNumLayers_f1783f();
+}
+#version 310 es
 
-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, rgba16f) uniform highp readonly image2DArray arg_0;
+uint textureNumLayers_f1783f() {
+  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_f1783f();
+}
+#version 310 es
+
+
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
+layout(binding = 0, rgba16f) uniform highp readonly image2DArray arg_0;
+layout(location = 0) flat out uint vertex_main_loc0_Output;
+uint textureNumLayers_f1783f() {
+  uint res = uint(imageSize(arg_0).z);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), 0u);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = textureNumLayers_f1783f();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/unittest/reader/spirv/ImageQuerySizeLod_Arrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.glsl b/test/tint/unittest/reader/spirv/ImageQuerySizeLod_Arrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.glsl
deleted file mode 100644
index fbd651e..0000000
--- a/test/tint/unittest/reader/spirv/ImageQuerySizeLod_Arrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.glsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/unittest/reader/spirv/ImageQuerySizeLod_Arrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.glsl b/test/tint/unittest/reader/spirv/ImageQuerySizeLod_Arrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.glsl
deleted file mode 100644
index fbd651e..0000000
--- a/test/tint/unittest/reader/spirv/ImageQuerySizeLod_Arrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.glsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap