[glsl][ir] Support `CoreBinary`.
This CL adds support for the `CoreBinary` instruction to the GLSL IR
backend.
Bug: 42251044
Change-Id: I98b97d9ac07498bb276e234eaf60544bb9385260
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/204494
Reviewed-by: James Price <jrprice@google.com>
Commit-Queue: dan sinclair <dsinclair@chromium.org>
diff --git a/src/tint/lang/glsl/writer/BUILD.bazel b/src/tint/lang/glsl/writer/BUILD.bazel
index 27ea102..776be58 100644
--- a/src/tint/lang/glsl/writer/BUILD.bazel
+++ b/src/tint/lang/glsl/writer/BUILD.bazel
@@ -88,6 +88,7 @@
name = "test",
alwayslink = True,
srcs = [
+ "binary_test.cc",
"builtin_test.cc",
"call_test.cc",
"constant_test.cc",
diff --git a/src/tint/lang/glsl/writer/BUILD.cmake b/src/tint/lang/glsl/writer/BUILD.cmake
index 267660d..e3d52c8 100644
--- a/src/tint/lang/glsl/writer/BUILD.cmake
+++ b/src/tint/lang/glsl/writer/BUILD.cmake
@@ -102,6 +102,7 @@
# Condition: TINT_BUILD_GLSL_WRITER AND TINT_BUILD_GLSL_VALIDATOR
################################################################################
tint_add_target(tint_lang_glsl_writer_test test
+ lang/glsl/writer/binary_test.cc
lang/glsl/writer/builtin_test.cc
lang/glsl/writer/call_test.cc
lang/glsl/writer/constant_test.cc
diff --git a/src/tint/lang/glsl/writer/BUILD.gn b/src/tint/lang/glsl/writer/BUILD.gn
index e7fb0ff..1d387bf 100644
--- a/src/tint/lang/glsl/writer/BUILD.gn
+++ b/src/tint/lang/glsl/writer/BUILD.gn
@@ -92,6 +92,7 @@
if (tint_build_glsl_writer && tint_build_glsl_validator) {
tint_unittests_source_set("unittests") {
sources = [
+ "binary_test.cc",
"builtin_test.cc",
"call_test.cc",
"constant_test.cc",
diff --git a/src/tint/lang/glsl/writer/binary_test.cc b/src/tint/lang/glsl/writer/binary_test.cc
new file mode 100644
index 0000000..b8d349b
--- /dev/null
+++ b/src/tint/lang/glsl/writer/binary_test.cc
@@ -0,0 +1,141 @@
+// 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/core/fluent_types.h"
+#include "src/tint/lang/glsl/writer/helper_test.h"
+#include "src/tint/utils/text/string_stream.h"
+
+using namespace tint::core::number_suffixes; // NOLINT
+using namespace tint::core::fluent_types; // NOLINT
+
+namespace tint::glsl::writer {
+namespace {
+
+struct BinaryData {
+ const char* result;
+ core::BinaryOp op;
+};
+inline std::ostream& operator<<(std::ostream& out, BinaryData data) {
+ StringStream str;
+ str << data.op;
+ out << str.str();
+ return out;
+}
+
+using GlslWriterBinaryTest = GlslWriterTestWithParam<BinaryData>;
+TEST_P(GlslWriterBinaryTest, Emit) {
+ auto params = GetParam();
+
+ auto* func = b.Function("foo", ty.void_(), core::ir::Function::PipelineStage::kCompute);
+ func->SetWorkgroupSize(1, 1, 1);
+ b.Append(func->Block(), [&] {
+ auto* l = b.Let("left", b.Constant(1_u));
+ auto* r = b.Let("right", b.Constant(2_u));
+ auto* bin = b.Binary(params.op, ty.u32(), l, r);
+ b.Let("val", bin);
+ b.Return(func);
+ });
+
+ Options opts{};
+ opts.disable_polyfill_integer_div_mod = true;
+ ASSERT_TRUE(Generate(opts)) << 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() {
+ uint left = 1u;
+ uint right = 2u;
+ uint val = )" + params.result +
+ R"(;
+}
+)");
+}
+INSTANTIATE_TEST_SUITE_P(
+ GlslWriterTest,
+ GlslWriterBinaryTest,
+ testing::Values(BinaryData{"(left + right)", core::BinaryOp::kAdd},
+ BinaryData{"(left - right)", core::BinaryOp::kSubtract},
+ BinaryData{"(left * right)", core::BinaryOp::kMultiply},
+ BinaryData{"(left / right)", core::BinaryOp::kDivide},
+ BinaryData{"(left % right)", core::BinaryOp::kModulo},
+ BinaryData{"(left & right)", core::BinaryOp::kAnd},
+ BinaryData{"(left | right)", core::BinaryOp::kOr},
+ BinaryData{"(left ^ right)", core::BinaryOp::kXor},
+ BinaryData{"(left << (right & 31u))", core::BinaryOp::kShiftLeft},
+ BinaryData{"(left >> (right & 31u))", core::BinaryOp::kShiftRight}));
+
+using GlslWriterBinaryBoolTest = GlslWriterTestWithParam<BinaryData>;
+TEST_P(GlslWriterBinaryBoolTest, Emit) {
+ auto params = GetParam();
+
+ auto* func = b.Function("foo", ty.void_(), core::ir::Function::PipelineStage::kCompute);
+ func->SetWorkgroupSize(1, 1, 1);
+ b.Append(func->Block(), [&] {
+ auto* l = b.Let("left", b.Constant(1_u));
+ auto* r = b.Let("right", b.Constant(2_u));
+ auto* bin = b.Binary(params.op, ty.bool_(), l, r);
+ b.Let("val", bin);
+ 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() {
+ uint left = 1u;
+ uint right = 2u;
+ bool val = )" + params.result +
+ R"(;
+}
+)");
+}
+INSTANTIATE_TEST_SUITE_P(
+ GlslWriterTest,
+ GlslWriterBinaryBoolTest,
+ testing::Values(BinaryData{"(left == right)", core::BinaryOp::kEqual},
+ BinaryData{"(left != right)", core::BinaryOp::kNotEqual},
+ BinaryData{"(left < right)", core::BinaryOp::kLessThan},
+ BinaryData{"(left > right)", core::BinaryOp::kGreaterThan},
+ BinaryData{"(left <= right)", core::BinaryOp::kLessThanEqual},
+ BinaryData{"(left >= right)", core::BinaryOp::kGreaterThanEqual}));
+
+// TODO(dsinclair): Test int_div_mod polyfil
+TEST_F(GlslWriterTest, DISABLED_Binary_Int_Div_Polyfill) {}
+
+// TODO(dsinclair): Test int_div_mod polyfil
+TEST_F(GlslWriterTest, DISABLED_Binary_Int_Mod_Polyfill) {}
+
+// TODO(dsinclair): Polyfill conversion to relational functions
+TEST_F(GlslWriterTest, DISABLED_Binary_Relational_Vector) {}
+
+// TODO(dsinclair): Bitwise bool
+TEST_F(GlslWriterTest, DISABLED_Binary_Bitwise_Bool) {}
+
+// TODO(dsinclair): Float Modulo
+TEST_F(GlslWriterTest, DISABLED_Binary_Float_Modulo) {}
+
+} // namespace
+} // namespace tint::glsl::writer
diff --git a/src/tint/lang/glsl/writer/function_test.cc b/src/tint/lang/glsl/writer/function_test.cc
index 7150010..fa89315 100644
--- a/src/tint/lang/glsl/writer/function_test.cc
+++ b/src/tint/lang/glsl/writer/function_test.cc
@@ -35,7 +35,8 @@
func->SetWorkgroupSize(1, 1, 1);
func->Block()->Append(b.Return(func));
- ASSERT_TRUE(Generate(tint::ast::PipelineStage::kCompute)) << err_ << output_.glsl;
+ Options opts{};
+ ASSERT_TRUE(Generate(opts, tint::ast::PipelineStage::kCompute)) << 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() {
diff --git a/src/tint/lang/glsl/writer/helper_test.h b/src/tint/lang/glsl/writer/helper_test.h
index 82e1793..a6fd3cd 100644
--- a/src/tint/lang/glsl/writer/helper_test.h
+++ b/src/tint/lang/glsl/writer/helper_test.h
@@ -61,11 +61,11 @@
Output output_;
/// Run the writer on the IR module and validate the result.
- /// @param stage the validation stage
/// @param options the writer options
+ /// @param stage the validation stage
/// @returns true if generation and validation succeeded
- bool Generate(tint::ast::PipelineStage stage = tint::ast::PipelineStage::kCompute,
- Options options = {}) {
+ bool Generate(Options options = {},
+ tint::ast::PipelineStage stage = tint::ast::PipelineStage::kCompute) {
auto result = writer::Generate(mod, options, "");
if (result != Success) {
err_ = result.Failure().reason.Str();
diff --git a/src/tint/lang/glsl/writer/printer/printer.cc b/src/tint/lang/glsl/writer/printer/printer.cc
index b8fbafa..22fb742 100644
--- a/src/tint/lang/glsl/writer/printer/printer.cc
+++ b/src/tint/lang/glsl/writer/printer/printer.cc
@@ -561,7 +561,8 @@
[&](const core::ir::Constant* c) { EmitConstant(out, c); },
[&](const core::ir::InstructionResult* r) {
tint::Switch(
- r->Instruction(), //
+ r->Instruction(), //
+ [&](const core::ir::CoreBinary* b) { EmitBinary(out, b); }, //
[&](const core::ir::CoreBuiltinCall* c) { EmitCoreBuiltinCall(out, c); },
[&](const core::ir::Let* l) { out << NameOf(l->Result(0)); },
[&](const core::ir::UserCall* c) { EmitUserCall(out, c); },
@@ -574,6 +575,58 @@
TINT_ICE_ON_NO_MATCH);
}
+ /// Emit a binary instruction
+ /// @param b the binary instruction
+ void EmitBinary(StringStream& out, const core::ir::CoreBinary* b) {
+ auto kind = [&] {
+ switch (b->Op()) {
+ case core::BinaryOp::kAdd:
+ return "+";
+ case core::BinaryOp::kSubtract:
+ return "-";
+ case core::BinaryOp::kMultiply:
+ return "*";
+ case core::BinaryOp::kDivide:
+ return "/";
+ case core::BinaryOp::kModulo:
+ return "%";
+ case core::BinaryOp::kAnd:
+ return "&";
+ case core::BinaryOp::kOr:
+ return "|";
+ case core::BinaryOp::kXor:
+ return "^";
+ case core::BinaryOp::kEqual:
+ return "==";
+ case core::BinaryOp::kNotEqual:
+ return "!=";
+ case core::BinaryOp::kLessThan:
+ return "<";
+ case core::BinaryOp::kGreaterThan:
+ return ">";
+ case core::BinaryOp::kLessThanEqual:
+ return "<=";
+ case core::BinaryOp::kGreaterThanEqual:
+ return ">=";
+ case core::BinaryOp::kShiftLeft:
+ return "<<";
+ case core::BinaryOp::kShiftRight:
+ return ">>";
+ case core::BinaryOp::kLogicalAnd:
+ case core::BinaryOp::kLogicalOr:
+ // These should have been replaced by if statements as GLSL is not
+ // short-circuting.
+ TINT_UNREACHABLE() << "logical and/or should not be present";
+ }
+ return "<error>";
+ };
+
+ ScopedParen sp(out);
+ EmitValue(out, b->LHS());
+ out << " " << kind() << " ";
+ EmitValue(out, b->RHS());
+ }
+
void EmitCoreBuiltinCall(StringStream& out, const core::ir::CoreBuiltinCall* c) {
EmitCoreBuiltinName(out, c->Func());
diff --git a/test/tint/bug/tint/1664.wgsl.expected.ir.glsl b/test/tint/bug/tint/1664.wgsl.expected.ir.glsl
index ae9b6d0..01720dd 100644
--- a/test/tint/bug/tint/1664.wgsl.expected.ir.glsl
+++ b/test/tint/bug/tint/1664.wgsl.expected.ir.glsl
@@ -1,11 +1,12 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ int a = 2147483647;
+ int b = 1;
+ int c = (a + 1);
+}
+void f1() {
+ int a = 1;
+ int b = ((-2147483647 - 1) - a);
+}
diff --git a/test/tint/expressions/binary/add/mat3x3-mat3x3/f16.wgsl.expected.ir.glsl b/test/tint/expressions/binary/add/mat3x3-mat3x3/f16.wgsl.expected.ir.glsl
index ae9b6d0..56c7669 100644
--- a/test/tint/expressions/binary/add/mat3x3-mat3x3/f16.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/add/mat3x3-mat3x3/f16.wgsl.expected.ir.glsl
@@ -1,11 +1,9 @@
-SKIP: FAILED
+#version 310 es
+#extension GL_AMD_gpu_shader_half_float: require
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ f16mat3 a = f16mat3(f16vec3(1.0hf, 2.0hf, 3.0hf), f16vec3(4.0hf, 5.0hf, 6.0hf), f16vec3(7.0hf, 8.0hf, 9.0hf));
+ f16mat3 b = f16mat3(f16vec3(-1.0hf, -2.0hf, -3.0hf), f16vec3(-4.0hf, -5.0hf, -6.0hf), f16vec3(-7.0hf, -8.0hf, -9.0hf));
+ f16mat3 r = (a + b);
+}
diff --git a/test/tint/expressions/binary/add/mat3x3-mat3x3/f32.wgsl.expected.ir.glsl b/test/tint/expressions/binary/add/mat3x3-mat3x3/f32.wgsl.expected.ir.glsl
index ae9b6d0..a28a0fd 100644
--- a/test/tint/expressions/binary/add/mat3x3-mat3x3/f32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/add/mat3x3-mat3x3/f32.wgsl.expected.ir.glsl
@@ -1,11 +1,8 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ mat3 a = mat3(vec3(1.0f, 2.0f, 3.0f), vec3(4.0f, 5.0f, 6.0f), vec3(7.0f, 8.0f, 9.0f));
+ mat3 b = mat3(vec3(-1.0f, -2.0f, -3.0f), vec3(-4.0f, -5.0f, -6.0f), vec3(-7.0f, -8.0f, -9.0f));
+ mat3 r = (a + b);
+}
diff --git a/test/tint/expressions/binary/add/scalar-scalar/f16.wgsl.expected.ir.glsl b/test/tint/expressions/binary/add/scalar-scalar/f16.wgsl.expected.ir.glsl
index ae9b6d0..7d11e90 100644
--- a/test/tint/expressions/binary/add/scalar-scalar/f16.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/add/scalar-scalar/f16.wgsl.expected.ir.glsl
@@ -1,11 +1,9 @@
-SKIP: FAILED
+#version 310 es
+#extension GL_AMD_gpu_shader_half_float: require
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ float16_t a = 1.0hf;
+ float16_t b = 2.0hf;
+ float16_t r = (a + b);
+}
diff --git a/test/tint/expressions/binary/add/scalar-scalar/f32.wgsl.expected.ir.glsl b/test/tint/expressions/binary/add/scalar-scalar/f32.wgsl.expected.ir.glsl
index ae9b6d0..8f547e7 100644
--- a/test/tint/expressions/binary/add/scalar-scalar/f32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/add/scalar-scalar/f32.wgsl.expected.ir.glsl
@@ -1,11 +1,8 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ float a = 1.0f;
+ float b = 2.0f;
+ float r = (a + b);
+}
diff --git a/test/tint/expressions/binary/add/scalar-scalar/i32.wgsl.expected.ir.glsl b/test/tint/expressions/binary/add/scalar-scalar/i32.wgsl.expected.ir.glsl
index ae9b6d0..5e3a0d2 100644
--- a/test/tint/expressions/binary/add/scalar-scalar/i32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/add/scalar-scalar/i32.wgsl.expected.ir.glsl
@@ -1,11 +1,8 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ int a = 1;
+ int b = 2;
+ int r = (a + b);
+}
diff --git a/test/tint/expressions/binary/add/scalar-scalar/u32.wgsl.expected.ir.glsl b/test/tint/expressions/binary/add/scalar-scalar/u32.wgsl.expected.ir.glsl
index ae9b6d0..6b5965d 100644
--- a/test/tint/expressions/binary/add/scalar-scalar/u32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/add/scalar-scalar/u32.wgsl.expected.ir.glsl
@@ -1,11 +1,8 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ uint a = 1u;
+ uint b = 2u;
+ uint r = (a + b);
+}
diff --git a/test/tint/expressions/binary/add/scalar-vec3/f16.wgsl.expected.ir.glsl b/test/tint/expressions/binary/add/scalar-vec3/f16.wgsl.expected.ir.glsl
index ae9b6d0..604942a 100644
--- a/test/tint/expressions/binary/add/scalar-vec3/f16.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/add/scalar-vec3/f16.wgsl.expected.ir.glsl
@@ -1,11 +1,9 @@
-SKIP: FAILED
+#version 310 es
+#extension GL_AMD_gpu_shader_half_float: require
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ float16_t a = 4.0hf;
+ f16vec3 b = f16vec3(1.0hf, 2.0hf, 3.0hf);
+ f16vec3 r = (a + b);
+}
diff --git a/test/tint/expressions/binary/add/scalar-vec3/f32.wgsl.expected.ir.glsl b/test/tint/expressions/binary/add/scalar-vec3/f32.wgsl.expected.ir.glsl
index ae9b6d0..2db6250 100644
--- a/test/tint/expressions/binary/add/scalar-vec3/f32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/add/scalar-vec3/f32.wgsl.expected.ir.glsl
@@ -1,11 +1,8 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ float a = 4.0f;
+ vec3 b = vec3(1.0f, 2.0f, 3.0f);
+ vec3 r = (a + b);
+}
diff --git a/test/tint/expressions/binary/add/scalar-vec3/i32.wgsl.expected.ir.glsl b/test/tint/expressions/binary/add/scalar-vec3/i32.wgsl.expected.ir.glsl
index ae9b6d0..50e268c 100644
--- a/test/tint/expressions/binary/add/scalar-vec3/i32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/add/scalar-vec3/i32.wgsl.expected.ir.glsl
@@ -1,11 +1,8 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ int a = 4;
+ ivec3 b = ivec3(1, 2, 3);
+ ivec3 r = (a + b);
+}
diff --git a/test/tint/expressions/binary/add/scalar-vec3/u32.wgsl.expected.ir.glsl b/test/tint/expressions/binary/add/scalar-vec3/u32.wgsl.expected.ir.glsl
index ae9b6d0..b83521a 100644
--- a/test/tint/expressions/binary/add/scalar-vec3/u32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/add/scalar-vec3/u32.wgsl.expected.ir.glsl
@@ -1,11 +1,8 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ uint a = 4u;
+ uvec3 b = uvec3(1u, 2u, 3u);
+ uvec3 r = (a + b);
+}
diff --git a/test/tint/expressions/binary/add/vec3-scalar/f16.wgsl.expected.ir.glsl b/test/tint/expressions/binary/add/vec3-scalar/f16.wgsl.expected.ir.glsl
index ae9b6d0..50b0c99 100644
--- a/test/tint/expressions/binary/add/vec3-scalar/f16.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/add/vec3-scalar/f16.wgsl.expected.ir.glsl
@@ -1,11 +1,9 @@
-SKIP: FAILED
+#version 310 es
+#extension GL_AMD_gpu_shader_half_float: require
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ f16vec3 a = f16vec3(1.0hf, 2.0hf, 3.0hf);
+ float16_t b = 4.0hf;
+ f16vec3 r = (a + b);
+}
diff --git a/test/tint/expressions/binary/add/vec3-scalar/f32.wgsl.expected.ir.glsl b/test/tint/expressions/binary/add/vec3-scalar/f32.wgsl.expected.ir.glsl
index ae9b6d0..06b76a1 100644
--- a/test/tint/expressions/binary/add/vec3-scalar/f32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/add/vec3-scalar/f32.wgsl.expected.ir.glsl
@@ -1,11 +1,8 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ vec3 a = vec3(1.0f, 2.0f, 3.0f);
+ float b = 4.0f;
+ vec3 r = (a + b);
+}
diff --git a/test/tint/expressions/binary/add/vec3-scalar/i32.wgsl.expected.ir.glsl b/test/tint/expressions/binary/add/vec3-scalar/i32.wgsl.expected.ir.glsl
index ae9b6d0..594226f 100644
--- a/test/tint/expressions/binary/add/vec3-scalar/i32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/add/vec3-scalar/i32.wgsl.expected.ir.glsl
@@ -1,11 +1,8 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ ivec3 a = ivec3(1, 2, 3);
+ int b = 4;
+ ivec3 r = (a + b);
+}
diff --git a/test/tint/expressions/binary/add/vec3-scalar/u32.wgsl.expected.ir.glsl b/test/tint/expressions/binary/add/vec3-scalar/u32.wgsl.expected.ir.glsl
index ae9b6d0..59782ff 100644
--- a/test/tint/expressions/binary/add/vec3-scalar/u32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/add/vec3-scalar/u32.wgsl.expected.ir.glsl
@@ -1,11 +1,8 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ uvec3 a = uvec3(1u, 2u, 3u);
+ uint b = 4u;
+ uvec3 r = (a + b);
+}
diff --git a/test/tint/expressions/binary/add/vec3-vec3/f16.wgsl.expected.ir.glsl b/test/tint/expressions/binary/add/vec3-vec3/f16.wgsl.expected.ir.glsl
index ae9b6d0..84414a2 100644
--- a/test/tint/expressions/binary/add/vec3-vec3/f16.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/add/vec3-vec3/f16.wgsl.expected.ir.glsl
@@ -1,11 +1,9 @@
-SKIP: FAILED
+#version 310 es
+#extension GL_AMD_gpu_shader_half_float: require
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ f16vec3 a = f16vec3(1.0hf, 2.0hf, 3.0hf);
+ f16vec3 b = f16vec3(4.0hf, 5.0hf, 6.0hf);
+ f16vec3 r = (a + b);
+}
diff --git a/test/tint/expressions/binary/add/vec3-vec3/f32.wgsl.expected.ir.glsl b/test/tint/expressions/binary/add/vec3-vec3/f32.wgsl.expected.ir.glsl
index ae9b6d0..482dd68 100644
--- a/test/tint/expressions/binary/add/vec3-vec3/f32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/add/vec3-vec3/f32.wgsl.expected.ir.glsl
@@ -1,11 +1,8 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ vec3 a = vec3(1.0f, 2.0f, 3.0f);
+ vec3 b = vec3(4.0f, 5.0f, 6.0f);
+ vec3 r = (a + b);
+}
diff --git a/test/tint/expressions/binary/add/vec3-vec3/i32.wgsl.expected.ir.glsl b/test/tint/expressions/binary/add/vec3-vec3/i32.wgsl.expected.ir.glsl
index ae9b6d0..f6c5bc2 100644
--- a/test/tint/expressions/binary/add/vec3-vec3/i32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/add/vec3-vec3/i32.wgsl.expected.ir.glsl
@@ -1,11 +1,8 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ ivec3 a = ivec3(1, 2, 3);
+ ivec3 b = ivec3(4, 5, 6);
+ ivec3 r = (a + b);
+}
diff --git a/test/tint/expressions/binary/add/vec3-vec3/u32.wgsl.expected.ir.glsl b/test/tint/expressions/binary/add/vec3-vec3/u32.wgsl.expected.ir.glsl
index ae9b6d0..8618b50 100644
--- a/test/tint/expressions/binary/add/vec3-vec3/u32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/add/vec3-vec3/u32.wgsl.expected.ir.glsl
@@ -1,11 +1,8 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ uvec3 a = uvec3(1u, 2u, 3u);
+ uvec3 b = uvec3(4u, 5u, 6u);
+ uvec3 r = (a + b);
+}
diff --git a/test/tint/expressions/binary/bit-and/scalar-scalar/i32.wgsl.expected.ir.glsl b/test/tint/expressions/binary/bit-and/scalar-scalar/i32.wgsl.expected.ir.glsl
index ae9b6d0..5d77f22 100644
--- a/test/tint/expressions/binary/bit-and/scalar-scalar/i32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/bit-and/scalar-scalar/i32.wgsl.expected.ir.glsl
@@ -1,11 +1,8 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ int a = 1;
+ int b = 2;
+ int r = (a & b);
+}
diff --git a/test/tint/expressions/binary/bit-and/scalar-scalar/u32.wgsl.expected.ir.glsl b/test/tint/expressions/binary/bit-and/scalar-scalar/u32.wgsl.expected.ir.glsl
index ae9b6d0..a1bb437 100644
--- a/test/tint/expressions/binary/bit-and/scalar-scalar/u32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/bit-and/scalar-scalar/u32.wgsl.expected.ir.glsl
@@ -1,11 +1,8 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ uint a = 1u;
+ uint b = 2u;
+ uint r = (a & b);
+}
diff --git a/test/tint/expressions/binary/bit-and/vec3-vec3/i32.wgsl.expected.ir.glsl b/test/tint/expressions/binary/bit-and/vec3-vec3/i32.wgsl.expected.ir.glsl
index ae9b6d0..e3d780d 100644
--- a/test/tint/expressions/binary/bit-and/vec3-vec3/i32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/bit-and/vec3-vec3/i32.wgsl.expected.ir.glsl
@@ -1,11 +1,8 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ ivec3 a = ivec3(1, 2, 3);
+ ivec3 b = ivec3(4, 5, 6);
+ ivec3 r = (a & b);
+}
diff --git a/test/tint/expressions/binary/bit-and/vec3-vec3/u32.wgsl.expected.ir.glsl b/test/tint/expressions/binary/bit-and/vec3-vec3/u32.wgsl.expected.ir.glsl
index ae9b6d0..2e7bf29 100644
--- a/test/tint/expressions/binary/bit-and/vec3-vec3/u32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/bit-and/vec3-vec3/u32.wgsl.expected.ir.glsl
@@ -1,11 +1,8 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ uvec3 a = uvec3(1u, 2u, 3u);
+ uvec3 b = uvec3(4u, 5u, 6u);
+ uvec3 r = (a & b);
+}
diff --git a/test/tint/expressions/binary/bit-or/scalar-scalar/i32.wgsl.expected.ir.glsl b/test/tint/expressions/binary/bit-or/scalar-scalar/i32.wgsl.expected.ir.glsl
index ae9b6d0..fcdf9fe 100644
--- a/test/tint/expressions/binary/bit-or/scalar-scalar/i32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/bit-or/scalar-scalar/i32.wgsl.expected.ir.glsl
@@ -1,11 +1,8 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ int a = 1;
+ int b = 2;
+ int r = (a | b);
+}
diff --git a/test/tint/expressions/binary/bit-or/scalar-scalar/u32.wgsl.expected.ir.glsl b/test/tint/expressions/binary/bit-or/scalar-scalar/u32.wgsl.expected.ir.glsl
index ae9b6d0..8e1480f 100644
--- a/test/tint/expressions/binary/bit-or/scalar-scalar/u32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/bit-or/scalar-scalar/u32.wgsl.expected.ir.glsl
@@ -1,11 +1,8 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ uint a = 1u;
+ uint b = 2u;
+ uint r = (a | b);
+}
diff --git a/test/tint/expressions/binary/bit-or/vec3-vec3/i32.wgsl.expected.ir.glsl b/test/tint/expressions/binary/bit-or/vec3-vec3/i32.wgsl.expected.ir.glsl
index ae9b6d0..5c4e2c9 100644
--- a/test/tint/expressions/binary/bit-or/vec3-vec3/i32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/bit-or/vec3-vec3/i32.wgsl.expected.ir.glsl
@@ -1,11 +1,8 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ ivec3 a = ivec3(1, 2, 3);
+ ivec3 b = ivec3(4, 5, 6);
+ ivec3 r = (a | b);
+}
diff --git a/test/tint/expressions/binary/bit-or/vec3-vec3/u32.wgsl.expected.ir.glsl b/test/tint/expressions/binary/bit-or/vec3-vec3/u32.wgsl.expected.ir.glsl
index ae9b6d0..dc787f8 100644
--- a/test/tint/expressions/binary/bit-or/vec3-vec3/u32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/bit-or/vec3-vec3/u32.wgsl.expected.ir.glsl
@@ -1,11 +1,8 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ uvec3 a = uvec3(1u, 2u, 3u);
+ uvec3 b = uvec3(4u, 5u, 6u);
+ uvec3 r = (a | b);
+}
diff --git a/test/tint/expressions/binary/bit-xor/scalar-scalar/i32.wgsl.expected.ir.glsl b/test/tint/expressions/binary/bit-xor/scalar-scalar/i32.wgsl.expected.ir.glsl
index ae9b6d0..d907090 100644
--- a/test/tint/expressions/binary/bit-xor/scalar-scalar/i32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/bit-xor/scalar-scalar/i32.wgsl.expected.ir.glsl
@@ -1,11 +1,8 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ int a = 1;
+ int b = 2;
+ int r = (a ^ b);
+}
diff --git a/test/tint/expressions/binary/bit-xor/scalar-scalar/u32.wgsl.expected.ir.glsl b/test/tint/expressions/binary/bit-xor/scalar-scalar/u32.wgsl.expected.ir.glsl
index ae9b6d0..6dc6108 100644
--- a/test/tint/expressions/binary/bit-xor/scalar-scalar/u32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/bit-xor/scalar-scalar/u32.wgsl.expected.ir.glsl
@@ -1,11 +1,8 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ uint a = 1u;
+ uint b = 2u;
+ uint r = (a ^ b);
+}
diff --git a/test/tint/expressions/binary/bit-xor/vec3-vec3/i32.wgsl.expected.ir.glsl b/test/tint/expressions/binary/bit-xor/vec3-vec3/i32.wgsl.expected.ir.glsl
index ae9b6d0..bce3530 100644
--- a/test/tint/expressions/binary/bit-xor/vec3-vec3/i32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/bit-xor/vec3-vec3/i32.wgsl.expected.ir.glsl
@@ -1,11 +1,8 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ ivec3 a = ivec3(1, 2, 3);
+ ivec3 b = ivec3(4, 5, 6);
+ ivec3 r = (a ^ b);
+}
diff --git a/test/tint/expressions/binary/bit-xor/vec3-vec3/u32.wgsl.expected.ir.glsl b/test/tint/expressions/binary/bit-xor/vec3-vec3/u32.wgsl.expected.ir.glsl
index ae9b6d0..fca1aca 100644
--- a/test/tint/expressions/binary/bit-xor/vec3-vec3/u32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/bit-xor/vec3-vec3/u32.wgsl.expected.ir.glsl
@@ -1,11 +1,8 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ uvec3 a = uvec3(1u, 2u, 3u);
+ uvec3 b = uvec3(4u, 5u, 6u);
+ uvec3 r = (a ^ b);
+}
diff --git a/test/tint/expressions/binary/div/scalar-scalar/f16.wgsl.expected.ir.glsl b/test/tint/expressions/binary/div/scalar-scalar/f16.wgsl.expected.ir.glsl
index ae9b6d0..ac07ad6 100644
--- a/test/tint/expressions/binary/div/scalar-scalar/f16.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/div/scalar-scalar/f16.wgsl.expected.ir.glsl
@@ -1,11 +1,9 @@
-SKIP: FAILED
+#version 310 es
+#extension GL_AMD_gpu_shader_half_float: require
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ float16_t a = 1.0hf;
+ float16_t b = 2.0hf;
+ float16_t r = (a / b);
+}
diff --git a/test/tint/expressions/binary/div/scalar-scalar/f32.wgsl.expected.ir.glsl b/test/tint/expressions/binary/div/scalar-scalar/f32.wgsl.expected.ir.glsl
index ae9b6d0..4079ff3 100644
--- a/test/tint/expressions/binary/div/scalar-scalar/f32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/div/scalar-scalar/f32.wgsl.expected.ir.glsl
@@ -1,11 +1,8 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ float a = 1.0f;
+ float b = 2.0f;
+ float r = (a / b);
+}
diff --git a/test/tint/expressions/binary/div/scalar-vec3/f16.wgsl.expected.ir.glsl b/test/tint/expressions/binary/div/scalar-vec3/f16.wgsl.expected.ir.glsl
index ae9b6d0..2446fc7 100644
--- a/test/tint/expressions/binary/div/scalar-vec3/f16.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/div/scalar-vec3/f16.wgsl.expected.ir.glsl
@@ -1,11 +1,9 @@
-SKIP: FAILED
+#version 310 es
+#extension GL_AMD_gpu_shader_half_float: require
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ float16_t a = 4.0hf;
+ f16vec3 b = f16vec3(1.0hf, 2.0hf, 3.0hf);
+ f16vec3 r = (a / b);
+}
diff --git a/test/tint/expressions/binary/div/scalar-vec3/f32.wgsl.expected.ir.glsl b/test/tint/expressions/binary/div/scalar-vec3/f32.wgsl.expected.ir.glsl
index ae9b6d0..ae14410 100644
--- a/test/tint/expressions/binary/div/scalar-vec3/f32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/div/scalar-vec3/f32.wgsl.expected.ir.glsl
@@ -1,11 +1,8 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ float a = 4.0f;
+ vec3 b = vec3(1.0f, 2.0f, 3.0f);
+ vec3 r = (a / b);
+}
diff --git a/test/tint/expressions/binary/div/vec3-scalar/f16.wgsl.expected.ir.glsl b/test/tint/expressions/binary/div/vec3-scalar/f16.wgsl.expected.ir.glsl
index ae9b6d0..ae98179 100644
--- a/test/tint/expressions/binary/div/vec3-scalar/f16.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/div/vec3-scalar/f16.wgsl.expected.ir.glsl
@@ -1,11 +1,9 @@
-SKIP: FAILED
+#version 310 es
+#extension GL_AMD_gpu_shader_half_float: require
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ f16vec3 a = f16vec3(1.0hf, 2.0hf, 3.0hf);
+ float16_t b = 4.0hf;
+ f16vec3 r = (a / b);
+}
diff --git a/test/tint/expressions/binary/div/vec3-scalar/f32.wgsl.expected.ir.glsl b/test/tint/expressions/binary/div/vec3-scalar/f32.wgsl.expected.ir.glsl
index ae9b6d0..0dc5068 100644
--- a/test/tint/expressions/binary/div/vec3-scalar/f32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/div/vec3-scalar/f32.wgsl.expected.ir.glsl
@@ -1,11 +1,8 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ vec3 a = vec3(1.0f, 2.0f, 3.0f);
+ float b = 4.0f;
+ vec3 r = (a / b);
+}
diff --git a/test/tint/expressions/binary/div/vec3-vec3/f16.wgsl.expected.ir.glsl b/test/tint/expressions/binary/div/vec3-vec3/f16.wgsl.expected.ir.glsl
index ae9b6d0..4d7b8f0 100644
--- a/test/tint/expressions/binary/div/vec3-vec3/f16.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/div/vec3-vec3/f16.wgsl.expected.ir.glsl
@@ -1,11 +1,9 @@
-SKIP: FAILED
+#version 310 es
+#extension GL_AMD_gpu_shader_half_float: require
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ f16vec3 a = f16vec3(1.0hf, 2.0hf, 3.0hf);
+ f16vec3 b = f16vec3(4.0hf, 5.0hf, 6.0hf);
+ f16vec3 r = (a / b);
+}
diff --git a/test/tint/expressions/binary/div/vec3-vec3/f32.wgsl.expected.ir.glsl b/test/tint/expressions/binary/div/vec3-vec3/f32.wgsl.expected.ir.glsl
index ae9b6d0..2185f78 100644
--- a/test/tint/expressions/binary/div/vec3-vec3/f32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/div/vec3-vec3/f32.wgsl.expected.ir.glsl
@@ -1,11 +1,8 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ vec3 a = vec3(1.0f, 2.0f, 3.0f);
+ vec3 b = vec3(4.0f, 5.0f, 6.0f);
+ vec3 r = (a / b);
+}
diff --git a/test/tint/expressions/binary/div_by_zero/by_constant/scalar-scalar/f16.wgsl.expected.ir.glsl b/test/tint/expressions/binary/div_by_zero/by_constant/scalar-scalar/f16.wgsl.expected.ir.glsl
index ae9b6d0..3076144 100644
--- a/test/tint/expressions/binary/div_by_zero/by_constant/scalar-scalar/f16.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/div_by_zero/by_constant/scalar-scalar/f16.wgsl.expected.ir.glsl
@@ -1,11 +1,9 @@
-SKIP: FAILED
+#version 310 es
+#extension GL_AMD_gpu_shader_half_float: require
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ float16_t a = 1.0hf;
+ float16_t b = 0.0hf;
+ float16_t r = (a / b);
+}
diff --git a/test/tint/expressions/binary/div_by_zero/by_constant/scalar-scalar/f32.wgsl.expected.ir.glsl b/test/tint/expressions/binary/div_by_zero/by_constant/scalar-scalar/f32.wgsl.expected.ir.glsl
index ae9b6d0..1a88e4b 100644
--- a/test/tint/expressions/binary/div_by_zero/by_constant/scalar-scalar/f32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/div_by_zero/by_constant/scalar-scalar/f32.wgsl.expected.ir.glsl
@@ -1,11 +1,8 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ float a = 1.0f;
+ float b = 0.0f;
+ float r = (a / b);
+}
diff --git a/test/tint/expressions/binary/div_by_zero/by_constant/scalar-vec3/f16.wgsl.expected.ir.glsl b/test/tint/expressions/binary/div_by_zero/by_constant/scalar-vec3/f16.wgsl.expected.ir.glsl
index ae9b6d0..8baa79f 100644
--- a/test/tint/expressions/binary/div_by_zero/by_constant/scalar-vec3/f16.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/div_by_zero/by_constant/scalar-vec3/f16.wgsl.expected.ir.glsl
@@ -1,11 +1,9 @@
-SKIP: FAILED
+#version 310 es
+#extension GL_AMD_gpu_shader_half_float: require
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ float16_t a = 4.0hf;
+ f16vec3 b = f16vec3(0.0hf, 2.0hf, 0.0hf);
+ f16vec3 r = (a / b);
+}
diff --git a/test/tint/expressions/binary/div_by_zero/by_constant/scalar-vec3/f32.wgsl.expected.ir.glsl b/test/tint/expressions/binary/div_by_zero/by_constant/scalar-vec3/f32.wgsl.expected.ir.glsl
index ae9b6d0..91784c7 100644
--- a/test/tint/expressions/binary/div_by_zero/by_constant/scalar-vec3/f32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/div_by_zero/by_constant/scalar-vec3/f32.wgsl.expected.ir.glsl
@@ -1,11 +1,8 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ float a = 4.0f;
+ vec3 b = vec3(0.0f, 2.0f, 0.0f);
+ vec3 r = (a / b);
+}
diff --git a/test/tint/expressions/binary/div_by_zero/by_constant/vec3-scalar/f16.wgsl.expected.ir.glsl b/test/tint/expressions/binary/div_by_zero/by_constant/vec3-scalar/f16.wgsl.expected.ir.glsl
index ae9b6d0..2e5a027 100644
--- a/test/tint/expressions/binary/div_by_zero/by_constant/vec3-scalar/f16.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/div_by_zero/by_constant/vec3-scalar/f16.wgsl.expected.ir.glsl
@@ -1,11 +1,9 @@
-SKIP: FAILED
+#version 310 es
+#extension GL_AMD_gpu_shader_half_float: require
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ f16vec3 a = f16vec3(1.0hf, 2.0hf, 3.0hf);
+ float16_t b = 0.0hf;
+ f16vec3 r = (a / b);
+}
diff --git a/test/tint/expressions/binary/div_by_zero/by_constant/vec3-scalar/f32.wgsl.expected.ir.glsl b/test/tint/expressions/binary/div_by_zero/by_constant/vec3-scalar/f32.wgsl.expected.ir.glsl
index ae9b6d0..ddfce15 100644
--- a/test/tint/expressions/binary/div_by_zero/by_constant/vec3-scalar/f32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/div_by_zero/by_constant/vec3-scalar/f32.wgsl.expected.ir.glsl
@@ -1,11 +1,8 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ vec3 a = vec3(1.0f, 2.0f, 3.0f);
+ float b = 0.0f;
+ vec3 r = (a / b);
+}
diff --git a/test/tint/expressions/binary/div_by_zero/by_constant/vec3-vec3/f16.wgsl.expected.ir.glsl b/test/tint/expressions/binary/div_by_zero/by_constant/vec3-vec3/f16.wgsl.expected.ir.glsl
index ae9b6d0..250a8ac 100644
--- a/test/tint/expressions/binary/div_by_zero/by_constant/vec3-vec3/f16.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/div_by_zero/by_constant/vec3-vec3/f16.wgsl.expected.ir.glsl
@@ -1,11 +1,9 @@
-SKIP: FAILED
+#version 310 es
+#extension GL_AMD_gpu_shader_half_float: require
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ f16vec3 a = f16vec3(1.0hf, 2.0hf, 3.0hf);
+ f16vec3 b = f16vec3(0.0hf, 5.0hf, 0.0hf);
+ f16vec3 r = (a / b);
+}
diff --git a/test/tint/expressions/binary/div_by_zero/by_constant/vec3-vec3/f32.wgsl.expected.ir.glsl b/test/tint/expressions/binary/div_by_zero/by_constant/vec3-vec3/f32.wgsl.expected.ir.glsl
index ae9b6d0..5f756db 100644
--- a/test/tint/expressions/binary/div_by_zero/by_constant/vec3-vec3/f32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/div_by_zero/by_constant/vec3-vec3/f32.wgsl.expected.ir.glsl
@@ -1,11 +1,8 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ vec3 a = vec3(1.0f, 2.0f, 3.0f);
+ vec3 b = vec3(0.0f, 5.0f, 0.0f);
+ vec3 r = (a / b);
+}
diff --git a/test/tint/expressions/binary/left-shift/scalar-scalar/i32.wgsl.expected.ir.glsl b/test/tint/expressions/binary/left-shift/scalar-scalar/i32.wgsl.expected.ir.glsl
index ae9b6d0..02827a8 100644
--- a/test/tint/expressions/binary/left-shift/scalar-scalar/i32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/left-shift/scalar-scalar/i32.wgsl.expected.ir.glsl
@@ -1,11 +1,8 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ int a = 1;
+ uint b = 2u;
+ int r = (a << (b & 31u));
+}
diff --git a/test/tint/expressions/binary/left-shift/scalar-scalar/u32.wgsl.expected.ir.glsl b/test/tint/expressions/binary/left-shift/scalar-scalar/u32.wgsl.expected.ir.glsl
index ae9b6d0..01e2582 100644
--- a/test/tint/expressions/binary/left-shift/scalar-scalar/u32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/left-shift/scalar-scalar/u32.wgsl.expected.ir.glsl
@@ -1,11 +1,8 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ uint a = 1u;
+ uint b = 2u;
+ uint r = (a << (b & 31u));
+}
diff --git a/test/tint/expressions/binary/left-shift/vector-vector/i32.wgsl.expected.ir.glsl b/test/tint/expressions/binary/left-shift/vector-vector/i32.wgsl.expected.ir.glsl
index ae9b6d0..2458667 100644
--- a/test/tint/expressions/binary/left-shift/vector-vector/i32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/left-shift/vector-vector/i32.wgsl.expected.ir.glsl
@@ -1,11 +1,8 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ ivec3 a = ivec3(1, 2, 3);
+ uvec3 b = uvec3(4u, 5u, 6u);
+ ivec3 r = (a << (b & uvec3(31u)));
+}
diff --git a/test/tint/expressions/binary/left-shift/vector-vector/u32.wgsl.expected.ir.glsl b/test/tint/expressions/binary/left-shift/vector-vector/u32.wgsl.expected.ir.glsl
index ae9b6d0..fde7c56 100644
--- a/test/tint/expressions/binary/left-shift/vector-vector/u32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/left-shift/vector-vector/u32.wgsl.expected.ir.glsl
@@ -1,11 +1,8 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ uvec3 a = uvec3(1u, 2u, 3u);
+ uvec3 b = uvec3(4u, 5u, 6u);
+ uvec3 r = (a << (b & uvec3(31u)));
+}
diff --git a/test/tint/expressions/binary/mul/mat2x4-mat4x2/f16.wgsl.expected.ir.glsl b/test/tint/expressions/binary/mul/mat2x4-mat4x2/f16.wgsl.expected.ir.glsl
index ae9b6d0..6554c16 100644
--- a/test/tint/expressions/binary/mul/mat2x4-mat4x2/f16.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/mul/mat2x4-mat4x2/f16.wgsl.expected.ir.glsl
@@ -1,11 +1,9 @@
-SKIP: FAILED
+#version 310 es
+#extension GL_AMD_gpu_shader_half_float: require
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ f16mat2x4 a = f16mat2x4(f16vec4(1.0hf, 2.0hf, 3.0hf, 4.0hf), f16vec4(5.0hf, 6.0hf, 7.0hf, 8.0hf));
+ f16mat4x2 b = f16mat4x2(f16vec2(-1.0hf, -2.0hf), f16vec2(-3.0hf, -4.0hf), f16vec2(-5.0hf, -6.0hf), f16vec2(-7.0hf, -8.0hf));
+ f16mat4 r = (a * b);
+}
diff --git a/test/tint/expressions/binary/mul/mat2x4-mat4x2/f32.wgsl.expected.ir.glsl b/test/tint/expressions/binary/mul/mat2x4-mat4x2/f32.wgsl.expected.ir.glsl
index ae9b6d0..f51ec80 100644
--- a/test/tint/expressions/binary/mul/mat2x4-mat4x2/f32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/mul/mat2x4-mat4x2/f32.wgsl.expected.ir.glsl
@@ -1,11 +1,8 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ mat2x4 a = mat2x4(vec4(1.0f, 2.0f, 3.0f, 4.0f), vec4(5.0f, 6.0f, 7.0f, 8.0f));
+ mat4x2 b = mat4x2(vec2(-1.0f, -2.0f), vec2(-3.0f, -4.0f), vec2(-5.0f, -6.0f), vec2(-7.0f, -8.0f));
+ mat4 r = (a * b);
+}
diff --git a/test/tint/expressions/binary/mul/mat3x3-mat3x3/f16.wgsl.expected.ir.glsl b/test/tint/expressions/binary/mul/mat3x3-mat3x3/f16.wgsl.expected.ir.glsl
index ae9b6d0..3c8c4ca 100644
--- a/test/tint/expressions/binary/mul/mat3x3-mat3x3/f16.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/mul/mat3x3-mat3x3/f16.wgsl.expected.ir.glsl
@@ -1,11 +1,9 @@
-SKIP: FAILED
+#version 310 es
+#extension GL_AMD_gpu_shader_half_float: require
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ f16mat3 a = f16mat3(f16vec3(1.0hf, 2.0hf, 3.0hf), f16vec3(4.0hf, 5.0hf, 6.0hf), f16vec3(7.0hf, 8.0hf, 9.0hf));
+ f16mat3 b = f16mat3(f16vec3(-1.0hf, -2.0hf, -3.0hf), f16vec3(-4.0hf, -5.0hf, -6.0hf), f16vec3(-7.0hf, -8.0hf, -9.0hf));
+ f16mat3 r = (a * b);
+}
diff --git a/test/tint/expressions/binary/mul/mat3x3-mat3x3/f32.wgsl.expected.ir.glsl b/test/tint/expressions/binary/mul/mat3x3-mat3x3/f32.wgsl.expected.ir.glsl
index ae9b6d0..096f4be 100644
--- a/test/tint/expressions/binary/mul/mat3x3-mat3x3/f32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/mul/mat3x3-mat3x3/f32.wgsl.expected.ir.glsl
@@ -1,11 +1,8 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ mat3 a = mat3(vec3(1.0f, 2.0f, 3.0f), vec3(4.0f, 5.0f, 6.0f), vec3(7.0f, 8.0f, 9.0f));
+ mat3 b = mat3(vec3(-1.0f, -2.0f, -3.0f), vec3(-4.0f, -5.0f, -6.0f), vec3(-7.0f, -8.0f, -9.0f));
+ mat3 r = (a * b);
+}
diff --git a/test/tint/expressions/binary/mul/mat4x2-mat2x4/f16.wgsl.expected.ir.glsl b/test/tint/expressions/binary/mul/mat4x2-mat2x4/f16.wgsl.expected.ir.glsl
index ae9b6d0..7944144 100644
--- a/test/tint/expressions/binary/mul/mat4x2-mat2x4/f16.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/mul/mat4x2-mat2x4/f16.wgsl.expected.ir.glsl
@@ -1,11 +1,9 @@
-SKIP: FAILED
+#version 310 es
+#extension GL_AMD_gpu_shader_half_float: require
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ f16mat4x2 a = f16mat4x2(f16vec2(-1.0hf, -2.0hf), f16vec2(-3.0hf, -4.0hf), f16vec2(-5.0hf, -6.0hf), f16vec2(-7.0hf, -8.0hf));
+ f16mat2x4 b = f16mat2x4(f16vec4(1.0hf, 2.0hf, 3.0hf, 4.0hf), f16vec4(5.0hf, 6.0hf, 7.0hf, 8.0hf));
+ f16mat2 r = (a * b);
+}
diff --git a/test/tint/expressions/binary/mul/mat4x2-mat2x4/f32.wgsl.expected.ir.glsl b/test/tint/expressions/binary/mul/mat4x2-mat2x4/f32.wgsl.expected.ir.glsl
index ae9b6d0..c5eee0f 100644
--- a/test/tint/expressions/binary/mul/mat4x2-mat2x4/f32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/mul/mat4x2-mat2x4/f32.wgsl.expected.ir.glsl
@@ -1,11 +1,8 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ mat4x2 a = mat4x2(vec2(-1.0f, -2.0f), vec2(-3.0f, -4.0f), vec2(-5.0f, -6.0f), vec2(-7.0f, -8.0f));
+ mat2x4 b = mat2x4(vec4(1.0f, 2.0f, 3.0f, 4.0f), vec4(5.0f, 6.0f, 7.0f, 8.0f));
+ mat2 r = (a * b);
+}
diff --git a/test/tint/expressions/binary/mul/scalar-scalar/f16.wgsl.expected.ir.glsl b/test/tint/expressions/binary/mul/scalar-scalar/f16.wgsl.expected.ir.glsl
index ae9b6d0..8c1b578 100644
--- a/test/tint/expressions/binary/mul/scalar-scalar/f16.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/mul/scalar-scalar/f16.wgsl.expected.ir.glsl
@@ -1,11 +1,9 @@
-SKIP: FAILED
+#version 310 es
+#extension GL_AMD_gpu_shader_half_float: require
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ float16_t a = 1.0hf;
+ float16_t b = 2.0hf;
+ float16_t r = (a * b);
+}
diff --git a/test/tint/expressions/binary/mul/scalar-scalar/f32.wgsl.expected.ir.glsl b/test/tint/expressions/binary/mul/scalar-scalar/f32.wgsl.expected.ir.glsl
index ae9b6d0..112985c 100644
--- a/test/tint/expressions/binary/mul/scalar-scalar/f32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/mul/scalar-scalar/f32.wgsl.expected.ir.glsl
@@ -1,11 +1,8 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ float a = 1.0f;
+ float b = 2.0f;
+ float r = (a * b);
+}
diff --git a/test/tint/expressions/binary/mul/scalar-scalar/i32.wgsl.expected.ir.glsl b/test/tint/expressions/binary/mul/scalar-scalar/i32.wgsl.expected.ir.glsl
index ae9b6d0..d84a345 100644
--- a/test/tint/expressions/binary/mul/scalar-scalar/i32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/mul/scalar-scalar/i32.wgsl.expected.ir.glsl
@@ -1,11 +1,8 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ int a = 1;
+ int b = 2;
+ int r = (a * b);
+}
diff --git a/test/tint/expressions/binary/mul/scalar-scalar/u32.wgsl.expected.ir.glsl b/test/tint/expressions/binary/mul/scalar-scalar/u32.wgsl.expected.ir.glsl
index ae9b6d0..f30e1a1 100644
--- a/test/tint/expressions/binary/mul/scalar-scalar/u32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/mul/scalar-scalar/u32.wgsl.expected.ir.glsl
@@ -1,11 +1,8 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ uint a = 1u;
+ uint b = 2u;
+ uint r = (a * b);
+}
diff --git a/test/tint/expressions/binary/mul/scalar-vec3/f16.wgsl.expected.ir.glsl b/test/tint/expressions/binary/mul/scalar-vec3/f16.wgsl.expected.ir.glsl
index ae9b6d0..aa63b16 100644
--- a/test/tint/expressions/binary/mul/scalar-vec3/f16.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/mul/scalar-vec3/f16.wgsl.expected.ir.glsl
@@ -1,11 +1,9 @@
-SKIP: FAILED
+#version 310 es
+#extension GL_AMD_gpu_shader_half_float: require
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ float16_t a = 4.0hf;
+ f16vec3 b = f16vec3(1.0hf, 2.0hf, 3.0hf);
+ f16vec3 r = (a * b);
+}
diff --git a/test/tint/expressions/binary/mul/scalar-vec3/f32.wgsl.expected.ir.glsl b/test/tint/expressions/binary/mul/scalar-vec3/f32.wgsl.expected.ir.glsl
index ae9b6d0..e82bc5d 100644
--- a/test/tint/expressions/binary/mul/scalar-vec3/f32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/mul/scalar-vec3/f32.wgsl.expected.ir.glsl
@@ -1,11 +1,8 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ float a = 4.0f;
+ vec3 b = vec3(1.0f, 2.0f, 3.0f);
+ vec3 r = (a * b);
+}
diff --git a/test/tint/expressions/binary/mul/scalar-vec3/i32.wgsl.expected.ir.glsl b/test/tint/expressions/binary/mul/scalar-vec3/i32.wgsl.expected.ir.glsl
index ae9b6d0..e561784 100644
--- a/test/tint/expressions/binary/mul/scalar-vec3/i32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/mul/scalar-vec3/i32.wgsl.expected.ir.glsl
@@ -1,11 +1,8 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ int a = 4;
+ ivec3 b = ivec3(1, 2, 3);
+ ivec3 r = (a * b);
+}
diff --git a/test/tint/expressions/binary/mul/scalar-vec3/u32.wgsl.expected.ir.glsl b/test/tint/expressions/binary/mul/scalar-vec3/u32.wgsl.expected.ir.glsl
index ae9b6d0..308c263 100644
--- a/test/tint/expressions/binary/mul/scalar-vec3/u32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/mul/scalar-vec3/u32.wgsl.expected.ir.glsl
@@ -1,11 +1,8 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ uint a = 4u;
+ uvec3 b = uvec3(1u, 2u, 3u);
+ uvec3 r = (a * b);
+}
diff --git a/test/tint/expressions/binary/mul/vec3-scalar/f16.wgsl.expected.ir.glsl b/test/tint/expressions/binary/mul/vec3-scalar/f16.wgsl.expected.ir.glsl
index ae9b6d0..411f6cf 100644
--- a/test/tint/expressions/binary/mul/vec3-scalar/f16.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/mul/vec3-scalar/f16.wgsl.expected.ir.glsl
@@ -1,11 +1,9 @@
-SKIP: FAILED
+#version 310 es
+#extension GL_AMD_gpu_shader_half_float: require
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ f16vec3 a = f16vec3(1.0hf, 2.0hf, 3.0hf);
+ float16_t b = 4.0hf;
+ f16vec3 r = (a * b);
+}
diff --git a/test/tint/expressions/binary/mul/vec3-scalar/f32.wgsl.expected.ir.glsl b/test/tint/expressions/binary/mul/vec3-scalar/f32.wgsl.expected.ir.glsl
index ae9b6d0..06952ea 100644
--- a/test/tint/expressions/binary/mul/vec3-scalar/f32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/mul/vec3-scalar/f32.wgsl.expected.ir.glsl
@@ -1,11 +1,8 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ vec3 a = vec3(1.0f, 2.0f, 3.0f);
+ float b = 4.0f;
+ vec3 r = (a * b);
+}
diff --git a/test/tint/expressions/binary/mul/vec3-scalar/i32.wgsl.expected.ir.glsl b/test/tint/expressions/binary/mul/vec3-scalar/i32.wgsl.expected.ir.glsl
index ae9b6d0..403e496 100644
--- a/test/tint/expressions/binary/mul/vec3-scalar/i32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/mul/vec3-scalar/i32.wgsl.expected.ir.glsl
@@ -1,11 +1,8 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ ivec3 a = ivec3(1, 2, 3);
+ int b = 4;
+ ivec3 r = (a * b);
+}
diff --git a/test/tint/expressions/binary/mul/vec3-scalar/u32.wgsl.expected.ir.glsl b/test/tint/expressions/binary/mul/vec3-scalar/u32.wgsl.expected.ir.glsl
index ae9b6d0..bd48971 100644
--- a/test/tint/expressions/binary/mul/vec3-scalar/u32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/mul/vec3-scalar/u32.wgsl.expected.ir.glsl
@@ -1,11 +1,8 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ uvec3 a = uvec3(1u, 2u, 3u);
+ uint b = 4u;
+ uvec3 r = (a * b);
+}
diff --git a/test/tint/expressions/binary/mul/vec3-vec3/f16.wgsl.expected.ir.glsl b/test/tint/expressions/binary/mul/vec3-vec3/f16.wgsl.expected.ir.glsl
index ae9b6d0..c46aba4 100644
--- a/test/tint/expressions/binary/mul/vec3-vec3/f16.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/mul/vec3-vec3/f16.wgsl.expected.ir.glsl
@@ -1,11 +1,9 @@
-SKIP: FAILED
+#version 310 es
+#extension GL_AMD_gpu_shader_half_float: require
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ f16vec3 a = f16vec3(1.0hf, 2.0hf, 3.0hf);
+ f16vec3 b = f16vec3(4.0hf, 5.0hf, 6.0hf);
+ f16vec3 r = (a * b);
+}
diff --git a/test/tint/expressions/binary/mul/vec3-vec3/f32.wgsl.expected.ir.glsl b/test/tint/expressions/binary/mul/vec3-vec3/f32.wgsl.expected.ir.glsl
index ae9b6d0..43eb5c8 100644
--- a/test/tint/expressions/binary/mul/vec3-vec3/f32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/mul/vec3-vec3/f32.wgsl.expected.ir.glsl
@@ -1,11 +1,8 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ vec3 a = vec3(1.0f, 2.0f, 3.0f);
+ vec3 b = vec3(4.0f, 5.0f, 6.0f);
+ vec3 r = (a * b);
+}
diff --git a/test/tint/expressions/binary/mul/vec3-vec3/i32.wgsl.expected.ir.glsl b/test/tint/expressions/binary/mul/vec3-vec3/i32.wgsl.expected.ir.glsl
index ae9b6d0..f65b0c2 100644
--- a/test/tint/expressions/binary/mul/vec3-vec3/i32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/mul/vec3-vec3/i32.wgsl.expected.ir.glsl
@@ -1,11 +1,8 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ ivec3 a = ivec3(1, 2, 3);
+ ivec3 b = ivec3(4, 5, 6);
+ ivec3 r = (a * b);
+}
diff --git a/test/tint/expressions/binary/mul/vec3-vec3/u32.wgsl.expected.ir.glsl b/test/tint/expressions/binary/mul/vec3-vec3/u32.wgsl.expected.ir.glsl
index ae9b6d0..a833f3c 100644
--- a/test/tint/expressions/binary/mul/vec3-vec3/u32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/mul/vec3-vec3/u32.wgsl.expected.ir.glsl
@@ -1,11 +1,8 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ uvec3 a = uvec3(1u, 2u, 3u);
+ uvec3 b = uvec3(4u, 5u, 6u);
+ uvec3 r = (a * b);
+}
diff --git a/test/tint/expressions/binary/right-shift/scalar-scalar/i32.wgsl.expected.ir.glsl b/test/tint/expressions/binary/right-shift/scalar-scalar/i32.wgsl.expected.ir.glsl
index ae9b6d0..d2b1a4f 100644
--- a/test/tint/expressions/binary/right-shift/scalar-scalar/i32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/right-shift/scalar-scalar/i32.wgsl.expected.ir.glsl
@@ -1,11 +1,8 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ int a = 1;
+ uint b = 2u;
+ int r = (a >> (b & 31u));
+}
diff --git a/test/tint/expressions/binary/right-shift/scalar-scalar/u32.wgsl.expected.ir.glsl b/test/tint/expressions/binary/right-shift/scalar-scalar/u32.wgsl.expected.ir.glsl
index ae9b6d0..0358d7f 100644
--- a/test/tint/expressions/binary/right-shift/scalar-scalar/u32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/right-shift/scalar-scalar/u32.wgsl.expected.ir.glsl
@@ -1,11 +1,8 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ uint a = 1u;
+ uint b = 2u;
+ uint r = (a >> (b & 31u));
+}
diff --git a/test/tint/expressions/binary/right-shift/vector-vector/i32.wgsl.expected.ir.glsl b/test/tint/expressions/binary/right-shift/vector-vector/i32.wgsl.expected.ir.glsl
index ae9b6d0..4155a13 100644
--- a/test/tint/expressions/binary/right-shift/vector-vector/i32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/right-shift/vector-vector/i32.wgsl.expected.ir.glsl
@@ -1,11 +1,8 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ ivec3 a = ivec3(1, 2, 3);
+ uvec3 b = uvec3(4u, 5u, 6u);
+ ivec3 r = (a >> (b & uvec3(31u)));
+}
diff --git a/test/tint/expressions/binary/right-shift/vector-vector/u32.wgsl.expected.ir.glsl b/test/tint/expressions/binary/right-shift/vector-vector/u32.wgsl.expected.ir.glsl
index ae9b6d0..7272f53 100644
--- a/test/tint/expressions/binary/right-shift/vector-vector/u32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/right-shift/vector-vector/u32.wgsl.expected.ir.glsl
@@ -1,11 +1,8 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ uvec3 a = uvec3(1u, 2u, 3u);
+ uvec3 b = uvec3(4u, 5u, 6u);
+ uvec3 r = (a >> (b & uvec3(31u)));
+}
diff --git a/test/tint/expressions/binary/sub/mat3x3-mat3x3/f16.wgsl.expected.ir.glsl b/test/tint/expressions/binary/sub/mat3x3-mat3x3/f16.wgsl.expected.ir.glsl
index ae9b6d0..007d5f8 100644
--- a/test/tint/expressions/binary/sub/mat3x3-mat3x3/f16.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/sub/mat3x3-mat3x3/f16.wgsl.expected.ir.glsl
@@ -1,11 +1,9 @@
-SKIP: FAILED
+#version 310 es
+#extension GL_AMD_gpu_shader_half_float: require
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ f16mat3 a = f16mat3(f16vec3(1.0hf, 2.0hf, 3.0hf), f16vec3(4.0hf, 5.0hf, 6.0hf), f16vec3(7.0hf, 8.0hf, 9.0hf));
+ f16mat3 b = f16mat3(f16vec3(-1.0hf, -2.0hf, -3.0hf), f16vec3(-4.0hf, -5.0hf, -6.0hf), f16vec3(-7.0hf, -8.0hf, -9.0hf));
+ f16mat3 r = (a - b);
+}
diff --git a/test/tint/expressions/binary/sub/mat3x3-mat3x3/f32.wgsl.expected.ir.glsl b/test/tint/expressions/binary/sub/mat3x3-mat3x3/f32.wgsl.expected.ir.glsl
index ae9b6d0..2fcc332 100644
--- a/test/tint/expressions/binary/sub/mat3x3-mat3x3/f32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/sub/mat3x3-mat3x3/f32.wgsl.expected.ir.glsl
@@ -1,11 +1,8 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ mat3 a = mat3(vec3(1.0f, 2.0f, 3.0f), vec3(4.0f, 5.0f, 6.0f), vec3(7.0f, 8.0f, 9.0f));
+ mat3 b = mat3(vec3(-1.0f, -2.0f, -3.0f), vec3(-4.0f, -5.0f, -6.0f), vec3(-7.0f, -8.0f, -9.0f));
+ mat3 r = (a - b);
+}
diff --git a/test/tint/expressions/binary/sub/scalar-scalar/f16.wgsl.expected.ir.glsl b/test/tint/expressions/binary/sub/scalar-scalar/f16.wgsl.expected.ir.glsl
index ae9b6d0..6672019 100644
--- a/test/tint/expressions/binary/sub/scalar-scalar/f16.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/sub/scalar-scalar/f16.wgsl.expected.ir.glsl
@@ -1,11 +1,9 @@
-SKIP: FAILED
+#version 310 es
+#extension GL_AMD_gpu_shader_half_float: require
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ float16_t a = 1.0hf;
+ float16_t b = 2.0hf;
+ float16_t r = (a - b);
+}
diff --git a/test/tint/expressions/binary/sub/scalar-scalar/f32.wgsl.expected.ir.glsl b/test/tint/expressions/binary/sub/scalar-scalar/f32.wgsl.expected.ir.glsl
index ae9b6d0..9f4e23a 100644
--- a/test/tint/expressions/binary/sub/scalar-scalar/f32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/sub/scalar-scalar/f32.wgsl.expected.ir.glsl
@@ -1,11 +1,8 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ float a = 1.0f;
+ float b = 2.0f;
+ float r = (a - b);
+}
diff --git a/test/tint/expressions/binary/sub/scalar-scalar/i32.wgsl.expected.ir.glsl b/test/tint/expressions/binary/sub/scalar-scalar/i32.wgsl.expected.ir.glsl
index ae9b6d0..4c5edfa 100644
--- a/test/tint/expressions/binary/sub/scalar-scalar/i32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/sub/scalar-scalar/i32.wgsl.expected.ir.glsl
@@ -1,11 +1,8 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ int a = 1;
+ int b = 2;
+ int r = (a - b);
+}
diff --git a/test/tint/expressions/binary/sub/scalar-scalar/u32.wgsl.expected.ir.glsl b/test/tint/expressions/binary/sub/scalar-scalar/u32.wgsl.expected.ir.glsl
index ae9b6d0..701cd0e 100644
--- a/test/tint/expressions/binary/sub/scalar-scalar/u32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/sub/scalar-scalar/u32.wgsl.expected.ir.glsl
@@ -1,11 +1,8 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ uint a = 1u;
+ uint b = 2u;
+ uint r = (a - b);
+}
diff --git a/test/tint/expressions/binary/sub/scalar-vec3/f16.wgsl.expected.ir.glsl b/test/tint/expressions/binary/sub/scalar-vec3/f16.wgsl.expected.ir.glsl
index ae9b6d0..96a3d58 100644
--- a/test/tint/expressions/binary/sub/scalar-vec3/f16.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/sub/scalar-vec3/f16.wgsl.expected.ir.glsl
@@ -1,11 +1,9 @@
-SKIP: FAILED
+#version 310 es
+#extension GL_AMD_gpu_shader_half_float: require
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ float16_t a = 4.0hf;
+ f16vec3 b = f16vec3(1.0hf, 2.0hf, 3.0hf);
+ f16vec3 r = (a - b);
+}
diff --git a/test/tint/expressions/binary/sub/scalar-vec3/f32.wgsl.expected.ir.glsl b/test/tint/expressions/binary/sub/scalar-vec3/f32.wgsl.expected.ir.glsl
index ae9b6d0..d35e34f 100644
--- a/test/tint/expressions/binary/sub/scalar-vec3/f32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/sub/scalar-vec3/f32.wgsl.expected.ir.glsl
@@ -1,11 +1,8 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ float a = 4.0f;
+ vec3 b = vec3(1.0f, 2.0f, 3.0f);
+ vec3 r = (a - b);
+}
diff --git a/test/tint/expressions/binary/sub/scalar-vec3/i32.wgsl.expected.ir.glsl b/test/tint/expressions/binary/sub/scalar-vec3/i32.wgsl.expected.ir.glsl
index ae9b6d0..0f9b198 100644
--- a/test/tint/expressions/binary/sub/scalar-vec3/i32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/sub/scalar-vec3/i32.wgsl.expected.ir.glsl
@@ -1,11 +1,8 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ int a = 4;
+ ivec3 b = ivec3(1, 2, 3);
+ ivec3 r = (a - b);
+}
diff --git a/test/tint/expressions/binary/sub/scalar-vec3/u32.wgsl.expected.ir.glsl b/test/tint/expressions/binary/sub/scalar-vec3/u32.wgsl.expected.ir.glsl
index ae9b6d0..95adb32 100644
--- a/test/tint/expressions/binary/sub/scalar-vec3/u32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/sub/scalar-vec3/u32.wgsl.expected.ir.glsl
@@ -1,11 +1,8 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ uint a = 4u;
+ uvec3 b = uvec3(1u, 2u, 3u);
+ uvec3 r = (a - b);
+}
diff --git a/test/tint/expressions/binary/sub/vec3-scalar/f16.wgsl.expected.ir.glsl b/test/tint/expressions/binary/sub/vec3-scalar/f16.wgsl.expected.ir.glsl
index ae9b6d0..a898520 100644
--- a/test/tint/expressions/binary/sub/vec3-scalar/f16.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/sub/vec3-scalar/f16.wgsl.expected.ir.glsl
@@ -1,11 +1,9 @@
-SKIP: FAILED
+#version 310 es
+#extension GL_AMD_gpu_shader_half_float: require
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ f16vec3 a = f16vec3(1.0hf, 2.0hf, 3.0hf);
+ float16_t b = 4.0hf;
+ f16vec3 r = (a - b);
+}
diff --git a/test/tint/expressions/binary/sub/vec3-scalar/f32.wgsl.expected.ir.glsl b/test/tint/expressions/binary/sub/vec3-scalar/f32.wgsl.expected.ir.glsl
index ae9b6d0..9008a3d 100644
--- a/test/tint/expressions/binary/sub/vec3-scalar/f32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/sub/vec3-scalar/f32.wgsl.expected.ir.glsl
@@ -1,11 +1,8 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ vec3 a = vec3(1.0f, 2.0f, 3.0f);
+ float b = 4.0f;
+ vec3 r = (a - b);
+}
diff --git a/test/tint/expressions/binary/sub/vec3-scalar/i32.wgsl.expected.ir.glsl b/test/tint/expressions/binary/sub/vec3-scalar/i32.wgsl.expected.ir.glsl
index ae9b6d0..278fe3f 100644
--- a/test/tint/expressions/binary/sub/vec3-scalar/i32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/sub/vec3-scalar/i32.wgsl.expected.ir.glsl
@@ -1,11 +1,8 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ ivec3 a = ivec3(1, 2, 3);
+ int b = 4;
+ ivec3 r = (a - b);
+}
diff --git a/test/tint/expressions/binary/sub/vec3-scalar/u32.wgsl.expected.ir.glsl b/test/tint/expressions/binary/sub/vec3-scalar/u32.wgsl.expected.ir.glsl
index ae9b6d0..e514171 100644
--- a/test/tint/expressions/binary/sub/vec3-scalar/u32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/sub/vec3-scalar/u32.wgsl.expected.ir.glsl
@@ -1,11 +1,8 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ uvec3 a = uvec3(1u, 2u, 3u);
+ uint b = 4u;
+ uvec3 r = (a - b);
+}
diff --git a/test/tint/expressions/binary/sub/vec3-vec3/f16.wgsl.expected.ir.glsl b/test/tint/expressions/binary/sub/vec3-vec3/f16.wgsl.expected.ir.glsl
index ae9b6d0..708e526 100644
--- a/test/tint/expressions/binary/sub/vec3-vec3/f16.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/sub/vec3-vec3/f16.wgsl.expected.ir.glsl
@@ -1,11 +1,9 @@
-SKIP: FAILED
+#version 310 es
+#extension GL_AMD_gpu_shader_half_float: require
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ f16vec3 a = f16vec3(1.0hf, 2.0hf, 3.0hf);
+ f16vec3 b = f16vec3(4.0hf, 5.0hf, 6.0hf);
+ f16vec3 r = (a - b);
+}
diff --git a/test/tint/expressions/binary/sub/vec3-vec3/f32.wgsl.expected.ir.glsl b/test/tint/expressions/binary/sub/vec3-vec3/f32.wgsl.expected.ir.glsl
index ae9b6d0..399b8f9 100644
--- a/test/tint/expressions/binary/sub/vec3-vec3/f32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/sub/vec3-vec3/f32.wgsl.expected.ir.glsl
@@ -1,11 +1,8 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ vec3 a = vec3(1.0f, 2.0f, 3.0f);
+ vec3 b = vec3(4.0f, 5.0f, 6.0f);
+ vec3 r = (a - b);
+}
diff --git a/test/tint/expressions/binary/sub/vec3-vec3/i32.wgsl.expected.ir.glsl b/test/tint/expressions/binary/sub/vec3-vec3/i32.wgsl.expected.ir.glsl
index ae9b6d0..06c418a 100644
--- a/test/tint/expressions/binary/sub/vec3-vec3/i32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/sub/vec3-vec3/i32.wgsl.expected.ir.glsl
@@ -1,11 +1,8 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ ivec3 a = ivec3(1, 2, 3);
+ ivec3 b = ivec3(4, 5, 6);
+ ivec3 r = (a - b);
+}
diff --git a/test/tint/expressions/binary/sub/vec3-vec3/u32.wgsl.expected.ir.glsl b/test/tint/expressions/binary/sub/vec3-vec3/u32.wgsl.expected.ir.glsl
index ae9b6d0..d748ed0 100644
--- a/test/tint/expressions/binary/sub/vec3-vec3/u32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/binary/sub/vec3-vec3/u32.wgsl.expected.ir.glsl
@@ -1,11 +1,8 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ uvec3 a = uvec3(1u, 2u, 3u);
+ uvec3 b = uvec3(4u, 5u, 6u);
+ uvec3 r = (a - b);
+}
diff --git a/test/tint/statements/assign/phony/call.wgsl.expected.ir.glsl b/test/tint/statements/assign/phony/call.wgsl.expected.ir.glsl
index ae9b6d0..20f7498 100644
--- a/test/tint/statements/assign/phony/call.wgsl.expected.ir.glsl
+++ b/test/tint/statements/assign/phony/call.wgsl.expected.ir.glsl
@@ -1,11 +1,9 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+int f(int a, int b, int c) {
+ return ((a * b) + c);
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ f(1, 2, 3);
+}
diff --git a/test/tint/statements/assign/phony/multiple_side_effects.wgsl.expected.ir.glsl b/test/tint/statements/assign/phony/multiple_side_effects.wgsl.expected.ir.glsl
index ae9b6d0..0881599 100644
--- a/test/tint/statements/assign/phony/multiple_side_effects.wgsl.expected.ir.glsl
+++ b/test/tint/statements/assign/phony/multiple_side_effects.wgsl.expected.ir.glsl
@@ -1,11 +1,10 @@
-SKIP: FAILED
+#version 310 es
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
+int f(int a, int b, int c) {
+ return ((a * b) + c);
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ int v = f(1, 2, 3);
+ int v_1 = f(4, 5, 6);
+}
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_EmitStatement_CallWithParams.spvasm.expected.ir.glsl b/test/tint/unittest/reader/spirv/SpvParserTest_EmitStatement_CallWithParams.spvasm.expected.ir.glsl
deleted file mode 100644
index ae9b6d0..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_EmitStatement_CallWithParams.spvasm.expected.ir.glsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBinary
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_GlslStd450_FaceForward_Vector.spvasm.expected.ir.glsl b/test/tint/unittest/reader/spirv/SpvParserTest_GlslStd450_FaceForward_Vector.spvasm.expected.ir.glsl
deleted file mode 100644
index b02d7ef..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_GlslStd450_FaceForward_Vector.spvasm.expected.ir.glsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Let
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_GlslStd450_Reflect_Scalar.spvasm.expected.ir.glsl b/test/tint/unittest/reader/spirv/SpvParserTest_GlslStd450_Reflect_Scalar.spvasm.expected.ir.glsl
deleted file mode 100644
index b02d7ef..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_GlslStd450_Reflect_Scalar.spvasm.expected.ir.glsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Let
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_GlslStd450_Reflect_Vector.spvasm.expected.ir.glsl b/test/tint/unittest/reader/spirv/SpvParserTest_GlslStd450_Reflect_Vector.spvasm.expected.ir.glsl
deleted file mode 100644
index b02d7ef..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_GlslStd450_Reflect_Vector.spvasm.expected.ir.glsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:482 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Let
-********************************************************************
-* The tint shader compiler has encountered an unexpected 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: illegal instruction