[glsl][ir] Polyfill the barrier commands.
This CL converts the `workgroupBarrier`, `storageBarrier` and
`textureBarrier` to their GLSL equivalents.
Bug: 42251044
Change-Id: I7f0c4094aa0ac4f8121d655e5e86cd9754c9af43
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/205734
Commit-Queue: dan sinclair <dsinclair@chromium.org>
Reviewed-by: James Price <jrprice@google.com>
diff --git a/src/tint/lang/glsl/BUILD.bazel b/src/tint/lang/glsl/BUILD.bazel
index 1a114c6..6459e96 100644
--- a/src/tint/lang/glsl/BUILD.bazel
+++ b/src/tint/lang/glsl/BUILD.bazel
@@ -36,4 +36,18 @@
load("//src/tint:flags.bzl", "COPTS")
load("@bazel_skylib//lib:selects.bzl", "selects")
+cc_library(
+ name = "glsl",
+ srcs = [
+ "builtin_fn.cc",
+ ],
+ hdrs = [
+ "builtin_fn.h",
+ ],
+ deps = [
+ "//src/tint/utils/traits",
+ ],
+ copts = COPTS,
+ visibility = ["//visibility:public"],
+)
diff --git a/src/tint/lang/glsl/BUILD.cmake b/src/tint/lang/glsl/BUILD.cmake
index 042c033..646aa99 100644
--- a/src/tint/lang/glsl/BUILD.cmake
+++ b/src/tint/lang/glsl/BUILD.cmake
@@ -34,6 +34,20 @@
# Do not modify this file directly
################################################################################
+include(lang/glsl/intrinsic/BUILD.cmake)
include(lang/glsl/ir/BUILD.cmake)
include(lang/glsl/validate/BUILD.cmake)
include(lang/glsl/writer/BUILD.cmake)
+
+################################################################################
+# Target: tint_lang_glsl
+# Kind: lib
+################################################################################
+tint_add_target(tint_lang_glsl lib
+ lang/glsl/builtin_fn.cc
+ lang/glsl/builtin_fn.h
+)
+
+tint_target_add_dependencies(tint_lang_glsl lib
+ tint_utils_traits
+)
diff --git a/src/tint/lang/glsl/BUILD.gn b/src/tint/lang/glsl/BUILD.gn
index bd18a5e..dc42ba4 100644
--- a/src/tint/lang/glsl/BUILD.gn
+++ b/src/tint/lang/glsl/BUILD.gn
@@ -38,3 +38,11 @@
import("../../../../scripts/tint_overrides_with_defaults.gni")
import("${tint_src_dir}/tint.gni")
+
+libtint_source_set("glsl") {
+ sources = [
+ "builtin_fn.cc",
+ "builtin_fn.h",
+ ]
+ deps = [ "${tint_src_dir}/utils/traits" ]
+}
diff --git a/src/tint/lang/glsl/builtin_fn.cc b/src/tint/lang/glsl/builtin_fn.cc
new file mode 100644
index 0000000..0b018fc
--- /dev/null
+++ b/src/tint/lang/glsl/builtin_fn.cc
@@ -0,0 +1,55 @@
+// Copyright 2024 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+// src/tint/lang/glsl/builtin_fn.cc.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+#include "src/tint/lang/glsl/builtin_fn.h"
+
+namespace tint::glsl {
+
+const char* str(BuiltinFn i) {
+ switch (i) {
+ case BuiltinFn::kNone:
+ return "<none>";
+ case BuiltinFn::kBarrier:
+ return "barrier";
+ case BuiltinFn::kMemoryBarrierBuffer:
+ return "memoryBarrierBuffer";
+ case BuiltinFn::kMemoryBarrierImage:
+ return "memoryBarrierImage";
+ }
+ return "<unknown>";
+}
+
+} // namespace tint::glsl
diff --git a/src/tint/lang/glsl/builtin_fn.cc.tmpl b/src/tint/lang/glsl/builtin_fn.cc.tmpl
new file mode 100644
index 0000000..4c5db03
--- /dev/null
+++ b/src/tint/lang/glsl/builtin_fn.cc.tmpl
@@ -0,0 +1,31 @@
+{{- /*
+--------------------------------------------------------------------------------
+Template file for use with tools/src/cmd/gen to generate builtin_fn.cc
+
+To update the generated file, run:
+ ./tools/run gen
+
+See:
+* tools/src/cmd/gen for structures used by this template
+* https://golang.org/pkg/text/template/ for documentation on the template syntax
+--------------------------------------------------------------------------------
+*/ -}}
+
+{{- $I := LoadIntrinsics "src/tint/lang/glsl/glsl.def" -}}
+#include "src/tint/lang/glsl/builtin_fn.h"
+
+namespace tint::glsl {
+
+const char* str(BuiltinFn i) {
+ switch (i) {
+ case BuiltinFn::kNone:
+ return "<none>";
+{{- range $I.Sem.Builtins }}
+ case BuiltinFn::k{{PascalCase .Name}}:
+ return "{{.Name}}";
+{{- end }}
+ }
+ return "<unknown>";
+}
+
+} // namespace tint::glsl
diff --git a/src/tint/lang/glsl/builtin_fn.h b/src/tint/lang/glsl/builtin_fn.h
new file mode 100644
index 0000000..ce15a3a
--- /dev/null
+++ b/src/tint/lang/glsl/builtin_fn.h
@@ -0,0 +1,68 @@
+// Copyright 2024 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+// src/tint/lang/glsl/builtin_fn.h.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+#ifndef SRC_TINT_LANG_GLSL_BUILTIN_FN_H_
+#define SRC_TINT_LANG_GLSL_BUILTIN_FN_H_
+
+#include <cstdint>
+#include <string>
+
+#include "src/tint/utils/traits/traits.h"
+
+// \cond DO_NOT_DOCUMENT
+namespace tint::glsl {
+
+/// Enumerator of all builtin functions
+enum class BuiltinFn : uint8_t {
+ kBarrier,
+ kMemoryBarrierBuffer,
+ kMemoryBarrierImage,
+ kNone,
+};
+
+/// @returns the name of the builtin function type.
+const char* str(BuiltinFn i);
+
+/// Emits the name of the builtin function type.
+template <typename STREAM, typename = traits::EnableIfIsOStream<STREAM>>
+auto& operator<<(STREAM& o, BuiltinFn i) {
+ return o << str(i);
+}
+
+} // namespace tint::glsl
+// \endcond
+
+#endif // SRC_TINT_LANG_GLSL_BUILTIN_FN_H_
diff --git a/src/tint/lang/glsl/builtin_fn.h.tmpl b/src/tint/lang/glsl/builtin_fn.h.tmpl
new file mode 100644
index 0000000..7dc1fc9
--- /dev/null
+++ b/src/tint/lang/glsl/builtin_fn.h.tmpl
@@ -0,0 +1,47 @@
+{{- /*
+--------------------------------------------------------------------------------
+Template file for use with tools/src/cmd/gen to generate builtin_fn.h
+
+To update the generated file, run:
+ ./tools/run gen
+
+See:
+* tools/src/cmd/gen for structures used by this template
+* https://golang.org/pkg/text/template/ for documentation on the template syntax
+--------------------------------------------------------------------------------
+*/ -}}
+
+{{- $I := LoadIntrinsics "src/tint/lang/glsl/glsl.def" -}}
+
+#ifndef SRC_TINT_LANG_GLSL_BUILTIN_FN_H_
+#define SRC_TINT_LANG_GLSL_BUILTIN_FN_H_
+
+#include <cstdint>
+#include <string>
+
+#include "src/tint/utils/traits/traits.h"
+
+// \cond DO_NOT_DOCUMENT
+namespace tint::glsl {
+
+/// Enumerator of all builtin functions
+enum class BuiltinFn : uint8_t {
+{{- range $I.Sem.Builtins }}
+ k{{PascalCase .Name}},
+{{- end }}
+ kNone,
+};
+
+/// @returns the name of the builtin function type.
+const char* str(BuiltinFn i);
+
+/// Emits the name of the builtin function type.
+template <typename STREAM, typename = traits::EnableIfIsOStream<STREAM>>
+auto& operator<<(STREAM& o, BuiltinFn i) {
+ return o << str(i);
+}
+
+} // namespace tint::glsl
+// \endcond
+
+#endif // SRC_TINT_LANG_GLSL_BUILTIN_FN_H_
diff --git a/src/tint/lang/glsl/glsl.def b/src/tint/lang/glsl/glsl.def
new file mode 100644
index 0000000..b619296
--- /dev/null
+++ b/src/tint/lang/glsl/glsl.def
@@ -0,0 +1,55 @@
+// Copyright 2024 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// GLSL builtin definition file //
+// //
+// After modifying this file, run: //
+// tools/run gen //
+// from the Dawn source directory. //
+// //
+// See docs/tint/intrinsic_definition_files.md for syntax //
+////////////////////////////////////////////////////////////////////////////////
+
+
+////////////////////////////////////////////////////////////////////////////////
+// Types //
+////////////////////////////////////////////////////////////////////////////////
+
+
+////////////////////////////////////////////////////////////////////////////////
+// Type matchers //
+////////////////////////////////////////////////////////////////////////////////
+
+
+////////////////////////////////////////////////////////////////////////////////
+// Builtin Functions //
+////////////////////////////////////////////////////////////////////////////////
+
+fn barrier()
+fn memoryBarrierBuffer()
+fn memoryBarrierImage()
diff --git a/src/tint/lang/glsl/intrinsic/BUILD.bazel b/src/tint/lang/glsl/intrinsic/BUILD.bazel
new file mode 100644
index 0000000..66d9b4d
--- /dev/null
+++ b/src/tint/lang/glsl/intrinsic/BUILD.bazel
@@ -0,0 +1,71 @@
+# Copyright 2024 The Dawn & Tint Authors
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+#
+# 1. Redistributions of source code must retain the above copyright notice, this
+# list of conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright notice,
+# this list of conditions and the following disclaimer in the documentation
+# and/or other materials provided with the distribution.
+#
+# 3. Neither the name of the copyright holder nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+################################################################################
+# File generated by 'tools/src/cmd/gen' using the template:
+# tools/src/cmd/gen/build/BUILD.bazel.tmpl
+#
+# To regenerate run: './tools/run gen'
+#
+# Do not modify this file directly
+################################################################################
+
+load("//src/tint:flags.bzl", "COPTS")
+load("@bazel_skylib//lib:selects.bzl", "selects")
+cc_library(
+ name = "intrinsic",
+ srcs = [
+ "data.cc",
+ ],
+ hdrs = [
+ "dialect.h",
+ ],
+ deps = [
+ "//src/tint/lang/core",
+ "//src/tint/lang/core/constant",
+ "//src/tint/lang/core/intrinsic",
+ "//src/tint/lang/core/type",
+ "//src/tint/lang/glsl",
+ "//src/tint/utils/containers",
+ "//src/tint/utils/diagnostic",
+ "//src/tint/utils/ice",
+ "//src/tint/utils/id",
+ "//src/tint/utils/macros",
+ "//src/tint/utils/math",
+ "//src/tint/utils/memory",
+ "//src/tint/utils/reflection",
+ "//src/tint/utils/result",
+ "//src/tint/utils/rtti",
+ "//src/tint/utils/symbol",
+ "//src/tint/utils/text",
+ "//src/tint/utils/traits",
+ "//src/utils",
+ ],
+ copts = COPTS,
+ visibility = ["//visibility:public"],
+)
+
diff --git a/src/tint/lang/glsl/intrinsic/BUILD.cmake b/src/tint/lang/glsl/intrinsic/BUILD.cmake
new file mode 100644
index 0000000..9b20294
--- /dev/null
+++ b/src/tint/lang/glsl/intrinsic/BUILD.cmake
@@ -0,0 +1,69 @@
+# Copyright 2024 The Dawn & Tint Authors
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+#
+# 1. Redistributions of source code must retain the above copyright notice, this
+# list of conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright notice,
+# this list of conditions and the following disclaimer in the documentation
+# and/or other materials provided with the distribution.
+#
+# 3. Neither the name of the copyright holder nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+################################################################################
+# File generated by 'tools/src/cmd/gen' using the template:
+# tools/src/cmd/gen/build/BUILD.cmake.tmpl
+#
+# To regenerate run: './tools/run gen'
+#
+# Do not modify this file directly
+################################################################################
+
+################################################################################
+# Target: tint_lang_glsl_intrinsic
+# Kind: lib
+################################################################################
+tint_add_target(tint_lang_glsl_intrinsic lib
+ lang/glsl/intrinsic/data.cc
+ lang/glsl/intrinsic/dialect.h
+)
+
+tint_target_add_dependencies(tint_lang_glsl_intrinsic lib
+ tint_lang_core
+ tint_lang_core_constant
+ tint_lang_core_intrinsic
+ tint_lang_core_type
+ tint_lang_glsl
+ tint_utils_containers
+ tint_utils_diagnostic
+ tint_utils_ice
+ tint_utils_id
+ tint_utils_macros
+ tint_utils_math
+ tint_utils_memory
+ tint_utils_reflection
+ tint_utils_result
+ tint_utils_rtti
+ tint_utils_symbol
+ tint_utils_text
+ tint_utils_traits
+)
+
+tint_target_add_external_dependencies(tint_lang_glsl_intrinsic lib
+ "src_utils"
+)
diff --git a/src/tint/lang/glsl/intrinsic/BUILD.gn b/src/tint/lang/glsl/intrinsic/BUILD.gn
new file mode 100644
index 0000000..76bdad3
--- /dev/null
+++ b/src/tint/lang/glsl/intrinsic/BUILD.gn
@@ -0,0 +1,68 @@
+# Copyright 2024 The Dawn & Tint Authors
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+#
+# 1. Redistributions of source code must retain the above copyright notice, this
+# list of conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright notice,
+# this list of conditions and the following disclaimer in the documentation
+# and/or other materials provided with the distribution.
+#
+# 3. Neither the name of the copyright holder nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+################################################################################
+# File generated by 'tools/src/cmd/gen' using the template:
+# tools/src/cmd/gen/build/BUILD.gn.tmpl
+#
+# To regenerate run: './tools/run gen'
+#
+# Do not modify this file directly
+################################################################################
+
+import("../../../../../scripts/dawn_overrides_with_defaults.gni")
+import("../../../../../scripts/tint_overrides_with_defaults.gni")
+
+import("${tint_src_dir}/tint.gni")
+
+libtint_source_set("intrinsic") {
+ sources = [
+ "data.cc",
+ "dialect.h",
+ ]
+ deps = [
+ "${dawn_root}/src/utils:utils",
+ "${tint_src_dir}/lang/core",
+ "${tint_src_dir}/lang/core/constant",
+ "${tint_src_dir}/lang/core/intrinsic",
+ "${tint_src_dir}/lang/core/type",
+ "${tint_src_dir}/lang/glsl",
+ "${tint_src_dir}/utils/containers",
+ "${tint_src_dir}/utils/diagnostic",
+ "${tint_src_dir}/utils/ice",
+ "${tint_src_dir}/utils/id",
+ "${tint_src_dir}/utils/macros",
+ "${tint_src_dir}/utils/math",
+ "${tint_src_dir}/utils/memory",
+ "${tint_src_dir}/utils/reflection",
+ "${tint_src_dir}/utils/result",
+ "${tint_src_dir}/utils/rtti",
+ "${tint_src_dir}/utils/symbol",
+ "${tint_src_dir}/utils/text",
+ "${tint_src_dir}/utils/traits",
+ ]
+}
diff --git a/src/tint/lang/glsl/intrinsic/data.cc b/src/tint/lang/glsl/intrinsic/data.cc
new file mode 100644
index 0000000..e2befb3
--- /dev/null
+++ b/src/tint/lang/glsl/intrinsic/data.cc
@@ -0,0 +1,156 @@
+// Copyright 2024 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+// src/tint/lang/glsl/intrinsic/data.cc.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+#include <limits>
+#include <string>
+
+#include "src/tint/lang/core/intrinsic/type_matchers.h"
+#include "src/tint/lang/glsl/intrinsic/dialect.h"
+#include "src/tint/utils/text/string_stream.h"
+
+namespace tint::glsl::intrinsic {
+
+using namespace tint::core::intrinsic; // NOLINT(build/namespaces)
+
+namespace {
+
+using ConstEvalFunctionIndex = tint::core::intrinsic::ConstEvalFunctionIndex;
+using IntrinsicInfo = tint::core::intrinsic::IntrinsicInfo;
+using MatcherIndicesIndex = tint::core::intrinsic::MatcherIndicesIndex;
+using MatchState = tint::core::intrinsic::MatchState;
+using Number = tint::core::intrinsic::Number;
+using NumberMatcher = tint::core::intrinsic::NumberMatcher;
+using NumberMatcherIndex = tint::core::intrinsic::NumberMatcherIndex;
+using OverloadFlag = tint::core::intrinsic::OverloadFlag;
+using OverloadFlags = tint::core::intrinsic::OverloadFlags;
+using OverloadIndex = tint::core::intrinsic::OverloadIndex;
+using OverloadInfo = tint::core::intrinsic::OverloadInfo;
+using ParameterIndex = tint::core::intrinsic::ParameterIndex;
+using ParameterInfo = tint::core::intrinsic::ParameterInfo;
+using StringStream = tint::StringStream;
+using TemplateIndex = tint::core::intrinsic::TemplateIndex;
+using Type = tint::core::type::Type;
+using TypeMatcher = tint::core::intrinsic::TypeMatcher;
+using TypeMatcherIndex = tint::core::intrinsic::TypeMatcherIndex;
+
+template <size_t N>
+using TemplateNumberMatcher = tint::core::intrinsic::TemplateNumberMatcher<N>;
+
+template <size_t N>
+using TemplateTypeMatcher = tint::core::intrinsic::TemplateTypeMatcher<N>;
+
+// clang-format off
+
+/// Type and number matchers
+
+constexpr OverloadInfo kOverloads[] = {
+ {
+ /* [0] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
+ /* num_parameters */ 0,
+ /* num_explicit_templates */ 0,
+ /* num_templates */ 0,
+ /* templates */ TemplateIndex(/* invalid */),
+ /* parameters */ ParameterIndex(/* invalid */),
+ /* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+ },
+};
+
+static_assert(OverloadIndex::CanIndex(kOverloads),
+ "OverloadIndex is not large enough to index kOverloads");
+
+constexpr IntrinsicInfo kBuiltins[] = {
+ {
+ /* [0] */
+ /* fn barrier() */
+ /* num overloads */ 1,
+ /* overloads */ OverloadIndex(0),
+ },
+ {
+ /* [1] */
+ /* fn memoryBarrierBuffer() */
+ /* num overloads */ 1,
+ /* overloads */ OverloadIndex(0),
+ },
+ {
+ /* [2] */
+ /* fn memoryBarrierImage() */
+ /* num overloads */ 1,
+ /* overloads */ OverloadIndex(0),
+ },
+};
+
+// clang-format on
+
+} // anonymous namespace
+
+const core::intrinsic::TableData Dialect::kData{
+ /* templates */ Empty,
+ /* type_matcher_indices */ Empty,
+ /* type_matchers */ Empty,
+ /* number_matchers */ Empty,
+ /* parameters */ Empty,
+ /* overloads */ kOverloads,
+ /* const_eval_functions */ Empty,
+ /* ctor_conv */ Empty,
+ /* builtins */ kBuiltins,
+ /* binary '+' */ tint::core::intrinsic::kNoOverloads,
+ /* binary '-' */ tint::core::intrinsic::kNoOverloads,
+ /* binary '*' */ tint::core::intrinsic::kNoOverloads,
+ /* binary '/' */ tint::core::intrinsic::kNoOverloads,
+ /* binary '%' */ tint::core::intrinsic::kNoOverloads,
+ /* binary '^' */ tint::core::intrinsic::kNoOverloads,
+ /* binary '&' */ tint::core::intrinsic::kNoOverloads,
+ /* binary '|' */ tint::core::intrinsic::kNoOverloads,
+ /* binary '&&' */ tint::core::intrinsic::kNoOverloads,
+ /* binary '||' */ tint::core::intrinsic::kNoOverloads,
+ /* binary '==' */ tint::core::intrinsic::kNoOverloads,
+ /* binary '!=' */ tint::core::intrinsic::kNoOverloads,
+ /* binary '<' */ tint::core::intrinsic::kNoOverloads,
+ /* binary '>' */ tint::core::intrinsic::kNoOverloads,
+ /* binary '<=' */ tint::core::intrinsic::kNoOverloads,
+ /* binary '>=' */ tint::core::intrinsic::kNoOverloads,
+ /* binary '<<' */ tint::core::intrinsic::kNoOverloads,
+ /* binary '>>' */ tint::core::intrinsic::kNoOverloads,
+ /* unary '!' */ tint::core::intrinsic::kNoOverloads,
+ /* unary '~' */ tint::core::intrinsic::kNoOverloads,
+ /* unary '-' */ tint::core::intrinsic::kNoOverloads,
+ /* unary '*' */ tint::core::intrinsic::kNoOverloads,
+ /* unary '&' */ tint::core::intrinsic::kNoOverloads,
+};
+
+} // namespace tint::glsl::intrinsic
diff --git a/src/tint/lang/glsl/intrinsic/data.cc.tmpl b/src/tint/lang/glsl/intrinsic/data.cc.tmpl
new file mode 100644
index 0000000..f5439f2
--- /dev/null
+++ b/src/tint/lang/glsl/intrinsic/data.cc.tmpl
@@ -0,0 +1,34 @@
+{{- /*
+--------------------------------------------------------------------------------
+Template file for use with tools/src/cmd/gen to generate intrinsic_table.inl
+Used by BuiltinTable.cc for builtin overload resolution.
+
+To update the generated file, run:
+ ./tools/run gen
+
+See:
+* tools/src/cmd/gen for structures used by this template
+* https://golang.org/pkg/text/template/ for documentation on the template syntax
+--------------------------------------------------------------------------------
+*/ -}}
+
+{{- Import "src/tint/utils/templates/intrinsic_table_data.tmpl.inc" -}}
+
+{{- $I := LoadIntrinsics "src/tint/lang/glsl/glsl.def" -}}
+
+#include <limits>
+#include <string>
+
+#include "src/tint/lang/core/intrinsic/type_matchers.h"
+#include "src/tint/lang/glsl/intrinsic/dialect.h"
+#include "src/tint/utils/text/string_stream.h"
+
+namespace tint::glsl::intrinsic {
+
+using namespace tint::core::intrinsic; // NOLINT(build/namespaces)
+
+{{ Eval "Data"
+ "Intrinsics" $I
+ "Name" "Dialect::kData" -}}
+
+} // namespace tint::glsl::intrinsic
diff --git a/src/tint/lang/glsl/intrinsic/dialect.h b/src/tint/lang/glsl/intrinsic/dialect.h
new file mode 100644
index 0000000..8ae389a
--- /dev/null
+++ b/src/tint/lang/glsl/intrinsic/dialect.h
@@ -0,0 +1,51 @@
+// Copyright 2024 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef SRC_TINT_LANG_GLSL_INTRINSIC_DIALECT_H_
+#define SRC_TINT_LANG_GLSL_INTRINSIC_DIALECT_H_
+
+#include "src/tint/lang/core/intrinsic/table_data.h"
+#include "src/tint/lang/glsl/builtin_fn.h"
+
+namespace tint::glsl::intrinsic {
+
+/// Dialect holds the intrinsic table data and types for the GLSL dialect
+struct Dialect {
+ /// The dialect's intrinsic table data
+ static const core::intrinsic::TableData kData;
+
+ /// The dialect's builtin function enumerator
+ using BuiltinFn = glsl::BuiltinFn;
+
+ /// @returns the name of the builtin function @p fn
+ /// @param fn the builtin function
+ static std::string_view ToString(BuiltinFn fn) { return str(fn); }
+};
+
+} // namespace tint::glsl::intrinsic
+
+#endif // SRC_TINT_LANG_GLSL_INTRINSIC_DIALECT_H_
diff --git a/src/tint/lang/glsl/ir/BUILD.bazel b/src/tint/lang/glsl/ir/BUILD.bazel
index 73c1862..4f04c35 100644
--- a/src/tint/lang/glsl/ir/BUILD.bazel
+++ b/src/tint/lang/glsl/ir/BUILD.bazel
@@ -39,17 +39,22 @@
cc_library(
name = "ir",
srcs = [
+ "builtin_call.cc",
"ternary.cc",
],
hdrs = [
+ "builtin_call.h",
"ternary.h",
],
deps = [
"//src/tint/api/common",
"//src/tint/lang/core",
"//src/tint/lang/core/constant",
+ "//src/tint/lang/core/intrinsic",
"//src/tint/lang/core/ir",
"//src/tint/lang/core/type",
+ "//src/tint/lang/glsl",
+ "//src/tint/lang/glsl/intrinsic",
"//src/tint/utils/containers",
"//src/tint/utils/diagnostic",
"//src/tint/utils/ice",
@@ -72,6 +77,7 @@
name = "test",
alwayslink = True,
srcs = [
+ "builtin_call_test.cc",
"ternary_test.cc",
],
deps = [
@@ -82,6 +88,8 @@
"//src/tint/lang/core/ir",
"//src/tint/lang/core/ir:test",
"//src/tint/lang/core/type",
+ "//src/tint/lang/glsl",
+ "//src/tint/lang/glsl/intrinsic",
"//src/tint/lang/glsl/ir",
"//src/tint/utils/containers",
"//src/tint/utils/diagnostic",
diff --git a/src/tint/lang/glsl/ir/BUILD.cmake b/src/tint/lang/glsl/ir/BUILD.cmake
index 7f7a039..acaa18f 100644
--- a/src/tint/lang/glsl/ir/BUILD.cmake
+++ b/src/tint/lang/glsl/ir/BUILD.cmake
@@ -39,6 +39,8 @@
# Kind: lib
################################################################################
tint_add_target(tint_lang_glsl_ir lib
+ lang/glsl/ir/builtin_call.cc
+ lang/glsl/ir/builtin_call.h
lang/glsl/ir/ternary.cc
lang/glsl/ir/ternary.h
)
@@ -47,8 +49,11 @@
tint_api_common
tint_lang_core
tint_lang_core_constant
+ tint_lang_core_intrinsic
tint_lang_core_ir
tint_lang_core_type
+ tint_lang_glsl
+ tint_lang_glsl_intrinsic
tint_utils_containers
tint_utils_diagnostic
tint_utils_ice
@@ -73,6 +78,7 @@
# Kind: test
################################################################################
tint_add_target(tint_lang_glsl_ir_test test
+ lang/glsl/ir/builtin_call_test.cc
lang/glsl/ir/ternary_test.cc
)
@@ -84,6 +90,8 @@
tint_lang_core_ir
tint_lang_core_ir_test
tint_lang_core_type
+ tint_lang_glsl
+ tint_lang_glsl_intrinsic
tint_lang_glsl_ir
tint_utils_containers
tint_utils_diagnostic
diff --git a/src/tint/lang/glsl/ir/BUILD.gn b/src/tint/lang/glsl/ir/BUILD.gn
index bd8959a..54868e1 100644
--- a/src/tint/lang/glsl/ir/BUILD.gn
+++ b/src/tint/lang/glsl/ir/BUILD.gn
@@ -45,6 +45,8 @@
libtint_source_set("ir") {
sources = [
+ "builtin_call.cc",
+ "builtin_call.h",
"ternary.cc",
"ternary.h",
]
@@ -53,8 +55,11 @@
"${tint_src_dir}/api/common",
"${tint_src_dir}/lang/core",
"${tint_src_dir}/lang/core/constant",
+ "${tint_src_dir}/lang/core/intrinsic",
"${tint_src_dir}/lang/core/ir",
"${tint_src_dir}/lang/core/type",
+ "${tint_src_dir}/lang/glsl",
+ "${tint_src_dir}/lang/glsl/intrinsic",
"${tint_src_dir}/utils/containers",
"${tint_src_dir}/utils/diagnostic",
"${tint_src_dir}/utils/ice",
@@ -72,7 +77,10 @@
}
if (tint_build_unittests) {
tint_unittests_source_set("unittests") {
- sources = [ "ternary_test.cc" ]
+ sources = [
+ "builtin_call_test.cc",
+ "ternary_test.cc",
+ ]
deps = [
"${dawn_root}/src/utils:utils",
"${tint_src_dir}:gmock_and_gtest",
@@ -83,6 +91,8 @@
"${tint_src_dir}/lang/core/ir",
"${tint_src_dir}/lang/core/ir:unittests",
"${tint_src_dir}/lang/core/type",
+ "${tint_src_dir}/lang/glsl",
+ "${tint_src_dir}/lang/glsl/intrinsic",
"${tint_src_dir}/lang/glsl/ir",
"${tint_src_dir}/utils/containers",
"${tint_src_dir}/utils/diagnostic",
diff --git a/src/tint/lang/glsl/ir/builtin_call.cc b/src/tint/lang/glsl/ir/builtin_call.cc
new file mode 100644
index 0000000..a32eebb
--- /dev/null
+++ b/src/tint/lang/glsl/ir/builtin_call.cc
@@ -0,0 +1,57 @@
+// Copyright 2024 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include "src/tint/lang/glsl/ir/builtin_call.h"
+
+#include <utility>
+
+#include "src/tint/lang/core/ir/clone_context.h"
+#include "src/tint/lang/core/ir/module.h"
+#include "src/tint/utils/ice/ice.h"
+
+TINT_INSTANTIATE_TYPEINFO(tint::glsl::ir::BuiltinCall);
+
+namespace tint::glsl::ir {
+
+BuiltinCall::BuiltinCall(Id id,
+ core::ir::InstructionResult* result,
+ BuiltinFn func,
+ VectorRef<core::ir::Value*> arguments)
+ : Base(id, result, arguments), func_(func) {
+ flags_.Add(Flag::kSequenced);
+ TINT_ASSERT(func != BuiltinFn::kNone);
+}
+
+BuiltinCall::~BuiltinCall() = default;
+
+BuiltinCall* BuiltinCall::Clone(core::ir::CloneContext& ctx) {
+ auto* new_result = ctx.Clone(Result(0));
+ auto new_args = ctx.Clone<BuiltinCall::kDefaultNumOperands>(Args());
+ return ctx.ir.CreateInstruction<BuiltinCall>(new_result, func_, new_args);
+}
+
+} // namespace tint::glsl::ir
diff --git a/src/tint/lang/glsl/ir/builtin_call.h b/src/tint/lang/glsl/ir/builtin_call.h
new file mode 100644
index 0000000..17011d6
--- /dev/null
+++ b/src/tint/lang/glsl/ir/builtin_call.h
@@ -0,0 +1,79 @@
+// Copyright 2024 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef SRC_TINT_LANG_GLSL_IR_BUILTIN_CALL_H_
+#define SRC_TINT_LANG_GLSL_IR_BUILTIN_CALL_H_
+
+#include <string>
+
+#include "src/tint/lang/core/intrinsic/table_data.h"
+#include "src/tint/lang/core/ir/builtin_call.h"
+#include "src/tint/lang/glsl/builtin_fn.h"
+#include "src/tint/lang/glsl/intrinsic/dialect.h"
+#include "src/tint/utils/rtti/castable.h"
+
+namespace tint::glsl::ir {
+
+/// A GLSL builtin call instruction in the IR.
+class BuiltinCall final : public Castable<BuiltinCall, core::ir::BuiltinCall> {
+ public:
+ /// Constructor
+ /// @param id the instruction id
+ /// @param result the result value
+ /// @param func the builtin function
+ /// @param args the conversion arguments
+ BuiltinCall(Id id,
+ core::ir::InstructionResult* result,
+ BuiltinFn func,
+ VectorRef<core::ir::Value*> args = tint::Empty);
+
+ ~BuiltinCall() override;
+
+ /// @copydoc core::ir::Instruction::Clone()
+ BuiltinCall* Clone(core::ir::CloneContext& ctx) override;
+
+ /// @returns the builtin function
+ BuiltinFn Func() const { return func_; }
+
+ /// @returns the identifier for the function
+ size_t FuncId() const override { return static_cast<size_t>(func_); }
+
+ /// @returns the friendly name for the instruction
+ std::string FriendlyName() const override { return std::string("glsl.") + str(func_); }
+
+ /// @returns the table data to validate this builtin
+ const core::intrinsic::TableData& TableData() const override {
+ return glsl::intrinsic::Dialect::kData;
+ }
+
+ private:
+ BuiltinFn func_;
+};
+
+} // namespace tint::glsl::ir
+
+#endif // SRC_TINT_LANG_GLSL_IR_BUILTIN_CALL_H_
diff --git a/src/tint/lang/glsl/ir/builtin_call_test.cc b/src/tint/lang/glsl/ir/builtin_call_test.cc
new file mode 100644
index 0000000..07a038d
--- /dev/null
+++ b/src/tint/lang/glsl/ir/builtin_call_test.cc
@@ -0,0 +1,59 @@
+// Copyright 2024 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include "src/tint/lang/glsl/ir/builtin_call.h"
+
+#include "gtest/gtest.h"
+#include "src/tint/lang/core/ir/ir_helper_test.h"
+#include "src/tint/lang/core/ir/validator.h"
+
+using namespace tint::core::fluent_types; // NOLINT
+
+namespace tint::glsl::ir {
+namespace {
+
+using namespace tint::core::number_suffixes; // NOLINT
+ //
+using IR_GlslBuiltinCallTest = core::ir::IRTestHelper;
+
+TEST_F(IR_GlslBuiltinCallTest, Clone) {
+ auto* builtin = b.Call<BuiltinCall>(mod.Types().void_(), BuiltinFn::kBarrier);
+
+ auto* new_b = clone_ctx.Clone(builtin);
+
+ EXPECT_NE(builtin, new_b);
+ EXPECT_NE(builtin->Result(0), new_b->Result(0));
+ EXPECT_EQ(mod.Types().void_(), new_b->Result(0)->Type());
+
+ EXPECT_EQ(BuiltinFn::kBarrier, new_b->Func());
+
+ auto args = new_b->Args();
+ EXPECT_EQ(0u, args.Length());
+}
+
+} // namespace
+} // namespace tint::glsl::ir
diff --git a/src/tint/lang/glsl/writer/builtin_test.cc b/src/tint/lang/glsl/writer/builtin_test.cc
index c9619dd..a1e67df 100644
--- a/src/tint/lang/glsl/writer/builtin_test.cc
+++ b/src/tint/lang/glsl/writer/builtin_test.cc
@@ -117,5 +117,58 @@
)");
}
+TEST_F(GlslWriterTest, BuiltinStorageBarrier) {
+ auto* func = b.Function("foo", ty.void_(), core::ir::Function::PipelineStage::kCompute);
+ func->SetWorkgroupSize(1, 1, 1);
+ b.Append(func->Block(), [&] {
+ b.Call(ty.void_(), core::BuiltinFn::kStorageBarrier);
+ b.Return(func);
+ });
+
+ ASSERT_TRUE(Generate()) << err_ << output_.glsl;
+ EXPECT_EQ(output_.glsl, GlslHeader() + R"(
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ barrier();
+ memoryBarrierBuffer();
+}
+)");
+}
+
+TEST_F(GlslWriterTest, BuiltinTextureBarrier) {
+ auto* func = b.Function("foo", ty.void_(), core::ir::Function::PipelineStage::kCompute);
+ func->SetWorkgroupSize(1, 1, 1);
+ b.Append(func->Block(), [&] {
+ b.Call(ty.void_(), core::BuiltinFn::kTextureBarrier);
+ b.Return(func);
+ });
+
+ ASSERT_TRUE(Generate()) << err_ << output_.glsl;
+ EXPECT_EQ(output_.glsl, GlslHeader() + R"(
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ barrier();
+ memoryBarrierImage();
+}
+)");
+}
+
+TEST_F(GlslWriterTest, BuiltinWorkgroupBarrier) {
+ auto* func = b.Function("foo", ty.void_(), core::ir::Function::PipelineStage::kCompute);
+ func->SetWorkgroupSize(1, 1, 1);
+ b.Append(func->Block(), [&] {
+ b.Call(ty.void_(), core::BuiltinFn::kWorkgroupBarrier);
+ b.Return(func);
+ });
+
+ ASSERT_TRUE(Generate()) << err_ << output_.glsl;
+ EXPECT_EQ(output_.glsl, GlslHeader() + R"(
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ barrier();
+}
+)");
+}
+
} // namespace
} // namespace tint::glsl::writer
diff --git a/src/tint/lang/glsl/writer/printer/BUILD.bazel b/src/tint/lang/glsl/writer/printer/BUILD.bazel
index f14670f..77f5fc8 100644
--- a/src/tint/lang/glsl/writer/printer/BUILD.bazel
+++ b/src/tint/lang/glsl/writer/printer/BUILD.bazel
@@ -51,6 +51,8 @@
"//src/tint/lang/core/intrinsic",
"//src/tint/lang/core/ir",
"//src/tint/lang/core/type",
+ "//src/tint/lang/glsl",
+ "//src/tint/lang/glsl/intrinsic",
"//src/tint/lang/glsl/ir",
"//src/tint/utils/containers",
"//src/tint/utils/diagnostic",
diff --git a/src/tint/lang/glsl/writer/printer/BUILD.cmake b/src/tint/lang/glsl/writer/printer/BUILD.cmake
index 24ad598..679f9cb 100644
--- a/src/tint/lang/glsl/writer/printer/BUILD.cmake
+++ b/src/tint/lang/glsl/writer/printer/BUILD.cmake
@@ -52,6 +52,8 @@
tint_lang_core_intrinsic
tint_lang_core_ir
tint_lang_core_type
+ tint_lang_glsl
+ tint_lang_glsl_intrinsic
tint_lang_glsl_ir
tint_utils_containers
tint_utils_diagnostic
diff --git a/src/tint/lang/glsl/writer/printer/BUILD.gn b/src/tint/lang/glsl/writer/printer/BUILD.gn
index 8d3007f..c1a7cf0 100644
--- a/src/tint/lang/glsl/writer/printer/BUILD.gn
+++ b/src/tint/lang/glsl/writer/printer/BUILD.gn
@@ -52,6 +52,8 @@
"${tint_src_dir}/lang/core/intrinsic",
"${tint_src_dir}/lang/core/ir",
"${tint_src_dir}/lang/core/type",
+ "${tint_src_dir}/lang/glsl",
+ "${tint_src_dir}/lang/glsl/intrinsic",
"${tint_src_dir}/lang/glsl/ir",
"${tint_src_dir}/utils/containers",
"${tint_src_dir}/utils/diagnostic",
diff --git a/src/tint/lang/glsl/writer/printer/printer.cc b/src/tint/lang/glsl/writer/printer/printer.cc
index ad6984b..89d8848 100644
--- a/src/tint/lang/glsl/writer/printer/printer.cc
+++ b/src/tint/lang/glsl/writer/printer/printer.cc
@@ -80,6 +80,7 @@
#include "src/tint/lang/core/type/u32.h"
#include "src/tint/lang/core/type/vector.h"
#include "src/tint/lang/core/type/void.h"
+#include "src/tint/lang/glsl/ir/builtin_call.h"
#include "src/tint/lang/glsl/ir/ternary.h"
#include "src/tint/lang/glsl/writer/common/printer_support.h"
#include "src/tint/lang/glsl/writer/common/version.h"
@@ -1099,7 +1100,8 @@
[&](const core::ir::UserCall* c) { EmitUserCall(out, c); },
[&](const core::ir::Var* var) { out << NameOf(var->Result(0)); },
- [&](const glsl::ir::Ternary* t) { EmitTernary(out, t); }, //
+ [&](const glsl::ir::BuiltinCall* c) { EmitGlslBuiltinCall(out, c); }, //
+ [&](const glsl::ir::Ternary* t) { EmitTernary(out, t); }, //
TINT_ICE_ON_NO_MATCH);
},
@@ -1108,6 +1110,19 @@
TINT_ICE_ON_NO_MATCH);
}
+ void EmitGlslBuiltinCall(StringStream& out, const glsl::ir::BuiltinCall* c) {
+ out << c->Func() << "(";
+ bool needs_comma = false;
+ for (const auto* arg : c->Args()) {
+ if (needs_comma) {
+ out << ", ";
+ }
+ EmitValue(out, arg);
+ needs_comma = true;
+ }
+ out << ")";
+ }
+
void EmitTernary(StringStream& out, const glsl::ir::Ternary* t) {
out << "((";
EmitValue(out, t->Cmp());
diff --git a/src/tint/lang/glsl/writer/raise/BUILD.bazel b/src/tint/lang/glsl/writer/raise/BUILD.bazel
index 911505f..b548cf4 100644
--- a/src/tint/lang/glsl/writer/raise/BUILD.bazel
+++ b/src/tint/lang/glsl/writer/raise/BUILD.bazel
@@ -57,6 +57,8 @@
"//src/tint/lang/core/ir",
"//src/tint/lang/core/ir/transform",
"//src/tint/lang/core/type",
+ "//src/tint/lang/glsl",
+ "//src/tint/lang/glsl/intrinsic",
"//src/tint/lang/glsl/ir",
"//src/tint/lang/wgsl",
"//src/tint/lang/wgsl/ast",
diff --git a/src/tint/lang/glsl/writer/raise/BUILD.cmake b/src/tint/lang/glsl/writer/raise/BUILD.cmake
index 44d26cb..2776d8b 100644
--- a/src/tint/lang/glsl/writer/raise/BUILD.cmake
+++ b/src/tint/lang/glsl/writer/raise/BUILD.cmake
@@ -58,6 +58,8 @@
tint_lang_core_ir
tint_lang_core_ir_transform
tint_lang_core_type
+ tint_lang_glsl
+ tint_lang_glsl_intrinsic
tint_lang_glsl_ir
tint_lang_wgsl
tint_lang_wgsl_ast
diff --git a/src/tint/lang/glsl/writer/raise/BUILD.gn b/src/tint/lang/glsl/writer/raise/BUILD.gn
index 9b60e18..b6a34e7 100644
--- a/src/tint/lang/glsl/writer/raise/BUILD.gn
+++ b/src/tint/lang/glsl/writer/raise/BUILD.gn
@@ -62,6 +62,8 @@
"${tint_src_dir}/lang/core/ir",
"${tint_src_dir}/lang/core/ir/transform",
"${tint_src_dir}/lang/core/type",
+ "${tint_src_dir}/lang/glsl",
+ "${tint_src_dir}/lang/glsl/intrinsic",
"${tint_src_dir}/lang/glsl/ir",
"${tint_src_dir}/lang/wgsl",
"${tint_src_dir}/lang/wgsl/ast",
diff --git a/src/tint/lang/glsl/writer/raise/builtin_polyfill.cc b/src/tint/lang/glsl/writer/raise/builtin_polyfill.cc
index 3f965d9..019db10 100644
--- a/src/tint/lang/glsl/writer/raise/builtin_polyfill.cc
+++ b/src/tint/lang/glsl/writer/raise/builtin_polyfill.cc
@@ -34,6 +34,8 @@
#include "src/tint/lang/core/ir/builder.h"
#include "src/tint/lang/core/ir/module.h"
#include "src/tint/lang/core/ir/validator.h"
+#include "src/tint/lang/glsl/builtin_fn.h"
+#include "src/tint/lang/glsl/ir/builtin_call.h"
#include "src/tint/lang/glsl/ir/ternary.h"
namespace tint::glsl::writer::raise {
@@ -66,6 +68,9 @@
if (auto* call = inst->As<core::ir::CoreBuiltinCall>()) {
switch (call->Func()) {
case core::BuiltinFn::kSelect:
+ case core::BuiltinFn::kStorageBarrier:
+ case core::BuiltinFn::kTextureBarrier:
+ case core::BuiltinFn::kWorkgroupBarrier:
call_worklist.Push(call);
break;
default:
@@ -81,12 +86,37 @@
case core::BuiltinFn::kSelect:
Select(call);
break;
+ case core::BuiltinFn::kStorageBarrier:
+ case core::BuiltinFn::kTextureBarrier:
+ case core::BuiltinFn::kWorkgroupBarrier:
+ Barrier(call);
+ break;
default:
TINT_UNREACHABLE();
}
}
}
+ void Barrier(core::ir::CoreBuiltinCall* call) {
+ b.InsertBefore(call, [&] {
+ b.Call<glsl::ir::BuiltinCall>(ty.void_(), glsl::BuiltinFn::kBarrier);
+
+ switch (call->Func()) {
+ case core::BuiltinFn::kStorageBarrier:
+ b.Call<glsl::ir::BuiltinCall>(ty.void_(),
+ glsl::BuiltinFn::kMemoryBarrierBuffer);
+ break;
+ case core::BuiltinFn::kTextureBarrier:
+ b.Call<glsl::ir::BuiltinCall>(ty.void_(), glsl::BuiltinFn::kMemoryBarrierImage);
+ break;
+ default:
+ break;
+ }
+ });
+
+ call->Destroy();
+ }
+
void Select(core::ir::CoreBuiltinCall* call) {
Vector<core::ir::Value*, 4> args = call->Args();
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 ef88e70..c004f61 100644
--- a/src/tint/lang/glsl/writer/raise/builtin_polyfill_test.cc
+++ b/src/tint/lang/glsl/writer/raise/builtin_polyfill_test.cc
@@ -120,5 +120,100 @@
EXPECT_EQ(expect, str());
}
+TEST_F(GlslWriter_BuiltinPolyfillTest, StorageBarrier) {
+ auto* func = b.Function("foo", ty.void_(), core::ir::Function::PipelineStage::kCompute);
+ func->SetWorkgroupSize(1, 1, 1);
+ b.Append(func->Block(), [&] {
+ b.Call(ty.void_(), core::BuiltinFn::kStorageBarrier);
+ b.Return(func);
+ });
+
+ auto* src = R"(
+%foo = @compute @workgroup_size(1, 1, 1) func():void {
+ $B1: {
+ %2:void = storageBarrier
+ ret
+ }
+}
+)";
+ EXPECT_EQ(src, str());
+
+ auto* expect = R"(
+%foo = @compute @workgroup_size(1, 1, 1) func():void {
+ $B1: {
+ %2:void = glsl.barrier
+ %3:void = glsl.memoryBarrierBuffer
+ ret
+ }
+}
+)";
+
+ Run(BuiltinPolyfill);
+ EXPECT_EQ(expect, str());
+}
+
+TEST_F(GlslWriter_BuiltinPolyfillTest, TextureBarrier) {
+ auto* func = b.Function("foo", ty.void_(), core::ir::Function::PipelineStage::kCompute);
+ func->SetWorkgroupSize(1, 1, 1);
+ b.Append(func->Block(), [&] {
+ b.Call(ty.void_(), core::BuiltinFn::kTextureBarrier);
+ b.Return(func);
+ });
+
+ auto* src = R"(
+%foo = @compute @workgroup_size(1, 1, 1) func():void {
+ $B1: {
+ %2:void = textureBarrier
+ ret
+ }
+}
+)";
+ EXPECT_EQ(src, str());
+
+ auto* expect = R"(
+%foo = @compute @workgroup_size(1, 1, 1) func():void {
+ $B1: {
+ %2:void = glsl.barrier
+ %3:void = glsl.memoryBarrierImage
+ ret
+ }
+}
+)";
+
+ Run(BuiltinPolyfill);
+ EXPECT_EQ(expect, str());
+}
+
+TEST_F(GlslWriter_BuiltinPolyfillTest, WorkgroupBarrier) {
+ auto* func = b.Function("foo", ty.void_(), core::ir::Function::PipelineStage::kCompute);
+ func->SetWorkgroupSize(1, 1, 1);
+ b.Append(func->Block(), [&] {
+ b.Call(ty.void_(), core::BuiltinFn::kWorkgroupBarrier);
+ b.Return(func);
+ });
+
+ auto* src = R"(
+%foo = @compute @workgroup_size(1, 1, 1) func():void {
+ $B1: {
+ %2:void = workgroupBarrier
+ ret
+ }
+}
+)";
+ EXPECT_EQ(src, str());
+
+ auto* expect = R"(
+%foo = @compute @workgroup_size(1, 1, 1) func():void {
+ $B1: {
+ %2:void = glsl.barrier
+ ret
+ }
+}
+)";
+
+ Run(BuiltinPolyfill);
+ EXPECT_EQ(expect, str());
+}
+
} // namespace
} // namespace tint::glsl::writer::raise
diff --git a/src/tint/utils/templates/intrinsic_table_data.tmpl.inc b/src/tint/utils/templates/intrinsic_table_data.tmpl.inc
index b88fb1d..6ec6b91 100644
--- a/src/tint/utils/templates/intrinsic_table_data.tmpl.inc
+++ b/src/tint/utils/templates/intrinsic_table_data.tmpl.inc
@@ -246,7 +246,7 @@
/* type_matcher_indices */ {{if .MatcherIndices}}kMatcherIndices{{else}}Empty{{end}},
/* type_matchers */ {{if .TMatchers}}kTypeMatchers{{else}}Empty{{end}},
/* number_matchers */ {{if .NMatchers}}kNumberMatchers{{else}}Empty{{end}},
- /* parameters */ kParameters,
+ /* parameters */ {{if .Parameters}}kParameters{{else}}Empty{{end}},
/* overloads */ kOverloads,
/* const_eval_functions */ {{if .ConstEvalFunctions}}kConstEvalFunctions{{else}}Empty{{end}},
/* ctor_conv */ {{if .ConstructorsAndConverters}}kConstructorsAndConverters{{else}}Empty{{end}},
diff --git a/test/tint/array/assign_to_function_var.wgsl.expected.ir.glsl b/test/tint/array/assign_to_function_var.wgsl.expected.ir.glsl
index 56f48c5..a12ef00 100644
--- a/test/tint/array/assign_to_function_var.wgsl.expected.ir.glsl
+++ b/test/tint/array/assign_to_function_var.wgsl.expected.ir.glsl
@@ -1,11 +1,65 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+struct S {
+ ivec4 arr[4];
+};
+
+ivec4 src_private[4] = ivec4[4](ivec4(0), ivec4(0), ivec4(0), ivec4(0));
+shared ivec4 src_workgroup[4];
+layout(binding = 0, std140)
+uniform tint_symbol_2_1_ubo {
+ S tint_symbol_1;
+} v;
+layout(binding = 1, std430)
+buffer tint_symbol_4_1_ssbo {
+ S tint_symbol_3;
+} v_1;
+ivec4[4] ret_arr() {
+ return ivec4[4](ivec4(0), ivec4(0), ivec4(0), ivec4(0));
+}
+S ret_struct_arr() {
+ return S(ivec4[4](ivec4(0), ivec4(0), ivec4(0), ivec4(0)));
+}
+void foo(ivec4 src_param[4]) {
+ ivec4 src_function[4] = ivec4[4](ivec4(0), ivec4(0), ivec4(0), ivec4(0));
+ ivec4 dst[4] = ivec4[4](ivec4(0), ivec4(0), ivec4(0), ivec4(0));
+ dst = ivec4[4](ivec4(1), ivec4(2), ivec4(3), ivec4(3));
+ dst = src_param;
+ dst = ret_arr();
+ ivec4 src_let[4] = ivec4[4](ivec4(0), ivec4(0), ivec4(0), ivec4(0));
+ dst = src_let;
+ dst = src_function;
+ dst = src_private;
+ dst = src_workgroup;
+ dst = ret_struct_arr().arr;
+ dst = v.tint_symbol_1.arr;
+ dst = v_1.tint_symbol_3.arr;
+ int dst_nested[4][3][2] = int[4][3][2](int[3][2](int[2](0, 0), int[2](0, 0), int[2](0, 0)), int[3][2](int[2](0, 0), int[2](0, 0), int[2](0, 0)), int[3][2](int[2](0, 0), int[2](0, 0), int[2](0, 0)), int[3][2](int[2](0, 0), int[2](0, 0), int[2](0, 0)));
+ int src_nested[4][3][2] = int[4][3][2](int[3][2](int[2](0, 0), int[2](0, 0), int[2](0, 0)), int[3][2](int[2](0, 0), int[2](0, 0), int[2](0, 0)), int[3][2](int[2](0, 0), int[2](0, 0), int[2](0, 0)), int[3][2](int[2](0, 0), int[2](0, 0), int[2](0, 0)));
+ dst_nested = src_nested;
+}
+void tint_symbol_inner(uint tint_local_index) {
+ {
+ uint v_2 = 0u;
+ v_2 = tint_local_index;
+ while(true) {
+ uint v_3 = v_2;
+ if ((v_3 >= 4u)) {
+ break;
+ }
+ src_workgroup[v_3] = ivec4(0);
+ {
+ v_2 = (v_3 + 1u);
+ }
+ continue;
+ }
+ }
+ barrier();
+ ivec4 val[4] = ivec4[4](ivec4(0), ivec4(0), ivec4(0), ivec4(0));
+ foo(val);
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ tint_symbol_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/array/assign_to_private_var.wgsl.expected.ir.glsl b/test/tint/array/assign_to_private_var.wgsl.expected.ir.glsl
index 56f48c5..6a52fb3 100644
--- a/test/tint/array/assign_to_private_var.wgsl.expected.ir.glsl
+++ b/test/tint/array/assign_to_private_var.wgsl.expected.ir.glsl
@@ -1,11 +1,65 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+struct S {
+ ivec4 arr[4];
+};
+
+ivec4 src_private[4] = ivec4[4](ivec4(0), ivec4(0), ivec4(0), ivec4(0));
+shared ivec4 src_workgroup[4];
+layout(binding = 0, std140)
+uniform tint_symbol_2_1_ubo {
+ S tint_symbol_1;
+} v;
+layout(binding = 1, std430)
+buffer tint_symbol_4_1_ssbo {
+ S tint_symbol_3;
+} v_1;
+ivec4 dst[4] = ivec4[4](ivec4(0), ivec4(0), ivec4(0), ivec4(0));
+int dst_nested[4][3][2] = int[4][3][2](int[3][2](int[2](0, 0), int[2](0, 0), int[2](0, 0)), int[3][2](int[2](0, 0), int[2](0, 0), int[2](0, 0)), int[3][2](int[2](0, 0), int[2](0, 0), int[2](0, 0)), int[3][2](int[2](0, 0), int[2](0, 0), int[2](0, 0)));
+ivec4[4] ret_arr() {
+ return ivec4[4](ivec4(0), ivec4(0), ivec4(0), ivec4(0));
+}
+S ret_struct_arr() {
+ return S(ivec4[4](ivec4(0), ivec4(0), ivec4(0), ivec4(0)));
+}
+void foo(ivec4 src_param[4]) {
+ ivec4 src_function[4] = ivec4[4](ivec4(0), ivec4(0), ivec4(0), ivec4(0));
+ dst = ivec4[4](ivec4(1), ivec4(2), ivec4(3), ivec4(3));
+ dst = src_param;
+ dst = ret_arr();
+ ivec4 src_let[4] = ivec4[4](ivec4(0), ivec4(0), ivec4(0), ivec4(0));
+ dst = src_let;
+ dst = src_function;
+ dst = src_private;
+ dst = src_workgroup;
+ dst = ret_struct_arr().arr;
+ dst = v.tint_symbol_1.arr;
+ dst = v_1.tint_symbol_3.arr;
+ int src_nested[4][3][2] = int[4][3][2](int[3][2](int[2](0, 0), int[2](0, 0), int[2](0, 0)), int[3][2](int[2](0, 0), int[2](0, 0), int[2](0, 0)), int[3][2](int[2](0, 0), int[2](0, 0), int[2](0, 0)), int[3][2](int[2](0, 0), int[2](0, 0), int[2](0, 0)));
+ dst_nested = src_nested;
+}
+void tint_symbol_inner(uint tint_local_index) {
+ {
+ uint v_2 = 0u;
+ v_2 = tint_local_index;
+ while(true) {
+ uint v_3 = v_2;
+ if ((v_3 >= 4u)) {
+ break;
+ }
+ src_workgroup[v_3] = ivec4(0);
+ {
+ v_2 = (v_3 + 1u);
+ }
+ continue;
+ }
+ }
+ barrier();
+ ivec4 a[4] = ivec4[4](ivec4(0), ivec4(0), ivec4(0), ivec4(0));
+ foo(a);
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ tint_symbol_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/array/assign_to_storage_var.wgsl.expected.ir.glsl b/test/tint/array/assign_to_storage_var.wgsl.expected.ir.glsl
index 56f48c5..5da1d39 100644
--- a/test/tint/array/assign_to_storage_var.wgsl.expected.ir.glsl
+++ b/test/tint/array/assign_to_storage_var.wgsl.expected.ir.glsl
@@ -1,11 +1,75 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+struct S {
+ ivec4 arr[4];
+};
+
+struct S_nested {
+ int arr[4][3][2];
+};
+
+ivec4 src_private[4] = ivec4[4](ivec4(0), ivec4(0), ivec4(0), ivec4(0));
+shared ivec4 src_workgroup[4];
+layout(binding = 0, std140)
+uniform tint_symbol_2_1_ubo {
+ S tint_symbol_1;
+} v;
+layout(binding = 1, std430)
+buffer tint_symbol_4_1_ssbo {
+ S tint_symbol_3;
+} v_1;
+layout(binding = 2, std430)
+buffer tint_symbol_6_1_ssbo {
+ S tint_symbol_5;
+} v_2;
+layout(binding = 3, std430)
+buffer tint_symbol_8_1_ssbo {
+ S_nested tint_symbol_7;
+} v_3;
+ivec4[4] ret_arr() {
+ return ivec4[4](ivec4(0), ivec4(0), ivec4(0), ivec4(0));
+}
+S ret_struct_arr() {
+ return S(ivec4[4](ivec4(0), ivec4(0), ivec4(0), ivec4(0)));
+}
+void foo(ivec4 src_param[4]) {
+ ivec4 src_function[4] = ivec4[4](ivec4(0), ivec4(0), ivec4(0), ivec4(0));
+ v_2.tint_symbol_5.arr = ivec4[4](ivec4(1), ivec4(2), ivec4(3), ivec4(3));
+ v_2.tint_symbol_5.arr = src_param;
+ v_2.tint_symbol_5.arr = ret_arr();
+ ivec4 src_let[4] = ivec4[4](ivec4(0), ivec4(0), ivec4(0), ivec4(0));
+ v_2.tint_symbol_5.arr = src_let;
+ v_2.tint_symbol_5.arr = src_function;
+ v_2.tint_symbol_5.arr = src_private;
+ v_2.tint_symbol_5.arr = src_workgroup;
+ v_2.tint_symbol_5.arr = ret_struct_arr().arr;
+ v_2.tint_symbol_5.arr = v.tint_symbol_1.arr;
+ v_2.tint_symbol_5.arr = v_1.tint_symbol_3.arr;
+ int src_nested[4][3][2] = int[4][3][2](int[3][2](int[2](0, 0), int[2](0, 0), int[2](0, 0)), int[3][2](int[2](0, 0), int[2](0, 0), int[2](0, 0)), int[3][2](int[2](0, 0), int[2](0, 0), int[2](0, 0)), int[3][2](int[2](0, 0), int[2](0, 0), int[2](0, 0)));
+ v_3.tint_symbol_7.arr = src_nested;
+}
+void tint_symbol_inner(uint tint_local_index) {
+ {
+ uint v_4 = 0u;
+ v_4 = tint_local_index;
+ while(true) {
+ uint v_5 = v_4;
+ if ((v_5 >= 4u)) {
+ break;
+ }
+ src_workgroup[v_5] = ivec4(0);
+ {
+ v_4 = (v_5 + 1u);
+ }
+ continue;
+ }
+ }
+ barrier();
+ ivec4 ary[4] = ivec4[4](ivec4(0), ivec4(0), ivec4(0), ivec4(0));
+ foo(ary);
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ tint_symbol_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/array/assign_to_workgroup_var.wgsl.expected.ir.glsl b/test/tint/array/assign_to_workgroup_var.wgsl.expected.ir.glsl
index 56f48c5..49158ba 100644
--- a/test/tint/array/assign_to_workgroup_var.wgsl.expected.ir.glsl
+++ b/test/tint/array/assign_to_workgroup_var.wgsl.expected.ir.glsl
@@ -1,11 +1,81 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+struct S {
+ ivec4 arr[4];
+};
+
+ivec4 src_private[4] = ivec4[4](ivec4(0), ivec4(0), ivec4(0), ivec4(0));
+shared ivec4 src_workgroup[4];
+layout(binding = 0, std140)
+uniform tint_symbol_2_1_ubo {
+ S tint_symbol_1;
+} v;
+layout(binding = 1, std430)
+buffer tint_symbol_4_1_ssbo {
+ S tint_symbol_3;
+} v_1;
+shared ivec4 dst[4];
+shared int dst_nested[4][3][2];
+ivec4[4] ret_arr() {
+ return ivec4[4](ivec4(0), ivec4(0), ivec4(0), ivec4(0));
+}
+S ret_struct_arr() {
+ return S(ivec4[4](ivec4(0), ivec4(0), ivec4(0), ivec4(0)));
+}
+void foo(ivec4 src_param[4]) {
+ ivec4 src_function[4] = ivec4[4](ivec4(0), ivec4(0), ivec4(0), ivec4(0));
+ dst = ivec4[4](ivec4(1), ivec4(2), ivec4(3), ivec4(3));
+ dst = src_param;
+ dst = ret_arr();
+ ivec4 src_let[4] = ivec4[4](ivec4(0), ivec4(0), ivec4(0), ivec4(0));
+ dst = src_let;
+ dst = src_function;
+ dst = src_private;
+ dst = src_workgroup;
+ dst = ret_struct_arr().arr;
+ dst = v.tint_symbol_1.arr;
+ dst = v_1.tint_symbol_3.arr;
+ int src_nested[4][3][2] = int[4][3][2](int[3][2](int[2](0, 0), int[2](0, 0), int[2](0, 0)), int[3][2](int[2](0, 0), int[2](0, 0), int[2](0, 0)), int[3][2](int[2](0, 0), int[2](0, 0), int[2](0, 0)), int[3][2](int[2](0, 0), int[2](0, 0), int[2](0, 0)));
+ dst_nested = src_nested;
+}
+void tint_symbol_inner(uint tint_local_index) {
+ {
+ uint v_2 = 0u;
+ v_2 = tint_local_index;
+ while(true) {
+ uint v_3 = v_2;
+ if ((v_3 >= 4u)) {
+ break;
+ }
+ src_workgroup[v_3] = ivec4(0);
+ dst[v_3] = ivec4(0);
+ {
+ v_2 = (v_3 + 1u);
+ }
+ continue;
+ }
+ }
+ {
+ uint v_4 = 0u;
+ v_4 = tint_local_index;
+ while(true) {
+ uint v_5 = v_4;
+ if ((v_5 >= 24u)) {
+ break;
+ }
+ dst_nested[(v_5 / 6u)][((v_5 / 2u) % 3u)][(v_5 % 2u)] = 0;
+ {
+ v_4 = (v_5 + 1u);
+ }
+ continue;
+ }
+ }
+ barrier();
+ ivec4 val[4] = ivec4[4](ivec4(0), ivec4(0), ivec4(0), ivec4(0));
+ foo(val);
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ tint_symbol_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/benchmark/uniformity-analysis-pointer-parameters.wgsl.expected.ir.glsl b/test/tint/benchmark/uniformity-analysis-pointer-parameters.wgsl.expected.ir.glsl
deleted file mode 100644
index 56f48c5..0000000
--- a/test/tint/benchmark/uniformity-analysis-pointer-parameters.wgsl.expected.ir.glsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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/buffer/uniform/std140/array/mat2x2_f32/to_workgroup.wgsl.expected.ir.glsl b/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_workgroup.wgsl.expected.ir.glsl
index 56f48c5..5647b45 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_workgroup.wgsl.expected.ir.glsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_workgroup.wgsl.expected.ir.glsl
@@ -1,11 +1,56 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+struct mat2x2_f32_std140 {
+ vec2 col0;
+ vec2 col1;
+};
+
+layout(binding = 0, std140)
+uniform tint_symbol_1_std140_1_ubo {
+ mat2x2_f32_std140 tint_symbol[4];
+} v;
+shared mat2 w[4];
+void f_inner(uint tint_local_index) {
+ {
+ uint v_1 = 0u;
+ v_1 = tint_local_index;
+ while(true) {
+ uint v_2 = v_1;
+ if ((v_2 >= 4u)) {
+ break;
+ }
+ w[v_2] = mat2(vec2(0.0f), vec2(0.0f));
+ {
+ v_1 = (v_2 + 1u);
+ }
+ continue;
+ }
+ }
+ barrier();
+ mat2x2_f32_std140 v_3[4] = v.tint_symbol;
+ mat2 v_4[4] = mat2[4](mat2(vec2(0.0f), vec2(0.0f)), mat2(vec2(0.0f), vec2(0.0f)), mat2(vec2(0.0f), vec2(0.0f)), mat2(vec2(0.0f), vec2(0.0f)));
+ {
+ uint v_5 = 0u;
+ v_5 = 0u;
+ while(true) {
+ uint v_6 = v_5;
+ if ((v_6 >= 4u)) {
+ break;
+ }
+ v_4[v_6] = mat2(v_3[v_6].col0, v_3[v_6].col1);
+ {
+ v_5 = (v_6 + 1u);
+ }
+ continue;
+ }
+ }
+ w = v_4;
+ w[1] = mat2(v.tint_symbol[2].col0, v.tint_symbol[2].col1);
+ w[1][0] = v.tint_symbol[0].col1.yx;
+ w[1][0][0u] = v.tint_symbol[0].col1.x;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ f_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_workgroup.wgsl.expected.ir.glsl b/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_workgroup.wgsl.expected.ir.glsl
index 56f48c5..a7507ae 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_workgroup.wgsl.expected.ir.glsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_workgroup.wgsl.expected.ir.glsl
@@ -1,11 +1,62 @@
-SKIP: FAILED
+#version 310 es
+#extension GL_AMD_gpu_shader_half_float: require
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+struct mat2x3_f16_std140 {
+ f16vec3 col0;
+ f16vec3 col1;
+};
+
+layout(binding = 0, std140)
+uniform tint_symbol_1_std140_1_ubo {
+ mat2x3_f16_std140 tint_symbol[4];
+} v;
+layout(binding = 1, std430)
+buffer tint_symbol_3_1_ssbo {
+ float16_t tint_symbol_2;
+} v_1;
+shared f16mat2x3 w[4];
+void f_inner(uint tint_local_index) {
+ {
+ uint v_2 = 0u;
+ v_2 = tint_local_index;
+ while(true) {
+ uint v_3 = v_2;
+ if ((v_3 >= 4u)) {
+ break;
+ }
+ w[v_3] = f16mat2x3(f16vec3(0.0hf), f16vec3(0.0hf));
+ {
+ v_2 = (v_3 + 1u);
+ }
+ continue;
+ }
+ }
+ barrier();
+ mat2x3_f16_std140 v_4[4] = v.tint_symbol;
+ f16mat2x3 v_5[4] = f16mat2x3[4](f16mat2x3(f16vec3(0.0hf), f16vec3(0.0hf)), f16mat2x3(f16vec3(0.0hf), f16vec3(0.0hf)), f16mat2x3(f16vec3(0.0hf), f16vec3(0.0hf)), f16mat2x3(f16vec3(0.0hf), f16vec3(0.0hf)));
+ {
+ uint v_6 = 0u;
+ v_6 = 0u;
+ while(true) {
+ uint v_7 = v_6;
+ if ((v_7 >= 4u)) {
+ break;
+ }
+ v_5[v_7] = f16mat2x3(v_4[v_7].col0, v_4[v_7].col1);
+ {
+ v_6 = (v_7 + 1u);
+ }
+ continue;
+ }
+ }
+ w = v_5;
+ w[1] = f16mat2x3(v.tint_symbol[2].col0, v.tint_symbol[2].col1);
+ w[1][0] = v.tint_symbol[0].col1.zxy;
+ w[1][0][0u] = v.tint_symbol[0].col1.x;
+ v_1.tint_symbol_2 = w[1][0].x;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ f_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/buffer/uniform/std140/array/mat2x3_f32/to_workgroup.wgsl.expected.ir.glsl b/test/tint/buffer/uniform/std140/array/mat2x3_f32/to_workgroup.wgsl.expected.ir.glsl
index 56f48c5..a9a3150 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x3_f32/to_workgroup.wgsl.expected.ir.glsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x3_f32/to_workgroup.wgsl.expected.ir.glsl
@@ -1,11 +1,56 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+struct mat2x3_f32_std140 {
+ vec3 col0;
+ vec3 col1;
+};
+
+layout(binding = 0, std140)
+uniform tint_symbol_1_std140_1_ubo {
+ mat2x3_f32_std140 tint_symbol[4];
+} v;
+shared mat2x3 w[4];
+void f_inner(uint tint_local_index) {
+ {
+ uint v_1 = 0u;
+ v_1 = tint_local_index;
+ while(true) {
+ uint v_2 = v_1;
+ if ((v_2 >= 4u)) {
+ break;
+ }
+ w[v_2] = mat2x3(vec3(0.0f), vec3(0.0f));
+ {
+ v_1 = (v_2 + 1u);
+ }
+ continue;
+ }
+ }
+ barrier();
+ mat2x3_f32_std140 v_3[4] = v.tint_symbol;
+ mat2x3 v_4[4] = mat2x3[4](mat2x3(vec3(0.0f), vec3(0.0f)), mat2x3(vec3(0.0f), vec3(0.0f)), mat2x3(vec3(0.0f), vec3(0.0f)), mat2x3(vec3(0.0f), vec3(0.0f)));
+ {
+ uint v_5 = 0u;
+ v_5 = 0u;
+ while(true) {
+ uint v_6 = v_5;
+ if ((v_6 >= 4u)) {
+ break;
+ }
+ v_4[v_6] = mat2x3(v_3[v_6].col0, v_3[v_6].col1);
+ {
+ v_5 = (v_6 + 1u);
+ }
+ continue;
+ }
+ }
+ w = v_4;
+ w[1] = mat2x3(v.tint_symbol[2].col0, v.tint_symbol[2].col1);
+ w[1][0] = v.tint_symbol[0].col1.zxy;
+ w[1][0][0u] = v.tint_symbol[0].col1.x;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ f_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_workgroup.wgsl.expected.ir.glsl b/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_workgroup.wgsl.expected.ir.glsl
index 56f48c5..71a158b 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_workgroup.wgsl.expected.ir.glsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_workgroup.wgsl.expected.ir.glsl
@@ -1,11 +1,57 @@
-SKIP: FAILED
+#version 310 es
+#extension GL_AMD_gpu_shader_half_float: require
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+struct mat2x4_f16_std140 {
+ f16vec4 col0;
+ f16vec4 col1;
+};
+
+layout(binding = 0, std140)
+uniform tint_symbol_1_std140_1_ubo {
+ mat2x4_f16_std140 tint_symbol[4];
+} v;
+shared f16mat2x4 w[4];
+void f_inner(uint tint_local_index) {
+ {
+ uint v_1 = 0u;
+ v_1 = tint_local_index;
+ while(true) {
+ uint v_2 = v_1;
+ if ((v_2 >= 4u)) {
+ break;
+ }
+ w[v_2] = f16mat2x4(f16vec4(0.0hf), f16vec4(0.0hf));
+ {
+ v_1 = (v_2 + 1u);
+ }
+ continue;
+ }
+ }
+ barrier();
+ mat2x4_f16_std140 v_3[4] = v.tint_symbol;
+ f16mat2x4 v_4[4] = f16mat2x4[4](f16mat2x4(f16vec4(0.0hf), f16vec4(0.0hf)), f16mat2x4(f16vec4(0.0hf), f16vec4(0.0hf)), f16mat2x4(f16vec4(0.0hf), f16vec4(0.0hf)), f16mat2x4(f16vec4(0.0hf), f16vec4(0.0hf)));
+ {
+ uint v_5 = 0u;
+ v_5 = 0u;
+ while(true) {
+ uint v_6 = v_5;
+ if ((v_6 >= 4u)) {
+ break;
+ }
+ v_4[v_6] = f16mat2x4(v_3[v_6].col0, v_3[v_6].col1);
+ {
+ v_5 = (v_6 + 1u);
+ }
+ continue;
+ }
+ }
+ w = v_4;
+ w[1] = f16mat2x4(v.tint_symbol[2].col0, v.tint_symbol[2].col1);
+ w[1][0] = v.tint_symbol[0].col1.ywxz;
+ w[1][0][0u] = v.tint_symbol[0].col1.x;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ f_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_workgroup.wgsl.expected.ir.glsl b/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_workgroup.wgsl.expected.ir.glsl
index 56f48c5..27ea5f7 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_workgroup.wgsl.expected.ir.glsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_workgroup.wgsl.expected.ir.glsl
@@ -1,11 +1,33 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+layout(binding = 0, std140)
+uniform tint_symbol_1_1_ubo {
+ mat2x4 tint_symbol[4];
+} v;
+shared mat2x4 w[4];
+void f_inner(uint tint_local_index) {
+ {
+ uint v_1 = 0u;
+ v_1 = tint_local_index;
+ while(true) {
+ uint v_2 = v_1;
+ if ((v_2 >= 4u)) {
+ break;
+ }
+ w[v_2] = mat2x4(vec4(0.0f), vec4(0.0f));
+ {
+ v_1 = (v_2 + 1u);
+ }
+ continue;
+ }
+ }
+ barrier();
+ w = v.tint_symbol;
+ w[1] = v.tint_symbol[2];
+ w[1][0] = v.tint_symbol[0][1].ywxz;
+ w[1][0][0u] = v.tint_symbol[0][1].x;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ f_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/buffer/uniform/std140/array/mat3x3_f32/to_workgroup.wgsl.expected.ir.glsl b/test/tint/buffer/uniform/std140/array/mat3x3_f32/to_workgroup.wgsl.expected.ir.glsl
index 56f48c5..c646187 100644
--- a/test/tint/buffer/uniform/std140/array/mat3x3_f32/to_workgroup.wgsl.expected.ir.glsl
+++ b/test/tint/buffer/uniform/std140/array/mat3x3_f32/to_workgroup.wgsl.expected.ir.glsl
@@ -1,11 +1,57 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+struct mat3x3_f32_std140 {
+ vec3 col0;
+ vec3 col1;
+ vec3 col2;
+};
+
+layout(binding = 0, std140)
+uniform tint_symbol_1_std140_1_ubo {
+ mat3x3_f32_std140 tint_symbol[4];
+} v;
+shared mat3 w[4];
+void f_inner(uint tint_local_index) {
+ {
+ uint v_1 = 0u;
+ v_1 = tint_local_index;
+ while(true) {
+ uint v_2 = v_1;
+ if ((v_2 >= 4u)) {
+ break;
+ }
+ w[v_2] = mat3(vec3(0.0f), vec3(0.0f), vec3(0.0f));
+ {
+ v_1 = (v_2 + 1u);
+ }
+ continue;
+ }
+ }
+ barrier();
+ mat3x3_f32_std140 v_3[4] = v.tint_symbol;
+ mat3 v_4[4] = mat3[4](mat3(vec3(0.0f), vec3(0.0f), vec3(0.0f)), mat3(vec3(0.0f), vec3(0.0f), vec3(0.0f)), mat3(vec3(0.0f), vec3(0.0f), vec3(0.0f)), mat3(vec3(0.0f), vec3(0.0f), vec3(0.0f)));
+ {
+ uint v_5 = 0u;
+ v_5 = 0u;
+ while(true) {
+ uint v_6 = v_5;
+ if ((v_6 >= 4u)) {
+ break;
+ }
+ v_4[v_6] = mat3(v_3[v_6].col0, v_3[v_6].col1, v_3[v_6].col2);
+ {
+ v_5 = (v_6 + 1u);
+ }
+ continue;
+ }
+ }
+ w = v_4;
+ w[1] = mat3(v.tint_symbol[2].col0, v.tint_symbol[2].col1, v.tint_symbol[2].col2);
+ w[1][0] = v.tint_symbol[0].col1.zxy;
+ w[1][0][0u] = v.tint_symbol[0].col1.x;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ f_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_workgroup.wgsl.expected.ir.glsl b/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_workgroup.wgsl.expected.ir.glsl
index 56f48c5..eec3eb5 100644
--- a/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_workgroup.wgsl.expected.ir.glsl
+++ b/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_workgroup.wgsl.expected.ir.glsl
@@ -1,11 +1,33 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+layout(binding = 0, std140)
+uniform tint_symbol_1_1_ubo {
+ mat3x4 tint_symbol[4];
+} v;
+shared mat3x4 w[4];
+void f_inner(uint tint_local_index) {
+ {
+ uint v_1 = 0u;
+ v_1 = tint_local_index;
+ while(true) {
+ uint v_2 = v_1;
+ if ((v_2 >= 4u)) {
+ break;
+ }
+ w[v_2] = mat3x4(vec4(0.0f), vec4(0.0f), vec4(0.0f));
+ {
+ v_1 = (v_2 + 1u);
+ }
+ continue;
+ }
+ }
+ barrier();
+ w = v.tint_symbol;
+ w[1] = v.tint_symbol[2];
+ w[1][0] = v.tint_symbol[0][1].ywxz;
+ w[1][0][0u] = v.tint_symbol[0][1].x;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ f_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_workgroup.wgsl.expected.ir.glsl b/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_workgroup.wgsl.expected.ir.glsl
index 56f48c5..59388f0 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_workgroup.wgsl.expected.ir.glsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_workgroup.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 310 es
+#extension GL_AMD_gpu_shader_half_float: require
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+struct mat4x2_f16_std140 {
+ f16vec2 col0;
+ f16vec2 col1;
+ f16vec2 col2;
+ f16vec2 col3;
+};
+
+layout(binding = 0, std140)
+uniform tint_symbol_1_std140_1_ubo {
+ mat4x2_f16_std140 tint_symbol[4];
+} v;
+shared f16mat4x2 w[4];
+void f_inner(uint tint_local_index) {
+ {
+ uint v_1 = 0u;
+ v_1 = tint_local_index;
+ while(true) {
+ uint v_2 = v_1;
+ if ((v_2 >= 4u)) {
+ break;
+ }
+ w[v_2] = f16mat4x2(f16vec2(0.0hf), f16vec2(0.0hf), f16vec2(0.0hf), f16vec2(0.0hf));
+ {
+ v_1 = (v_2 + 1u);
+ }
+ continue;
+ }
+ }
+ barrier();
+ mat4x2_f16_std140 v_3[4] = v.tint_symbol;
+ f16mat4x2 v_4[4] = f16mat4x2[4](f16mat4x2(f16vec2(0.0hf), f16vec2(0.0hf), f16vec2(0.0hf), f16vec2(0.0hf)), f16mat4x2(f16vec2(0.0hf), f16vec2(0.0hf), f16vec2(0.0hf), f16vec2(0.0hf)), f16mat4x2(f16vec2(0.0hf), f16vec2(0.0hf), f16vec2(0.0hf), f16vec2(0.0hf)), f16mat4x2(f16vec2(0.0hf), f16vec2(0.0hf), f16vec2(0.0hf), f16vec2(0.0hf)));
+ {
+ uint v_5 = 0u;
+ v_5 = 0u;
+ while(true) {
+ uint v_6 = v_5;
+ if ((v_6 >= 4u)) {
+ break;
+ }
+ v_4[v_6] = f16mat4x2(v_3[v_6].col0, v_3[v_6].col1, v_3[v_6].col2, v_3[v_6].col3);
+ {
+ v_5 = (v_6 + 1u);
+ }
+ continue;
+ }
+ }
+ w = v_4;
+ w[1] = f16mat4x2(v.tint_symbol[2].col0, v.tint_symbol[2].col1, v.tint_symbol[2].col2, v.tint_symbol[2].col3);
+ w[1][0] = v.tint_symbol[0].col1.yx;
+ w[1][0][0u] = v.tint_symbol[0].col1.x;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ f_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_workgroup.wgsl.expected.ir.glsl b/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_workgroup.wgsl.expected.ir.glsl
index 56f48c5..e3574f7 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_workgroup.wgsl.expected.ir.glsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_workgroup.wgsl.expected.ir.glsl
@@ -1,11 +1,58 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+struct mat4x2_f32_std140 {
+ vec2 col0;
+ vec2 col1;
+ vec2 col2;
+ vec2 col3;
+};
+
+layout(binding = 0, std140)
+uniform tint_symbol_1_std140_1_ubo {
+ mat4x2_f32_std140 tint_symbol[4];
+} v;
+shared mat4x2 w[4];
+void f_inner(uint tint_local_index) {
+ {
+ uint v_1 = 0u;
+ v_1 = tint_local_index;
+ while(true) {
+ uint v_2 = v_1;
+ if ((v_2 >= 4u)) {
+ break;
+ }
+ w[v_2] = mat4x2(vec2(0.0f), vec2(0.0f), vec2(0.0f), vec2(0.0f));
+ {
+ v_1 = (v_2 + 1u);
+ }
+ continue;
+ }
+ }
+ barrier();
+ mat4x2_f32_std140 v_3[4] = v.tint_symbol;
+ mat4x2 v_4[4] = mat4x2[4](mat4x2(vec2(0.0f), vec2(0.0f), vec2(0.0f), vec2(0.0f)), mat4x2(vec2(0.0f), vec2(0.0f), vec2(0.0f), vec2(0.0f)), mat4x2(vec2(0.0f), vec2(0.0f), vec2(0.0f), vec2(0.0f)), mat4x2(vec2(0.0f), vec2(0.0f), vec2(0.0f), vec2(0.0f)));
+ {
+ uint v_5 = 0u;
+ v_5 = 0u;
+ while(true) {
+ uint v_6 = v_5;
+ if ((v_6 >= 4u)) {
+ break;
+ }
+ v_4[v_6] = mat4x2(v_3[v_6].col0, v_3[v_6].col1, v_3[v_6].col2, v_3[v_6].col3);
+ {
+ v_5 = (v_6 + 1u);
+ }
+ continue;
+ }
+ }
+ w = v_4;
+ w[1] = mat4x2(v.tint_symbol[2].col0, v.tint_symbol[2].col1, v.tint_symbol[2].col2, v.tint_symbol[2].col3);
+ w[1][0] = v.tint_symbol[0].col1.yx;
+ w[1][0][0u] = v.tint_symbol[0].col1.x;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ f_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_workgroup.wgsl.expected.ir.glsl b/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_workgroup.wgsl.expected.ir.glsl
index 56f48c5..9a8f6fa 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_workgroup.wgsl.expected.ir.glsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_workgroup.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 310 es
+#extension GL_AMD_gpu_shader_half_float: require
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+struct mat4x3_f16_std140 {
+ f16vec3 col0;
+ f16vec3 col1;
+ f16vec3 col2;
+ f16vec3 col3;
+};
+
+layout(binding = 0, std140)
+uniform tint_symbol_1_std140_1_ubo {
+ mat4x3_f16_std140 tint_symbol[4];
+} v;
+shared f16mat4x3 w[4];
+void f_inner(uint tint_local_index) {
+ {
+ uint v_1 = 0u;
+ v_1 = tint_local_index;
+ while(true) {
+ uint v_2 = v_1;
+ if ((v_2 >= 4u)) {
+ break;
+ }
+ w[v_2] = f16mat4x3(f16vec3(0.0hf), f16vec3(0.0hf), f16vec3(0.0hf), f16vec3(0.0hf));
+ {
+ v_1 = (v_2 + 1u);
+ }
+ continue;
+ }
+ }
+ barrier();
+ mat4x3_f16_std140 v_3[4] = v.tint_symbol;
+ f16mat4x3 v_4[4] = f16mat4x3[4](f16mat4x3(f16vec3(0.0hf), f16vec3(0.0hf), f16vec3(0.0hf), f16vec3(0.0hf)), f16mat4x3(f16vec3(0.0hf), f16vec3(0.0hf), f16vec3(0.0hf), f16vec3(0.0hf)), f16mat4x3(f16vec3(0.0hf), f16vec3(0.0hf), f16vec3(0.0hf), f16vec3(0.0hf)), f16mat4x3(f16vec3(0.0hf), f16vec3(0.0hf), f16vec3(0.0hf), f16vec3(0.0hf)));
+ {
+ uint v_5 = 0u;
+ v_5 = 0u;
+ while(true) {
+ uint v_6 = v_5;
+ if ((v_6 >= 4u)) {
+ break;
+ }
+ v_4[v_6] = f16mat4x3(v_3[v_6].col0, v_3[v_6].col1, v_3[v_6].col2, v_3[v_6].col3);
+ {
+ v_5 = (v_6 + 1u);
+ }
+ continue;
+ }
+ }
+ w = v_4;
+ w[1] = f16mat4x3(v.tint_symbol[2].col0, v.tint_symbol[2].col1, v.tint_symbol[2].col2, v.tint_symbol[2].col3);
+ w[1][0] = v.tint_symbol[0].col1.zxy;
+ w[1][0][0u] = v.tint_symbol[0].col1.x;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ f_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/buffer/uniform/std140/array/mat4x3_f32/to_workgroup.wgsl.expected.ir.glsl b/test/tint/buffer/uniform/std140/array/mat4x3_f32/to_workgroup.wgsl.expected.ir.glsl
index 56f48c5..98fba37 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x3_f32/to_workgroup.wgsl.expected.ir.glsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x3_f32/to_workgroup.wgsl.expected.ir.glsl
@@ -1,11 +1,58 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+struct mat4x3_f32_std140 {
+ vec3 col0;
+ vec3 col1;
+ vec3 col2;
+ vec3 col3;
+};
+
+layout(binding = 0, std140)
+uniform tint_symbol_1_std140_1_ubo {
+ mat4x3_f32_std140 tint_symbol[4];
+} v;
+shared mat4x3 w[4];
+void f_inner(uint tint_local_index) {
+ {
+ uint v_1 = 0u;
+ v_1 = tint_local_index;
+ while(true) {
+ uint v_2 = v_1;
+ if ((v_2 >= 4u)) {
+ break;
+ }
+ w[v_2] = mat4x3(vec3(0.0f), vec3(0.0f), vec3(0.0f), vec3(0.0f));
+ {
+ v_1 = (v_2 + 1u);
+ }
+ continue;
+ }
+ }
+ barrier();
+ mat4x3_f32_std140 v_3[4] = v.tint_symbol;
+ mat4x3 v_4[4] = mat4x3[4](mat4x3(vec3(0.0f), vec3(0.0f), vec3(0.0f), vec3(0.0f)), mat4x3(vec3(0.0f), vec3(0.0f), vec3(0.0f), vec3(0.0f)), mat4x3(vec3(0.0f), vec3(0.0f), vec3(0.0f), vec3(0.0f)), mat4x3(vec3(0.0f), vec3(0.0f), vec3(0.0f), vec3(0.0f)));
+ {
+ uint v_5 = 0u;
+ v_5 = 0u;
+ while(true) {
+ uint v_6 = v_5;
+ if ((v_6 >= 4u)) {
+ break;
+ }
+ v_4[v_6] = mat4x3(v_3[v_6].col0, v_3[v_6].col1, v_3[v_6].col2, v_3[v_6].col3);
+ {
+ v_5 = (v_6 + 1u);
+ }
+ continue;
+ }
+ }
+ w = v_4;
+ w[1] = mat4x3(v.tint_symbol[2].col0, v.tint_symbol[2].col1, v.tint_symbol[2].col2, v.tint_symbol[2].col3);
+ w[1][0] = v.tint_symbol[0].col1.zxy;
+ w[1][0][0u] = v.tint_symbol[0].col1.x;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ f_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_workgroup.wgsl.expected.ir.glsl b/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_workgroup.wgsl.expected.ir.glsl
index 56f48c5..73d2e6b 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_workgroup.wgsl.expected.ir.glsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_workgroup.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 310 es
+#extension GL_AMD_gpu_shader_half_float: require
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+struct mat4x4_f16_std140 {
+ f16vec4 col0;
+ f16vec4 col1;
+ f16vec4 col2;
+ f16vec4 col3;
+};
+
+layout(binding = 0, std140)
+uniform tint_symbol_1_std140_1_ubo {
+ mat4x4_f16_std140 tint_symbol[4];
+} v;
+shared f16mat4 w[4];
+void f_inner(uint tint_local_index) {
+ {
+ uint v_1 = 0u;
+ v_1 = tint_local_index;
+ while(true) {
+ uint v_2 = v_1;
+ if ((v_2 >= 4u)) {
+ break;
+ }
+ w[v_2] = f16mat4(f16vec4(0.0hf), f16vec4(0.0hf), f16vec4(0.0hf), f16vec4(0.0hf));
+ {
+ v_1 = (v_2 + 1u);
+ }
+ continue;
+ }
+ }
+ barrier();
+ mat4x4_f16_std140 v_3[4] = v.tint_symbol;
+ f16mat4 v_4[4] = f16mat4[4](f16mat4(f16vec4(0.0hf), f16vec4(0.0hf), f16vec4(0.0hf), f16vec4(0.0hf)), f16mat4(f16vec4(0.0hf), f16vec4(0.0hf), f16vec4(0.0hf), f16vec4(0.0hf)), f16mat4(f16vec4(0.0hf), f16vec4(0.0hf), f16vec4(0.0hf), f16vec4(0.0hf)), f16mat4(f16vec4(0.0hf), f16vec4(0.0hf), f16vec4(0.0hf), f16vec4(0.0hf)));
+ {
+ uint v_5 = 0u;
+ v_5 = 0u;
+ while(true) {
+ uint v_6 = v_5;
+ if ((v_6 >= 4u)) {
+ break;
+ }
+ v_4[v_6] = f16mat4(v_3[v_6].col0, v_3[v_6].col1, v_3[v_6].col2, v_3[v_6].col3);
+ {
+ v_5 = (v_6 + 1u);
+ }
+ continue;
+ }
+ }
+ w = v_4;
+ w[1] = f16mat4(v.tint_symbol[2].col0, v.tint_symbol[2].col1, v.tint_symbol[2].col2, v.tint_symbol[2].col3);
+ w[1][0] = v.tint_symbol[0].col1.ywxz;
+ w[1][0][0u] = v.tint_symbol[0].col1.x;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ f_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_workgroup.wgsl.expected.ir.glsl b/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_workgroup.wgsl.expected.ir.glsl
index 56f48c5..af190ed 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_workgroup.wgsl.expected.ir.glsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_workgroup.wgsl.expected.ir.glsl
@@ -1,11 +1,33 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+layout(binding = 0, std140)
+uniform tint_symbol_1_1_ubo {
+ mat4 tint_symbol[4];
+} v;
+shared mat4 w[4];
+void f_inner(uint tint_local_index) {
+ {
+ uint v_1 = 0u;
+ v_1 = tint_local_index;
+ while(true) {
+ uint v_2 = v_1;
+ if ((v_2 >= 4u)) {
+ break;
+ }
+ w[v_2] = mat4(vec4(0.0f), vec4(0.0f), vec4(0.0f), vec4(0.0f));
+ {
+ v_1 = (v_2 + 1u);
+ }
+ continue;
+ }
+ }
+ barrier();
+ w = v.tint_symbol;
+ w[1] = v.tint_symbol[2];
+ w[1][0] = v.tint_symbol[0][1].ywxz;
+ w[1][0][0u] = v.tint_symbol[0][1].x;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ f_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_workgroup.wgsl.expected.ir.glsl b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_workgroup.wgsl.expected.ir.glsl
index 56f48c5..25938ea 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_workgroup.wgsl.expected.ir.glsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_workgroup.wgsl.expected.ir.glsl
@@ -1,11 +1,68 @@
-SKIP: FAILED
+#version 310 es
+#extension GL_AMD_gpu_shader_half_float: require
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+struct S_std140 {
+ int before;
+ f16vec2 m_col0;
+ f16vec2 m_col1;
+ int after;
+};
+
+struct S {
+ int before;
+ f16mat2 m;
+ int after;
+};
+
+layout(binding = 0, std140)
+uniform tint_symbol_1_std140_1_ubo {
+ S_std140 tint_symbol[4];
+} v;
+shared S w[4];
+S tint_convert_S(S_std140 tint_input) {
+ return S(tint_input.before, f16mat2(tint_input.m_col0, tint_input.m_col1), tint_input.after);
+}
+void f_inner(uint tint_local_index) {
+ {
+ uint v_1 = 0u;
+ v_1 = tint_local_index;
+ while(true) {
+ uint v_2 = v_1;
+ if ((v_2 >= 4u)) {
+ break;
+ }
+ w[v_2] = S(0, f16mat2(f16vec2(0.0hf), f16vec2(0.0hf)), 0);
+ {
+ v_1 = (v_2 + 1u);
+ }
+ continue;
+ }
+ }
+ barrier();
+ S_std140 v_3[4] = v.tint_symbol;
+ S v_4[4] = S[4](S(0, f16mat2(f16vec2(0.0hf), f16vec2(0.0hf)), 0), S(0, f16mat2(f16vec2(0.0hf), f16vec2(0.0hf)), 0), S(0, f16mat2(f16vec2(0.0hf), f16vec2(0.0hf)), 0), S(0, f16mat2(f16vec2(0.0hf), f16vec2(0.0hf)), 0));
+ {
+ uint v_5 = 0u;
+ v_5 = 0u;
+ while(true) {
+ uint v_6 = v_5;
+ if ((v_6 >= 4u)) {
+ break;
+ }
+ v_4[v_6] = tint_convert_S(v_3[v_6]);
+ {
+ v_5 = (v_6 + 1u);
+ }
+ continue;
+ }
+ }
+ w = v_4;
+ w[1] = tint_convert_S(v.tint_symbol[2]);
+ w[3].m = f16mat2(v.tint_symbol[2].m_col0, v.tint_symbol[2].m_col1);
+ w[1].m[0] = v.tint_symbol[0].m_col1.yx;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ f_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_workgroup.wgsl.expected.ir.glsl b/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_workgroup.wgsl.expected.ir.glsl
index 56f48c5..3faa74f 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_workgroup.wgsl.expected.ir.glsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_workgroup.wgsl.expected.ir.glsl
@@ -1,11 +1,67 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+struct S_std140 {
+ int before;
+ vec2 m_col0;
+ vec2 m_col1;
+ int after;
+};
+
+struct S {
+ int before;
+ mat2 m;
+ int after;
+};
+
+layout(binding = 0, std140)
+uniform tint_symbol_1_std140_1_ubo {
+ S_std140 tint_symbol[4];
+} v;
+shared S w[4];
+S tint_convert_S(S_std140 tint_input) {
+ return S(tint_input.before, mat2(tint_input.m_col0, tint_input.m_col1), tint_input.after);
+}
+void f_inner(uint tint_local_index) {
+ {
+ uint v_1 = 0u;
+ v_1 = tint_local_index;
+ while(true) {
+ uint v_2 = v_1;
+ if ((v_2 >= 4u)) {
+ break;
+ }
+ w[v_2] = S(0, mat2(vec2(0.0f), vec2(0.0f)), 0);
+ {
+ v_1 = (v_2 + 1u);
+ }
+ continue;
+ }
+ }
+ barrier();
+ S_std140 v_3[4] = v.tint_symbol;
+ S v_4[4] = S[4](S(0, mat2(vec2(0.0f), vec2(0.0f)), 0), S(0, mat2(vec2(0.0f), vec2(0.0f)), 0), S(0, mat2(vec2(0.0f), vec2(0.0f)), 0), S(0, mat2(vec2(0.0f), vec2(0.0f)), 0));
+ {
+ uint v_5 = 0u;
+ v_5 = 0u;
+ while(true) {
+ uint v_6 = v_5;
+ if ((v_6 >= 4u)) {
+ break;
+ }
+ v_4[v_6] = tint_convert_S(v_3[v_6]);
+ {
+ v_5 = (v_6 + 1u);
+ }
+ continue;
+ }
+ }
+ w = v_4;
+ w[1] = tint_convert_S(v.tint_symbol[2]);
+ w[3].m = mat2(v.tint_symbol[2].m_col0, v.tint_symbol[2].m_col1);
+ w[1].m[0] = v.tint_symbol[0].m_col1.yx;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ f_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_workgroup.wgsl.expected.ir.glsl b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_workgroup.wgsl.expected.ir.glsl
index 56f48c5..c140dce 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_workgroup.wgsl.expected.ir.glsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_workgroup.wgsl.expected.ir.glsl
@@ -1,11 +1,68 @@
-SKIP: FAILED
+#version 310 es
+#extension GL_AMD_gpu_shader_half_float: require
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+struct S_std140 {
+ int before;
+ f16vec3 m_col0;
+ f16vec3 m_col1;
+ int after;
+};
+
+struct S {
+ int before;
+ f16mat2x3 m;
+ int after;
+};
+
+layout(binding = 0, std140)
+uniform tint_symbol_1_std140_1_ubo {
+ S_std140 tint_symbol[4];
+} v;
+shared S w[4];
+S tint_convert_S(S_std140 tint_input) {
+ return S(tint_input.before, f16mat2x3(tint_input.m_col0, tint_input.m_col1), tint_input.after);
+}
+void f_inner(uint tint_local_index) {
+ {
+ uint v_1 = 0u;
+ v_1 = tint_local_index;
+ while(true) {
+ uint v_2 = v_1;
+ if ((v_2 >= 4u)) {
+ break;
+ }
+ w[v_2] = S(0, f16mat2x3(f16vec3(0.0hf), f16vec3(0.0hf)), 0);
+ {
+ v_1 = (v_2 + 1u);
+ }
+ continue;
+ }
+ }
+ barrier();
+ S_std140 v_3[4] = v.tint_symbol;
+ S v_4[4] = S[4](S(0, f16mat2x3(f16vec3(0.0hf), f16vec3(0.0hf)), 0), S(0, f16mat2x3(f16vec3(0.0hf), f16vec3(0.0hf)), 0), S(0, f16mat2x3(f16vec3(0.0hf), f16vec3(0.0hf)), 0), S(0, f16mat2x3(f16vec3(0.0hf), f16vec3(0.0hf)), 0));
+ {
+ uint v_5 = 0u;
+ v_5 = 0u;
+ while(true) {
+ uint v_6 = v_5;
+ if ((v_6 >= 4u)) {
+ break;
+ }
+ v_4[v_6] = tint_convert_S(v_3[v_6]);
+ {
+ v_5 = (v_6 + 1u);
+ }
+ continue;
+ }
+ }
+ w = v_4;
+ w[1] = tint_convert_S(v.tint_symbol[2]);
+ w[3].m = f16mat2x3(v.tint_symbol[2].m_col0, v.tint_symbol[2].m_col1);
+ w[1].m[0] = v.tint_symbol[0].m_col1.zxy;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ f_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_workgroup.wgsl.expected.ir.glsl b/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_workgroup.wgsl.expected.ir.glsl
index 56f48c5..f08d657 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_workgroup.wgsl.expected.ir.glsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_workgroup.wgsl.expected.ir.glsl
@@ -1,11 +1,67 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+struct S_std140 {
+ int before;
+ vec3 m_col0;
+ vec3 m_col1;
+ int after;
+};
+
+struct S {
+ int before;
+ mat2x3 m;
+ int after;
+};
+
+layout(binding = 0, std140)
+uniform tint_symbol_1_std140_1_ubo {
+ S_std140 tint_symbol[4];
+} v;
+shared S w[4];
+S tint_convert_S(S_std140 tint_input) {
+ return S(tint_input.before, mat2x3(tint_input.m_col0, tint_input.m_col1), tint_input.after);
+}
+void f_inner(uint tint_local_index) {
+ {
+ uint v_1 = 0u;
+ v_1 = tint_local_index;
+ while(true) {
+ uint v_2 = v_1;
+ if ((v_2 >= 4u)) {
+ break;
+ }
+ w[v_2] = S(0, mat2x3(vec3(0.0f), vec3(0.0f)), 0);
+ {
+ v_1 = (v_2 + 1u);
+ }
+ continue;
+ }
+ }
+ barrier();
+ S_std140 v_3[4] = v.tint_symbol;
+ S v_4[4] = S[4](S(0, mat2x3(vec3(0.0f), vec3(0.0f)), 0), S(0, mat2x3(vec3(0.0f), vec3(0.0f)), 0), S(0, mat2x3(vec3(0.0f), vec3(0.0f)), 0), S(0, mat2x3(vec3(0.0f), vec3(0.0f)), 0));
+ {
+ uint v_5 = 0u;
+ v_5 = 0u;
+ while(true) {
+ uint v_6 = v_5;
+ if ((v_6 >= 4u)) {
+ break;
+ }
+ v_4[v_6] = tint_convert_S(v_3[v_6]);
+ {
+ v_5 = (v_6 + 1u);
+ }
+ continue;
+ }
+ }
+ w = v_4;
+ w[1] = tint_convert_S(v.tint_symbol[2]);
+ w[3].m = mat2x3(v.tint_symbol[2].m_col0, v.tint_symbol[2].m_col1);
+ w[1].m[0] = v.tint_symbol[0].m_col1.zxy;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ f_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_workgroup.wgsl.expected.ir.glsl b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_workgroup.wgsl.expected.ir.glsl
index 56f48c5..a59c365 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_workgroup.wgsl.expected.ir.glsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_workgroup.wgsl.expected.ir.glsl
@@ -1,11 +1,68 @@
-SKIP: FAILED
+#version 310 es
+#extension GL_AMD_gpu_shader_half_float: require
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+struct S_std140 {
+ int before;
+ f16vec4 m_col0;
+ f16vec4 m_col1;
+ int after;
+};
+
+struct S {
+ int before;
+ f16mat2x4 m;
+ int after;
+};
+
+layout(binding = 0, std140)
+uniform tint_symbol_1_std140_1_ubo {
+ S_std140 tint_symbol[4];
+} v;
+shared S w[4];
+S tint_convert_S(S_std140 tint_input) {
+ return S(tint_input.before, f16mat2x4(tint_input.m_col0, tint_input.m_col1), tint_input.after);
+}
+void f_inner(uint tint_local_index) {
+ {
+ uint v_1 = 0u;
+ v_1 = tint_local_index;
+ while(true) {
+ uint v_2 = v_1;
+ if ((v_2 >= 4u)) {
+ break;
+ }
+ w[v_2] = S(0, f16mat2x4(f16vec4(0.0hf), f16vec4(0.0hf)), 0);
+ {
+ v_1 = (v_2 + 1u);
+ }
+ continue;
+ }
+ }
+ barrier();
+ S_std140 v_3[4] = v.tint_symbol;
+ S v_4[4] = S[4](S(0, f16mat2x4(f16vec4(0.0hf), f16vec4(0.0hf)), 0), S(0, f16mat2x4(f16vec4(0.0hf), f16vec4(0.0hf)), 0), S(0, f16mat2x4(f16vec4(0.0hf), f16vec4(0.0hf)), 0), S(0, f16mat2x4(f16vec4(0.0hf), f16vec4(0.0hf)), 0));
+ {
+ uint v_5 = 0u;
+ v_5 = 0u;
+ while(true) {
+ uint v_6 = v_5;
+ if ((v_6 >= 4u)) {
+ break;
+ }
+ v_4[v_6] = tint_convert_S(v_3[v_6]);
+ {
+ v_5 = (v_6 + 1u);
+ }
+ continue;
+ }
+ }
+ w = v_4;
+ w[1] = tint_convert_S(v.tint_symbol[2]);
+ w[3].m = f16mat2x4(v.tint_symbol[2].m_col0, v.tint_symbol[2].m_col1);
+ w[1].m[0] = v.tint_symbol[0].m_col1.ywxz;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ f_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_workgroup.wgsl.expected.ir.glsl b/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_workgroup.wgsl.expected.ir.glsl
index 56f48c5..b5c449e 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_workgroup.wgsl.expected.ir.glsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_workgroup.wgsl.expected.ir.glsl
@@ -1,11 +1,40 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+struct S {
+ int before;
+ mat2x4 m;
+ int after;
+};
+
+layout(binding = 0, std140)
+uniform tint_symbol_1_1_ubo {
+ S tint_symbol[4];
+} v;
+shared S w[4];
+void f_inner(uint tint_local_index) {
+ {
+ uint v_1 = 0u;
+ v_1 = tint_local_index;
+ while(true) {
+ uint v_2 = v_1;
+ if ((v_2 >= 4u)) {
+ break;
+ }
+ w[v_2] = S(0, mat2x4(vec4(0.0f), vec4(0.0f)), 0);
+ {
+ v_1 = (v_2 + 1u);
+ }
+ continue;
+ }
+ }
+ barrier();
+ w = v.tint_symbol;
+ w[1] = v.tint_symbol[2];
+ w[3].m = v.tint_symbol[2].m;
+ w[1].m[0] = v.tint_symbol[0].m[1].ywxz;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ f_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_workgroup.wgsl.expected.ir.glsl b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_workgroup.wgsl.expected.ir.glsl
index 56f48c5..e73750d 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_workgroup.wgsl.expected.ir.glsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_workgroup.wgsl.expected.ir.glsl
@@ -1,11 +1,69 @@
-SKIP: FAILED
+#version 310 es
+#extension GL_AMD_gpu_shader_half_float: require
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+struct S_std140 {
+ int before;
+ f16vec2 m_col0;
+ f16vec2 m_col1;
+ f16vec2 m_col2;
+ int after;
+};
+
+struct S {
+ int before;
+ f16mat3x2 m;
+ int after;
+};
+
+layout(binding = 0, std140)
+uniform tint_symbol_1_std140_1_ubo {
+ S_std140 tint_symbol[4];
+} v;
+shared S w[4];
+S tint_convert_S(S_std140 tint_input) {
+ return S(tint_input.before, f16mat3x2(tint_input.m_col0, tint_input.m_col1, tint_input.m_col2), tint_input.after);
+}
+void f_inner(uint tint_local_index) {
+ {
+ uint v_1 = 0u;
+ v_1 = tint_local_index;
+ while(true) {
+ uint v_2 = v_1;
+ if ((v_2 >= 4u)) {
+ break;
+ }
+ w[v_2] = S(0, f16mat3x2(f16vec2(0.0hf), f16vec2(0.0hf), f16vec2(0.0hf)), 0);
+ {
+ v_1 = (v_2 + 1u);
+ }
+ continue;
+ }
+ }
+ barrier();
+ S_std140 v_3[4] = v.tint_symbol;
+ S v_4[4] = S[4](S(0, f16mat3x2(f16vec2(0.0hf), f16vec2(0.0hf), f16vec2(0.0hf)), 0), S(0, f16mat3x2(f16vec2(0.0hf), f16vec2(0.0hf), f16vec2(0.0hf)), 0), S(0, f16mat3x2(f16vec2(0.0hf), f16vec2(0.0hf), f16vec2(0.0hf)), 0), S(0, f16mat3x2(f16vec2(0.0hf), f16vec2(0.0hf), f16vec2(0.0hf)), 0));
+ {
+ uint v_5 = 0u;
+ v_5 = 0u;
+ while(true) {
+ uint v_6 = v_5;
+ if ((v_6 >= 4u)) {
+ break;
+ }
+ v_4[v_6] = tint_convert_S(v_3[v_6]);
+ {
+ v_5 = (v_6 + 1u);
+ }
+ continue;
+ }
+ }
+ w = v_4;
+ w[1] = tint_convert_S(v.tint_symbol[2]);
+ w[3].m = f16mat3x2(v.tint_symbol[2].m_col0, v.tint_symbol[2].m_col1, v.tint_symbol[2].m_col2);
+ w[1].m[0] = v.tint_symbol[0].m_col1.yx;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ f_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_workgroup.wgsl.expected.ir.glsl b/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_workgroup.wgsl.expected.ir.glsl
index 56f48c5..b688154 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_workgroup.wgsl.expected.ir.glsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_workgroup.wgsl.expected.ir.glsl
@@ -1,11 +1,68 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+struct S_std140 {
+ int before;
+ vec2 m_col0;
+ vec2 m_col1;
+ vec2 m_col2;
+ int after;
+};
+
+struct S {
+ int before;
+ mat3x2 m;
+ int after;
+};
+
+layout(binding = 0, std140)
+uniform tint_symbol_1_std140_1_ubo {
+ S_std140 tint_symbol[4];
+} v;
+shared S w[4];
+S tint_convert_S(S_std140 tint_input) {
+ return S(tint_input.before, mat3x2(tint_input.m_col0, tint_input.m_col1, tint_input.m_col2), tint_input.after);
+}
+void f_inner(uint tint_local_index) {
+ {
+ uint v_1 = 0u;
+ v_1 = tint_local_index;
+ while(true) {
+ uint v_2 = v_1;
+ if ((v_2 >= 4u)) {
+ break;
+ }
+ w[v_2] = S(0, mat3x2(vec2(0.0f), vec2(0.0f), vec2(0.0f)), 0);
+ {
+ v_1 = (v_2 + 1u);
+ }
+ continue;
+ }
+ }
+ barrier();
+ S_std140 v_3[4] = v.tint_symbol;
+ S v_4[4] = S[4](S(0, mat3x2(vec2(0.0f), vec2(0.0f), vec2(0.0f)), 0), S(0, mat3x2(vec2(0.0f), vec2(0.0f), vec2(0.0f)), 0), S(0, mat3x2(vec2(0.0f), vec2(0.0f), vec2(0.0f)), 0), S(0, mat3x2(vec2(0.0f), vec2(0.0f), vec2(0.0f)), 0));
+ {
+ uint v_5 = 0u;
+ v_5 = 0u;
+ while(true) {
+ uint v_6 = v_5;
+ if ((v_6 >= 4u)) {
+ break;
+ }
+ v_4[v_6] = tint_convert_S(v_3[v_6]);
+ {
+ v_5 = (v_6 + 1u);
+ }
+ continue;
+ }
+ }
+ w = v_4;
+ w[1] = tint_convert_S(v.tint_symbol[2]);
+ w[3].m = mat3x2(v.tint_symbol[2].m_col0, v.tint_symbol[2].m_col1, v.tint_symbol[2].m_col2);
+ w[1].m[0] = v.tint_symbol[0].m_col1.yx;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ f_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_workgroup.wgsl.expected.ir.glsl b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_workgroup.wgsl.expected.ir.glsl
index 56f48c5..228b57f 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_workgroup.wgsl.expected.ir.glsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_workgroup.wgsl.expected.ir.glsl
@@ -1,11 +1,69 @@
-SKIP: FAILED
+#version 310 es
+#extension GL_AMD_gpu_shader_half_float: require
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+struct S_std140 {
+ int before;
+ f16vec3 m_col0;
+ f16vec3 m_col1;
+ f16vec3 m_col2;
+ int after;
+};
+
+struct S {
+ int before;
+ f16mat3 m;
+ int after;
+};
+
+layout(binding = 0, std140)
+uniform tint_symbol_1_std140_1_ubo {
+ S_std140 tint_symbol[4];
+} v;
+shared S w[4];
+S tint_convert_S(S_std140 tint_input) {
+ return S(tint_input.before, f16mat3(tint_input.m_col0, tint_input.m_col1, tint_input.m_col2), tint_input.after);
+}
+void f_inner(uint tint_local_index) {
+ {
+ uint v_1 = 0u;
+ v_1 = tint_local_index;
+ while(true) {
+ uint v_2 = v_1;
+ if ((v_2 >= 4u)) {
+ break;
+ }
+ w[v_2] = S(0, f16mat3(f16vec3(0.0hf), f16vec3(0.0hf), f16vec3(0.0hf)), 0);
+ {
+ v_1 = (v_2 + 1u);
+ }
+ continue;
+ }
+ }
+ barrier();
+ S_std140 v_3[4] = v.tint_symbol;
+ S v_4[4] = S[4](S(0, f16mat3(f16vec3(0.0hf), f16vec3(0.0hf), f16vec3(0.0hf)), 0), S(0, f16mat3(f16vec3(0.0hf), f16vec3(0.0hf), f16vec3(0.0hf)), 0), S(0, f16mat3(f16vec3(0.0hf), f16vec3(0.0hf), f16vec3(0.0hf)), 0), S(0, f16mat3(f16vec3(0.0hf), f16vec3(0.0hf), f16vec3(0.0hf)), 0));
+ {
+ uint v_5 = 0u;
+ v_5 = 0u;
+ while(true) {
+ uint v_6 = v_5;
+ if ((v_6 >= 4u)) {
+ break;
+ }
+ v_4[v_6] = tint_convert_S(v_3[v_6]);
+ {
+ v_5 = (v_6 + 1u);
+ }
+ continue;
+ }
+ }
+ w = v_4;
+ w[1] = tint_convert_S(v.tint_symbol[2]);
+ w[3].m = f16mat3(v.tint_symbol[2].m_col0, v.tint_symbol[2].m_col1, v.tint_symbol[2].m_col2);
+ w[1].m[0] = v.tint_symbol[0].m_col1.zxy;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ f_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_workgroup.wgsl.expected.ir.glsl b/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_workgroup.wgsl.expected.ir.glsl
index 56f48c5..46d08d4 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_workgroup.wgsl.expected.ir.glsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_workgroup.wgsl.expected.ir.glsl
@@ -1,11 +1,68 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+struct S_std140 {
+ int before;
+ vec3 m_col0;
+ vec3 m_col1;
+ vec3 m_col2;
+ int after;
+};
+
+struct S {
+ int before;
+ mat3 m;
+ int after;
+};
+
+layout(binding = 0, std140)
+uniform tint_symbol_1_std140_1_ubo {
+ S_std140 tint_symbol[4];
+} v;
+shared S w[4];
+S tint_convert_S(S_std140 tint_input) {
+ return S(tint_input.before, mat3(tint_input.m_col0, tint_input.m_col1, tint_input.m_col2), tint_input.after);
+}
+void f_inner(uint tint_local_index) {
+ {
+ uint v_1 = 0u;
+ v_1 = tint_local_index;
+ while(true) {
+ uint v_2 = v_1;
+ if ((v_2 >= 4u)) {
+ break;
+ }
+ w[v_2] = S(0, mat3(vec3(0.0f), vec3(0.0f), vec3(0.0f)), 0);
+ {
+ v_1 = (v_2 + 1u);
+ }
+ continue;
+ }
+ }
+ barrier();
+ S_std140 v_3[4] = v.tint_symbol;
+ S v_4[4] = S[4](S(0, mat3(vec3(0.0f), vec3(0.0f), vec3(0.0f)), 0), S(0, mat3(vec3(0.0f), vec3(0.0f), vec3(0.0f)), 0), S(0, mat3(vec3(0.0f), vec3(0.0f), vec3(0.0f)), 0), S(0, mat3(vec3(0.0f), vec3(0.0f), vec3(0.0f)), 0));
+ {
+ uint v_5 = 0u;
+ v_5 = 0u;
+ while(true) {
+ uint v_6 = v_5;
+ if ((v_6 >= 4u)) {
+ break;
+ }
+ v_4[v_6] = tint_convert_S(v_3[v_6]);
+ {
+ v_5 = (v_6 + 1u);
+ }
+ continue;
+ }
+ }
+ w = v_4;
+ w[1] = tint_convert_S(v.tint_symbol[2]);
+ w[3].m = mat3(v.tint_symbol[2].m_col0, v.tint_symbol[2].m_col1, v.tint_symbol[2].m_col2);
+ w[1].m[0] = v.tint_symbol[0].m_col1.zxy;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ f_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_workgroup.wgsl.expected.ir.glsl b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_workgroup.wgsl.expected.ir.glsl
index 56f48c5..bf146ef 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_workgroup.wgsl.expected.ir.glsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_workgroup.wgsl.expected.ir.glsl
@@ -1,11 +1,69 @@
-SKIP: FAILED
+#version 310 es
+#extension GL_AMD_gpu_shader_half_float: require
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+struct S_std140 {
+ int before;
+ f16vec4 m_col0;
+ f16vec4 m_col1;
+ f16vec4 m_col2;
+ int after;
+};
+
+struct S {
+ int before;
+ f16mat3x4 m;
+ int after;
+};
+
+layout(binding = 0, std140)
+uniform tint_symbol_1_std140_1_ubo {
+ S_std140 tint_symbol[4];
+} v;
+shared S w[4];
+S tint_convert_S(S_std140 tint_input) {
+ return S(tint_input.before, f16mat3x4(tint_input.m_col0, tint_input.m_col1, tint_input.m_col2), tint_input.after);
+}
+void f_inner(uint tint_local_index) {
+ {
+ uint v_1 = 0u;
+ v_1 = tint_local_index;
+ while(true) {
+ uint v_2 = v_1;
+ if ((v_2 >= 4u)) {
+ break;
+ }
+ w[v_2] = S(0, f16mat3x4(f16vec4(0.0hf), f16vec4(0.0hf), f16vec4(0.0hf)), 0);
+ {
+ v_1 = (v_2 + 1u);
+ }
+ continue;
+ }
+ }
+ barrier();
+ S_std140 v_3[4] = v.tint_symbol;
+ S v_4[4] = S[4](S(0, f16mat3x4(f16vec4(0.0hf), f16vec4(0.0hf), f16vec4(0.0hf)), 0), S(0, f16mat3x4(f16vec4(0.0hf), f16vec4(0.0hf), f16vec4(0.0hf)), 0), S(0, f16mat3x4(f16vec4(0.0hf), f16vec4(0.0hf), f16vec4(0.0hf)), 0), S(0, f16mat3x4(f16vec4(0.0hf), f16vec4(0.0hf), f16vec4(0.0hf)), 0));
+ {
+ uint v_5 = 0u;
+ v_5 = 0u;
+ while(true) {
+ uint v_6 = v_5;
+ if ((v_6 >= 4u)) {
+ break;
+ }
+ v_4[v_6] = tint_convert_S(v_3[v_6]);
+ {
+ v_5 = (v_6 + 1u);
+ }
+ continue;
+ }
+ }
+ w = v_4;
+ w[1] = tint_convert_S(v.tint_symbol[2]);
+ w[3].m = f16mat3x4(v.tint_symbol[2].m_col0, v.tint_symbol[2].m_col1, v.tint_symbol[2].m_col2);
+ w[1].m[0] = v.tint_symbol[0].m_col1.ywxz;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ f_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_workgroup.wgsl.expected.ir.glsl b/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_workgroup.wgsl.expected.ir.glsl
index 56f48c5..d441b7a 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_workgroup.wgsl.expected.ir.glsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_workgroup.wgsl.expected.ir.glsl
@@ -1,11 +1,40 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+struct S {
+ int before;
+ mat3x4 m;
+ int after;
+};
+
+layout(binding = 0, std140)
+uniform tint_symbol_1_1_ubo {
+ S tint_symbol[4];
+} v;
+shared S w[4];
+void f_inner(uint tint_local_index) {
+ {
+ uint v_1 = 0u;
+ v_1 = tint_local_index;
+ while(true) {
+ uint v_2 = v_1;
+ if ((v_2 >= 4u)) {
+ break;
+ }
+ w[v_2] = S(0, mat3x4(vec4(0.0f), vec4(0.0f), vec4(0.0f)), 0);
+ {
+ v_1 = (v_2 + 1u);
+ }
+ continue;
+ }
+ }
+ barrier();
+ w = v.tint_symbol;
+ w[1] = v.tint_symbol[2];
+ w[3].m = v.tint_symbol[2].m;
+ w[1].m[0] = v.tint_symbol[0].m[1].ywxz;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ f_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_workgroup.wgsl.expected.ir.glsl b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_workgroup.wgsl.expected.ir.glsl
index 56f48c5..89153e5 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_workgroup.wgsl.expected.ir.glsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_workgroup.wgsl.expected.ir.glsl
@@ -1,11 +1,70 @@
-SKIP: FAILED
+#version 310 es
+#extension GL_AMD_gpu_shader_half_float: require
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+struct S_std140 {
+ int before;
+ f16vec2 m_col0;
+ f16vec2 m_col1;
+ f16vec2 m_col2;
+ f16vec2 m_col3;
+ int after;
+};
+
+struct S {
+ int before;
+ f16mat4x2 m;
+ int after;
+};
+
+layout(binding = 0, std140)
+uniform tint_symbol_1_std140_1_ubo {
+ S_std140 tint_symbol[4];
+} v;
+shared S w[4];
+S tint_convert_S(S_std140 tint_input) {
+ return S(tint_input.before, f16mat4x2(tint_input.m_col0, tint_input.m_col1, tint_input.m_col2, tint_input.m_col3), tint_input.after);
+}
+void f_inner(uint tint_local_index) {
+ {
+ uint v_1 = 0u;
+ v_1 = tint_local_index;
+ while(true) {
+ uint v_2 = v_1;
+ if ((v_2 >= 4u)) {
+ break;
+ }
+ w[v_2] = S(0, f16mat4x2(f16vec2(0.0hf), f16vec2(0.0hf), f16vec2(0.0hf), f16vec2(0.0hf)), 0);
+ {
+ v_1 = (v_2 + 1u);
+ }
+ continue;
+ }
+ }
+ barrier();
+ S_std140 v_3[4] = v.tint_symbol;
+ S v_4[4] = S[4](S(0, f16mat4x2(f16vec2(0.0hf), f16vec2(0.0hf), f16vec2(0.0hf), f16vec2(0.0hf)), 0), S(0, f16mat4x2(f16vec2(0.0hf), f16vec2(0.0hf), f16vec2(0.0hf), f16vec2(0.0hf)), 0), S(0, f16mat4x2(f16vec2(0.0hf), f16vec2(0.0hf), f16vec2(0.0hf), f16vec2(0.0hf)), 0), S(0, f16mat4x2(f16vec2(0.0hf), f16vec2(0.0hf), f16vec2(0.0hf), f16vec2(0.0hf)), 0));
+ {
+ uint v_5 = 0u;
+ v_5 = 0u;
+ while(true) {
+ uint v_6 = v_5;
+ if ((v_6 >= 4u)) {
+ break;
+ }
+ v_4[v_6] = tint_convert_S(v_3[v_6]);
+ {
+ v_5 = (v_6 + 1u);
+ }
+ continue;
+ }
+ }
+ w = v_4;
+ w[1] = tint_convert_S(v.tint_symbol[2]);
+ w[3].m = f16mat4x2(v.tint_symbol[2].m_col0, v.tint_symbol[2].m_col1, v.tint_symbol[2].m_col2, v.tint_symbol[2].m_col3);
+ w[1].m[0] = v.tint_symbol[0].m_col1.yx;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ f_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_workgroup.wgsl.expected.ir.glsl b/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_workgroup.wgsl.expected.ir.glsl
index 56f48c5..6b93871 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_workgroup.wgsl.expected.ir.glsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_workgroup.wgsl.expected.ir.glsl
@@ -1,11 +1,69 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+struct S_std140 {
+ int before;
+ vec2 m_col0;
+ vec2 m_col1;
+ vec2 m_col2;
+ vec2 m_col3;
+ int after;
+};
+
+struct S {
+ int before;
+ mat4x2 m;
+ int after;
+};
+
+layout(binding = 0, std140)
+uniform tint_symbol_1_std140_1_ubo {
+ S_std140 tint_symbol[4];
+} v;
+shared S w[4];
+S tint_convert_S(S_std140 tint_input) {
+ return S(tint_input.before, mat4x2(tint_input.m_col0, tint_input.m_col1, tint_input.m_col2, tint_input.m_col3), tint_input.after);
+}
+void f_inner(uint tint_local_index) {
+ {
+ uint v_1 = 0u;
+ v_1 = tint_local_index;
+ while(true) {
+ uint v_2 = v_1;
+ if ((v_2 >= 4u)) {
+ break;
+ }
+ w[v_2] = S(0, mat4x2(vec2(0.0f), vec2(0.0f), vec2(0.0f), vec2(0.0f)), 0);
+ {
+ v_1 = (v_2 + 1u);
+ }
+ continue;
+ }
+ }
+ barrier();
+ S_std140 v_3[4] = v.tint_symbol;
+ S v_4[4] = S[4](S(0, mat4x2(vec2(0.0f), vec2(0.0f), vec2(0.0f), vec2(0.0f)), 0), S(0, mat4x2(vec2(0.0f), vec2(0.0f), vec2(0.0f), vec2(0.0f)), 0), S(0, mat4x2(vec2(0.0f), vec2(0.0f), vec2(0.0f), vec2(0.0f)), 0), S(0, mat4x2(vec2(0.0f), vec2(0.0f), vec2(0.0f), vec2(0.0f)), 0));
+ {
+ uint v_5 = 0u;
+ v_5 = 0u;
+ while(true) {
+ uint v_6 = v_5;
+ if ((v_6 >= 4u)) {
+ break;
+ }
+ v_4[v_6] = tint_convert_S(v_3[v_6]);
+ {
+ v_5 = (v_6 + 1u);
+ }
+ continue;
+ }
+ }
+ w = v_4;
+ w[1] = tint_convert_S(v.tint_symbol[2]);
+ w[3].m = mat4x2(v.tint_symbol[2].m_col0, v.tint_symbol[2].m_col1, v.tint_symbol[2].m_col2, v.tint_symbol[2].m_col3);
+ w[1].m[0] = v.tint_symbol[0].m_col1.yx;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ f_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_workgroup.wgsl.expected.ir.glsl b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_workgroup.wgsl.expected.ir.glsl
index 56f48c5..d409357 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_workgroup.wgsl.expected.ir.glsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_workgroup.wgsl.expected.ir.glsl
@@ -1,11 +1,70 @@
-SKIP: FAILED
+#version 310 es
+#extension GL_AMD_gpu_shader_half_float: require
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+struct S_std140 {
+ int before;
+ f16vec3 m_col0;
+ f16vec3 m_col1;
+ f16vec3 m_col2;
+ f16vec3 m_col3;
+ int after;
+};
+
+struct S {
+ int before;
+ f16mat4x3 m;
+ int after;
+};
+
+layout(binding = 0, std140)
+uniform tint_symbol_1_std140_1_ubo {
+ S_std140 tint_symbol[4];
+} v;
+shared S w[4];
+S tint_convert_S(S_std140 tint_input) {
+ return S(tint_input.before, f16mat4x3(tint_input.m_col0, tint_input.m_col1, tint_input.m_col2, tint_input.m_col3), tint_input.after);
+}
+void f_inner(uint tint_local_index) {
+ {
+ uint v_1 = 0u;
+ v_1 = tint_local_index;
+ while(true) {
+ uint v_2 = v_1;
+ if ((v_2 >= 4u)) {
+ break;
+ }
+ w[v_2] = S(0, f16mat4x3(f16vec3(0.0hf), f16vec3(0.0hf), f16vec3(0.0hf), f16vec3(0.0hf)), 0);
+ {
+ v_1 = (v_2 + 1u);
+ }
+ continue;
+ }
+ }
+ barrier();
+ S_std140 v_3[4] = v.tint_symbol;
+ S v_4[4] = S[4](S(0, f16mat4x3(f16vec3(0.0hf), f16vec3(0.0hf), f16vec3(0.0hf), f16vec3(0.0hf)), 0), S(0, f16mat4x3(f16vec3(0.0hf), f16vec3(0.0hf), f16vec3(0.0hf), f16vec3(0.0hf)), 0), S(0, f16mat4x3(f16vec3(0.0hf), f16vec3(0.0hf), f16vec3(0.0hf), f16vec3(0.0hf)), 0), S(0, f16mat4x3(f16vec3(0.0hf), f16vec3(0.0hf), f16vec3(0.0hf), f16vec3(0.0hf)), 0));
+ {
+ uint v_5 = 0u;
+ v_5 = 0u;
+ while(true) {
+ uint v_6 = v_5;
+ if ((v_6 >= 4u)) {
+ break;
+ }
+ v_4[v_6] = tint_convert_S(v_3[v_6]);
+ {
+ v_5 = (v_6 + 1u);
+ }
+ continue;
+ }
+ }
+ w = v_4;
+ w[1] = tint_convert_S(v.tint_symbol[2]);
+ w[3].m = f16mat4x3(v.tint_symbol[2].m_col0, v.tint_symbol[2].m_col1, v.tint_symbol[2].m_col2, v.tint_symbol[2].m_col3);
+ w[1].m[0] = v.tint_symbol[0].m_col1.zxy;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ f_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_workgroup.wgsl.expected.ir.glsl b/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_workgroup.wgsl.expected.ir.glsl
index 56f48c5..aa4d762 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_workgroup.wgsl.expected.ir.glsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_workgroup.wgsl.expected.ir.glsl
@@ -1,11 +1,69 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+struct S_std140 {
+ int before;
+ vec3 m_col0;
+ vec3 m_col1;
+ vec3 m_col2;
+ vec3 m_col3;
+ int after;
+};
+
+struct S {
+ int before;
+ mat4x3 m;
+ int after;
+};
+
+layout(binding = 0, std140)
+uniform tint_symbol_1_std140_1_ubo {
+ S_std140 tint_symbol[4];
+} v;
+shared S w[4];
+S tint_convert_S(S_std140 tint_input) {
+ return S(tint_input.before, mat4x3(tint_input.m_col0, tint_input.m_col1, tint_input.m_col2, tint_input.m_col3), tint_input.after);
+}
+void f_inner(uint tint_local_index) {
+ {
+ uint v_1 = 0u;
+ v_1 = tint_local_index;
+ while(true) {
+ uint v_2 = v_1;
+ if ((v_2 >= 4u)) {
+ break;
+ }
+ w[v_2] = S(0, mat4x3(vec3(0.0f), vec3(0.0f), vec3(0.0f), vec3(0.0f)), 0);
+ {
+ v_1 = (v_2 + 1u);
+ }
+ continue;
+ }
+ }
+ barrier();
+ S_std140 v_3[4] = v.tint_symbol;
+ S v_4[4] = S[4](S(0, mat4x3(vec3(0.0f), vec3(0.0f), vec3(0.0f), vec3(0.0f)), 0), S(0, mat4x3(vec3(0.0f), vec3(0.0f), vec3(0.0f), vec3(0.0f)), 0), S(0, mat4x3(vec3(0.0f), vec3(0.0f), vec3(0.0f), vec3(0.0f)), 0), S(0, mat4x3(vec3(0.0f), vec3(0.0f), vec3(0.0f), vec3(0.0f)), 0));
+ {
+ uint v_5 = 0u;
+ v_5 = 0u;
+ while(true) {
+ uint v_6 = v_5;
+ if ((v_6 >= 4u)) {
+ break;
+ }
+ v_4[v_6] = tint_convert_S(v_3[v_6]);
+ {
+ v_5 = (v_6 + 1u);
+ }
+ continue;
+ }
+ }
+ w = v_4;
+ w[1] = tint_convert_S(v.tint_symbol[2]);
+ w[3].m = mat4x3(v.tint_symbol[2].m_col0, v.tint_symbol[2].m_col1, v.tint_symbol[2].m_col2, v.tint_symbol[2].m_col3);
+ w[1].m[0] = v.tint_symbol[0].m_col1.zxy;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ f_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_workgroup.wgsl.expected.ir.glsl b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_workgroup.wgsl.expected.ir.glsl
index 56f48c5..8554ae0 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_workgroup.wgsl.expected.ir.glsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_workgroup.wgsl.expected.ir.glsl
@@ -1,11 +1,70 @@
-SKIP: FAILED
+#version 310 es
+#extension GL_AMD_gpu_shader_half_float: require
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+struct S_std140 {
+ int before;
+ f16vec4 m_col0;
+ f16vec4 m_col1;
+ f16vec4 m_col2;
+ f16vec4 m_col3;
+ int after;
+};
+
+struct S {
+ int before;
+ f16mat4 m;
+ int after;
+};
+
+layout(binding = 0, std140)
+uniform tint_symbol_1_std140_1_ubo {
+ S_std140 tint_symbol[4];
+} v;
+shared S w[4];
+S tint_convert_S(S_std140 tint_input) {
+ return S(tint_input.before, f16mat4(tint_input.m_col0, tint_input.m_col1, tint_input.m_col2, tint_input.m_col3), tint_input.after);
+}
+void f_inner(uint tint_local_index) {
+ {
+ uint v_1 = 0u;
+ v_1 = tint_local_index;
+ while(true) {
+ uint v_2 = v_1;
+ if ((v_2 >= 4u)) {
+ break;
+ }
+ w[v_2] = S(0, f16mat4(f16vec4(0.0hf), f16vec4(0.0hf), f16vec4(0.0hf), f16vec4(0.0hf)), 0);
+ {
+ v_1 = (v_2 + 1u);
+ }
+ continue;
+ }
+ }
+ barrier();
+ S_std140 v_3[4] = v.tint_symbol;
+ S v_4[4] = S[4](S(0, f16mat4(f16vec4(0.0hf), f16vec4(0.0hf), f16vec4(0.0hf), f16vec4(0.0hf)), 0), S(0, f16mat4(f16vec4(0.0hf), f16vec4(0.0hf), f16vec4(0.0hf), f16vec4(0.0hf)), 0), S(0, f16mat4(f16vec4(0.0hf), f16vec4(0.0hf), f16vec4(0.0hf), f16vec4(0.0hf)), 0), S(0, f16mat4(f16vec4(0.0hf), f16vec4(0.0hf), f16vec4(0.0hf), f16vec4(0.0hf)), 0));
+ {
+ uint v_5 = 0u;
+ v_5 = 0u;
+ while(true) {
+ uint v_6 = v_5;
+ if ((v_6 >= 4u)) {
+ break;
+ }
+ v_4[v_6] = tint_convert_S(v_3[v_6]);
+ {
+ v_5 = (v_6 + 1u);
+ }
+ continue;
+ }
+ }
+ w = v_4;
+ w[1] = tint_convert_S(v.tint_symbol[2]);
+ w[3].m = f16mat4(v.tint_symbol[2].m_col0, v.tint_symbol[2].m_col1, v.tint_symbol[2].m_col2, v.tint_symbol[2].m_col3);
+ w[1].m[0] = v.tint_symbol[0].m_col1.ywxz;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ f_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_workgroup.wgsl.expected.ir.glsl b/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_workgroup.wgsl.expected.ir.glsl
index 56f48c5..d27534a 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_workgroup.wgsl.expected.ir.glsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_workgroup.wgsl.expected.ir.glsl
@@ -1,11 +1,40 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+struct S {
+ int before;
+ mat4 m;
+ int after;
+};
+
+layout(binding = 0, std140)
+uniform tint_symbol_1_1_ubo {
+ S tint_symbol[4];
+} v;
+shared S w[4];
+void f_inner(uint tint_local_index) {
+ {
+ uint v_1 = 0u;
+ v_1 = tint_local_index;
+ while(true) {
+ uint v_2 = v_1;
+ if ((v_2 >= 4u)) {
+ break;
+ }
+ w[v_2] = S(0, mat4(vec4(0.0f), vec4(0.0f), vec4(0.0f), vec4(0.0f)), 0);
+ {
+ v_1 = (v_2 + 1u);
+ }
+ continue;
+ }
+ }
+ barrier();
+ w = v.tint_symbol;
+ w[1] = v.tint_symbol[2];
+ w[3].m = v.tint_symbol[2].m;
+ w[1].m[0] = v.tint_symbol[0].m[1].ywxz;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ f_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_workgroup.wgsl.expected.ir.glsl b/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_workgroup.wgsl.expected.ir.glsl
index 56f48c5..e24d7a6 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_workgroup.wgsl.expected.ir.glsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_workgroup.wgsl.expected.ir.glsl
@@ -1,11 +1,23 @@
-SKIP: FAILED
+#version 310 es
+#extension GL_AMD_gpu_shader_half_float: require
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+layout(binding = 0, std140)
+uniform tint_symbol_1_std140_1_ubo {
+ f16vec2 tint_symbol_col0;
+ f16vec2 tint_symbol_col1;
+} v;
+shared f16mat2 w;
+void f_inner(uint tint_local_index) {
+ if ((tint_local_index == 0u)) {
+ w = f16mat2(f16vec2(0.0hf), f16vec2(0.0hf));
+ }
+ barrier();
+ w = f16mat2(v.tint_symbol_col0, v.tint_symbol_col1);
+ w[1] = f16mat2(v.tint_symbol_col0, v.tint_symbol_col1)[0];
+ w[1] = f16mat2(v.tint_symbol_col0, v.tint_symbol_col1)[0].yx;
+ w[0][1] = f16mat2(v.tint_symbol_col0, v.tint_symbol_col1)[1][0];
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ f_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/to_workgroup.wgsl.expected.ir.glsl b/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/to_workgroup.wgsl.expected.ir.glsl
index 56f48c5..272942f 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/to_workgroup.wgsl.expected.ir.glsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/to_workgroup.wgsl.expected.ir.glsl
@@ -1,11 +1,22 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+layout(binding = 0, std140)
+uniform tint_symbol_1_std140_1_ubo {
+ vec2 tint_symbol_col0;
+ vec2 tint_symbol_col1;
+} v;
+shared mat2 w;
+void f_inner(uint tint_local_index) {
+ if ((tint_local_index == 0u)) {
+ w = mat2(vec2(0.0f), vec2(0.0f));
+ }
+ barrier();
+ w = mat2(v.tint_symbol_col0, v.tint_symbol_col1);
+ w[1] = mat2(v.tint_symbol_col0, v.tint_symbol_col1)[0];
+ w[1] = mat2(v.tint_symbol_col0, v.tint_symbol_col1)[0].yx;
+ w[0][1] = mat2(v.tint_symbol_col0, v.tint_symbol_col1)[1][0];
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ f_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_workgroup.wgsl.expected.ir.glsl b/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_workgroup.wgsl.expected.ir.glsl
index 56f48c5..d6c470a 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_workgroup.wgsl.expected.ir.glsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_workgroup.wgsl.expected.ir.glsl
@@ -1,11 +1,23 @@
-SKIP: FAILED
+#version 310 es
+#extension GL_AMD_gpu_shader_half_float: require
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+layout(binding = 0, std140)
+uniform tint_symbol_1_std140_1_ubo {
+ f16vec3 tint_symbol_col0;
+ f16vec3 tint_symbol_col1;
+} v;
+shared f16mat2x3 w;
+void f_inner(uint tint_local_index) {
+ if ((tint_local_index == 0u)) {
+ w = f16mat2x3(f16vec3(0.0hf), f16vec3(0.0hf));
+ }
+ barrier();
+ w = f16mat2x3(v.tint_symbol_col0, v.tint_symbol_col1);
+ w[1] = f16mat2x3(v.tint_symbol_col0, v.tint_symbol_col1)[0];
+ w[1] = f16mat2x3(v.tint_symbol_col0, v.tint_symbol_col1)[0].zxy;
+ w[0][1] = f16mat2x3(v.tint_symbol_col0, v.tint_symbol_col1)[1][0];
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ f_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/to_workgroup.wgsl.expected.ir.glsl b/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/to_workgroup.wgsl.expected.ir.glsl
index 56f48c5..445bb35 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/to_workgroup.wgsl.expected.ir.glsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/to_workgroup.wgsl.expected.ir.glsl
@@ -1,11 +1,22 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+layout(binding = 0, std140)
+uniform tint_symbol_1_std140_1_ubo {
+ vec3 tint_symbol_col0;
+ vec3 tint_symbol_col1;
+} v;
+shared mat2x3 w;
+void f_inner(uint tint_local_index) {
+ if ((tint_local_index == 0u)) {
+ w = mat2x3(vec3(0.0f), vec3(0.0f));
+ }
+ barrier();
+ w = mat2x3(v.tint_symbol_col0, v.tint_symbol_col1);
+ w[1] = mat2x3(v.tint_symbol_col0, v.tint_symbol_col1)[0];
+ w[1] = mat2x3(v.tint_symbol_col0, v.tint_symbol_col1)[0].zxy;
+ w[0][1] = mat2x3(v.tint_symbol_col0, v.tint_symbol_col1)[1][0];
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ f_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_workgroup.wgsl.expected.ir.glsl b/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_workgroup.wgsl.expected.ir.glsl
index 56f48c5..714990a 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_workgroup.wgsl.expected.ir.glsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_workgroup.wgsl.expected.ir.glsl
@@ -1,11 +1,23 @@
-SKIP: FAILED
+#version 310 es
+#extension GL_AMD_gpu_shader_half_float: require
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+layout(binding = 0, std140)
+uniform tint_symbol_1_std140_1_ubo {
+ f16vec4 tint_symbol_col0;
+ f16vec4 tint_symbol_col1;
+} v;
+shared f16mat2x4 w;
+void f_inner(uint tint_local_index) {
+ if ((tint_local_index == 0u)) {
+ w = f16mat2x4(f16vec4(0.0hf), f16vec4(0.0hf));
+ }
+ barrier();
+ w = f16mat2x4(v.tint_symbol_col0, v.tint_symbol_col1);
+ w[1] = f16mat2x4(v.tint_symbol_col0, v.tint_symbol_col1)[0];
+ w[1] = f16mat2x4(v.tint_symbol_col0, v.tint_symbol_col1)[0].ywxz;
+ w[0][1] = f16mat2x4(v.tint_symbol_col0, v.tint_symbol_col1)[1][0];
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ f_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/to_workgroup.wgsl.expected.ir.glsl b/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/to_workgroup.wgsl.expected.ir.glsl
index 56f48c5..b5a74cc 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/to_workgroup.wgsl.expected.ir.glsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/to_workgroup.wgsl.expected.ir.glsl
@@ -1,11 +1,21 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+layout(binding = 0, std140)
+uniform tint_symbol_1_1_ubo {
+ mat2x4 tint_symbol;
+} v;
+shared mat2x4 w;
+void f_inner(uint tint_local_index) {
+ if ((tint_local_index == 0u)) {
+ w = mat2x4(vec4(0.0f), vec4(0.0f));
+ }
+ barrier();
+ w = v.tint_symbol;
+ w[1] = v.tint_symbol[0];
+ w[1] = v.tint_symbol[0].ywxz;
+ w[0][1] = v.tint_symbol[1].x;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ f_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_workgroup.wgsl.expected.ir.glsl b/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_workgroup.wgsl.expected.ir.glsl
index 56f48c5..5a5d518 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_workgroup.wgsl.expected.ir.glsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_workgroup.wgsl.expected.ir.glsl
@@ -1,11 +1,24 @@
-SKIP: FAILED
+#version 310 es
+#extension GL_AMD_gpu_shader_half_float: require
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+layout(binding = 0, std140)
+uniform tint_symbol_1_std140_1_ubo {
+ f16vec2 tint_symbol_col0;
+ f16vec2 tint_symbol_col1;
+ f16vec2 tint_symbol_col2;
+} v;
+shared f16mat3x2 w;
+void f_inner(uint tint_local_index) {
+ if ((tint_local_index == 0u)) {
+ w = f16mat3x2(f16vec2(0.0hf), f16vec2(0.0hf), f16vec2(0.0hf));
+ }
+ barrier();
+ w = f16mat3x2(v.tint_symbol_col0, v.tint_symbol_col1, v.tint_symbol_col2);
+ w[1] = f16mat3x2(v.tint_symbol_col0, v.tint_symbol_col1, v.tint_symbol_col2)[0];
+ w[1] = f16mat3x2(v.tint_symbol_col0, v.tint_symbol_col1, v.tint_symbol_col2)[0].yx;
+ w[0][1] = f16mat3x2(v.tint_symbol_col0, v.tint_symbol_col1, v.tint_symbol_col2)[1][0];
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ f_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/to_workgroup.wgsl.expected.ir.glsl b/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/to_workgroup.wgsl.expected.ir.glsl
index 56f48c5..85a9c39 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/to_workgroup.wgsl.expected.ir.glsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/to_workgroup.wgsl.expected.ir.glsl
@@ -1,11 +1,23 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+layout(binding = 0, std140)
+uniform tint_symbol_1_std140_1_ubo {
+ vec2 tint_symbol_col0;
+ vec2 tint_symbol_col1;
+ vec2 tint_symbol_col2;
+} v;
+shared mat3x2 w;
+void f_inner(uint tint_local_index) {
+ if ((tint_local_index == 0u)) {
+ w = mat3x2(vec2(0.0f), vec2(0.0f), vec2(0.0f));
+ }
+ barrier();
+ w = mat3x2(v.tint_symbol_col0, v.tint_symbol_col1, v.tint_symbol_col2);
+ w[1] = mat3x2(v.tint_symbol_col0, v.tint_symbol_col1, v.tint_symbol_col2)[0];
+ w[1] = mat3x2(v.tint_symbol_col0, v.tint_symbol_col1, v.tint_symbol_col2)[0].yx;
+ w[0][1] = mat3x2(v.tint_symbol_col0, v.tint_symbol_col1, v.tint_symbol_col2)[1][0];
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ f_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_workgroup.wgsl.expected.ir.glsl b/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_workgroup.wgsl.expected.ir.glsl
index 56f48c5..8354048 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_workgroup.wgsl.expected.ir.glsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_workgroup.wgsl.expected.ir.glsl
@@ -1,11 +1,24 @@
-SKIP: FAILED
+#version 310 es
+#extension GL_AMD_gpu_shader_half_float: require
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+layout(binding = 0, std140)
+uniform tint_symbol_1_std140_1_ubo {
+ f16vec3 tint_symbol_col0;
+ f16vec3 tint_symbol_col1;
+ f16vec3 tint_symbol_col2;
+} v;
+shared f16mat3 w;
+void f_inner(uint tint_local_index) {
+ if ((tint_local_index == 0u)) {
+ w = f16mat3(f16vec3(0.0hf), f16vec3(0.0hf), f16vec3(0.0hf));
+ }
+ barrier();
+ w = f16mat3(v.tint_symbol_col0, v.tint_symbol_col1, v.tint_symbol_col2);
+ w[1] = f16mat3(v.tint_symbol_col0, v.tint_symbol_col1, v.tint_symbol_col2)[0];
+ w[1] = f16mat3(v.tint_symbol_col0, v.tint_symbol_col1, v.tint_symbol_col2)[0].zxy;
+ w[0][1] = f16mat3(v.tint_symbol_col0, v.tint_symbol_col1, v.tint_symbol_col2)[1][0];
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ f_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/to_workgroup.wgsl.expected.ir.glsl b/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/to_workgroup.wgsl.expected.ir.glsl
index 56f48c5..6cfa424 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/to_workgroup.wgsl.expected.ir.glsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/to_workgroup.wgsl.expected.ir.glsl
@@ -1,11 +1,23 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+layout(binding = 0, std140)
+uniform tint_symbol_1_std140_1_ubo {
+ vec3 tint_symbol_col0;
+ vec3 tint_symbol_col1;
+ vec3 tint_symbol_col2;
+} v;
+shared mat3 w;
+void f_inner(uint tint_local_index) {
+ if ((tint_local_index == 0u)) {
+ w = mat3(vec3(0.0f), vec3(0.0f), vec3(0.0f));
+ }
+ barrier();
+ w = mat3(v.tint_symbol_col0, v.tint_symbol_col1, v.tint_symbol_col2);
+ w[1] = mat3(v.tint_symbol_col0, v.tint_symbol_col1, v.tint_symbol_col2)[0];
+ w[1] = mat3(v.tint_symbol_col0, v.tint_symbol_col1, v.tint_symbol_col2)[0].zxy;
+ w[0][1] = mat3(v.tint_symbol_col0, v.tint_symbol_col1, v.tint_symbol_col2)[1][0];
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ f_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_workgroup.wgsl.expected.ir.glsl b/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_workgroup.wgsl.expected.ir.glsl
index 56f48c5..5589792 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_workgroup.wgsl.expected.ir.glsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_workgroup.wgsl.expected.ir.glsl
@@ -1,11 +1,24 @@
-SKIP: FAILED
+#version 310 es
+#extension GL_AMD_gpu_shader_half_float: require
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+layout(binding = 0, std140)
+uniform tint_symbol_1_std140_1_ubo {
+ f16vec4 tint_symbol_col0;
+ f16vec4 tint_symbol_col1;
+ f16vec4 tint_symbol_col2;
+} v;
+shared f16mat3x4 w;
+void f_inner(uint tint_local_index) {
+ if ((tint_local_index == 0u)) {
+ w = f16mat3x4(f16vec4(0.0hf), f16vec4(0.0hf), f16vec4(0.0hf));
+ }
+ barrier();
+ w = f16mat3x4(v.tint_symbol_col0, v.tint_symbol_col1, v.tint_symbol_col2);
+ w[1] = f16mat3x4(v.tint_symbol_col0, v.tint_symbol_col1, v.tint_symbol_col2)[0];
+ w[1] = f16mat3x4(v.tint_symbol_col0, v.tint_symbol_col1, v.tint_symbol_col2)[0].ywxz;
+ w[0][1] = f16mat3x4(v.tint_symbol_col0, v.tint_symbol_col1, v.tint_symbol_col2)[1][0];
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ f_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/to_workgroup.wgsl.expected.ir.glsl b/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/to_workgroup.wgsl.expected.ir.glsl
index 56f48c5..b60faed 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/to_workgroup.wgsl.expected.ir.glsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/to_workgroup.wgsl.expected.ir.glsl
@@ -1,11 +1,21 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+layout(binding = 0, std140)
+uniform tint_symbol_1_1_ubo {
+ mat3x4 tint_symbol;
+} v;
+shared mat3x4 w;
+void f_inner(uint tint_local_index) {
+ if ((tint_local_index == 0u)) {
+ w = mat3x4(vec4(0.0f), vec4(0.0f), vec4(0.0f));
+ }
+ barrier();
+ w = v.tint_symbol;
+ w[1] = v.tint_symbol[0];
+ w[1] = v.tint_symbol[0].ywxz;
+ w[0][1] = v.tint_symbol[1].x;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ f_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_workgroup.wgsl.expected.ir.glsl b/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_workgroup.wgsl.expected.ir.glsl
index 56f48c5..609e122 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_workgroup.wgsl.expected.ir.glsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_workgroup.wgsl.expected.ir.glsl
@@ -1,11 +1,25 @@
-SKIP: FAILED
+#version 310 es
+#extension GL_AMD_gpu_shader_half_float: require
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+layout(binding = 0, std140)
+uniform tint_symbol_1_std140_1_ubo {
+ f16vec2 tint_symbol_col0;
+ f16vec2 tint_symbol_col1;
+ f16vec2 tint_symbol_col2;
+ f16vec2 tint_symbol_col3;
+} v;
+shared f16mat4x2 w;
+void f_inner(uint tint_local_index) {
+ if ((tint_local_index == 0u)) {
+ w = f16mat4x2(f16vec2(0.0hf), f16vec2(0.0hf), f16vec2(0.0hf), f16vec2(0.0hf));
+ }
+ barrier();
+ w = f16mat4x2(v.tint_symbol_col0, v.tint_symbol_col1, v.tint_symbol_col2, v.tint_symbol_col3);
+ w[1] = f16mat4x2(v.tint_symbol_col0, v.tint_symbol_col1, v.tint_symbol_col2, v.tint_symbol_col3)[0];
+ w[1] = f16mat4x2(v.tint_symbol_col0, v.tint_symbol_col1, v.tint_symbol_col2, v.tint_symbol_col3)[0].yx;
+ w[0][1] = f16mat4x2(v.tint_symbol_col0, v.tint_symbol_col1, v.tint_symbol_col2, v.tint_symbol_col3)[1][0];
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ f_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/to_workgroup.wgsl.expected.ir.glsl b/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/to_workgroup.wgsl.expected.ir.glsl
index 56f48c5..b242dc2 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/to_workgroup.wgsl.expected.ir.glsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/to_workgroup.wgsl.expected.ir.glsl
@@ -1,11 +1,24 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+layout(binding = 0, std140)
+uniform tint_symbol_1_std140_1_ubo {
+ vec2 tint_symbol_col0;
+ vec2 tint_symbol_col1;
+ vec2 tint_symbol_col2;
+ vec2 tint_symbol_col3;
+} v;
+shared mat4x2 w;
+void f_inner(uint tint_local_index) {
+ if ((tint_local_index == 0u)) {
+ w = mat4x2(vec2(0.0f), vec2(0.0f), vec2(0.0f), vec2(0.0f));
+ }
+ barrier();
+ w = mat4x2(v.tint_symbol_col0, v.tint_symbol_col1, v.tint_symbol_col2, v.tint_symbol_col3);
+ w[1] = mat4x2(v.tint_symbol_col0, v.tint_symbol_col1, v.tint_symbol_col2, v.tint_symbol_col3)[0];
+ w[1] = mat4x2(v.tint_symbol_col0, v.tint_symbol_col1, v.tint_symbol_col2, v.tint_symbol_col3)[0].yx;
+ w[0][1] = mat4x2(v.tint_symbol_col0, v.tint_symbol_col1, v.tint_symbol_col2, v.tint_symbol_col3)[1][0];
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ f_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_workgroup.wgsl.expected.ir.glsl b/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_workgroup.wgsl.expected.ir.glsl
index 56f48c5..cc18329 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_workgroup.wgsl.expected.ir.glsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_workgroup.wgsl.expected.ir.glsl
@@ -1,11 +1,25 @@
-SKIP: FAILED
+#version 310 es
+#extension GL_AMD_gpu_shader_half_float: require
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+layout(binding = 0, std140)
+uniform tint_symbol_1_std140_1_ubo {
+ f16vec3 tint_symbol_col0;
+ f16vec3 tint_symbol_col1;
+ f16vec3 tint_symbol_col2;
+ f16vec3 tint_symbol_col3;
+} v;
+shared f16mat4x3 w;
+void f_inner(uint tint_local_index) {
+ if ((tint_local_index == 0u)) {
+ w = f16mat4x3(f16vec3(0.0hf), f16vec3(0.0hf), f16vec3(0.0hf), f16vec3(0.0hf));
+ }
+ barrier();
+ w = f16mat4x3(v.tint_symbol_col0, v.tint_symbol_col1, v.tint_symbol_col2, v.tint_symbol_col3);
+ w[1] = f16mat4x3(v.tint_symbol_col0, v.tint_symbol_col1, v.tint_symbol_col2, v.tint_symbol_col3)[0];
+ w[1] = f16mat4x3(v.tint_symbol_col0, v.tint_symbol_col1, v.tint_symbol_col2, v.tint_symbol_col3)[0].zxy;
+ w[0][1] = f16mat4x3(v.tint_symbol_col0, v.tint_symbol_col1, v.tint_symbol_col2, v.tint_symbol_col3)[1][0];
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ f_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/to_workgroup.wgsl.expected.ir.glsl b/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/to_workgroup.wgsl.expected.ir.glsl
index 56f48c5..eb841d4 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/to_workgroup.wgsl.expected.ir.glsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/to_workgroup.wgsl.expected.ir.glsl
@@ -1,11 +1,24 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+layout(binding = 0, std140)
+uniform tint_symbol_1_std140_1_ubo {
+ vec3 tint_symbol_col0;
+ vec3 tint_symbol_col1;
+ vec3 tint_symbol_col2;
+ vec3 tint_symbol_col3;
+} v;
+shared mat4x3 w;
+void f_inner(uint tint_local_index) {
+ if ((tint_local_index == 0u)) {
+ w = mat4x3(vec3(0.0f), vec3(0.0f), vec3(0.0f), vec3(0.0f));
+ }
+ barrier();
+ w = mat4x3(v.tint_symbol_col0, v.tint_symbol_col1, v.tint_symbol_col2, v.tint_symbol_col3);
+ w[1] = mat4x3(v.tint_symbol_col0, v.tint_symbol_col1, v.tint_symbol_col2, v.tint_symbol_col3)[0];
+ w[1] = mat4x3(v.tint_symbol_col0, v.tint_symbol_col1, v.tint_symbol_col2, v.tint_symbol_col3)[0].zxy;
+ w[0][1] = mat4x3(v.tint_symbol_col0, v.tint_symbol_col1, v.tint_symbol_col2, v.tint_symbol_col3)[1][0];
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ f_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_workgroup.wgsl.expected.ir.glsl b/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_workgroup.wgsl.expected.ir.glsl
index 56f48c5..e71565a 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_workgroup.wgsl.expected.ir.glsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_workgroup.wgsl.expected.ir.glsl
@@ -1,11 +1,25 @@
-SKIP: FAILED
+#version 310 es
+#extension GL_AMD_gpu_shader_half_float: require
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+layout(binding = 0, std140)
+uniform tint_symbol_1_std140_1_ubo {
+ f16vec4 tint_symbol_col0;
+ f16vec4 tint_symbol_col1;
+ f16vec4 tint_symbol_col2;
+ f16vec4 tint_symbol_col3;
+} v;
+shared f16mat4 w;
+void f_inner(uint tint_local_index) {
+ if ((tint_local_index == 0u)) {
+ w = f16mat4(f16vec4(0.0hf), f16vec4(0.0hf), f16vec4(0.0hf), f16vec4(0.0hf));
+ }
+ barrier();
+ w = f16mat4(v.tint_symbol_col0, v.tint_symbol_col1, v.tint_symbol_col2, v.tint_symbol_col3);
+ w[1] = f16mat4(v.tint_symbol_col0, v.tint_symbol_col1, v.tint_symbol_col2, v.tint_symbol_col3)[0];
+ w[1] = f16mat4(v.tint_symbol_col0, v.tint_symbol_col1, v.tint_symbol_col2, v.tint_symbol_col3)[0].ywxz;
+ w[0][1] = f16mat4(v.tint_symbol_col0, v.tint_symbol_col1, v.tint_symbol_col2, v.tint_symbol_col3)[1][0];
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ f_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/to_workgroup.wgsl.expected.ir.glsl b/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/to_workgroup.wgsl.expected.ir.glsl
index 56f48c5..cb472af 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/to_workgroup.wgsl.expected.ir.glsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/to_workgroup.wgsl.expected.ir.glsl
@@ -1,11 +1,21 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+layout(binding = 0, std140)
+uniform tint_symbol_1_1_ubo {
+ mat4 tint_symbol;
+} v;
+shared mat4 w;
+void f_inner(uint tint_local_index) {
+ if ((tint_local_index == 0u)) {
+ w = mat4(vec4(0.0f), vec4(0.0f), vec4(0.0f), vec4(0.0f));
+ }
+ barrier();
+ w = v.tint_symbol;
+ w[1] = v.tint_symbol[0];
+ w[1] = v.tint_symbol[0].ywxz;
+ w[0][1] = v.tint_symbol[1].x;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ f_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/bug/chromium/40943165.wgsl.expected.ir.glsl b/test/tint/bug/chromium/40943165.wgsl.expected.ir.glsl
index 56f48c5..742f6f7 100644
--- a/test/tint/bug/chromium/40943165.wgsl.expected.ir.glsl
+++ b/test/tint/bug/chromium/40943165.wgsl.expected.ir.glsl
@@ -1,11 +1,14 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+shared mat2 W;
+void F_inner(uint tint_symbol) {
+ if ((tint_symbol == 0u)) {
+ W = mat2(vec2(0.0f), vec2(0.0f));
+ }
+ barrier();
+ W[0] = (W[0] + 0.0f);
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ F_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/bug/fxc/dyn_array_idx/read/workgroup.wgsl.expected.ir.glsl b/test/tint/bug/fxc/dyn_array_idx/read/workgroup.wgsl.expected.ir.glsl
index 56f48c5..81ea061 100644
--- a/test/tint/bug/fxc/dyn_array_idx/read/workgroup.wgsl.expected.ir.glsl
+++ b/test/tint/bug/fxc/dyn_array_idx/read/workgroup.wgsl.expected.ir.glsl
@@ -1,11 +1,47 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+struct UBO {
+ int dynamic_idx;
+};
+
+struct Result {
+ int tint_symbol;
+};
+
+struct S {
+ int data[64];
+};
+
+layout(binding = 0, std140)
+uniform tint_symbol_2_1_ubo {
+ UBO tint_symbol_1;
+} v;
+layout(binding = 1, std430)
+buffer tint_symbol_4_1_ssbo {
+ Result tint_symbol_3;
+} v_1;
+shared S s;
+void f_inner(uint tint_local_index) {
+ {
+ uint v_2 = 0u;
+ v_2 = tint_local_index;
+ while(true) {
+ uint v_3 = v_2;
+ if ((v_3 >= 64u)) {
+ break;
+ }
+ s.data[v_3] = 0;
+ {
+ v_2 = (v_3 + 1u);
+ }
+ continue;
+ }
+ }
+ barrier();
+ v_1.tint_symbol_3.tint_symbol = s.data[v.tint_symbol_1.dynamic_idx];
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ f_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/bug/fxc/dyn_array_idx/write/workgroup.wgsl.expected.ir.glsl b/test/tint/bug/fxc/dyn_array_idx/write/workgroup.wgsl.expected.ir.glsl
index 56f48c5..5fbb5bd 100644
--- a/test/tint/bug/fxc/dyn_array_idx/write/workgroup.wgsl.expected.ir.glsl
+++ b/test/tint/bug/fxc/dyn_array_idx/write/workgroup.wgsl.expected.ir.glsl
@@ -1,11 +1,48 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+struct UBO {
+ int dynamic_idx;
+};
+
+struct Result {
+ int tint_symbol;
+};
+
+struct S {
+ int data[64];
+};
+
+layout(binding = 0, std140)
+uniform tint_symbol_2_1_ubo {
+ UBO tint_symbol_1;
+} v;
+layout(binding = 1, std430)
+buffer tint_symbol_4_1_ssbo {
+ Result tint_symbol_3;
+} v_1;
+shared S s;
+void f_inner(uint tint_local_index) {
+ {
+ uint v_2 = 0u;
+ v_2 = tint_local_index;
+ while(true) {
+ uint v_3 = v_2;
+ if ((v_3 >= 64u)) {
+ break;
+ }
+ s.data[v_3] = 0;
+ {
+ v_2 = (v_3 + 1u);
+ }
+ continue;
+ }
+ }
+ barrier();
+ s.data[v.tint_symbol_1.dynamic_idx] = 1;
+ v_1.tint_symbol_3.tint_symbol = s.data[3];
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ f_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/bug/tint/1926.wgsl.expected.ir.glsl b/test/tint/bug/tint/1926.wgsl.expected.ir.glsl
index 56f48c5..95ba3f4 100644
--- a/test/tint/bug/tint/1926.wgsl.expected.ir.glsl
+++ b/test/tint/bug/tint/1926.wgsl.expected.ir.glsl
@@ -1,11 +1,24 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+shared uint sh_atomic_failed;
+layout(binding = 4, std430)
+buffer tint_symbol_3_1_ssbo {
+ uint tint_symbol_2;
+} v;
+void tint_symbol_1_inner(uvec3 global_id, uvec3 local_id, uint tint_local_index) {
+ if ((tint_local_index == 0u)) {
+ sh_atomic_failed = 0u;
+ }
+ barrier();
+ barrier();
+ uint v_1 = sh_atomic_failed;
+ barrier();
+ uint failed = v_1;
+ if ((local_id[0u] == 0u)) {
+ v.tint_symbol_2 = failed;
+ }
+}
+layout(local_size_x = 256, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ tint_symbol_1_inner(gl_GlobalInvocationID, gl_LocalInvocationID, gl_LocalInvocationIndex);
+}
diff --git a/test/tint/builtins/gen/literal/storageBarrier/d87211.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/storageBarrier/d87211.wgsl.expected.ir.glsl
index 35040d5..4213a92 100644
--- a/test/tint/builtins/gen/literal/storageBarrier/d87211.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/storageBarrier/d87211.wgsl.expected.ir.glsl
@@ -1,11 +1,10 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: storageBarrier
-********************************************************************
-* 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
+void storageBarrier_d87211() {
+ barrier();
+ memoryBarrierBuffer();
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ storageBarrier_d87211();
+}
diff --git a/test/tint/builtins/gen/literal/textureBarrier/3d0f7e.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/textureBarrier/3d0f7e.wgsl.expected.ir.glsl
index 2280075..491fa86 100644
--- a/test/tint/builtins/gen/literal/textureBarrier/3d0f7e.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/textureBarrier/3d0f7e.wgsl.expected.ir.glsl
@@ -1,11 +1,10 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureBarrier
-********************************************************************
-* 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
+void textureBarrier_3d0f7e() {
+ barrier();
+ memoryBarrierImage();
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ textureBarrier_3d0f7e();
+}
diff --git a/test/tint/builtins/gen/literal/workgroupBarrier/a17f7f.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/workgroupBarrier/a17f7f.wgsl.expected.ir.glsl
index 56f48c5..50a1d2d 100644
--- a/test/tint/builtins/gen/literal/workgroupBarrier/a17f7f.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/workgroupBarrier/a17f7f.wgsl.expected.ir.glsl
@@ -1,11 +1,9 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+void workgroupBarrier_a17f7f() {
+ barrier();
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ workgroupBarrier_a17f7f();
+}
diff --git a/test/tint/builtins/gen/literal/workgroupUniformLoad/37307c.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/workgroupUniformLoad/37307c.wgsl.expected.ir.glsl
index 56f48c5..d7f6512 100644
--- a/test/tint/builtins/gen/literal/workgroupUniformLoad/37307c.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/workgroupUniformLoad/37307c.wgsl.expected.ir.glsl
@@ -1,11 +1,25 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+ uint tint_symbol;
+} v;
+shared uint arg_0;
+uint workgroupUniformLoad_37307c() {
+ barrier();
+ uint v_1 = arg_0;
+ barrier();
+ uint res = v_1;
+ return res;
+}
+void compute_main_inner(uint tint_local_index) {
+ if ((tint_local_index == 0u)) {
+ arg_0 = 0u;
+ }
+ barrier();
+ v.tint_symbol = workgroupUniformLoad_37307c();
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ compute_main_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/builtins/gen/literal/workgroupUniformLoad/7a857c.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/workgroupUniformLoad/7a857c.wgsl.expected.ir.glsl
index 56f48c5..fedfe45 100644
--- a/test/tint/builtins/gen/literal/workgroupUniformLoad/7a857c.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/workgroupUniformLoad/7a857c.wgsl.expected.ir.glsl
@@ -1,11 +1,25 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+ float tint_symbol;
+} v;
+shared float arg_0;
+float workgroupUniformLoad_7a857c() {
+ barrier();
+ float v_1 = arg_0;
+ barrier();
+ float res = v_1;
+ return res;
+}
+void compute_main_inner(uint tint_local_index) {
+ if ((tint_local_index == 0u)) {
+ arg_0 = 0.0f;
+ }
+ barrier();
+ v.tint_symbol = workgroupUniformLoad_7a857c();
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ compute_main_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/builtins/gen/literal/workgroupUniformLoad/9d33de.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/workgroupUniformLoad/9d33de.wgsl.expected.ir.glsl
index 56f48c5..83d81a0 100644
--- a/test/tint/builtins/gen/literal/workgroupUniformLoad/9d33de.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/workgroupUniformLoad/9d33de.wgsl.expected.ir.glsl
@@ -1,11 +1,25 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+ int tint_symbol;
+} v;
+shared int arg_0;
+int workgroupUniformLoad_9d33de() {
+ barrier();
+ int v_1 = arg_0;
+ barrier();
+ int res = v_1;
+ return res;
+}
+void compute_main_inner(uint tint_local_index) {
+ if ((tint_local_index == 0u)) {
+ arg_0 = 0;
+ }
+ barrier();
+ v.tint_symbol = workgroupUniformLoad_9d33de();
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ compute_main_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/builtins/gen/literal/workgroupUniformLoad/e07d08.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/workgroupUniformLoad/e07d08.wgsl.expected.ir.glsl
index 56f48c5..94c2c0b 100644
--- a/test/tint/builtins/gen/literal/workgroupUniformLoad/e07d08.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/workgroupUniformLoad/e07d08.wgsl.expected.ir.glsl
@@ -1,11 +1,26 @@
-SKIP: FAILED
+#version 310 es
+#extension GL_AMD_gpu_shader_half_float: require
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+ float16_t tint_symbol;
+} v;
+shared float16_t arg_0;
+float16_t workgroupUniformLoad_e07d08() {
+ barrier();
+ float16_t v_1 = arg_0;
+ barrier();
+ float16_t res = v_1;
+ return res;
+}
+void compute_main_inner(uint tint_local_index) {
+ if ((tint_local_index == 0u)) {
+ arg_0 = 0.0hf;
+ }
+ barrier();
+ v.tint_symbol = workgroupUniformLoad_e07d08();
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ compute_main_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/builtins/gen/var/storageBarrier/d87211.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/storageBarrier/d87211.wgsl.expected.ir.glsl
index 35040d5..4213a92 100644
--- a/test/tint/builtins/gen/var/storageBarrier/d87211.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/storageBarrier/d87211.wgsl.expected.ir.glsl
@@ -1,11 +1,10 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: storageBarrier
-********************************************************************
-* 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
+void storageBarrier_d87211() {
+ barrier();
+ memoryBarrierBuffer();
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ storageBarrier_d87211();
+}
diff --git a/test/tint/builtins/gen/var/textureBarrier/3d0f7e.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/textureBarrier/3d0f7e.wgsl.expected.ir.glsl
index 2280075..491fa86 100644
--- a/test/tint/builtins/gen/var/textureBarrier/3d0f7e.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/textureBarrier/3d0f7e.wgsl.expected.ir.glsl
@@ -1,11 +1,10 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: textureBarrier
-********************************************************************
-* 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
+void textureBarrier_3d0f7e() {
+ barrier();
+ memoryBarrierImage();
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ textureBarrier_3d0f7e();
+}
diff --git a/test/tint/builtins/gen/var/workgroupBarrier/a17f7f.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/workgroupBarrier/a17f7f.wgsl.expected.ir.glsl
index 56f48c5..50a1d2d 100644
--- a/test/tint/builtins/gen/var/workgroupBarrier/a17f7f.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/workgroupBarrier/a17f7f.wgsl.expected.ir.glsl
@@ -1,11 +1,9 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+void workgroupBarrier_a17f7f() {
+ barrier();
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ workgroupBarrier_a17f7f();
+}
diff --git a/test/tint/builtins/gen/var/workgroupUniformLoad/37307c.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/workgroupUniformLoad/37307c.wgsl.expected.ir.glsl
index 56f48c5..d7f6512 100644
--- a/test/tint/builtins/gen/var/workgroupUniformLoad/37307c.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/workgroupUniformLoad/37307c.wgsl.expected.ir.glsl
@@ -1,11 +1,25 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+ uint tint_symbol;
+} v;
+shared uint arg_0;
+uint workgroupUniformLoad_37307c() {
+ barrier();
+ uint v_1 = arg_0;
+ barrier();
+ uint res = v_1;
+ return res;
+}
+void compute_main_inner(uint tint_local_index) {
+ if ((tint_local_index == 0u)) {
+ arg_0 = 0u;
+ }
+ barrier();
+ v.tint_symbol = workgroupUniformLoad_37307c();
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ compute_main_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/builtins/gen/var/workgroupUniformLoad/7a857c.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/workgroupUniformLoad/7a857c.wgsl.expected.ir.glsl
index 56f48c5..fedfe45 100644
--- a/test/tint/builtins/gen/var/workgroupUniformLoad/7a857c.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/workgroupUniformLoad/7a857c.wgsl.expected.ir.glsl
@@ -1,11 +1,25 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+ float tint_symbol;
+} v;
+shared float arg_0;
+float workgroupUniformLoad_7a857c() {
+ barrier();
+ float v_1 = arg_0;
+ barrier();
+ float res = v_1;
+ return res;
+}
+void compute_main_inner(uint tint_local_index) {
+ if ((tint_local_index == 0u)) {
+ arg_0 = 0.0f;
+ }
+ barrier();
+ v.tint_symbol = workgroupUniformLoad_7a857c();
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ compute_main_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/builtins/gen/var/workgroupUniformLoad/9d33de.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/workgroupUniformLoad/9d33de.wgsl.expected.ir.glsl
index 56f48c5..83d81a0 100644
--- a/test/tint/builtins/gen/var/workgroupUniformLoad/9d33de.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/workgroupUniformLoad/9d33de.wgsl.expected.ir.glsl
@@ -1,11 +1,25 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+ int tint_symbol;
+} v;
+shared int arg_0;
+int workgroupUniformLoad_9d33de() {
+ barrier();
+ int v_1 = arg_0;
+ barrier();
+ int res = v_1;
+ return res;
+}
+void compute_main_inner(uint tint_local_index) {
+ if ((tint_local_index == 0u)) {
+ arg_0 = 0;
+ }
+ barrier();
+ v.tint_symbol = workgroupUniformLoad_9d33de();
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ compute_main_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/builtins/gen/var/workgroupUniformLoad/e07d08.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/workgroupUniformLoad/e07d08.wgsl.expected.ir.glsl
index 56f48c5..94c2c0b 100644
--- a/test/tint/builtins/gen/var/workgroupUniformLoad/e07d08.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/workgroupUniformLoad/e07d08.wgsl.expected.ir.glsl
@@ -1,11 +1,26 @@
-SKIP: FAILED
+#version 310 es
+#extension GL_AMD_gpu_shader_half_float: require
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+ float16_t tint_symbol;
+} v;
+shared float16_t arg_0;
+float16_t workgroupUniformLoad_e07d08() {
+ barrier();
+ float16_t v_1 = arg_0;
+ barrier();
+ float16_t res = v_1;
+ return res;
+}
+void compute_main_inner(uint tint_local_index) {
+ if ((tint_local_index == 0u)) {
+ arg_0 = 0.0hf;
+ }
+ barrier();
+ v.tint_symbol = workgroupUniformLoad_e07d08();
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ compute_main_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/builtins/workgroupUniformLoad/array.wgsl.expected.ir.glsl b/test/tint/builtins/workgroupUniformLoad/array.wgsl.expected.ir.glsl
index 56f48c5..5470032 100644
--- a/test/tint/builtins/workgroupUniformLoad/array.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/workgroupUniformLoad/array.wgsl.expected.ir.glsl
@@ -1,11 +1,12 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+shared int v[4];
+int[4] foo() {
+ barrier();
+ int v_1[4] = v;
+ barrier();
+ return v_1;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+}
diff --git a/test/tint/builtins/workgroupUniformLoad/array_overridable_count.wgsl.expected.ir.glsl b/test/tint/builtins/workgroupUniformLoad/array_overridable_count.wgsl.expected.ir.glsl
index 56f48c5..e3adf9d 100644
--- a/test/tint/builtins/workgroupUniformLoad/array_overridable_count.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/workgroupUniformLoad/array_overridable_count.wgsl.expected.ir.glsl
@@ -1,11 +1,12 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+shared int v[128];
+int foo() {
+ barrier();
+ int v_1[128] = v;
+ barrier();
+ return v_1[0];
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+}
diff --git a/test/tint/builtins/workgroupUniformLoad/array_overridable_count_aliased.wgsl.expected.ir.glsl b/test/tint/builtins/workgroupUniformLoad/array_overridable_count_aliased.wgsl.expected.ir.glsl
index 56f48c5..e3adf9d 100644
--- a/test/tint/builtins/workgroupUniformLoad/array_overridable_count_aliased.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/workgroupUniformLoad/array_overridable_count_aliased.wgsl.expected.ir.glsl
@@ -1,11 +1,12 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+shared int v[128];
+int foo() {
+ barrier();
+ int v_1[128] = v;
+ barrier();
+ return v_1[0];
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+}
diff --git a/test/tint/builtins/workgroupUniformLoad/bool.wgsl.expected.ir.glsl b/test/tint/builtins/workgroupUniformLoad/bool.wgsl.expected.ir.glsl
index 56f48c5..879b21d 100644
--- a/test/tint/builtins/workgroupUniformLoad/bool.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/workgroupUniformLoad/bool.wgsl.expected.ir.glsl
@@ -1,11 +1,12 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+shared bool v;
+bool foo() {
+ barrier();
+ bool v_1 = v;
+ barrier();
+ return v_1;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+}
diff --git a/test/tint/builtins/workgroupUniformLoad/for_loop.wgsl.expected.ir.glsl b/test/tint/builtins/workgroupUniformLoad/for_loop.wgsl.expected.ir.glsl
index 56f48c5..9c547f8 100644
--- a/test/tint/builtins/workgroupUniformLoad/for_loop.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/workgroupUniformLoad/for_loop.wgsl.expected.ir.glsl
@@ -1,11 +1,29 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+shared int a;
+shared int b;
+void foo() {
+ {
+ int i = 0;
+ while(true) {
+ int v = i;
+ barrier();
+ int v_1 = a;
+ barrier();
+ if ((v < v_1)) {
+ } else {
+ break;
+ }
+ {
+ barrier();
+ int v_2 = b;
+ barrier();
+ i = (i + v_2);
+ }
+ continue;
+ }
+ }
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+}
diff --git a/test/tint/builtins/workgroupUniformLoad/if_condition.wgsl.expected.ir.glsl b/test/tint/builtins/workgroupUniformLoad/if_condition.wgsl.expected.ir.glsl
index 56f48c5..ca6ed0c 100644
--- a/test/tint/builtins/workgroupUniformLoad/if_condition.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/workgroupUniformLoad/if_condition.wgsl.expected.ir.glsl
@@ -1,11 +1,15 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+shared bool v;
+int foo() {
+ barrier();
+ bool v_1 = v;
+ barrier();
+ if (v_1) {
+ return 42;
+ }
+ return 0;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+}
diff --git a/test/tint/builtins/workgroupUniformLoad/matrix.wgsl.expected.ir.glsl b/test/tint/builtins/workgroupUniformLoad/matrix.wgsl.expected.ir.glsl
index 56f48c5..6e00c7f 100644
--- a/test/tint/builtins/workgroupUniformLoad/matrix.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/workgroupUniformLoad/matrix.wgsl.expected.ir.glsl
@@ -1,11 +1,12 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+shared mat3 v;
+mat3 foo() {
+ barrier();
+ mat3 v_1 = v;
+ barrier();
+ return v_1;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+}
diff --git a/test/tint/builtins/workgroupUniformLoad/structures.wgsl.expected.ir.glsl b/test/tint/builtins/workgroupUniformLoad/structures.wgsl.expected.ir.glsl
index 56f48c5..b57fbf7 100644
--- a/test/tint/builtins/workgroupUniformLoad/structures.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/workgroupUniformLoad/structures.wgsl.expected.ir.glsl
@@ -1,11 +1,23 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+struct Inner {
+ bool b;
+ ivec4 v;
+ mat3 m;
+};
+
+struct Outer {
+ Inner a[4];
+};
+
+shared Outer v;
+Outer foo() {
+ barrier();
+ Outer v_1 = v;
+ barrier();
+ return v_1;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+}
diff --git a/test/tint/builtins/workgroupUniformLoad/vec.wgsl.expected.ir.glsl b/test/tint/builtins/workgroupUniformLoad/vec.wgsl.expected.ir.glsl
index 56f48c5..c39607a 100644
--- a/test/tint/builtins/workgroupUniformLoad/vec.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/workgroupUniformLoad/vec.wgsl.expected.ir.glsl
@@ -1,11 +1,12 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+shared vec4 v;
+vec4 foo() {
+ barrier();
+ vec4 v_1 = v;
+ barrier();
+ return v_1;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+}
diff --git a/test/tint/builtins/workgroupUniformLoad/via_param.wgsl.expected.ir.glsl b/test/tint/builtins/workgroupUniformLoad/via_param.wgsl.expected.ir.glsl
index 56f48c5..96cbd7c 100644
--- a/test/tint/builtins/workgroupUniformLoad/via_param.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/workgroupUniformLoad/via_param.wgsl.expected.ir.glsl
@@ -1,11 +1,15 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+shared int v[4];
+int foo(uint p_indices[1]) {
+ barrier();
+ int v_1 = v[p_indices[0u]];
+ barrier();
+ return v_1;
+}
+int bar() {
+ return foo(uint[1](uint(0)));
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+}
diff --git a/test/tint/ptr_ref/load/param/workgroup/array_in_struct.wgsl.expected.ir.glsl b/test/tint/ptr_ref/load/param/workgroup/array_in_struct.wgsl.expected.ir.glsl
index 56f48c5..2769624 100644
--- a/test/tint/ptr_ref/load/param/workgroup/array_in_struct.wgsl.expected.ir.glsl
+++ b/test/tint/ptr_ref/load/param/workgroup/array_in_struct.wgsl.expected.ir.glsl
@@ -1,11 +1,34 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+struct str {
+ int arr[4];
+};
+
+shared str S;
+int[4] func() {
+ return S.arr;
+}
+void tint_symbol_inner(uint tint_local_index) {
+ {
+ uint v = 0u;
+ v = tint_local_index;
+ while(true) {
+ uint v_1 = v;
+ if ((v_1 >= 4u)) {
+ break;
+ }
+ S.arr[v_1] = 0;
+ {
+ v = (v_1 + 1u);
+ }
+ continue;
+ }
+ }
+ barrier();
+ int r[4] = func();
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ tint_symbol_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/ptr_ref/load/param/workgroup/i32.wgsl.expected.ir.glsl b/test/tint/ptr_ref/load/param/workgroup/i32.wgsl.expected.ir.glsl
index 56f48c5..a016517 100644
--- a/test/tint/ptr_ref/load/param/workgroup/i32.wgsl.expected.ir.glsl
+++ b/test/tint/ptr_ref/load/param/workgroup/i32.wgsl.expected.ir.glsl
@@ -1,11 +1,17 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+shared int S;
+int func() {
+ return S;
+}
+void tint_symbol_inner(uint tint_local_index) {
+ if ((tint_local_index == 0u)) {
+ S = 0;
+ }
+ barrier();
+ int r = func();
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ tint_symbol_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/ptr_ref/load/param/workgroup/i32_in_struct.wgsl.expected.ir.glsl b/test/tint/ptr_ref/load/param/workgroup/i32_in_struct.wgsl.expected.ir.glsl
index 56f48c5..be83d90 100644
--- a/test/tint/ptr_ref/load/param/workgroup/i32_in_struct.wgsl.expected.ir.glsl
+++ b/test/tint/ptr_ref/load/param/workgroup/i32_in_struct.wgsl.expected.ir.glsl
@@ -1,11 +1,22 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+struct str {
+ int i;
+};
+
+shared str S;
+int func() {
+ return S.i;
+}
+void tint_symbol_inner(uint tint_local_index) {
+ if ((tint_local_index == 0u)) {
+ S = str(0);
+ }
+ barrier();
+ int r = func();
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ tint_symbol_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/ptr_ref/load/param/workgroup/struct_in_array.wgsl.expected.ir.glsl b/test/tint/ptr_ref/load/param/workgroup/struct_in_array.wgsl.expected.ir.glsl
index 56f48c5..b13edc3 100644
--- a/test/tint/ptr_ref/load/param/workgroup/struct_in_array.wgsl.expected.ir.glsl
+++ b/test/tint/ptr_ref/load/param/workgroup/struct_in_array.wgsl.expected.ir.glsl
@@ -1,11 +1,34 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+struct str {
+ int i;
+};
+
+shared str S[4];
+str func(uint pointer_indices[1]) {
+ return S[pointer_indices[0u]];
+}
+void tint_symbol_inner(uint tint_local_index) {
+ {
+ uint v = 0u;
+ v = tint_local_index;
+ while(true) {
+ uint v_1 = v;
+ if ((v_1 >= 4u)) {
+ break;
+ }
+ S[v_1] = str(0);
+ {
+ v = (v_1 + 1u);
+ }
+ continue;
+ }
+ }
+ barrier();
+ str r = func(uint[1](uint(2)));
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ tint_symbol_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/ptr_ref/load/param/workgroup/vec2_f32_in_mat2x2.wgsl.expected.ir.glsl b/test/tint/ptr_ref/load/param/workgroup/vec2_f32_in_mat2x2.wgsl.expected.ir.glsl
index 56f48c5..223ba89 100644
--- a/test/tint/ptr_ref/load/param/workgroup/vec2_f32_in_mat2x2.wgsl.expected.ir.glsl
+++ b/test/tint/ptr_ref/load/param/workgroup/vec2_f32_in_mat2x2.wgsl.expected.ir.glsl
@@ -1,11 +1,17 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+shared mat2 S;
+vec2 func(uint pointer_indices[1]) {
+ return S[pointer_indices[0u]];
+}
+void tint_symbol_inner(uint tint_local_index) {
+ if ((tint_local_index == 0u)) {
+ S = mat2(vec2(0.0f), vec2(0.0f));
+ }
+ barrier();
+ vec2 r = func(uint[1](uint(1)));
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ tint_symbol_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/ptr_ref/load/param/workgroup/vec4_f32.wgsl.expected.ir.glsl b/test/tint/ptr_ref/load/param/workgroup/vec4_f32.wgsl.expected.ir.glsl
index 56f48c5..5cf842b 100644
--- a/test/tint/ptr_ref/load/param/workgroup/vec4_f32.wgsl.expected.ir.glsl
+++ b/test/tint/ptr_ref/load/param/workgroup/vec4_f32.wgsl.expected.ir.glsl
@@ -1,11 +1,17 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+shared vec4 S;
+vec4 func() {
+ return S;
+}
+void tint_symbol_inner(uint tint_local_index) {
+ if ((tint_local_index == 0u)) {
+ S = vec4(0.0f);
+ }
+ barrier();
+ vec4 r = func();
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ tint_symbol_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/ptr_ref/load/param/workgroup/vec4_f32_in_mat2x4.wgsl.expected.ir.glsl b/test/tint/ptr_ref/load/param/workgroup/vec4_f32_in_mat2x4.wgsl.expected.ir.glsl
index 56f48c5..ab4b4a5 100644
--- a/test/tint/ptr_ref/load/param/workgroup/vec4_f32_in_mat2x4.wgsl.expected.ir.glsl
+++ b/test/tint/ptr_ref/load/param/workgroup/vec4_f32_in_mat2x4.wgsl.expected.ir.glsl
@@ -1,11 +1,17 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+shared mat2x4 S;
+vec4 func(uint pointer_indices[1]) {
+ return S[pointer_indices[0u]];
+}
+void tint_symbol_inner(uint tint_local_index) {
+ if ((tint_local_index == 0u)) {
+ S = mat2x4(vec4(0.0f), vec4(0.0f));
+ }
+ barrier();
+ vec4 r = func(uint[1](uint(1)));
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ tint_symbol_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/ptr_ref/load/param/workgroup/vec4_f32_in_struct.wgsl.expected.ir.glsl b/test/tint/ptr_ref/load/param/workgroup/vec4_f32_in_struct.wgsl.expected.ir.glsl
index 56f48c5..fbfeb0d 100644
--- a/test/tint/ptr_ref/load/param/workgroup/vec4_f32_in_struct.wgsl.expected.ir.glsl
+++ b/test/tint/ptr_ref/load/param/workgroup/vec4_f32_in_struct.wgsl.expected.ir.glsl
@@ -1,11 +1,22 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+struct str {
+ vec4 i;
+};
+
+shared str S;
+vec4 func() {
+ return S.i;
+}
+void tint_symbol_inner(uint tint_local_index) {
+ if ((tint_local_index == 0u)) {
+ S = str(vec4(0.0f));
+ }
+ barrier();
+ vec4 r = func();
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ tint_symbol_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/ptr_ref/store/param/workgroup/array_in_struct.wgsl.expected.ir.glsl b/test/tint/ptr_ref/store/param/workgroup/array_in_struct.wgsl.expected.ir.glsl
index 56f48c5..89422a5 100644
--- a/test/tint/ptr_ref/store/param/workgroup/array_in_struct.wgsl.expected.ir.glsl
+++ b/test/tint/ptr_ref/store/param/workgroup/array_in_struct.wgsl.expected.ir.glsl
@@ -1,11 +1,34 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+struct str {
+ int arr[4];
+};
+
+shared str S;
+void func() {
+ S.arr = int[4](0, 0, 0, 0);
+}
+void tint_symbol_inner(uint tint_local_index) {
+ {
+ uint v = 0u;
+ v = tint_local_index;
+ while(true) {
+ uint v_1 = v;
+ if ((v_1 >= 4u)) {
+ break;
+ }
+ S.arr[v_1] = 0;
+ {
+ v = (v_1 + 1u);
+ }
+ continue;
+ }
+ }
+ barrier();
+ func();
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ tint_symbol_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/ptr_ref/store/param/workgroup/i32.wgsl.expected.ir.glsl b/test/tint/ptr_ref/store/param/workgroup/i32.wgsl.expected.ir.glsl
index 56f48c5..b498e96 100644
--- a/test/tint/ptr_ref/store/param/workgroup/i32.wgsl.expected.ir.glsl
+++ b/test/tint/ptr_ref/store/param/workgroup/i32.wgsl.expected.ir.glsl
@@ -1,11 +1,17 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+shared int S;
+void func() {
+ S = 42;
+}
+void tint_symbol_inner(uint tint_local_index) {
+ if ((tint_local_index == 0u)) {
+ S = 0;
+ }
+ barrier();
+ func();
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ tint_symbol_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/ptr_ref/store/param/workgroup/i32_in_struct.wgsl.expected.ir.glsl b/test/tint/ptr_ref/store/param/workgroup/i32_in_struct.wgsl.expected.ir.glsl
index 56f48c5..1e601f6 100644
--- a/test/tint/ptr_ref/store/param/workgroup/i32_in_struct.wgsl.expected.ir.glsl
+++ b/test/tint/ptr_ref/store/param/workgroup/i32_in_struct.wgsl.expected.ir.glsl
@@ -1,11 +1,22 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+struct str {
+ int i;
+};
+
+shared str S;
+void func() {
+ S.i = 42;
+}
+void tint_symbol_inner(uint tint_local_index) {
+ if ((tint_local_index == 0u)) {
+ S = str(0);
+ }
+ barrier();
+ func();
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ tint_symbol_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/ptr_ref/store/param/workgroup/struct_in_array.wgsl.expected.ir.glsl b/test/tint/ptr_ref/store/param/workgroup/struct_in_array.wgsl.expected.ir.glsl
index 56f48c5..d611a88 100644
--- a/test/tint/ptr_ref/store/param/workgroup/struct_in_array.wgsl.expected.ir.glsl
+++ b/test/tint/ptr_ref/store/param/workgroup/struct_in_array.wgsl.expected.ir.glsl
@@ -1,11 +1,34 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+struct str {
+ int i;
+};
+
+shared str S[4];
+void func(uint pointer_indices[1]) {
+ S[pointer_indices[0u]] = str(0);
+}
+void tint_symbol_inner(uint tint_local_index) {
+ {
+ uint v = 0u;
+ v = tint_local_index;
+ while(true) {
+ uint v_1 = v;
+ if ((v_1 >= 4u)) {
+ break;
+ }
+ S[v_1] = str(0);
+ {
+ v = (v_1 + 1u);
+ }
+ continue;
+ }
+ }
+ barrier();
+ func(uint[1](uint(2)));
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ tint_symbol_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/ptr_ref/store/param/workgroup/vec2_f32_in_mat2x2.wgsl.expected.ir.glsl b/test/tint/ptr_ref/store/param/workgroup/vec2_f32_in_mat2x2.wgsl.expected.ir.glsl
index 56f48c5..5c1475c 100644
--- a/test/tint/ptr_ref/store/param/workgroup/vec2_f32_in_mat2x2.wgsl.expected.ir.glsl
+++ b/test/tint/ptr_ref/store/param/workgroup/vec2_f32_in_mat2x2.wgsl.expected.ir.glsl
@@ -1,11 +1,17 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+shared mat2 S;
+void func(uint pointer_indices[1]) {
+ S[pointer_indices[0u]] = vec2(0.0f);
+}
+void tint_symbol_inner(uint tint_local_index) {
+ if ((tint_local_index == 0u)) {
+ S = mat2(vec2(0.0f), vec2(0.0f));
+ }
+ barrier();
+ func(uint[1](uint(1)));
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ tint_symbol_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/ptr_ref/store/param/workgroup/vec4_f32.wgsl.expected.ir.glsl b/test/tint/ptr_ref/store/param/workgroup/vec4_f32.wgsl.expected.ir.glsl
index 56f48c5..382b686 100644
--- a/test/tint/ptr_ref/store/param/workgroup/vec4_f32.wgsl.expected.ir.glsl
+++ b/test/tint/ptr_ref/store/param/workgroup/vec4_f32.wgsl.expected.ir.glsl
@@ -1,11 +1,17 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+shared vec4 S;
+void func() {
+ S = vec4(0.0f);
+}
+void tint_symbol_inner(uint tint_local_index) {
+ if ((tint_local_index == 0u)) {
+ S = vec4(0.0f);
+ }
+ barrier();
+ func();
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ tint_symbol_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/ptr_ref/store/param/workgroup/vec4_f32_in_mat2x4.wgsl.expected.ir.glsl b/test/tint/ptr_ref/store/param/workgroup/vec4_f32_in_mat2x4.wgsl.expected.ir.glsl
index 56f48c5..1ecadd4 100644
--- a/test/tint/ptr_ref/store/param/workgroup/vec4_f32_in_mat2x4.wgsl.expected.ir.glsl
+++ b/test/tint/ptr_ref/store/param/workgroup/vec4_f32_in_mat2x4.wgsl.expected.ir.glsl
@@ -1,11 +1,17 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+shared mat2x4 S;
+void func(uint pointer_indices[1]) {
+ S[pointer_indices[0u]] = vec4(0.0f);
+}
+void tint_symbol_inner(uint tint_local_index) {
+ if ((tint_local_index == 0u)) {
+ S = mat2x4(vec4(0.0f), vec4(0.0f));
+ }
+ barrier();
+ func(uint[1](uint(1)));
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ tint_symbol_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/ptr_ref/store/param/workgroup/vec4_f32_in_struct.wgsl.expected.ir.glsl b/test/tint/ptr_ref/store/param/workgroup/vec4_f32_in_struct.wgsl.expected.ir.glsl
index 56f48c5..07eb8ff 100644
--- a/test/tint/ptr_ref/store/param/workgroup/vec4_f32_in_struct.wgsl.expected.ir.glsl
+++ b/test/tint/ptr_ref/store/param/workgroup/vec4_f32_in_struct.wgsl.expected.ir.glsl
@@ -1,11 +1,22 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+struct str {
+ vec4 i;
+};
+
+shared str S;
+void func() {
+ S.i = vec4(0.0f);
+}
+void tint_symbol_inner(uint tint_local_index) {
+ if ((tint_local_index == 0u)) {
+ S = str(vec4(0.0f));
+ }
+ barrier();
+ func();
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ tint_symbol_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/types/module_scope_used_in_functions.wgsl.expected.ir.glsl b/test/tint/types/module_scope_used_in_functions.wgsl.expected.ir.glsl
index 56f48c5..b154a21 100644
--- a/test/tint/types/module_scope_used_in_functions.wgsl.expected.ir.glsl
+++ b/test/tint/types/module_scope_used_in_functions.wgsl.expected.ir.glsl
@@ -1,11 +1,39 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+float p = 0.0f;
+shared float w;
+layout(binding = 1, std430)
+buffer tint_symbol_2_1_ssbo {
+ vec2 tint_symbol_1;
+} v;
+layout(binding = 0, std430)
+buffer tint_symbol_4_1_ssbo {
+ float tint_symbol_3[];
+} v_1;
+void no_uses() {
+}
+void zoo() {
+ p = (p * 2.0f);
+}
+void bar(float a, float b) {
+ p = a;
+ w = b;
+ v_1.tint_symbol_3[0] = v.tint_symbol_1.x;
+ zoo();
+}
+void foo(float a) {
+ float b = 2.0f;
+ bar(a, b);
+ no_uses();
+}
+void tint_symbol_inner(uint tint_local_index) {
+ if ((tint_local_index == 0u)) {
+ w = 0.0f;
+ }
+ barrier();
+ foo(1.0f);
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ tint_symbol_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/types/module_scope_var.wgsl.expected.ir.glsl b/test/tint/types/module_scope_var.wgsl.expected.ir.glsl
index 56f48c5..844f112 100644
--- a/test/tint/types/module_scope_var.wgsl.expected.ir.glsl
+++ b/test/tint/types/module_scope_var.wgsl.expected.ir.glsl
@@ -1,11 +1,39 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+struct S {
+ float a;
+};
+
+bool bool_var = false;
+int i32_var = 0;
+uint u32_var = 0u;
+float f32_var = 0.0f;
+ivec2 v2i32_var = ivec2(0);
+uvec3 v3u32_var = uvec3(0u);
+vec4 v4f32_var = vec4(0.0f);
+mat2x3 m2x3_var = mat2x3(vec3(0.0f), vec3(0.0f));
+float arr_var[4] = float[4](0.0f, 0.0f, 0.0f, 0.0f);
+S struct_var = S(0.0f);
+shared float wg_var;
+void tint_symbol_inner(uint tint_local_index) {
+ if ((tint_local_index == 0u)) {
+ wg_var = 0.0f;
+ }
+ barrier();
+ bool_var = false;
+ i32_var = 0;
+ u32_var = 0u;
+ f32_var = 0.0f;
+ v2i32_var = ivec2(0);
+ v3u32_var = uvec3(0u);
+ v4f32_var = vec4(0.0f);
+ m2x3_var = mat2x3(vec3(0.0f), vec3(0.0f));
+ arr_var = float[4](0.0f, 0.0f, 0.0f, 0.0f);
+ struct_var = S(0.0f);
+ wg_var = 42.0f;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ tint_symbol_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/var/initialization/workgroup/array/array_i32.wgsl.expected.ir.glsl b/test/tint/var/initialization/workgroup/array/array_i32.wgsl.expected.ir.glsl
index 56f48c5..ad048df 100644
--- a/test/tint/var/initialization/workgroup/array/array_i32.wgsl.expected.ir.glsl
+++ b/test/tint/var/initialization/workgroup/array/array_i32.wgsl.expected.ir.glsl
@@ -1,11 +1,26 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+shared int zero[2][3];
+void tint_symbol_inner(uint tint_local_index) {
+ {
+ uint v_1 = 0u;
+ v_1 = tint_local_index;
+ while(true) {
+ uint v_2 = v_1;
+ if ((v_2 >= 6u)) {
+ break;
+ }
+ zero[(v_2 / 3u)][(v_2 % 3u)] = 0;
+ {
+ v_1 = (v_2 + 1u);
+ }
+ continue;
+ }
+ }
+ barrier();
+ int v[2][3] = zero;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ tint_symbol_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/var/initialization/workgroup/array/i32.wgsl.expected.ir.glsl b/test/tint/var/initialization/workgroup/array/i32.wgsl.expected.ir.glsl
index 56f48c5..cae011b 100644
--- a/test/tint/var/initialization/workgroup/array/i32.wgsl.expected.ir.glsl
+++ b/test/tint/var/initialization/workgroup/array/i32.wgsl.expected.ir.glsl
@@ -1,11 +1,26 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+shared int zero[3];
+void tint_symbol_inner(uint tint_local_index) {
+ {
+ uint v_1 = 0u;
+ v_1 = tint_local_index;
+ while(true) {
+ uint v_2 = v_1;
+ if ((v_2 >= 3u)) {
+ break;
+ }
+ zero[v_2] = 0;
+ {
+ v_1 = (v_2 + 1u);
+ }
+ continue;
+ }
+ }
+ barrier();
+ int v[3] = zero;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ tint_symbol_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/var/initialization/workgroup/matrix.wgsl.expected.ir.glsl b/test/tint/var/initialization/workgroup/matrix.wgsl.expected.ir.glsl
index 56f48c5..e72d94c 100644
--- a/test/tint/var/initialization/workgroup/matrix.wgsl.expected.ir.glsl
+++ b/test/tint/var/initialization/workgroup/matrix.wgsl.expected.ir.glsl
@@ -1,11 +1,13 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+shared mat2x3 v;
+void tint_symbol_inner(uint tint_local_index) {
+ if ((tint_local_index == 0u)) {
+ v = mat2x3(vec3(0.0f), vec3(0.0f));
+ }
+ barrier();
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ tint_symbol_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/var/initialization/workgroup/scalar.wgsl.expected.ir.glsl b/test/tint/var/initialization/workgroup/scalar.wgsl.expected.ir.glsl
index 56f48c5..8513dca3 100644
--- a/test/tint/var/initialization/workgroup/scalar.wgsl.expected.ir.glsl
+++ b/test/tint/var/initialization/workgroup/scalar.wgsl.expected.ir.glsl
@@ -1,11 +1,14 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+shared int v;
+void tint_symbol_inner(uint tint_local_index) {
+ if ((tint_local_index == 0u)) {
+ v = 0;
+ }
+ barrier();
+ int i = v;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ tint_symbol_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/var/initialization/workgroup/struct.wgsl.expected.ir.glsl b/test/tint/var/initialization/workgroup/struct.wgsl.expected.ir.glsl
index 56f48c5..a3d45d9 100644
--- a/test/tint/var/initialization/workgroup/struct.wgsl.expected.ir.glsl
+++ b/test/tint/var/initialization/workgroup/struct.wgsl.expected.ir.glsl
@@ -1,11 +1,19 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+struct S {
+ int a;
+ float b;
+};
+
+shared S v;
+void tint_symbol_inner(uint tint_local_index) {
+ if ((tint_local_index == 0u)) {
+ v = S(0, 0.0f);
+ }
+ barrier();
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ tint_symbol_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/var/initialization/workgroup/vector.wgsl.expected.ir.glsl b/test/tint/var/initialization/workgroup/vector.wgsl.expected.ir.glsl
index 56f48c5..b1748a2 100644
--- a/test/tint/var/initialization/workgroup/vector.wgsl.expected.ir.glsl
+++ b/test/tint/var/initialization/workgroup/vector.wgsl.expected.ir.glsl
@@ -1,11 +1,13 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+shared ivec3 v;
+void tint_symbol_inner(uint tint_local_index) {
+ if ((tint_local_index == 0u)) {
+ v = ivec3(0);
+ }
+ barrier();
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ tint_symbol_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/var/uses/many_workgroup_vars.wgsl.expected.ir.glsl b/test/tint/var/uses/many_workgroup_vars.wgsl.expected.ir.glsl
index 56f48c5..54df802 100644
--- a/test/tint/var/uses/many_workgroup_vars.wgsl.expected.ir.glsl
+++ b/test/tint/var/uses/many_workgroup_vars.wgsl.expected.ir.glsl
@@ -1,11 +1,311 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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
+shared mat2 m00;
+shared mat2 m01;
+shared mat2 m02;
+shared mat2 m03;
+shared mat2 m04;
+shared mat2 m05;
+shared mat2 m06;
+shared mat2 m07;
+shared mat2 m08;
+shared mat2 m09;
+shared mat2 m10;
+shared mat2 m11;
+shared mat2 m12;
+shared mat2 m13;
+shared mat2 m14;
+shared mat2 m15;
+shared mat2 m16;
+shared mat2 m17;
+shared mat2 m18;
+shared mat2 m19;
+shared mat2 m20;
+shared mat2 m21;
+shared mat2 m22;
+shared mat2 m23;
+shared mat2 m24;
+shared mat2 m25;
+shared mat2 m26;
+shared mat2 m27;
+shared mat2 m28;
+shared mat2 m29;
+shared mat2 m30;
+shared mat2 m31;
+shared mat2 m32;
+shared mat2 m33;
+shared mat2 m34;
+shared mat2 m35;
+shared mat2 m36;
+shared mat2 m37;
+shared mat2 m38;
+shared mat2 m39;
+shared mat2 m40;
+shared mat2 m41;
+shared mat2 m42;
+shared mat2 m43;
+shared mat2 m44;
+shared mat2 m45;
+shared mat2 m46;
+shared mat2 m47;
+shared mat2 m48;
+shared mat2 m49;
+shared mat2 m50;
+shared mat2 m51;
+shared mat2 m52;
+shared mat2 m53;
+shared mat2 m54;
+shared mat2 m55;
+shared mat2 m56;
+shared mat2 m57;
+shared mat2 m58;
+shared mat2 m59;
+shared mat2 m60;
+shared mat2 m61;
+shared mat2 m62;
+shared mat2 m63;
+shared mat2 m64;
+shared mat2 m65;
+shared mat2 m66;
+shared mat2 m67;
+shared mat2 m68;
+shared mat2 m69;
+shared mat2 m70;
+shared mat2 m71;
+shared mat2 m72;
+shared mat2 m73;
+shared mat2 m74;
+shared mat2 m75;
+shared mat2 m76;
+shared mat2 m77;
+shared mat2 m78;
+shared mat2 m79;
+shared mat2 m80;
+shared mat2 m81;
+shared mat2 m82;
+shared mat2 m83;
+shared mat2 m84;
+shared mat2 m85;
+shared mat2 m86;
+shared mat2 m87;
+shared mat2 m88;
+shared mat2 m89;
+shared mat2 m90;
+shared mat2 m91;
+shared mat2 m92;
+shared mat2 m93;
+shared mat2 m94;
+shared mat2 m95;
+shared mat2 m96;
+shared mat2 m97;
+shared mat2 m98;
+shared mat2 m99;
+void tint_symbol_inner(uint idx) {
+ if ((idx == 0u)) {
+ m00 = mat2(vec2(0.0f), vec2(0.0f));
+ m01 = mat2(vec2(0.0f), vec2(0.0f));
+ m02 = mat2(vec2(0.0f), vec2(0.0f));
+ m03 = mat2(vec2(0.0f), vec2(0.0f));
+ m04 = mat2(vec2(0.0f), vec2(0.0f));
+ m05 = mat2(vec2(0.0f), vec2(0.0f));
+ m06 = mat2(vec2(0.0f), vec2(0.0f));
+ m07 = mat2(vec2(0.0f), vec2(0.0f));
+ m08 = mat2(vec2(0.0f), vec2(0.0f));
+ m09 = mat2(vec2(0.0f), vec2(0.0f));
+ m10 = mat2(vec2(0.0f), vec2(0.0f));
+ m11 = mat2(vec2(0.0f), vec2(0.0f));
+ m12 = mat2(vec2(0.0f), vec2(0.0f));
+ m13 = mat2(vec2(0.0f), vec2(0.0f));
+ m14 = mat2(vec2(0.0f), vec2(0.0f));
+ m15 = mat2(vec2(0.0f), vec2(0.0f));
+ m16 = mat2(vec2(0.0f), vec2(0.0f));
+ m17 = mat2(vec2(0.0f), vec2(0.0f));
+ m18 = mat2(vec2(0.0f), vec2(0.0f));
+ m19 = mat2(vec2(0.0f), vec2(0.0f));
+ m20 = mat2(vec2(0.0f), vec2(0.0f));
+ m21 = mat2(vec2(0.0f), vec2(0.0f));
+ m22 = mat2(vec2(0.0f), vec2(0.0f));
+ m23 = mat2(vec2(0.0f), vec2(0.0f));
+ m24 = mat2(vec2(0.0f), vec2(0.0f));
+ m25 = mat2(vec2(0.0f), vec2(0.0f));
+ m26 = mat2(vec2(0.0f), vec2(0.0f));
+ m27 = mat2(vec2(0.0f), vec2(0.0f));
+ m28 = mat2(vec2(0.0f), vec2(0.0f));
+ m29 = mat2(vec2(0.0f), vec2(0.0f));
+ m30 = mat2(vec2(0.0f), vec2(0.0f));
+ m31 = mat2(vec2(0.0f), vec2(0.0f));
+ m32 = mat2(vec2(0.0f), vec2(0.0f));
+ m33 = mat2(vec2(0.0f), vec2(0.0f));
+ m34 = mat2(vec2(0.0f), vec2(0.0f));
+ m35 = mat2(vec2(0.0f), vec2(0.0f));
+ m36 = mat2(vec2(0.0f), vec2(0.0f));
+ m37 = mat2(vec2(0.0f), vec2(0.0f));
+ m38 = mat2(vec2(0.0f), vec2(0.0f));
+ m39 = mat2(vec2(0.0f), vec2(0.0f));
+ m40 = mat2(vec2(0.0f), vec2(0.0f));
+ m41 = mat2(vec2(0.0f), vec2(0.0f));
+ m42 = mat2(vec2(0.0f), vec2(0.0f));
+ m43 = mat2(vec2(0.0f), vec2(0.0f));
+ m44 = mat2(vec2(0.0f), vec2(0.0f));
+ m45 = mat2(vec2(0.0f), vec2(0.0f));
+ m46 = mat2(vec2(0.0f), vec2(0.0f));
+ m47 = mat2(vec2(0.0f), vec2(0.0f));
+ m48 = mat2(vec2(0.0f), vec2(0.0f));
+ m49 = mat2(vec2(0.0f), vec2(0.0f));
+ m50 = mat2(vec2(0.0f), vec2(0.0f));
+ m51 = mat2(vec2(0.0f), vec2(0.0f));
+ m52 = mat2(vec2(0.0f), vec2(0.0f));
+ m53 = mat2(vec2(0.0f), vec2(0.0f));
+ m54 = mat2(vec2(0.0f), vec2(0.0f));
+ m55 = mat2(vec2(0.0f), vec2(0.0f));
+ m56 = mat2(vec2(0.0f), vec2(0.0f));
+ m57 = mat2(vec2(0.0f), vec2(0.0f));
+ m58 = mat2(vec2(0.0f), vec2(0.0f));
+ m59 = mat2(vec2(0.0f), vec2(0.0f));
+ m60 = mat2(vec2(0.0f), vec2(0.0f));
+ m61 = mat2(vec2(0.0f), vec2(0.0f));
+ m62 = mat2(vec2(0.0f), vec2(0.0f));
+ m63 = mat2(vec2(0.0f), vec2(0.0f));
+ m64 = mat2(vec2(0.0f), vec2(0.0f));
+ m65 = mat2(vec2(0.0f), vec2(0.0f));
+ m66 = mat2(vec2(0.0f), vec2(0.0f));
+ m67 = mat2(vec2(0.0f), vec2(0.0f));
+ m68 = mat2(vec2(0.0f), vec2(0.0f));
+ m69 = mat2(vec2(0.0f), vec2(0.0f));
+ m70 = mat2(vec2(0.0f), vec2(0.0f));
+ m71 = mat2(vec2(0.0f), vec2(0.0f));
+ m72 = mat2(vec2(0.0f), vec2(0.0f));
+ m73 = mat2(vec2(0.0f), vec2(0.0f));
+ m74 = mat2(vec2(0.0f), vec2(0.0f));
+ m75 = mat2(vec2(0.0f), vec2(0.0f));
+ m76 = mat2(vec2(0.0f), vec2(0.0f));
+ m77 = mat2(vec2(0.0f), vec2(0.0f));
+ m78 = mat2(vec2(0.0f), vec2(0.0f));
+ m79 = mat2(vec2(0.0f), vec2(0.0f));
+ m80 = mat2(vec2(0.0f), vec2(0.0f));
+ m81 = mat2(vec2(0.0f), vec2(0.0f));
+ m82 = mat2(vec2(0.0f), vec2(0.0f));
+ m83 = mat2(vec2(0.0f), vec2(0.0f));
+ m84 = mat2(vec2(0.0f), vec2(0.0f));
+ m85 = mat2(vec2(0.0f), vec2(0.0f));
+ m86 = mat2(vec2(0.0f), vec2(0.0f));
+ m87 = mat2(vec2(0.0f), vec2(0.0f));
+ m88 = mat2(vec2(0.0f), vec2(0.0f));
+ m89 = mat2(vec2(0.0f), vec2(0.0f));
+ m90 = mat2(vec2(0.0f), vec2(0.0f));
+ m91 = mat2(vec2(0.0f), vec2(0.0f));
+ m92 = mat2(vec2(0.0f), vec2(0.0f));
+ m93 = mat2(vec2(0.0f), vec2(0.0f));
+ m94 = mat2(vec2(0.0f), vec2(0.0f));
+ m95 = mat2(vec2(0.0f), vec2(0.0f));
+ m96 = mat2(vec2(0.0f), vec2(0.0f));
+ m97 = mat2(vec2(0.0f), vec2(0.0f));
+ m98 = mat2(vec2(0.0f), vec2(0.0f));
+ m99 = mat2(vec2(0.0f), vec2(0.0f));
+ }
+ barrier();
+ m00[0][0] = 1.0f;
+ m01[0][0] = 1.0f;
+ m02[0][0] = 1.0f;
+ m03[0][0] = 1.0f;
+ m04[0][0] = 1.0f;
+ m05[0][0] = 1.0f;
+ m06[0][0] = 1.0f;
+ m07[0][0] = 1.0f;
+ m08[0][0] = 1.0f;
+ m09[0][0] = 1.0f;
+ m10[0][0] = 1.0f;
+ m11[0][0] = 1.0f;
+ m12[0][0] = 1.0f;
+ m13[0][0] = 1.0f;
+ m14[0][0] = 1.0f;
+ m15[0][0] = 1.0f;
+ m16[0][0] = 1.0f;
+ m17[0][0] = 1.0f;
+ m18[0][0] = 1.0f;
+ m19[0][0] = 1.0f;
+ m20[0][0] = 1.0f;
+ m21[0][0] = 1.0f;
+ m22[0][0] = 1.0f;
+ m23[0][0] = 1.0f;
+ m24[0][0] = 1.0f;
+ m25[0][0] = 1.0f;
+ m26[0][0] = 1.0f;
+ m27[0][0] = 1.0f;
+ m28[0][0] = 1.0f;
+ m29[0][0] = 1.0f;
+ m30[0][0] = 1.0f;
+ m31[0][0] = 1.0f;
+ m32[0][0] = 1.0f;
+ m33[0][0] = 1.0f;
+ m34[0][0] = 1.0f;
+ m35[0][0] = 1.0f;
+ m36[0][0] = 1.0f;
+ m37[0][0] = 1.0f;
+ m38[0][0] = 1.0f;
+ m39[0][0] = 1.0f;
+ m40[0][0] = 1.0f;
+ m41[0][0] = 1.0f;
+ m42[0][0] = 1.0f;
+ m43[0][0] = 1.0f;
+ m44[0][0] = 1.0f;
+ m45[0][0] = 1.0f;
+ m46[0][0] = 1.0f;
+ m47[0][0] = 1.0f;
+ m48[0][0] = 1.0f;
+ m49[0][0] = 1.0f;
+ m50[0][0] = 1.0f;
+ m51[0][0] = 1.0f;
+ m52[0][0] = 1.0f;
+ m53[0][0] = 1.0f;
+ m54[0][0] = 1.0f;
+ m55[0][0] = 1.0f;
+ m56[0][0] = 1.0f;
+ m57[0][0] = 1.0f;
+ m58[0][0] = 1.0f;
+ m59[0][0] = 1.0f;
+ m60[0][0] = 1.0f;
+ m61[0][0] = 1.0f;
+ m62[0][0] = 1.0f;
+ m63[0][0] = 1.0f;
+ m64[0][0] = 1.0f;
+ m65[0][0] = 1.0f;
+ m66[0][0] = 1.0f;
+ m67[0][0] = 1.0f;
+ m68[0][0] = 1.0f;
+ m69[0][0] = 1.0f;
+ m70[0][0] = 1.0f;
+ m71[0][0] = 1.0f;
+ m72[0][0] = 1.0f;
+ m73[0][0] = 1.0f;
+ m74[0][0] = 1.0f;
+ m75[0][0] = 1.0f;
+ m76[0][0] = 1.0f;
+ m77[0][0] = 1.0f;
+ m78[0][0] = 1.0f;
+ m79[0][0] = 1.0f;
+ m80[0][0] = 1.0f;
+ m81[0][0] = 1.0f;
+ m82[0][0] = 1.0f;
+ m83[0][0] = 1.0f;
+ m84[0][0] = 1.0f;
+ m85[0][0] = 1.0f;
+ m86[0][0] = 1.0f;
+ m87[0][0] = 1.0f;
+ m88[0][0] = 1.0f;
+ m89[0][0] = 1.0f;
+ m90[0][0] = 1.0f;
+ m91[0][0] = 1.0f;
+ m92[0][0] = 1.0f;
+ m93[0][0] = 1.0f;
+ m94[0][0] = 1.0f;
+ m95[0][0] = 1.0f;
+ m96[0][0] = 1.0f;
+ m97[0][0] = 1.0f;
+ m98[0][0] = 1.0f;
+ m99[0][0] = 1.0f;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ tint_symbol_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/var/uses/workgroup.wgsl.expected.ir.glsl b/test/tint/var/uses/workgroup.wgsl.expected.ir.glsl
index 56f48c5..343757a 100644
--- a/test/tint/var/uses/workgroup.wgsl.expected.ir.glsl
+++ b/test/tint/var/uses/workgroup.wgsl.expected.ir.glsl
@@ -1,11 +1,79 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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. *
-********************************************************************
+shared int a;
+void uses_a() {
+ a = (a + 1);
+}
+void main1_inner(uint tint_local_index) {
+ if ((tint_local_index == 0u)) {
+ a = 0;
+ }
+ barrier();
+ a = 42;
+ uses_a();
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ main1_inner(gl_LocalInvocationIndex);
+}
+#version 310 es
-tint executable returned error: signal: trace/BPT trap
+shared int b;
+void uses_b() {
+ b = (b * 2);
+}
+void main2_inner(uint tint_local_index) {
+ if ((tint_local_index == 0u)) {
+ b = 0;
+ }
+ barrier();
+ b = 7;
+ uses_b();
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ main2_inner(gl_LocalInvocationIndex);
+}
+#version 310 es
+
+shared int a;
+shared int b;
+void uses_a() {
+ a = (a + 1);
+}
+void uses_b() {
+ b = (b * 2);
+}
+void uses_a_and_b() {
+ b = a;
+}
+void no_uses() {
+}
+void outer() {
+ a = 0;
+ uses_a();
+ uses_a_and_b();
+ uses_b();
+ no_uses();
+}
+void main3_inner(uint tint_local_index) {
+ if ((tint_local_index == 0u)) {
+ a = 0;
+ b = 0;
+ }
+ barrier();
+ outer();
+ no_uses();
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ main3_inner(gl_LocalInvocationIndex);
+}
+#version 310 es
+
+void no_uses() {
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ no_uses();
+}
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/dead-barriers-in-loops/0-opt.spvasm.expected.ir.glsl b/test/tint/vk-gl-cts/graphicsfuzz/dead-barriers-in-loops/0-opt.spvasm.expected.ir.glsl
deleted file mode 100644
index f297654..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/dead-barriers-in-loops/0-opt.spvasm.expected.ir.glsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: select
-********************************************************************
-* 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/vk-gl-cts/graphicsfuzz/dead-barriers-in-loops/0-opt.wgsl.expected.ir.glsl b/test/tint/vk-gl-cts/graphicsfuzz/dead-barriers-in-loops/0-opt.wgsl.expected.ir.glsl
deleted file mode 100644
index f297654..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/dead-barriers-in-loops/0-opt.wgsl.expected.ir.glsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: select
-********************************************************************
-* 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/vk-gl-cts/graphicsfuzz/early-return-and-barrier/0.spvasm.expected.ir.glsl b/test/tint/vk-gl-cts/graphicsfuzz/early-return-and-barrier/0.spvasm.expected.ir.glsl
deleted file mode 100644
index 56f48c5..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/early-return-and-barrier/0.spvasm.expected.ir.glsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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/vk-gl-cts/graphicsfuzz/early-return-and-barrier/0.wgsl.expected.ir.glsl b/test/tint/vk-gl-cts/graphicsfuzz/early-return-and-barrier/0.wgsl.expected.ir.glsl
deleted file mode 100644
index 56f48c5..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/early-return-and-barrier/0.wgsl.expected.ir.glsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1116 internal compiler error: TINT_UNREACHABLE unhandled core builtin: workgroupBarrier
-********************************************************************
-* 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