[glsl][ir] Emit `Access` This Cl adds `Access` support to the GLSL IR backend. Bug: 42251044 Change-Id: Ic449a62f25c4eb249a2e4e5fdbd5029e26c14890 Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/204535 Commit-Queue: dan sinclair <dsinclair@chromium.org> Reviewed-by: James Price <jrprice@google.com>
diff --git a/src/tint/lang/glsl/writer/BUILD.bazel b/src/tint/lang/glsl/writer/BUILD.bazel index e4b6e12..d7ff06c 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 = [ + "access_test.cc", "binary_test.cc", "builtin_test.cc", "call_test.cc",
diff --git a/src/tint/lang/glsl/writer/BUILD.cmake b/src/tint/lang/glsl/writer/BUILD.cmake index 27920ed..0fa971e 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/access_test.cc lang/glsl/writer/binary_test.cc lang/glsl/writer/builtin_test.cc lang/glsl/writer/call_test.cc
diff --git a/src/tint/lang/glsl/writer/BUILD.gn b/src/tint/lang/glsl/writer/BUILD.gn index 0c6361d..8b79010 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 = [ + "access_test.cc", "binary_test.cc", "builtin_test.cc", "call_test.cc",
diff --git a/src/tint/lang/glsl/writer/access_test.cc b/src/tint/lang/glsl/writer/access_test.cc new file mode 100644 index 0000000..3a9b429 --- /dev/null +++ b/src/tint/lang/glsl/writer/access_test.cc
@@ -0,0 +1,1687 @@ +// Copyright 2024 The Dawn & Tint Authors +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are met: +// +// 1. Redistributions of source code must retain the above copyright notice, this +// list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// 3. Neither the name of the copyright holder nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +#include "src/tint/lang/glsl/writer/helper_test.h" + +#include "gmock/gmock.h" + +using namespace tint::core::number_suffixes; // NOLINT +using namespace tint::core::fluent_types; // NOLINT + +namespace tint::glsl::writer { +namespace { + +TEST_F(GlslWriterTest, AccessArray) { + auto* func = b.Function("a", ty.void_(), core::ir::Function::PipelineStage::kCompute); + func->SetWorkgroupSize(1, 1, 1); + + b.Append(func->Block(), [&] { + auto* v = b.Var("v", b.Zero<array<f32, 3>>()); + b.Let("x", b.Load(b.Access(ty.ptr<function, f32>(), v, 1_u))); + 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() { + float v[3] = float[3](0.0f, 0.0f, 0.0f); + float x = v[1u]; +} +)"); +} + +TEST_F(GlslWriterTest, AccessStruct) { + Vector members{ + ty.Get<core::type::StructMember>(b.ir.symbols.New("a"), ty.i32(), 0u, 0u, 4u, 4u, + core::IOAttributes{}), + ty.Get<core::type::StructMember>(b.ir.symbols.New("b"), ty.f32(), 1u, 4u, 4u, 4u, + core::IOAttributes{}), + }; + auto* strct = ty.Struct(b.ir.symbols.New("S"), std::move(members)); + + auto* f = b.Function("a", ty.void_(), core::ir::Function::PipelineStage::kCompute); + f->SetWorkgroupSize(1, 1, 1); + + b.Append(f->Block(), [&] { + auto* v = b.Var("v", b.Zero(strct)); + b.Let("x", b.Load(b.Access(ty.ptr<function, f32>(), v, 1_u))); + b.Return(f); + }); + + ASSERT_TRUE(Generate()) << err_ << output_.glsl; + EXPECT_EQ(output_.glsl, GlslHeader() + R"( +struct S { + int a; + float b; +}; + +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + S v = S(0, 0.0f); + float x = v.b; +} +)"); +} + +// TODO(dsinclair): Support LoadVectorElement +TEST_F(GlslWriterTest, DISABLED_AccessVector) { + auto* func = b.Function("a", ty.void_(), core::ir::Function::PipelineStage::kCompute); + func->SetWorkgroupSize(1, 1, 1); + + b.Append(func->Block(), [&] { + auto* v = b.Var("v", b.Zero<vec3<f32>>()); + b.Let("x", b.LoadVectorElement(v, 1_u)); + b.Return(func); + }); + + ASSERT_TRUE(Generate()) << err_ << output_.glsl; + EXPECT_EQ(output_.glsl, GlslHeader() + R"( + +)"); +} + +// TODO(dsinclair): Support LoadVectorElement +TEST_F(GlslWriterTest, DISABLED_AccessMatrix) { + auto* func = b.Function("a", ty.void_(), core::ir::Function::PipelineStage::kCompute); + func->SetWorkgroupSize(1, 1, 1); + + b.Append(func->Block(), [&] { + auto* v = b.Var("v", b.Zero<mat4x4<f32>>()); + auto* v1 = b.Access(ty.ptr<function, vec4<f32>>(), v, 1_u); + b.Let("x", b.LoadVectorElement(v1, 2_u)); + b.Return(func); + }); + + ASSERT_TRUE(Generate()) << err_ << output_.glsl; + EXPECT_EQ(output_.glsl, GlslHeader() + R"( + +)"); +} + +// TODO(dsinclair): Support StoreVectorElement +TEST_F(GlslWriterTest, DISABLED_AccessStoreVectorElementConstantIndex) { + auto* func = b.Function("foo", ty.void_()); + b.Append(func->Block(), [&] { + auto* vec_var = b.Var("vec", ty.ptr<function, vec4<i32>>()); + b.StoreVectorElement(vec_var, 1_u, b.Constant(42_i)); + b.Return(func); + }); + + ASSERT_TRUE(Generate()) << err_ << output_.glsl; + EXPECT_EQ(output_.glsl, GlslHeader() + R"( + +)"); +} + +// TODO(dsinclair): Support StoreVectorElement +TEST_F(GlslWriterTest, DISABLED_AccessStoreVectorElementDynamicIndex) { + auto* idx = b.FunctionParam("idx", ty.i32()); + auto* func = b.Function("foo", ty.void_()); + func->SetParams({idx}); + b.Append(func->Block(), [&] { + auto* vec_var = b.Var("vec", ty.ptr<function, vec4<i32>>()); + b.StoreVectorElement(vec_var, idx, b.Constant(42_i)); + b.Return(func); + }); + + ASSERT_TRUE(Generate()) << err_ << output_.glsl; + EXPECT_EQ(output_.glsl, GlslHeader() + R"( + +)"); +} + +TEST_F(GlslWriterTest, AccessNested) { + Vector members_a{ + ty.Get<core::type::StructMember>(b.ir.symbols.New("d"), ty.i32(), 0u, 0u, 4u, 4u, + core::IOAttributes{}), + ty.Get<core::type::StructMember>(b.ir.symbols.New("e"), ty.array<f32, 3>(), 1u, 4u, 4u, 4u, + core::IOAttributes{}), + }; + auto* a_strct = ty.Struct(b.ir.symbols.New("A"), std::move(members_a)); + + Vector members_s{ + ty.Get<core::type::StructMember>(b.ir.symbols.New("a"), ty.i32(), 0u, 0u, 4u, 4u, + core::IOAttributes{}), + ty.Get<core::type::StructMember>(b.ir.symbols.New("b"), ty.f32(), 1u, 4u, 4u, 4u, + core::IOAttributes{}), + ty.Get<core::type::StructMember>(b.ir.symbols.New("c"), a_strct, 2u, 8u, 8u, 8u, + core::IOAttributes{}), + }; + auto* s_strct = ty.Struct(b.ir.symbols.New("S"), std::move(members_s)); + + auto* f = b.Function("a", ty.void_(), core::ir::Function::PipelineStage::kCompute); + f->SetWorkgroupSize(1, 1, 1); + + b.Append(f->Block(), [&] { + auto* v = b.Var("v", b.Zero(s_strct)); + b.Let("x", b.Load(b.Access(ty.ptr<function, f32>(), v, 2_u, 1_u, 1_i))); + b.Return(f); + }); + + ASSERT_TRUE(Generate()) << err_ << output_.glsl; + EXPECT_EQ(output_.glsl, GlslHeader() + R"( +struct A { + int d; + float e[3]; +}; + +struct S { + int a; + float b; + A c; +}; + +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + S v = S(0, 0.0f, A(0, float[3](0.0f, 0.0f, 0.0f))); + float x = v.c.e[1u]; +} +)"); +} + +// TODO(dsinclair): Support swizzle +TEST_F(GlslWriterTest, DISABLED_AccessSwizzle) { + auto* f = b.Function("a", ty.void_(), core::ir::Function::PipelineStage::kCompute); + f->SetWorkgroupSize(1, 1, 1); + + b.Append(f->Block(), [&] { + auto* v = b.Var("v", b.Zero<vec3<f32>>()); + b.Let("b", b.Swizzle(ty.f32(), v, {1u})); + b.Return(f); + }); + + ASSERT_TRUE(Generate()) << err_ << output_.glsl; + EXPECT_EQ(output_.glsl, GlslHeader() + R"( + +)"); +} + +// TODO(dsinclair): Support swizzle +TEST_F(GlslWriterTest, DISABLED_AccessSwizzleMulti) { + auto* f = b.Function("a", ty.void_(), core::ir::Function::PipelineStage::kCompute); + f->SetWorkgroupSize(1, 1, 1); + + b.Append(f->Block(), [&] { + auto* v = b.Var("v", b.Zero<vec4<f32>>()); + b.Let("b", b.Swizzle(ty.vec4<f32>(), v, {3u, 2u, 1u, 0u})); + b.Return(f); + }); + + ASSERT_TRUE(Generate()) << err_ << output_.glsl; + EXPECT_EQ(output_.glsl, GlslHeader() + R"( + +)"); +} + +// TODO(dsinclair): Support LoadVectorElement +TEST_F(GlslWriterTest, DISABLED_AccessStorageVector) { + auto* var = b.Var<storage, vec4<f32>, core::Access::kRead>("v"); + var->SetBindingPoint(0, 0); + + b.ir.root_block->Append(var); + auto* func = b.Function("foo", ty.void_(), core::ir::Function::PipelineStage::kFragment); + b.Append(func->Block(), [&] { + b.Let("a", b.Load(var)); + b.Let("b", b.LoadVectorElement(var, 0_u)); + b.Let("c", b.LoadVectorElement(var, 1_u)); + b.Let("d", b.LoadVectorElement(var, 2_u)); + b.Let("e", b.LoadVectorElement(var, 3_u)); + b.Return(func); + }); + + ASSERT_TRUE(Generate()) << err_ << output_.glsl; + EXPECT_EQ(output_.glsl, GlslHeader() + R"( + +)"); +} + +// TODO(dsinclair): Support LoadVectorElement +TEST_F(GlslWriterTest, DISABLED_AccessStorageVectorF16) { + auto* var = b.Var<storage, vec4<f16>, core::Access::kRead>("v"); + var->SetBindingPoint(0, 0); + + b.ir.root_block->Append(var); + auto* func = b.Function("foo", ty.void_(), core::ir::Function::PipelineStage::kFragment); + b.Append(func->Block(), [&] { + b.Let("a", b.Load(var)); + b.Let("b", b.LoadVectorElement(var, 0_u)); + b.Let("c", b.LoadVectorElement(var, 1_u)); + b.Let("d", b.LoadVectorElement(var, 2_u)); + b.Let("e", b.LoadVectorElement(var, 3_u)); + b.Return(func); + }); + + ASSERT_TRUE(Generate()) << err_ << output_.glsl; + EXPECT_EQ(output_.glsl, GlslHeader() + R"( + +)"); +} + +// TODO(dsinclair): Support LoadVectorElement +TEST_F(GlslWriterTest, DISABLED_AccessStorageMatrix) { + auto* var = b.Var<storage, mat4x4<f32>, core::Access::kRead>("v"); + var->SetBindingPoint(0, 0); + + b.ir.root_block->Append(var); + auto* func = b.Function("foo", ty.void_(), core::ir::Function::PipelineStage::kFragment); + b.Append(func->Block(), [&] { + b.Let("a", b.Load(var)); + b.Let("b", b.Load(b.Access(ty.ptr<storage, vec4<f32>, core::Access::kRead>(), var, 3_u))); + b.Let("c", b.LoadVectorElement( + b.Access(ty.ptr<storage, vec4<f32>, core::Access::kRead>(), var, 1_u), 2_u)); + b.Return(func); + }); + + ASSERT_TRUE(Generate()) << err_ << output_.glsl; + EXPECT_EQ(output_.glsl, GlslHeader() + R"( + +)"); +} + +// TODO(dsinclair): Needs to create a buffer block +TEST_F(GlslWriterTest, DISABLED_AccessStorageArray) { + auto* var = b.Var<storage, array<vec3<f32>, 5>, core::Access::kRead>("v"); + var->SetBindingPoint(0, 0); + + b.ir.root_block->Append(var); + auto* func = b.Function("foo", ty.void_(), core::ir::Function::PipelineStage::kFragment); + b.Append(func->Block(), [&] { + b.Let("a", b.Load(var)); + b.Let("b", b.Load(b.Access(ty.ptr<storage, vec3<f32>, core::Access::kRead>(), var, 3_u))); + b.Return(func); + }); + + ASSERT_TRUE(Generate()) << err_ << output_.glsl; + EXPECT_EQ(output_.glsl, GlslHeader() + R"(precision highp float; +precision highp int; + +layout(binding = 0, std430) buffer v_block_ssbo { + vec3 inner[5]; +} v; + +void main() { + vec3 a[5] = v.inner; + vec3 b = v.inner[3u]; +} +)"); +} + +TEST_F(GlslWriterTest, AccessStorageStruct) { + auto* SB = ty.Struct(mod.symbols.New("SB"), { + {mod.symbols.New("a"), ty.i32()}, + {mod.symbols.New("b"), ty.f32()}, + }); + + auto* var = b.Var("v", storage, SB, core::Access::kRead); + var->SetBindingPoint(0, 0); + + b.ir.root_block->Append(var); + auto* func = b.Function("foo", ty.void_(), core::ir::Function::PipelineStage::kFragment); + b.Append(func->Block(), [&] { + b.Let("a", b.Load(var)); + b.Let("b", b.Load(b.Access(ty.ptr<storage, f32, core::Access::kRead>(), var, 1_u))); + b.Return(func); + }); + + ASSERT_TRUE(Generate()) << err_ << output_.glsl; + EXPECT_EQ(output_.glsl, GlslHeader() + R"( +struct SB { + int a; + float b; +}; +precision highp float; +precision highp int; + + +SB v; +void main() { + SB a = v; + float b = v.b; +} +)"); +} + +// TODO(dsinclair): Support LoadVectorElement +TEST_F(GlslWriterTest, DISABLED_AccessStorageNested) { + auto* Inner = + ty.Struct(mod.symbols.New("Inner"), { + {mod.symbols.New("s"), ty.mat3x3<f32>()}, + {mod.symbols.New("t"), ty.array<vec3<f32>, 5>()}, + }); + auto* Outer = ty.Struct(mod.symbols.New("Outer"), { + {mod.symbols.New("x"), ty.f32()}, + {mod.symbols.New("y"), Inner}, + }); + + auto* SB = ty.Struct(mod.symbols.New("SB"), { + {mod.symbols.New("a"), ty.i32()}, + {mod.symbols.New("b"), Outer}, + }); + + auto* var = b.Var("v", storage, SB, core::Access::kRead); + var->SetBindingPoint(0, 0); + + b.ir.root_block->Append(var); + auto* func = b.Function("foo", ty.void_(), core::ir::Function::PipelineStage::kFragment); + b.Append(func->Block(), [&] { + b.Let("a", b.Load(var)); + b.Let("b", b.LoadVectorElement(b.Access(ty.ptr<storage, vec3<f32>, core::Access::kRead>(), + var, 1_u, 1_u, 1_u, 3_u), + 2_u)); + b.Return(func); + }); + + ASSERT_TRUE(Generate()) << err_ << output_.glsl; + EXPECT_EQ(output_.glsl, GlslHeader() + R"( + +)"); +} + +// TODO(dsinclair): Support StoreVectorElement +TEST_F(GlslWriterTest, DISABLED_AccessStorageStoreVector) { + auto* var = b.Var<storage, vec4<f32>, core::Access::kReadWrite>("v"); + var->SetBindingPoint(0, 0); + + b.ir.root_block->Append(var); + auto* func = b.Function("foo", ty.void_(), core::ir::Function::PipelineStage::kFragment); + b.Append(func->Block(), [&] { + b.StoreVectorElement(var, 0_u, 2_f); + b.StoreVectorElement(var, 1_u, 4_f); + b.StoreVectorElement(var, 2_u, 8_f); + b.StoreVectorElement(var, 3_u, 16_f); + b.Return(func); + }); + + ASSERT_TRUE(Generate()) << err_ << output_.glsl; + EXPECT_EQ(output_.glsl, GlslHeader() + R"( + +)"); +} + +// TODO(dsinclair): Support LoadVectorElement +TEST_F(GlslWriterTest, DISABLED_AccessDirectVariable) { + auto* var1 = b.Var<storage, vec4<f32>, core::Access::kRead>("v1"); + var1->SetBindingPoint(0, 0); + b.ir.root_block->Append(var1); + + auto* var2 = b.Var<storage, vec4<f32>, core::Access::kRead>("v2"); + var2->SetBindingPoint(0, 1); + b.ir.root_block->Append(var2); + + auto* p = b.FunctionParam("x", ty.ptr<storage, vec4<f32>, core::Access::kRead>()); + auto* bar = b.Function("bar", ty.void_()); + bar->SetParams({p}); + b.Append(bar->Block(), [&] { + b.Let("a", b.LoadVectorElement(p, 1_u)); + b.Return(bar); + }); + + auto* func = b.Function("foo", ty.void_(), core::ir::Function::PipelineStage::kFragment); + b.Append(func->Block(), [&] { + b.Call(bar, var1); + b.Call(bar, var2); + b.Return(func); + }); + + ASSERT_TRUE(Generate()) << err_ << output_.glsl; + EXPECT_EQ(output_.glsl, GlslHeader() + R"( + +)"); +} + +TEST_F(GlslWriterTest, AccessChainFromUnnamedAccessChain) { + auto* Inner = ty.Struct(mod.symbols.New("Inner"), { + {mod.symbols.New("c"), ty.f32()}, + {mod.symbols.New("d"), ty.u32()}, + }); + auto* sb = ty.Struct(mod.symbols.New("SB"), { + {mod.symbols.New("a"), ty.i32()}, + {mod.symbols.New("b"), Inner}, + }); + + auto* var = b.Var("v", storage, sb, core::Access::kReadWrite); + var->SetBindingPoint(0, 0); + b.ir.root_block->Append(var); + + auto* func = b.Function("foo", ty.void_(), core::ir::Function::PipelineStage::kFragment); + b.Append(func->Block(), [&] { + auto* x = b.Access(ty.ptr(storage, sb, core::Access::kReadWrite), var); + auto* y = b.Access(ty.ptr(storage, Inner, core::Access::kReadWrite), x->Result(0), 1_u); + b.Let("b", b.Load(b.Access(ty.ptr(storage, ty.u32(), core::Access::kReadWrite), + y->Result(0), 1_u))); + b.Return(func); + }); + + ASSERT_TRUE(Generate()) << err_ << output_.glsl; + EXPECT_EQ(output_.glsl, GlslHeader() + R"( +struct Inner { + float c; + uint d; +}; + +struct SB { + int a; + Inner b; +}; +precision highp float; +precision highp int; + + +SB v; +void main() { + uint b = v.b.d; +} +)"); +} + +// TODO(dsinclair): Requires let pointer translation +TEST_F(GlslWriterTest, DISABLED_AccessChainFromLetAccessChain) { + auto* Inner = ty.Struct(mod.symbols.New("Inner"), { + {mod.symbols.New("c"), ty.f32()}, + }); + auto* sb = ty.Struct(mod.symbols.New("SB"), { + {mod.symbols.New("a"), ty.i32()}, + {mod.symbols.New("b"), Inner}, + }); + + auto* var = b.Var("v", storage, sb, core::Access::kReadWrite); + var->SetBindingPoint(0, 0); + b.ir.root_block->Append(var); + + auto* func = b.Function("foo", ty.void_(), core::ir::Function::PipelineStage::kFragment); + b.Append(func->Block(), [&] { + auto* x = b.Let("x", var); + auto* y = b.Let( + "y", b.Access(ty.ptr(storage, Inner, core::Access::kReadWrite), x->Result(0), 1_u)); + auto* z = b.Let( + "z", b.Access(ty.ptr(storage, ty.f32(), core::Access::kReadWrite), y->Result(0), 0_u)); + b.Let("a", b.Load(z)); + b.Return(func); + }); + + ASSERT_TRUE(Generate()) << err_ << output_.glsl; + EXPECT_EQ(output_.glsl, GlslHeader() + R"( + +)"); +} + +// TODO(dsinclair): Support arrayLength +TEST_F(GlslWriterTest, DISABLED_AccessComplexDynamicAccessChain) { + auto* S1 = ty.Struct(mod.symbols.New("S1"), { + {mod.symbols.New("a"), ty.i32()}, + {mod.symbols.New("b"), ty.vec3<f32>()}, + {mod.symbols.New("c"), ty.i32()}, + }); + auto* S2 = ty.Struct(mod.symbols.New("S2"), { + {mod.symbols.New("a"), ty.i32()}, + {mod.symbols.New("b"), ty.array(S1, 3)}, + {mod.symbols.New("c"), ty.i32()}, + }); + + auto* SB = ty.Struct(mod.symbols.New("SB"), { + {mod.symbols.New("a"), ty.i32()}, + {mod.symbols.New("b"), ty.runtime_array(S2)}, + }); + + auto* var = b.Var("sb", storage, SB, core::Access::kReadWrite); + var->SetBindingPoint(0, 0); + + b.ir.root_block->Append(var); + auto* func = b.Function("foo", ty.void_(), core::ir::Function::PipelineStage::kFragment); + b.Append(func->Block(), [&] { + auto* i = b.Load(b.Var("i", 4_i)); + auto* j = b.Load(b.Var("j", 1_u)); + auto* k = b.Load(b.Var("k", 2_i)); + // let x : f32 = sb.b[i].b[j].b[k]; + b.Let("x", + b.LoadVectorElement( + b.Access(ty.ptr<storage, vec3<f32>, read_write>(), var, 1_u, i, 1_u, j, 1_u), k)); + b.Return(func); + }); + + ASSERT_TRUE(Generate()) << err_ << output_.glsl; + EXPECT_EQ(output_.glsl, GlslHeader() + R"( + +)"); +} + +// TODO(dsinclair): Support arrayLength +TEST_F(GlslWriterTest, DISABLED_AccessComplexDynamicAccessChainSplit) { + auto* S1 = ty.Struct(mod.symbols.New("S1"), { + {mod.symbols.New("a"), ty.i32()}, + {mod.symbols.New("b"), ty.vec3<f32>()}, + {mod.symbols.New("c"), ty.i32()}, + }); + auto* S2 = ty.Struct(mod.symbols.New("S2"), { + {mod.symbols.New("a"), ty.i32()}, + {mod.symbols.New("b"), ty.array(S1, 3)}, + {mod.symbols.New("c"), ty.i32()}, + }); + + auto* SB = ty.Struct(mod.symbols.New("SB"), { + {mod.symbols.New("a"), ty.i32()}, + {mod.symbols.New("b"), ty.runtime_array(S2)}, + }); + + auto* var = b.Var("sb", storage, SB, core::Access::kReadWrite); + var->SetBindingPoint(0, 0); + + b.ir.root_block->Append(var); + auto* func = b.Function("foo", ty.void_(), core::ir::Function::PipelineStage::kFragment); + b.Append(func->Block(), [&] { + auto* j = b.Load(b.Var("j", 1_u)); + b.Let("x", b.LoadVectorElement(b.Access(ty.ptr<storage, vec3<f32>, read_write>(), var, 1_u, + 4_u, 1_u, j, 1_u), + 2_u)); + b.Return(func); + }); + + ASSERT_TRUE(Generate()) << err_ << output_.glsl; + EXPECT_EQ(output_.glsl, GlslHeader() + R"( + +)"); +} + +TEST_F(GlslWriterTest, AccessUniformChainFromUnnamedAccessChain) { + auto* Inner = ty.Struct(mod.symbols.New("Inner"), { + {mod.symbols.New("c"), ty.f32()}, + {mod.symbols.New("d"), ty.u32()}, + }); + + tint::Vector<const core::type::StructMember*, 2> members; + members.Push(ty.Get<core::type::StructMember>(mod.symbols.New("a"), ty.i32(), 0u, 0u, 4u, + ty.i32()->Size(), core::IOAttributes{})); + members.Push(ty.Get<core::type::StructMember>(mod.symbols.New("b"), Inner, 1u, 16u, 16u, + Inner->Size(), core::IOAttributes{})); + auto* sb = ty.Struct(mod.symbols.New("SB"), members); + + auto* var = b.Var("v", uniform, sb, core::Access::kRead); + var->SetBindingPoint(0, 0); + b.ir.root_block->Append(var); + + auto* func = b.Function("foo", ty.void_(), core::ir::Function::PipelineStage::kFragment); + b.Append(func->Block(), [&] { + auto* x = b.Access(ty.ptr(uniform, sb, core::Access::kRead), var); + auto* y = b.Access(ty.ptr(uniform, Inner, core::Access::kRead), x->Result(0), 1_u); + b.Let("b", + b.Load(b.Access(ty.ptr(uniform, ty.u32(), core::Access::kRead), y->Result(0), 1_u))); + b.Return(func); + }); + + ASSERT_TRUE(Generate()) << err_ << output_.glsl; + EXPECT_EQ(output_.glsl, GlslHeader() + R"( +struct Inner { + float c; + uint d; +}; + +struct SB { + int a; + Inner b; +}; +precision highp float; +precision highp int; + + +uniform SB v; +void main() { + uint b = v.b.d; +} +)"); +} + +// TODO(dsinclair): Handle let pointers +TEST_F(GlslWriterTest, DISABLED_AccessUniformChainFromLetAccessChain) { + auto* Inner = ty.Struct(mod.symbols.New("Inner"), { + {mod.symbols.New("c"), ty.f32()}, + }); + tint::Vector<const core::type::StructMember*, 2> members; + members.Push(ty.Get<core::type::StructMember>(mod.symbols.New("a"), ty.i32(), 0u, 0u, 4u, + ty.i32()->Size(), core::IOAttributes{})); + members.Push(ty.Get<core::type::StructMember>(mod.symbols.New("b"), Inner, 1u, 16u, 16u, + Inner->Size(), core::IOAttributes{})); + auto* sb = ty.Struct(mod.symbols.New("SB"), members); + + auto* var = b.Var("v", uniform, sb, core::Access::kRead); + var->SetBindingPoint(0, 0); + b.ir.root_block->Append(var); + + auto* func = b.Function("foo", ty.void_(), core::ir::Function::PipelineStage::kFragment); + b.Append(func->Block(), [&] { + auto* x = b.Let("x", var); + auto* y = + b.Let("y", b.Access(ty.ptr(uniform, Inner, core::Access::kRead), x->Result(0), 1_u)); + auto* z = + b.Let("z", b.Access(ty.ptr(uniform, ty.f32(), core::Access::kRead), y->Result(0), 0_u)); + b.Let("a", b.Load(z)); + b.Return(func); + }); + + ASSERT_TRUE(Generate()) << err_ << output_.glsl; + EXPECT_EQ(output_.glsl, GlslHeader() + R"( + +)"); +} + +TEST_F(GlslWriterTest, AccessUniformScalar) { + auto* var = b.Var<uniform, f32, core::Access::kRead>("v"); + var->SetBindingPoint(0, 0); + + b.ir.root_block->Append(var); + auto* func = b.Function("foo", ty.void_(), core::ir::Function::PipelineStage::kFragment); + b.Append(func->Block(), [&] { + b.Let("a", b.Load(var)); + b.Return(func); + }); + + ASSERT_TRUE(Generate()) << err_ << output_.glsl; + EXPECT_EQ(output_.glsl, GlslHeader() + R"(precision highp float; +precision highp int; + + +uniform float v; +void main() { + float a = v; +} +)"); +} + +TEST_F(GlslWriterTest, AccessUniformScalarF16) { + auto* var = b.Var<uniform, f16, core::Access::kRead>("v"); + var->SetBindingPoint(0, 0); + + b.ir.root_block->Append(var); + auto* func = b.Function("foo", ty.void_(), core::ir::Function::PipelineStage::kFragment); + b.Append(func->Block(), [&] { + b.Let("a", b.Load(var)); + b.Return(func); + }); + + ASSERT_TRUE(Generate()) << err_ << output_.glsl; + EXPECT_EQ(output_.glsl, GlslHeader() + R"(#extension GL_AMD_gpu_shader_half_float: require +precision highp float; +precision highp int; + + +uniform float16_t v; +void main() { + float16_t a = v; +} +)"); +} + +// TODO(dsinclair): Handle LoadVectorElement +TEST_F(GlslWriterTest, DISABLED_AccessUniformVector) { + auto* var = b.Var<uniform, vec4<f32>, core::Access::kRead>("v"); + var->SetBindingPoint(0, 0); + + b.ir.root_block->Append(var); + auto* func = b.Function("foo", ty.void_(), core::ir::Function::PipelineStage::kFragment); + b.Append(func->Block(), [&] { + b.Let("a", b.Load(var)); + b.Let("b", b.LoadVectorElement(var, 0_u)); + b.Let("c", b.LoadVectorElement(var, 1_u)); + b.Let("d", b.LoadVectorElement(var, 2_u)); + b.Let("e", b.LoadVectorElement(var, 3_u)); + b.Return(func); + }); + + ASSERT_TRUE(Generate()) << err_ << output_.glsl; + EXPECT_EQ(output_.glsl, GlslHeader() + R"( + +)"); +} + +// TODO(dsinclair): Support LoadVectorElement +TEST_F(GlslWriterTest, DISABLED_AccessUniformVectorF16) { + auto* var = b.Var<uniform, vec4<f16>, core::Access::kRead>("v"); + var->SetBindingPoint(0, 0); + + b.ir.root_block->Append(var); + auto* func = b.Function("foo", ty.void_(), core::ir::Function::PipelineStage::kFragment); + b.Append(func->Block(), [&] { + auto* x = b.Var("x", 1_u); + b.Let("a", b.Load(var)); + b.Let("b", b.LoadVectorElement(var, 0_u)); + b.Let("c", b.LoadVectorElement(var, b.Load(x))); + b.Let("d", b.LoadVectorElement(var, 2_u)); + b.Let("e", b.LoadVectorElement(var, 3_u)); + b.Return(func); + }); + + ASSERT_TRUE(Generate()) << err_ << output_.glsl; + EXPECT_EQ(output_.glsl, GlslHeader() + R"( + +)"); +} + +// TODO(dsinclair): support LoadVectorElement +TEST_F(GlslWriterTest, DISABLED_AccessUniformMatrix) { + auto* var = b.Var<uniform, mat4x4<f32>, core::Access::kRead>("v"); + var->SetBindingPoint(0, 0); + + b.ir.root_block->Append(var); + auto* func = b.Function("foo", ty.void_(), core::ir::Function::PipelineStage::kFragment); + b.Append(func->Block(), [&] { + b.Let("a", b.Load(var)); + b.Let("b", b.Load(b.Access(ty.ptr<uniform, vec4<f32>, core::Access::kRead>(), var, 3_u))); + b.Let("c", b.LoadVectorElement( + b.Access(ty.ptr<uniform, vec4<f32>, core::Access::kRead>(), var, 1_u), 2_u)); + b.Return(func); + }); + + ASSERT_TRUE(Generate()) << err_ << output_.glsl; + EXPECT_EQ(output_.glsl, GlslHeader() + R"( + +)"); +} + +// TODO(dsinclair): Support LoadVectorElement +TEST_F(GlslWriterTest, DISABLED_AccessUniformMatrix2x3) { + auto* var = b.Var<uniform, mat2x3<f32>, core::Access::kRead>("v"); + var->SetBindingPoint(0, 0); + + b.ir.root_block->Append(var); + auto* func = b.Function("foo", ty.void_(), core::ir::Function::PipelineStage::kFragment); + b.Append(func->Block(), [&] { + b.Let("a", b.Load(var)); + b.Let("b", b.Load(b.Access(ty.ptr<uniform, vec3<f32>, core::Access::kRead>(), var, 1_u))); + b.Let("c", b.LoadVectorElement( + b.Access(ty.ptr<uniform, vec3<f32>, core::Access::kRead>(), var, 1_u), 2_u)); + b.Return(func); + }); + + ASSERT_TRUE(Generate()) << err_ << output_.glsl; + EXPECT_EQ(output_.glsl, GlslHeader() + R"( + +)"); +} + +// TODO(dsinclair): Support LoadVectorElement +TEST_F(GlslWriterTest, DISABLED_AccessUniformMat2x3F16) { + auto* var = b.Var<uniform, mat2x3<f16>, core::Access::kRead>("v"); + var->SetBindingPoint(0, 0); + b.ir.root_block->Append(var); + + auto* func = b.Function("foo", ty.void_(), core::ir::Function::PipelineStage::kFragment); + b.Append(func->Block(), [&] { + b.Let("a", b.Load(var)); + b.Let("b", b.Load(b.Access(ty.ptr(uniform, ty.vec3<f16>()), var, 1_u))); + b.Let("c", b.LoadVectorElement(b.Access(ty.ptr(uniform, ty.vec3<f16>()), var, 1_u), 2_u)); + b.Return(func); + }); + + ASSERT_TRUE(Generate()) << err_ << output_.glsl; + EXPECT_EQ(output_.glsl, GlslHeader() + R"( + +)"); +} + +// TODO(dsinclair): Support LoadVectorElement +TEST_F(GlslWriterTest, DISABLED_AccessUniformMatrix3x2) { + auto* var = b.Var<uniform, mat3x2<f32>, core::Access::kRead>("v"); + var->SetBindingPoint(0, 0); + + b.ir.root_block->Append(var); + auto* func = b.Function("foo", ty.void_(), core::ir::Function::PipelineStage::kFragment); + b.Append(func->Block(), [&] { + b.Let("a", b.Load(var)); + b.Let("b", b.Load(b.Access(ty.ptr<uniform, vec2<f32>, core::Access::kRead>(), var, 1_u))); + b.Let("c", b.LoadVectorElement( + b.Access(ty.ptr<uniform, vec2<f32>, core::Access::kRead>(), var, 1_u), 1_u)); + b.Return(func); + }); + + ASSERT_TRUE(Generate()) << err_ << output_.glsl; + EXPECT_EQ(output_.glsl, GlslHeader() + R"( + +)"); +} + +// TODO(dsinclair): Support LoadVectorElement +TEST_F(GlslWriterTest, DISABLED_AccessUniformMatrix2x2) { + auto* var = b.Var<uniform, mat2x2<f32>, core::Access::kRead>("v"); + var->SetBindingPoint(0, 0); + + b.ir.root_block->Append(var); + auto* func = b.Function("foo", ty.void_(), core::ir::Function::PipelineStage::kFragment); + b.Append(func->Block(), [&] { + b.Let("a", b.Load(var)); + b.Let("b", b.Load(b.Access(ty.ptr<uniform, vec2<f32>, core::Access::kRead>(), var, 1_u))); + b.Let("c", b.LoadVectorElement( + b.Access(ty.ptr<uniform, vec2<f32>, core::Access::kRead>(), var, 1_u), 1_u)); + b.Return(func); + }); + + ASSERT_TRUE(Generate()) << err_ << output_.glsl; + EXPECT_EQ(output_.glsl, GlslHeader() + R"( + +)"); +} + +// TODO(dsinclair): Support LoadVectorElement +TEST_F(GlslWriterTest, DISABLED_AccessUniformMatrix2x2F16) { + auto* var = b.Var<uniform, mat2x2<f16>, core::Access::kRead>("v"); + var->SetBindingPoint(0, 0); + + b.ir.root_block->Append(var); + auto* func = b.Function("foo", ty.void_(), core::ir::Function::PipelineStage::kFragment); + b.Append(func->Block(), [&] { + b.Let("a", b.Load(var)); + b.Let("b", b.Load(b.Access(ty.ptr<uniform, vec2<f16>, core::Access::kRead>(), var, 1_u))); + b.Let("c", b.LoadVectorElement( + b.Access(ty.ptr<uniform, vec2<f16>, core::Access::kRead>(), var, 1_u), 1_u)); + b.Return(func); + }); + + ASSERT_TRUE(Generate()) << err_ << output_.glsl; + EXPECT_EQ(output_.glsl, GlslHeader() + R"( + +)"); +} + +// TODO(dsinclair): Needs buffer block +TEST_F(GlslWriterTest, DISABLED_AccessUniformArray) { + auto* var = b.Var<uniform, array<vec3<f32>, 5>, core::Access::kRead>("v"); + var->SetBindingPoint(0, 0); + + b.ir.root_block->Append(var); + auto* func = b.Function("foo", ty.void_(), core::ir::Function::PipelineStage::kFragment); + b.Append(func->Block(), [&] { + b.Let("a", b.Load(var)); + b.Let("b", b.Load(b.Access(ty.ptr<uniform, vec3<f32>, core::Access::kRead>(), var, 3_u))); + b.Return(func); + }); + + ASSERT_TRUE(Generate()) << err_ << output_.glsl; + EXPECT_EQ(output_.glsl, GlslHeader() + R"( + +)"); +} + +// TODO(dsinclair): Needs buffer block +TEST_F(GlslWriterTest, DISABLED_AccessUniformArrayF16) { + auto* var = b.Var<uniform, array<vec3<f16>, 5>, core::Access::kRead>("v"); + var->SetBindingPoint(0, 0); + + b.ir.root_block->Append(var); + auto* func = b.Function("foo", ty.void_(), core::ir::Function::PipelineStage::kFragment); + b.Append(func->Block(), [&] { + b.Let("a", b.Load(var)); + b.Let("b", b.Load(b.Access(ty.ptr<uniform, vec3<f16>, core::Access::kRead>(), var, 3_u))); + b.Return(func); + }); + + ASSERT_TRUE(Generate()) << err_ << output_.glsl; + EXPECT_EQ(output_.glsl, GlslHeader() + R"( + +)"); +} + +// TODO(dsinclair): Needs buffer block +TEST_F(GlslWriterTest, DISABLED_AccessUniformArrayWhichCanHaveSizesOtherThenFive) { + auto* var = b.Var<uniform, array<vec3<f32>, 42>, core::Access::kRead>("v"); + var->SetBindingPoint(0, 0); + + b.ir.root_block->Append(var); + auto* func = b.Function("foo", ty.void_(), core::ir::Function::PipelineStage::kFragment); + b.Append(func->Block(), [&] { + b.Let("a", b.Load(var)); + b.Let("b", b.Load(b.Access(ty.ptr<uniform, vec3<f32>, core::Access::kRead>(), var, 3_u))); + b.Return(func); + }); + + ASSERT_TRUE(Generate()) << err_ << output_.glsl; + EXPECT_EQ(output_.glsl, GlslHeader() + R"( +precision highp float; +precision highp int; + +layout(binding = 0, std140) uniform v_block_ubo { + vec3 inner[42]; +} v; + +void main() { + vec3 a[42] = v.inner; + vec3 b = v.inner[3]; +} +)"); +} + +TEST_F(GlslWriterTest, AccessUniformStruct) { + auto* SB = ty.Struct(mod.symbols.New("SB"), { + {mod.symbols.New("a"), ty.i32()}, + {mod.symbols.New("b"), ty.f32()}, + }); + + auto* var = b.Var("v", uniform, SB, core::Access::kRead); + var->SetBindingPoint(0, 0); + + b.ir.root_block->Append(var); + auto* func = b.Function("foo", ty.void_(), core::ir::Function::PipelineStage::kFragment); + b.Append(func->Block(), [&] { + b.Let("a", b.Load(var)); + b.Let("b", b.Load(b.Access(ty.ptr<uniform, f32, core::Access::kRead>(), var, 1_u))); + b.Return(func); + }); + + ASSERT_TRUE(Generate()) << err_ << output_.glsl; + EXPECT_EQ(output_.glsl, GlslHeader() + R"( +struct SB { + int a; + float b; +}; +precision highp float; +precision highp int; + + +uniform SB v; +void main() { + SB a = v; + float b = v.b; +} +)"); +} + +TEST_F(GlslWriterTest, AccessUniformStructF16) { + auto* SB = ty.Struct(mod.symbols.New("SB"), { + {mod.symbols.New("a"), ty.i32()}, + {mod.symbols.New("b"), ty.f16()}, + }); + + auto* var = b.Var("v", uniform, SB, core::Access::kRead); + var->SetBindingPoint(0, 0); + + b.ir.root_block->Append(var); + auto* func = b.Function("foo", ty.void_(), core::ir::Function::PipelineStage::kFragment); + b.Append(func->Block(), [&] { + b.Let("a", b.Load(var)); + b.Let("b", b.Load(b.Access(ty.ptr<uniform, f16, core::Access::kRead>(), var, 1_u))); + b.Return(func); + }); + + ASSERT_TRUE(Generate()) << err_ << output_.glsl; + EXPECT_EQ(output_.glsl, GlslHeader() + R"(#extension GL_AMD_gpu_shader_half_float: require + +struct SB { + int a; + float16_t b; +}; +precision highp float; +precision highp int; + + +uniform SB v; +void main() { + SB a = v; + float16_t b = v.b; +} +)"); +} + +// TODO(dsinclair): Support LoadVectorElement +TEST_F(GlslWriterTest, DISABLED_AccessUniformStructNested) { + auto* Inner = + ty.Struct(mod.symbols.New("Inner"), { + {mod.symbols.New("s"), ty.mat3x3<f32>()}, + {mod.symbols.New("t"), ty.array<vec3<f32>, 5>()}, + }); + auto* Outer = ty.Struct(mod.symbols.New("Outer"), { + {mod.symbols.New("x"), ty.f32()}, + {mod.symbols.New("y"), Inner}, + }); + + auto* SB = ty.Struct(mod.symbols.New("SB"), { + {mod.symbols.New("a"), ty.i32()}, + {mod.symbols.New("b"), Outer}, + }); + + auto* var = b.Var("v", uniform, SB, core::Access::kRead); + var->SetBindingPoint(0, 0); + + b.ir.root_block->Append(var); + auto* func = b.Function("foo", ty.void_(), core::ir::Function::PipelineStage::kFragment); + b.Append(func->Block(), [&] { + b.Let("a", b.Load(var)); + b.Let("b", b.LoadVectorElement(b.Access(ty.ptr<uniform, vec3<f32>, core::Access::kRead>(), + var, 1_u, 1_u, 1_u, 3_u), + 2_u)); + b.Return(func); + }); + + ASSERT_TRUE(Generate()) << err_ << output_.glsl; + EXPECT_EQ(output_.glsl, GlslHeader() + R"( + +)"); +} + +TEST_F(GlslWriterTest, AccessStoreScalar) { + auto* var = b.Var<storage, f32, core::Access::kReadWrite>("v"); + var->SetBindingPoint(0, 0); + + b.ir.root_block->Append(var); + auto* func = b.Function("foo", ty.void_(), core::ir::Function::PipelineStage::kFragment); + b.Append(func->Block(), [&] { + b.Store(b.Access(ty.ptr<storage, f32, core::Access::kReadWrite>(), var), 2_f); + b.Return(func); + }); + + ASSERT_TRUE(Generate()) << err_ << output_.glsl; + EXPECT_EQ(output_.glsl, GlslHeader() + R"(precision highp float; +precision highp int; + + +float v; +void main() { + v = 2.0f; +} +)"); +} + +TEST_F(GlslWriterTest, AccessStoreScalarF16) { + auto* var = b.Var<storage, f16, core::Access::kReadWrite>("v"); + var->SetBindingPoint(0, 0); + + b.ir.root_block->Append(var); + auto* func = b.Function("foo", ty.void_(), core::ir::Function::PipelineStage::kFragment); + b.Append(func->Block(), [&] { + b.Store(b.Access(ty.ptr<storage, f16, core::Access::kReadWrite>(), var), 2_h); + b.Return(func); + }); + + ASSERT_TRUE(Generate()) << err_ << output_.glsl; + EXPECT_EQ(output_.glsl, GlslHeader() + R"(#extension GL_AMD_gpu_shader_half_float: require +precision highp float; +precision highp int; + + +float16_t v; +void main() { + v = 2.0hf; +} +)"); +} + +// TODO(dsinclair): Support StoreVectorElement +TEST_F(GlslWriterTest, DISABLED_AccessStoreVectorElement) { + auto* var = b.Var<storage, vec3<f32>, core::Access::kReadWrite>("v"); + var->SetBindingPoint(0, 0); + + b.ir.root_block->Append(var); + auto* func = b.Function("foo", ty.void_(), core::ir::Function::PipelineStage::kFragment); + b.Append(func->Block(), [&] { + b.StoreVectorElement(b.Access(ty.ptr<storage, vec3<f32>, core::Access::kReadWrite>(), var), + 1_u, 2_f); + b.Return(func); + }); + + ASSERT_TRUE(Generate()) << err_ << output_.glsl; + EXPECT_EQ(output_.glsl, GlslHeader() + R"( + +)"); +} + +// TODO(dsinclair): Support StoreVectorElement +TEST_F(GlslWriterTest, DISABLED_AccessStoreVectorElementF16) { + auto* var = b.Var<storage, vec3<f16>, core::Access::kReadWrite>("v"); + var->SetBindingPoint(0, 0); + + b.ir.root_block->Append(var); + auto* func = b.Function("foo", ty.void_(), core::ir::Function::PipelineStage::kFragment); + b.Append(func->Block(), [&] { + b.StoreVectorElement(b.Access(ty.ptr<storage, vec3<f16>, core::Access::kReadWrite>(), var), + 1_u, 2_h); + b.Return(func); + }); + + ASSERT_TRUE(Generate()) << err_ << output_.glsl; + EXPECT_EQ(output_.glsl, GlslHeader() + R"( + +)"); +} + +TEST_F(GlslWriterTest, AccessStoreVector) { + auto* var = b.Var<storage, vec3<f32>, core::Access::kReadWrite>("v"); + var->SetBindingPoint(0, 0); + + b.ir.root_block->Append(var); + auto* func = b.Function("foo", ty.void_(), core::ir::Function::PipelineStage::kFragment); + b.Append(func->Block(), [&] { + b.Store(b.Access(ty.ptr<storage, vec3<f32>, core::Access::kReadWrite>(), var), + b.Composite(ty.vec3<f32>(), 2_f, 3_f, 4_f)); + b.Return(func); + }); + + ASSERT_TRUE(Generate()) << err_ << output_.glsl; + EXPECT_EQ(output_.glsl, GlslHeader() + R"(precision highp float; +precision highp int; + + +vec3 v; +void main() { + v = vec3(2.0f, 3.0f, 4.0f); +} +)"); +} + +TEST_F(GlslWriterTest, AccessStoreVectorF16) { + auto* var = b.Var<storage, vec3<f16>, core::Access::kReadWrite>("v"); + var->SetBindingPoint(0, 0); + + b.ir.root_block->Append(var); + auto* func = b.Function("foo", ty.void_(), core::ir::Function::PipelineStage::kFragment); + b.Append(func->Block(), [&] { + b.Store(b.Access(ty.ptr<storage, vec3<f16>, core::Access::kReadWrite>(), var), + b.Composite(ty.vec3<f16>(), 2_h, 3_h, 4_h)); + b.Return(func); + }); + + ASSERT_TRUE(Generate()) << err_ << output_.glsl; + EXPECT_EQ(output_.glsl, GlslHeader() + R"(#extension GL_AMD_gpu_shader_half_float: require +precision highp float; +precision highp int; + + +f16vec3 v; +void main() { + v = f16vec3(2.0hf, 3.0hf, 4.0hf); +} +)"); +} + +// TODO(dsinclair): Support StoreVectorElement +TEST_F(GlslWriterTest, DISABLED_AccessStoreMatrixElement) { + auto* var = b.Var<storage, mat4x4<f32>, core::Access::kReadWrite>("v"); + var->SetBindingPoint(0, 0); + + b.ir.root_block->Append(var); + auto* func = b.Function("foo", ty.void_(), core::ir::Function::PipelineStage::kFragment); + b.Append(func->Block(), [&] { + b.StoreVectorElement( + b.Access(ty.ptr<storage, vec4<f32>, core::Access::kReadWrite>(), var, 1_u), 2_u, 5_f); + b.Return(func); + }); + + ASSERT_TRUE(Generate()) << err_ << output_.glsl; + EXPECT_EQ(output_.glsl, GlslHeader() + R"( + +)"); +} + +// TODO(dsinclair): Support StoreVectorElement +TEST_F(GlslWriterTest, DISABLED_AccessStoreMatrixElementF16) { + auto* var = b.Var<storage, mat3x2<f16>, core::Access::kReadWrite>("v"); + var->SetBindingPoint(0, 0); + + b.ir.root_block->Append(var); + auto* func = b.Function("foo", ty.void_(), core::ir::Function::PipelineStage::kFragment); + b.Append(func->Block(), [&] { + b.StoreVectorElement( + b.Access(ty.ptr<storage, vec2<f16>, core::Access::kReadWrite>(), var, 2_u), 1_u, 5_h); + b.Return(func); + }); + + ASSERT_TRUE(Generate()) << err_ << output_.glsl; + EXPECT_EQ(output_.glsl, GlslHeader() + R"( + +)"); +} + +TEST_F(GlslWriterTest, AccessStoreMatrixColumn) { + auto* var = b.Var<storage, mat4x4<f32>, core::Access::kReadWrite>("v"); + var->SetBindingPoint(0, 0); + + b.ir.root_block->Append(var); + auto* func = b.Function("foo", ty.void_(), core::ir::Function::PipelineStage::kFragment); + b.Append(func->Block(), [&] { + b.Store(b.Access(ty.ptr<storage, vec4<f32>, core::Access::kReadWrite>(), var, 1_u), + b.Splat<vec4<f32>>(5_f)); + b.Return(func); + }); + + ASSERT_TRUE(Generate()) << err_ << output_.glsl; + EXPECT_EQ(output_.glsl, GlslHeader() + R"(precision highp float; +precision highp int; + + +mat4 v; +void main() { + v[1u] = vec4(5.0f); +} +)"); +} + +TEST_F(GlslWriterTest, AccessStoreMatrixColumnF16) { + auto* var = b.Var<storage, mat2x3<f16>, core::Access::kReadWrite>("v"); + var->SetBindingPoint(0, 0); + + b.ir.root_block->Append(var); + auto* func = b.Function("foo", ty.void_(), core::ir::Function::PipelineStage::kFragment); + b.Append(func->Block(), [&] { + b.Store(b.Access(ty.ptr<storage, vec3<f16>, core::Access::kReadWrite>(), var, 1_u), + b.Splat<vec3<f16>>(5_h)); + b.Return(func); + }); + + ASSERT_TRUE(Generate()) << err_ << output_.glsl; + EXPECT_EQ(output_.glsl, GlslHeader() + R"(#extension GL_AMD_gpu_shader_half_float: require +precision highp float; +precision highp int; + + +f16mat2x3 v; +void main() { + v[1u] = f16vec3(5.0hf); +} +)"); +} + +TEST_F(GlslWriterTest, AccessStoreMatrix) { + auto* var = b.Var<storage, mat4x4<f32>, core::Access::kReadWrite>("v"); + var->SetBindingPoint(0, 0); + + b.ir.root_block->Append(var); + auto* func = b.Function("foo", ty.void_(), core::ir::Function::PipelineStage::kFragment); + b.Append(func->Block(), [&] { + b.Store(var, b.Zero<mat4x4<f32>>()); + b.Return(func); + }); + + ASSERT_TRUE(Generate()) << err_ << output_.glsl; + EXPECT_EQ(output_.glsl, GlslHeader() + R"(precision highp float; +precision highp int; + + +mat4 v; +void main() { + v = mat4(vec4(0.0f), vec4(0.0f), vec4(0.0f), vec4(0.0f)); +} +)"); +} + +TEST_F(GlslWriterTest, AccessStoreMatrixF16) { + auto* var = b.Var<storage, mat4x4<f16>, core::Access::kReadWrite>("v"); + var->SetBindingPoint(0, 0); + + b.ir.root_block->Append(var); + auto* func = b.Function("foo", ty.void_(), core::ir::Function::PipelineStage::kFragment); + b.Append(func->Block(), [&] { + b.Store(var, b.Zero<mat4x4<f16>>()); + b.Return(func); + }); + + ASSERT_TRUE(Generate()) << err_ << output_.glsl; + EXPECT_EQ(output_.glsl, GlslHeader() + R"(#extension GL_AMD_gpu_shader_half_float: require +precision highp float; +precision highp int; + + +f16mat4 v; +void main() { + v = f16mat4(f16vec4(0.0hf), f16vec4(0.0hf), f16vec4(0.0hf), f16vec4(0.0hf)); +} +)"); +} + +TEST_F(GlslWriterTest, AccessStoreArrayElement) { + auto* var = b.Var<storage, array<f32, 5>, core::Access::kReadWrite>("v"); + var->SetBindingPoint(0, 0); + + b.ir.root_block->Append(var); + auto* func = b.Function("foo", ty.void_(), core::ir::Function::PipelineStage::kFragment); + b.Append(func->Block(), [&] { + b.Store(b.Access(ty.ptr<storage, f32, core::Access::kReadWrite>(), var, 3_u), 1_f); + b.Return(func); + }); + + ASSERT_TRUE(Generate()) << err_ << output_.glsl; + EXPECT_EQ(output_.glsl, GlslHeader() + R"(precision highp float; +precision highp int; + + +float v[5]; +void main() { + v[3u] = 1.0f; +} +)"); +} + +TEST_F(GlslWriterTest, AccessStoreArrayElementF16) { + auto* var = b.Var<storage, array<f16, 5>, core::Access::kReadWrite>("v"); + var->SetBindingPoint(0, 0); + + b.ir.root_block->Append(var); + auto* func = b.Function("foo", ty.void_(), core::ir::Function::PipelineStage::kFragment); + b.Append(func->Block(), [&] { + b.Store(b.Access(ty.ptr<storage, f16, core::Access::kReadWrite>(), var, 3_u), 1_h); + b.Return(func); + }); + + ASSERT_TRUE(Generate()) << err_ << output_.glsl; + EXPECT_EQ(output_.glsl, GlslHeader() + R"(#extension GL_AMD_gpu_shader_half_float: require +precision highp float; +precision highp int; + + +float16_t v[5]; +void main() { + v[3u] = 1.0hf; +} +)"); +} + +// TODO(dsinclair): Support Loop +TEST_F(GlslWriterTest, DISABLED_AccessStoreArray) { + auto* var = b.Var<storage, array<vec3<f32>, 5>, core::Access::kReadWrite>("v"); + var->SetBindingPoint(0, 0); + + b.ir.root_block->Append(var); + auto* func = b.Function("foo", ty.void_(), core::ir::Function::PipelineStage::kFragment); + b.Append(func->Block(), [&] { + auto* ary = b.Let("ary", b.Zero<array<vec3<f32>, 5>>()); + b.Store(var, ary); + b.Return(func); + }); + + ASSERT_TRUE(Generate()) << err_ << output_.glsl; + EXPECT_EQ(output_.glsl, GlslHeader() + R"( + +)"); +} + +TEST_F(GlslWriterTest, AccessStoreStructMember) { + auto* SB = ty.Struct(mod.symbols.New("SB"), { + {mod.symbols.New("a"), ty.i32()}, + {mod.symbols.New("b"), ty.f32()}, + }); + + auto* var = b.Var("v", storage, SB, core::Access::kReadWrite); + var->SetBindingPoint(0, 0); + + b.ir.root_block->Append(var); + auto* func = b.Function("foo", ty.void_(), core::ir::Function::PipelineStage::kFragment); + b.Append(func->Block(), [&] { + b.Store(b.Access(ty.ptr<storage, f32, core::Access::kReadWrite>(), var, 1_u), 3_f); + b.Return(func); + }); + + ASSERT_TRUE(Generate()) << err_ << output_.glsl; + EXPECT_EQ(output_.glsl, GlslHeader() + R"( +struct SB { + int a; + float b; +}; +precision highp float; +precision highp int; + + +SB v; +void main() { + v.b = 3.0f; +} +)"); +} + +TEST_F(GlslWriterTest, AccessStoreStructMemberF16) { + auto* SB = ty.Struct(mod.symbols.New("SB"), { + {mod.symbols.New("a"), ty.i32()}, + {mod.symbols.New("b"), ty.f16()}, + }); + + auto* var = b.Var("v", storage, SB, core::Access::kReadWrite); + var->SetBindingPoint(0, 0); + + b.ir.root_block->Append(var); + auto* func = b.Function("foo", ty.void_(), core::ir::Function::PipelineStage::kFragment); + b.Append(func->Block(), [&] { + b.Store(b.Access(ty.ptr<storage, f16, core::Access::kReadWrite>(), var, 1_u), 3_h); + b.Return(func); + }); + + ASSERT_TRUE(Generate()) << err_ << output_.glsl; + EXPECT_EQ(output_.glsl, GlslHeader() + R"(#extension GL_AMD_gpu_shader_half_float: require + +struct SB { + int a; + float16_t b; +}; +precision highp float; +precision highp int; + + +SB v; +void main() { + v.b = 3.0hf; +} +)"); +} + +TEST_F(GlslWriterTest, AccessStoreStructNested) { + auto* Inner = + ty.Struct(mod.symbols.New("Inner"), { + {mod.symbols.New("s"), ty.mat3x3<f32>()}, + {mod.symbols.New("t"), ty.array<vec3<f32>, 5>()}, + }); + auto* Outer = ty.Struct(mod.symbols.New("Outer"), { + {mod.symbols.New("x"), ty.f32()}, + {mod.symbols.New("y"), Inner}, + }); + + auto* SB = ty.Struct(mod.symbols.New("SB"), { + {mod.symbols.New("a"), ty.i32()}, + {mod.symbols.New("b"), Outer}, + }); + + auto* var = b.Var("v", storage, SB, core::Access::kReadWrite); + var->SetBindingPoint(0, 0); + + b.ir.root_block->Append(var); + auto* func = b.Function("foo", ty.void_(), core::ir::Function::PipelineStage::kFragment); + b.Append(func->Block(), [&] { + b.Store(b.Access(ty.ptr<storage, f32, core::Access::kReadWrite>(), var, 1_u, 0_u), 2_f); + b.Return(func); + }); + + ASSERT_TRUE(Generate()) << err_ << output_.glsl; + EXPECT_EQ(output_.glsl, GlslHeader() + R"( +struct Inner { + mat3 s; + float t[5]; +}; + +struct Outer { + float x; + Inner y; +}; + +struct SB { + int a; + Outer b; +}; +precision highp float; +precision highp int; + + +SB v; +void main() { + v.b.x = 2.0f; +} +)"); +} + +TEST_F(GlslWriterTest, AccessStoreStruct) { + auto* Inner = ty.Struct(mod.symbols.New("Inner"), { + {mod.symbols.New("s"), ty.f32()}, + {mod.symbols.New("t"), ty.vec3<f32>()}, + }); + auto* Outer = ty.Struct(mod.symbols.New("Outer"), { + {mod.symbols.New("x"), ty.f32()}, + {mod.symbols.New("y"), Inner}, + }); + + auto* SB = ty.Struct(mod.symbols.New("SB"), { + {mod.symbols.New("a"), ty.i32()}, + {mod.symbols.New("b"), Outer}, + }); + + auto* var = b.Var("v", storage, SB, core::Access::kReadWrite); + var->SetBindingPoint(0, 0); + + b.ir.root_block->Append(var); + auto* func = b.Function("foo", ty.void_(), core::ir::Function::PipelineStage::kFragment); + b.Append(func->Block(), [&] { + auto* s = b.Let("s", b.Zero(SB)); + b.Store(var, s); + b.Return(func); + }); + + ASSERT_TRUE(Generate()) << err_ << output_.glsl; + EXPECT_EQ(output_.glsl, GlslHeader() + R"( +struct Inner { + float s; + vec3 t; +}; + +struct Outer { + float x; + Inner y; +}; + +struct SB { + int a; + Outer b; +}; +precision highp float; +precision highp int; + + +SB v; +void tint_store_and_preserve_padding_2(inout Inner target, Inner value_param) { + target.s = value_param.s; + target.t = value_param.t; +} +void tint_store_and_preserve_padding_1(inout Outer target, Outer value_param) { + target.x = value_param.x; + tint_store_and_preserve_padding_2(target.y, value_param.y); +} +void tint_store_and_preserve_padding(inout SB target, SB value_param) { + target.a = value_param.a; + tint_store_and_preserve_padding_1(target.b, value_param.b); +} +void main() { + SB s = SB(0, Outer(0.0f, Inner(0.0f, vec3(0.0f)))); + tint_store_and_preserve_padding(v, s); +} +)"); +} + +// TODO(dsinclair): Support Loop +TEST_F(GlslWriterTest, DISABLED_AccessStoreStructComplex) { + auto* Inner = + ty.Struct(mod.symbols.New("Inner"), { + {mod.symbols.New("s"), ty.mat3x3<f32>()}, + {mod.symbols.New("t"), ty.array<vec3<f32>, 5>()}, + }); + auto* Outer = ty.Struct(mod.symbols.New("Outer"), { + {mod.symbols.New("x"), ty.f32()}, + {mod.symbols.New("y"), Inner}, + }); + + auto* SB = ty.Struct(mod.symbols.New("SB"), { + {mod.symbols.New("a"), ty.i32()}, + {mod.symbols.New("b"), Outer}, + }); + + auto* var = b.Var("v", storage, SB, core::Access::kReadWrite); + var->SetBindingPoint(0, 0); + + b.ir.root_block->Append(var); + auto* func = b.Function("foo", ty.void_(), core::ir::Function::PipelineStage::kFragment); + b.Append(func->Block(), [&] { + auto* s = b.Let("s", b.Zero(SB)); + b.Store(var, s); + b.Return(func); + }); + + ASSERT_TRUE(Generate()) << err_ << output_.glsl; + EXPECT_EQ(output_.glsl, GlslHeader() + R"( + +)"); +} + +// TODO(dsinclair): Support LoadVectorElement +TEST_F(GlslWriterTest, DISABLED_AccessChainReused) { + auto* sb = ty.Struct(mod.symbols.New("SB"), { + {mod.symbols.New("a"), ty.i32()}, + {mod.symbols.New("b"), ty.vec3<f32>()}, + }); + + auto* var = b.Var("v", storage, sb, core::Access::kReadWrite); + var->SetBindingPoint(0, 0); + b.ir.root_block->Append(var); + + auto* func = b.Function("foo", ty.void_(), core::ir::Function::PipelineStage::kFragment); + b.Append(func->Block(), [&] { + auto* x = b.Access(ty.ptr(storage, ty.vec3<f32>(), core::Access::kReadWrite), var, 1_u); + b.Let("b", b.LoadVectorElement(x, 1_u)); + b.Let("c", b.LoadVectorElement(x, 2_u)); + b.Return(func); + }); + + ASSERT_TRUE(Generate()) << err_ << output_.glsl; + EXPECT_EQ(output_.glsl, GlslHeader() + R"( + +)"); +} + +// TODO(dsinclair): Support LoadVectorElement +TEST_F(GlslWriterTest, DISABLED_UniformAccessChainReused) { + auto* sb = ty.Struct(mod.symbols.New("SB"), { + {mod.symbols.New("c"), ty.f32()}, + {mod.symbols.New("d"), ty.vec3<f32>()}, + }); + + auto* var = b.Var("v", uniform, sb, core::Access::kRead); + var->SetBindingPoint(0, 0); + b.ir.root_block->Append(var); + + auto* func = b.Function("foo", ty.void_(), core::ir::Function::PipelineStage::kFragment); + b.Append(func->Block(), [&] { + auto* x = b.Access(ty.ptr(uniform, ty.vec3<f32>(), core::Access::kRead), var, 1_u); + b.Let("b", b.LoadVectorElement(x, 1_u)); + b.Let("c", b.LoadVectorElement(x, 2_u)); + b.Return(func); + }); + + ASSERT_TRUE(Generate()) << err_ << output_.glsl; + EXPECT_EQ(output_.glsl, GlslHeader() + R"( + +)"); +} + +} // namespace +} // namespace tint::glsl::writer
diff --git a/src/tint/lang/glsl/writer/printer/printer.cc b/src/tint/lang/glsl/writer/printer/printer.cc index 6edfdec..7cfc246 100644 --- a/src/tint/lang/glsl/writer/printer/printer.cc +++ b/src/tint/lang/glsl/writer/printer/printer.cc
@@ -114,7 +114,7 @@ EmitBlock(ir_.root_block); // Emit functions. - for (auto& func : ir_.functions) { + for (auto& func : ir_.DependencyOrderedFunctions()) { EmitFunction(func); } @@ -307,6 +307,30 @@ Line() << "}"; } + /// Emit an access instruction + void EmitAccess(StringStream& out, const core::ir::Access* a) { + EmitValue(out, a->Object()); + + auto* current_type = a->Object()->Type()->UnwrapPtr(); + for (auto* index : a->Indices()) { + TINT_ASSERT(current_type); + Switch( + current_type, // + [&](const core::type::Struct* s) { + auto* c = index->As<core::ir::Constant>(); + auto* member = s->Members()[c->Value()->ValueAs<uint32_t>()]; + out << "." << member->Name().Name(); + current_type = member->Type(); + }, + [&](Default) { + out << "["; + EmitValue(out, index); + out << "]"; + current_type = current_type->Element(0); + }); + } + } + void EmitLet(const core::ir::Let* l) { TINT_ASSERT(!l->Result(0)->Type()->Is<core::type::Pointer>()); @@ -621,7 +645,8 @@ [&](const core::ir::Constant* c) { EmitConstant(out, c); }, [&](const core::ir::InstructionResult* r) { tint::Switch( - r->Instruction(), // + r->Instruction(), // + [&](const core::ir::Access* a) { EmitAccess(out, a); }, // [&](const core::ir::CoreBinary* b) { EmitBinary(out, b); }, [&](const core::ir::CoreBuiltinCall* c) { EmitCoreBuiltinCall(out, c); }, [&](const core::ir::CoreUnary* u) { EmitUnary(out, u); },
diff --git a/test/tint/access/let/matrix.wgsl.expected.ir.glsl b/test/tint/access/let/matrix.wgsl.expected.ir.glsl index 1e74e77..7d8e0d4 100644 --- a/test/tint/access/let/matrix.wgsl.expected.ir.glsl +++ b/test/tint/access/let/matrix.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::Access -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 +float s; +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + mat3 m = mat3(vec3(1.0f, 2.0f, 3.0f), vec3(4.0f, 5.0f, 6.0f), vec3(7.0f, 8.0f, 9.0f)); + vec3 v = m[1]; + float f = v[1]; + s = f; +}
diff --git a/test/tint/access/var/matrix.wgsl.expected.ir.glsl b/test/tint/access/var/matrix.wgsl.expected.ir.glsl index 72ca17c..5764c73 100644 --- a/test/tint/access/var/matrix.wgsl.expected.ir.glsl +++ b/test/tint/access/var/matrix.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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 +float s; +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + mat3 m = mat3(vec3(0.0f), vec3(0.0f), vec3(0.0f)); + vec3 v = m[1]; + float f = v[1]; + s = f; +}
diff --git a/test/tint/array/function_parameter.wgsl.expected.ir.glsl b/test/tint/array/function_parameter.wgsl.expected.ir.glsl index 1e74e77..81d455a 100644 --- a/test/tint/array/function_parameter.wgsl.expected.ir.glsl +++ b/test/tint/array/function_parameter.wgsl.expected.ir.glsl
@@ -1,11 +1,22 @@ -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::Access -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 +float s; +float f1(float a[4]) { + return a[3]; +} +float f2(float a[3][4]) { + return a[2][3]; +} +float f3(float a[2][3][4]) { + return a[1][2][3]; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + float a1[4] = float[4](0.0f, 0.0f, 0.0f, 0.0f); + float a2[3][4] = float[3][4](float[4](0.0f, 0.0f, 0.0f, 0.0f), float[4](0.0f, 0.0f, 0.0f, 0.0f), float[4](0.0f, 0.0f, 0.0f, 0.0f)); + float a3[2][3][4] = float[2][3][4](float[3][4](float[4](0.0f, 0.0f, 0.0f, 0.0f), float[4](0.0f, 0.0f, 0.0f, 0.0f), float[4](0.0f, 0.0f, 0.0f, 0.0f)), float[3][4](float[4](0.0f, 0.0f, 0.0f, 0.0f), float[4](0.0f, 0.0f, 0.0f, 0.0f), float[4](0.0f, 0.0f, 0.0f, 0.0f))); + float v1 = f1(a1); + float v2 = f2(a2); + float v3 = f3(a3); + s = ((v1 + v2) + v3); +}
diff --git a/test/tint/array/size.wgsl.expected.ir.glsl b/test/tint/array/size.wgsl.expected.ir.glsl index d4bb1c9..640c889 100644 --- a/test/tint/array/size.wgsl.expected.ir.glsl +++ b/test/tint/array/size.wgsl.expected.ir.glsl
@@ -1,11 +1,18 @@ -SKIP: FAILED +#version 310 es +precision highp float; +precision highp int; -<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:252 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 +float s; +void main() { + float signed_literal[4] = float[4](0.0f, 0.0f, 0.0f, 0.0f); + float unsigned_literal[4] = float[4](0.0f, 0.0f, 0.0f, 0.0f); + float signed_constant[4] = float[4](0.0f, 0.0f, 0.0f, 0.0f); + float unsigned_constant[4] = float[4](0.0f, 0.0f, 0.0f, 0.0f); + float shr_const_expr[4] = float[4](0.0f, 0.0f, 0.0f, 0.0f); + unsigned_literal = signed_literal; + signed_constant = signed_literal; + unsigned_constant = signed_literal; + shr_const_expr = signed_literal; + s = ((((signed_literal[0] + unsigned_literal[0]) + signed_constant[0]) + unsigned_constant[0]) + shr_const_expr[0]); +}
diff --git a/test/tint/benchmark/atan2-const-eval.wgsl.expected.ir.glsl b/test/tint/benchmark/atan2-const-eval.wgsl.expected.ir.glsl deleted file mode 100644 index d4bb1c9..0000000 --- a/test/tint/benchmark/atan2-const-eval.wgsl.expected.ir.glsl +++ /dev/null
@@ -1,11 +0,0 @@ -SKIP: FAILED - -<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:252 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store -******************************************************************** -* The tint shader compiler has encountered an unexpected 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/buffer/storage/types/mat2x3_f16.wgsl.expected.ir.glsl b/test/tint/buffer/storage/types/mat2x3_f16.wgsl.expected.ir.glsl index 72ca17c..24dbcd3 100644 --- a/test/tint/buffer/storage/types/mat2x3_f16.wgsl.expected.ir.glsl +++ b/test/tint/buffer/storage/types/mat2x3_f16.wgsl.expected.ir.glsl
@@ -1,11 +1,13 @@ -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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 +f16mat2x3 tint_symbol; +f16mat2x3 tint_symbol_1; +void tint_store_and_preserve_padding(inout f16mat2x3 target, f16mat2x3 value_param) { + target[0u] = value_param[0u]; + target[1u] = value_param[1u]; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + tint_store_and_preserve_padding(tint_symbol_1, tint_symbol); +}
diff --git a/test/tint/buffer/storage/types/mat2x3_f32.wgsl.expected.ir.glsl b/test/tint/buffer/storage/types/mat2x3_f32.wgsl.expected.ir.glsl index 72ca17c..83d542d 100644 --- a/test/tint/buffer/storage/types/mat2x3_f32.wgsl.expected.ir.glsl +++ b/test/tint/buffer/storage/types/mat2x3_f32.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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 +mat2x3 tint_symbol; +mat2x3 tint_symbol_1; +void tint_store_and_preserve_padding(inout mat2x3 target, mat2x3 value_param) { + target[0u] = value_param[0u]; + target[1u] = value_param[1u]; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + tint_store_and_preserve_padding(tint_symbol_1, tint_symbol); +}
diff --git a/test/tint/buffer/storage/types/mat3x3_f16.wgsl.expected.ir.glsl b/test/tint/buffer/storage/types/mat3x3_f16.wgsl.expected.ir.glsl index 72ca17c..72e64db 100644 --- a/test/tint/buffer/storage/types/mat3x3_f16.wgsl.expected.ir.glsl +++ b/test/tint/buffer/storage/types/mat3x3_f16.wgsl.expected.ir.glsl
@@ -1,11 +1,14 @@ -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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 +f16mat3 tint_symbol; +f16mat3 tint_symbol_1; +void tint_store_and_preserve_padding(inout f16mat3 target, f16mat3 value_param) { + target[0u] = value_param[0u]; + target[1u] = value_param[1u]; + target[2u] = value_param[2u]; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + tint_store_and_preserve_padding(tint_symbol_1, tint_symbol); +}
diff --git a/test/tint/buffer/storage/types/mat3x3_f32.wgsl.expected.ir.glsl b/test/tint/buffer/storage/types/mat3x3_f32.wgsl.expected.ir.glsl index 72ca17c..2e1b50c 100644 --- a/test/tint/buffer/storage/types/mat3x3_f32.wgsl.expected.ir.glsl +++ b/test/tint/buffer/storage/types/mat3x3_f32.wgsl.expected.ir.glsl
@@ -1,11 +1,13 @@ -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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 +mat3 tint_symbol; +mat3 tint_symbol_1; +void tint_store_and_preserve_padding(inout mat3 target, mat3 value_param) { + target[0u] = value_param[0u]; + target[1u] = value_param[1u]; + target[2u] = value_param[2u]; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + tint_store_and_preserve_padding(tint_symbol_1, tint_symbol); +}
diff --git a/test/tint/buffer/storage/types/mat4x3_f16.wgsl.expected.ir.glsl b/test/tint/buffer/storage/types/mat4x3_f16.wgsl.expected.ir.glsl index 72ca17c..4fc0453 100644 --- a/test/tint/buffer/storage/types/mat4x3_f16.wgsl.expected.ir.glsl +++ b/test/tint/buffer/storage/types/mat4x3_f16.wgsl.expected.ir.glsl
@@ -1,11 +1,15 @@ -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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 +f16mat4x3 tint_symbol; +f16mat4x3 tint_symbol_1; +void tint_store_and_preserve_padding(inout f16mat4x3 target, f16mat4x3 value_param) { + target[0u] = value_param[0u]; + target[1u] = value_param[1u]; + target[2u] = value_param[2u]; + target[3u] = value_param[3u]; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + tint_store_and_preserve_padding(tint_symbol_1, tint_symbol); +}
diff --git a/test/tint/buffer/storage/types/mat4x3_f32.wgsl.expected.ir.glsl b/test/tint/buffer/storage/types/mat4x3_f32.wgsl.expected.ir.glsl index 72ca17c..c4240da 100644 --- a/test/tint/buffer/storage/types/mat4x3_f32.wgsl.expected.ir.glsl +++ b/test/tint/buffer/storage/types/mat4x3_f32.wgsl.expected.ir.glsl
@@ -1,11 +1,14 @@ -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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 +mat4x3 tint_symbol; +mat4x3 tint_symbol_1; +void tint_store_and_preserve_padding(inout mat4x3 target, mat4x3 value_param) { + target[0u] = value_param[0u]; + target[1u] = value_param[1u]; + target[2u] = value_param[2u]; + target[3u] = value_param[3u]; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + tint_store_and_preserve_padding(tint_symbol_1, tint_symbol); +}
diff --git a/test/tint/buffer/storage/types/struct_f16.wgsl.expected.ir.glsl b/test/tint/buffer/storage/types/struct_f16.wgsl.expected.ir.glsl index 72ca17c..913c168 100644 --- a/test/tint/buffer/storage/types/struct_f16.wgsl.expected.ir.glsl +++ b/test/tint/buffer/storage/types/struct_f16.wgsl.expected.ir.glsl
@@ -1,11 +1,28 @@ -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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct Inner { + float16_t scalar_f16; + f16vec3 vec3_f16; + f16mat2x4 mat2x4_f16; +}; -tint executable returned error: signal: illegal instruction +struct S { + Inner inner; +}; + +S tint_symbol; +S tint_symbol_1; +void tint_store_and_preserve_padding_1(inout Inner target, Inner value_param) { + target.scalar_f16 = value_param.scalar_f16; + target.vec3_f16 = value_param.vec3_f16; + target.mat2x4_f16 = value_param.mat2x4_f16; +} +void tint_store_and_preserve_padding(inout S target, S value_param) { + tint_store_and_preserve_padding_1(target.inner, value_param.inner); +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + S t = tint_symbol; + tint_store_and_preserve_padding(tint_symbol_1, t); +}
diff --git a/test/tint/buffer/storage/types/struct_f32.wgsl.expected.ir.glsl b/test/tint/buffer/storage/types/struct_f32.wgsl.expected.ir.glsl index 72ca17c..c5f4266 100644 --- a/test/tint/buffer/storage/types/struct_f32.wgsl.expected.ir.glsl +++ b/test/tint/buffer/storage/types/struct_f32.wgsl.expected.ir.glsl
@@ -1,11 +1,27 @@ -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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct Inner { + float scalar_f32; + vec3 vec3_f32; + mat2x4 mat2x4_f32; +}; -tint executable returned error: signal: illegal instruction +struct S { + Inner inner; +}; + +S tint_symbol; +S tint_symbol_1; +void tint_store_and_preserve_padding_1(inout Inner target, Inner value_param) { + target.scalar_f32 = value_param.scalar_f32; + target.vec3_f32 = value_param.vec3_f32; + target.mat2x4_f32 = value_param.mat2x4_f32; +} +void tint_store_and_preserve_padding(inout S target, S value_param) { + tint_store_and_preserve_padding_1(target.inner, value_param.inner); +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + S t = tint_symbol; + tint_store_and_preserve_padding(tint_symbol_1, t); +}
diff --git a/test/tint/buffer/uniform/types/mat2x3_f16.wgsl.expected.ir.glsl b/test/tint/buffer/uniform/types/mat2x3_f16.wgsl.expected.ir.glsl index 72ca17c..b18a662 100644 --- a/test/tint/buffer/uniform/types/mat2x3_f16.wgsl.expected.ir.glsl +++ b/test/tint/buffer/uniform/types/mat2x3_f16.wgsl.expected.ir.glsl
@@ -1,11 +1,14 @@ -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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 +uniform f16mat2x3 u; +f16mat2x3 s; +void tint_store_and_preserve_padding(inout f16mat2x3 target, f16mat2x3 value_param) { + target[0u] = value_param[0u]; + target[1u] = value_param[1u]; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + f16mat2x3 x = u; + tint_store_and_preserve_padding(s, x); +}
diff --git a/test/tint/buffer/uniform/types/mat2x3_f32.wgsl.expected.ir.glsl b/test/tint/buffer/uniform/types/mat2x3_f32.wgsl.expected.ir.glsl index 72ca17c..e82f91f 100644 --- a/test/tint/buffer/uniform/types/mat2x3_f32.wgsl.expected.ir.glsl +++ b/test/tint/buffer/uniform/types/mat2x3_f32.wgsl.expected.ir.glsl
@@ -1,11 +1,13 @@ -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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 +uniform mat2x3 u; +mat2x3 s; +void tint_store_and_preserve_padding(inout mat2x3 target, mat2x3 value_param) { + target[0u] = value_param[0u]; + target[1u] = value_param[1u]; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + mat2x3 x = u; + tint_store_and_preserve_padding(s, x); +}
diff --git a/test/tint/buffer/uniform/types/mat3x3_f16.wgsl.expected.ir.glsl b/test/tint/buffer/uniform/types/mat3x3_f16.wgsl.expected.ir.glsl index 72ca17c..815340c 100644 --- a/test/tint/buffer/uniform/types/mat3x3_f16.wgsl.expected.ir.glsl +++ b/test/tint/buffer/uniform/types/mat3x3_f16.wgsl.expected.ir.glsl
@@ -1,11 +1,15 @@ -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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 +uniform f16mat3 u; +f16mat3 s; +void tint_store_and_preserve_padding(inout f16mat3 target, f16mat3 value_param) { + target[0u] = value_param[0u]; + target[1u] = value_param[1u]; + target[2u] = value_param[2u]; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + f16mat3 x = u; + tint_store_and_preserve_padding(s, x); +}
diff --git a/test/tint/buffer/uniform/types/mat3x3_f32.wgsl.expected.ir.glsl b/test/tint/buffer/uniform/types/mat3x3_f32.wgsl.expected.ir.glsl index 72ca17c..ff33942 100644 --- a/test/tint/buffer/uniform/types/mat3x3_f32.wgsl.expected.ir.glsl +++ b/test/tint/buffer/uniform/types/mat3x3_f32.wgsl.expected.ir.glsl
@@ -1,11 +1,14 @@ -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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 +uniform mat3 u; +mat3 s; +void tint_store_and_preserve_padding(inout mat3 target, mat3 value_param) { + target[0u] = value_param[0u]; + target[1u] = value_param[1u]; + target[2u] = value_param[2u]; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + mat3 x = u; + tint_store_and_preserve_padding(s, x); +}
diff --git a/test/tint/buffer/uniform/types/mat4x3_f16.wgsl.expected.ir.glsl b/test/tint/buffer/uniform/types/mat4x3_f16.wgsl.expected.ir.glsl index 72ca17c..cb83818 100644 --- a/test/tint/buffer/uniform/types/mat4x3_f16.wgsl.expected.ir.glsl +++ b/test/tint/buffer/uniform/types/mat4x3_f16.wgsl.expected.ir.glsl
@@ -1,11 +1,16 @@ -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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 +uniform f16mat4x3 u; +f16mat4x3 s; +void tint_store_and_preserve_padding(inout f16mat4x3 target, f16mat4x3 value_param) { + target[0u] = value_param[0u]; + target[1u] = value_param[1u]; + target[2u] = value_param[2u]; + target[3u] = value_param[3u]; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + f16mat4x3 x = u; + tint_store_and_preserve_padding(s, x); +}
diff --git a/test/tint/buffer/uniform/types/mat4x3_f32.wgsl.expected.ir.glsl b/test/tint/buffer/uniform/types/mat4x3_f32.wgsl.expected.ir.glsl index 72ca17c..4528499 100644 --- a/test/tint/buffer/uniform/types/mat4x3_f32.wgsl.expected.ir.glsl +++ b/test/tint/buffer/uniform/types/mat4x3_f32.wgsl.expected.ir.glsl
@@ -1,11 +1,15 @@ -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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 +uniform mat4x3 u; +mat4x3 s; +void tint_store_and_preserve_padding(inout mat4x3 target, mat4x3 value_param) { + target[0u] = value_param[0u]; + target[1u] = value_param[1u]; + target[2u] = value_param[2u]; + target[3u] = value_param[3u]; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + mat4x3 x = u; + tint_store_and_preserve_padding(s, x); +}
diff --git a/test/tint/buffer/uniform/types/struct_f16.wgsl.expected.ir.glsl b/test/tint/buffer/uniform/types/struct_f16.wgsl.expected.ir.glsl index 72ca17c..9077225 100644 --- a/test/tint/buffer/uniform/types/struct_f16.wgsl.expected.ir.glsl +++ b/test/tint/buffer/uniform/types/struct_f16.wgsl.expected.ir.glsl
@@ -1,11 +1,28 @@ -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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct Inner { + float16_t scalar_f16; + f16vec3 vec3_f16; + f16mat2x4 mat2x4_f16; +}; -tint executable returned error: signal: illegal instruction +struct S { + Inner inner; +}; + +uniform S u; +S s; +void tint_store_and_preserve_padding_1(inout Inner target, Inner value_param) { + target.scalar_f16 = value_param.scalar_f16; + target.vec3_f16 = value_param.vec3_f16; + target.mat2x4_f16 = value_param.mat2x4_f16; +} +void tint_store_and_preserve_padding(inout S target, S value_param) { + tint_store_and_preserve_padding_1(target.inner, value_param.inner); +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + S x = u; + tint_store_and_preserve_padding(s, x); +}
diff --git a/test/tint/buffer/uniform/types/struct_f32.wgsl.expected.ir.glsl b/test/tint/buffer/uniform/types/struct_f32.wgsl.expected.ir.glsl index 72ca17c..49bb17e 100644 --- a/test/tint/buffer/uniform/types/struct_f32.wgsl.expected.ir.glsl +++ b/test/tint/buffer/uniform/types/struct_f32.wgsl.expected.ir.glsl
@@ -1,11 +1,27 @@ -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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct Inner { + float scalar_f32; + vec3 vec3_f32; + mat2x4 mat2x4_f32; +}; -tint executable returned error: signal: illegal instruction +struct S { + Inner inner; +}; + +uniform S u; +S s; +void tint_store_and_preserve_padding_1(inout Inner target, Inner value_param) { + target.scalar_f32 = value_param.scalar_f32; + target.vec3_f32 = value_param.vec3_f32; + target.mat2x4_f32 = value_param.mat2x4_f32; +} +void tint_store_and_preserve_padding(inout S target, S value_param) { + tint_store_and_preserve_padding_1(target.inner, value_param.inner); +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + S x = u; + tint_store_and_preserve_padding(s, x); +}
diff --git a/test/tint/bug/chromium/1345468.wgsl.expected.ir.glsl b/test/tint/bug/chromium/1345468.wgsl.expected.ir.glsl index 1e74e77..8843500 100644 --- a/test/tint/bug/chromium/1345468.wgsl.expected.ir.glsl +++ b/test/tint/bug/chromium/1345468.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::Access -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 +void f() { + int i = 1; + vec2 a = mat4x2(vec2(0.0f), vec2(0.0f), vec2(4.0f, 0.0f), vec2(0.0f))[i]; + int b = ivec2(0, 1)[i]; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { +}
diff --git a/test/tint/bug/chromium/1442551.wgsl.expected.ir.glsl b/test/tint/bug/chromium/1442551.wgsl.expected.ir.glsl index 1e74e77..8b5a970 100644 --- a/test/tint/bug/chromium/1442551.wgsl.expected.ir.glsl +++ b/test/tint/bug/chromium/1442551.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::Access -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 +void f() { + int i = 1; + int b = ivec2(1, 2)[i]; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { +}
diff --git a/test/tint/bug/fxc/dyn_array_idx/read/function.wgsl.expected.ir.glsl b/test/tint/bug/fxc/dyn_array_idx/read/function.wgsl.expected.ir.glsl index d4bb1c9..7f748b2 100644 --- a/test/tint/bug/fxc/dyn_array_idx/read/function.wgsl.expected.ir.glsl +++ b/test/tint/bug/fxc/dyn_array_idx/read/function.wgsl.expected.ir.glsl
@@ -1,11 +1,21 @@ -SKIP: FAILED +#version 310 es -<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:252 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct UBO { + int dynamic_idx; +}; -tint executable returned error: signal: illegal instruction +struct Result { + int tint_symbol; +}; + +struct S { + int data[64]; +}; + +uniform UBO ubo; +Result result; +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + S s = S(int[64](0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)); + result.tint_symbol = s.data[ubo.dynamic_idx]; +}
diff --git a/test/tint/bug/fxc/dyn_array_idx/read/private.wgsl.expected.ir.glsl b/test/tint/bug/fxc/dyn_array_idx/read/private.wgsl.expected.ir.glsl index d4bb1c9..e533e4b 100644 --- a/test/tint/bug/fxc/dyn_array_idx/read/private.wgsl.expected.ir.glsl +++ b/test/tint/bug/fxc/dyn_array_idx/read/private.wgsl.expected.ir.glsl
@@ -1,11 +1,21 @@ -SKIP: FAILED +#version 310 es -<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:252 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct UBO { + int dynamic_idx; +}; -tint executable returned error: signal: illegal instruction +struct Result { + int tint_symbol; +}; + +struct S { + int data[64]; +}; + +uniform UBO ubo; +Result result; +S s = S(int[64](0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)); +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + result.tint_symbol = s.data[ubo.dynamic_idx]; +}
diff --git a/test/tint/bug/fxc/dyn_array_idx/read/storage.wgsl.expected.ir.glsl b/test/tint/bug/fxc/dyn_array_idx/read/storage.wgsl.expected.ir.glsl index d4bb1c9..dff4101 100644 --- a/test/tint/bug/fxc/dyn_array_idx/read/storage.wgsl.expected.ir.glsl +++ b/test/tint/bug/fxc/dyn_array_idx/read/storage.wgsl.expected.ir.glsl
@@ -1,11 +1,21 @@ -SKIP: FAILED +#version 310 es -<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:252 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct UBO { + int dynamic_idx; +}; -tint executable returned error: signal: illegal instruction +struct Result { + int tint_symbol; +}; + +struct SSBO { + int data[4]; +}; + +uniform UBO ubo; +Result result; +SSBO ssbo; +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + result.tint_symbol = ssbo.data[ubo.dynamic_idx]; +}
diff --git a/test/tint/bug/fxc/dyn_array_idx/write/function.wgsl.expected.ir.glsl b/test/tint/bug/fxc/dyn_array_idx/write/function.wgsl.expected.ir.glsl index d4bb1c9..1a1b227 100644 --- a/test/tint/bug/fxc/dyn_array_idx/write/function.wgsl.expected.ir.glsl +++ b/test/tint/bug/fxc/dyn_array_idx/write/function.wgsl.expected.ir.glsl
@@ -1,11 +1,22 @@ -SKIP: FAILED +#version 310 es -<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:252 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct UBO { + int dynamic_idx; +}; -tint executable returned error: signal: illegal instruction +struct Result { + int tint_symbol; +}; + +struct S { + int data[64]; +}; + +uniform UBO ubo; +Result result; +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + S s = S(int[64](0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)); + s.data[ubo.dynamic_idx] = 1; + result.tint_symbol = s.data[3]; +}
diff --git a/test/tint/bug/fxc/dyn_array_idx/write/function_via_param.wgsl.expected.ir.glsl b/test/tint/bug/fxc/dyn_array_idx/write/function_via_param.wgsl.expected.ir.glsl index d4bb1c9..266b970 100644 --- a/test/tint/bug/fxc/dyn_array_idx/write/function_via_param.wgsl.expected.ir.glsl +++ b/test/tint/bug/fxc/dyn_array_idx/write/function_via_param.wgsl.expected.ir.glsl
@@ -1,11 +1,25 @@ -SKIP: FAILED +#version 310 es -<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:252 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct UBO { + int dynamic_idx; +}; -tint executable returned error: signal: illegal instruction +struct Result { + int tint_symbol; +}; + +struct S { + int data[64]; +}; + +uniform UBO ubo; +Result result; +void x(inout S p) { + p.data[ubo.dynamic_idx] = 1; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + S s = S(int[64](0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)); + x(s); + result.tint_symbol = s.data[3]; +}
diff --git a/test/tint/bug/fxc/dyn_array_idx/write/private.wgsl.expected.ir.glsl b/test/tint/bug/fxc/dyn_array_idx/write/private.wgsl.expected.ir.glsl index d4bb1c9..54e294e 100644 --- a/test/tint/bug/fxc/dyn_array_idx/write/private.wgsl.expected.ir.glsl +++ b/test/tint/bug/fxc/dyn_array_idx/write/private.wgsl.expected.ir.glsl
@@ -1,11 +1,22 @@ -SKIP: FAILED +#version 310 es -<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:252 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct UBO { + int dynamic_idx; +}; -tint executable returned error: signal: illegal instruction +struct Result { + int tint_symbol; +}; + +struct S { + int data[64]; +}; + +uniform UBO ubo; +Result result; +S s = S(int[64](0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)); +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + s.data[ubo.dynamic_idx] = 1; + result.tint_symbol = s.data[3]; +}
diff --git a/test/tint/bug/fxc/dyn_array_idx/write/private_via_param.wgsl.expected.ir.glsl b/test/tint/bug/fxc/dyn_array_idx/write/private_via_param.wgsl.expected.ir.glsl index d4bb1c9..c4c2296 100644 --- a/test/tint/bug/fxc/dyn_array_idx/write/private_via_param.wgsl.expected.ir.glsl +++ b/test/tint/bug/fxc/dyn_array_idx/write/private_via_param.wgsl.expected.ir.glsl
@@ -1,11 +1,25 @@ -SKIP: FAILED +#version 310 es -<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:252 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct UBO { + int dynamic_idx; +}; -tint executable returned error: signal: illegal instruction +struct Result { + int tint_symbol; +}; + +struct S { + int data[64]; +}; + +uniform UBO ubo; +Result result; +S s = S(int[64](0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)); +void x(inout S p) { + p.data[ubo.dynamic_idx] = 1; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + x(s); + result.tint_symbol = s.data[3]; +}
diff --git a/test/tint/bug/fxc/dyn_array_idx/write/storage.wgsl.expected.ir.glsl b/test/tint/bug/fxc/dyn_array_idx/write/storage.wgsl.expected.ir.glsl index d4bb1c9..a36f8c6 100644 --- a/test/tint/bug/fxc/dyn_array_idx/write/storage.wgsl.expected.ir.glsl +++ b/test/tint/bug/fxc/dyn_array_idx/write/storage.wgsl.expected.ir.glsl
@@ -1,11 +1,22 @@ -SKIP: FAILED +#version 310 es -<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:252 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct UBO { + int dynamic_idx; +}; -tint executable returned error: signal: illegal instruction +struct Result { + int tint_symbol; +}; + +struct SSBO { + int data[4]; +}; + +uniform UBO ubo; +Result result; +SSBO ssbo; +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + ssbo.data[ubo.dynamic_idx] = 1; + result.tint_symbol = ssbo.data[3]; +}
diff --git a/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_vector.wgsl.expected.ir.glsl b/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_vector.wgsl.expected.ir.glsl index d4bb1c9..e1a17ed 100644 --- a/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_vector.wgsl.expected.ir.glsl +++ b/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_vector.wgsl.expected.ir.glsl
@@ -1,11 +1,13 @@ -SKIP: FAILED +#version 310 es -<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:252 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct Uniforms { + uint i; + uint j; +}; -tint executable returned error: signal: illegal instruction +uniform Uniforms uniforms; +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + mat2x4 m1 = mat2x4(vec4(0.0f), vec4(0.0f)); + m1[uniforms.i] = vec4(1.0f); +}
diff --git a/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_vector.wgsl.expected.ir.glsl b/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_vector.wgsl.expected.ir.glsl index d4bb1c9..79c183c 100644 --- a/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_vector.wgsl.expected.ir.glsl +++ b/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_vector.wgsl.expected.ir.glsl
@@ -1,11 +1,13 @@ -SKIP: FAILED +#version 310 es -<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:252 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct Uniforms { + uint i; + uint j; +}; -tint executable returned error: signal: illegal instruction +uniform Uniforms uniforms; +mat2x4 m1 = mat2x4(vec4(0.0f), vec4(0.0f)); +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + m1[uniforms.i] = vec4(1.0f); +}
diff --git a/test/tint/bug/tint/1136.wgsl.expected.ir.glsl b/test/tint/bug/tint/1136.wgsl.expected.ir.glsl index d4bb1c9..53a5bafd 100644 --- a/test/tint/bug/tint/1136.wgsl.expected.ir.glsl +++ b/test/tint/bug/tint/1136.wgsl.expected.ir.glsl
@@ -1,11 +1,13 @@ -SKIP: FAILED +#version 310 es -<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:252 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct Buffer { + uint data; +}; -tint executable returned error: signal: illegal instruction +Buffer tint_symbol; +void tint_symbol_1() { + tint_symbol.data = (tint_symbol.data + 1u); +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { +}
diff --git a/test/tint/bug/tint/1542.wgsl.expected.ir.glsl b/test/tint/bug/tint/1542.wgsl.expected.ir.glsl index ae9b6d0..90a054e 100644 --- a/test/tint/bug/tint/1542.wgsl.expected.ir.glsl +++ b/test/tint/bug/tint/1542.wgsl.expected.ir.glsl
@@ -1,11 +1,11 @@ -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. * -******************************************************************** +struct UniformBuffer { + ivec3 d; +}; -tint executable returned error: signal: illegal instruction +uniform UniformBuffer u_input; +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + ivec3 temp = (u_input.d << (uvec3(0u) & uvec3(31u))); +}
diff --git a/test/tint/bug/tint/1737.wgsl.expected.ir.glsl b/test/tint/bug/tint/1737.wgsl.expected.ir.glsl index 72ca17c..cb0e2ed 100644 --- a/test/tint/bug/tint/1737.wgsl.expected.ir.glsl +++ b/test/tint/bug/tint/1737.wgsl.expected.ir.glsl
@@ -1,11 +1,11 @@ -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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 +float a[10]; +float b[20]; +void f() { + float x = a[0]; + float y = b[0]; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { +}
diff --git a/test/tint/bug/tint/1934.wgsl.expected.ir.glsl b/test/tint/bug/tint/1934.wgsl.expected.ir.glsl index 1e74e77..1d0633e 100644 --- a/test/tint/bug/tint/1934.wgsl.expected.ir.glsl +++ b/test/tint/bug/tint/1934.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::Access -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 +void v() { + int i = 1; + int b = ivec2(1)[i]; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { +}
diff --git a/test/tint/bug/tint/2237.wgsl.expected.ir.glsl b/test/tint/bug/tint/2237.wgsl.expected.ir.glsl index 1e74e77..130260d 100644 --- a/test/tint/bug/tint/2237.wgsl.expected.ir.glsl +++ b/test/tint/bug/tint/2237.wgsl.expected.ir.glsl
@@ -1,11 +1,11 @@ -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::Access -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 +uint tint_symbol; +uint foo() { + return uint[4](0u, 1u, 2u, 4u)[tint_symbol]; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + uint v = uint[4](0u, 1u, 2u, 4u)[tint_symbol]; + tint_symbol = (v + foo()); +}
diff --git a/test/tint/bug/tint/764.wgsl.expected.ir.glsl b/test/tint/bug/tint/764.wgsl.expected.ir.glsl index 1e74e77..8baa603 100644 --- a/test/tint/bug/tint/764.wgsl.expected.ir.glsl +++ b/test/tint/bug/tint/764.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::Access -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 +void f() { + mat4 m = mat4(vec4(1.0f), vec4(1.0f), vec4(1.0f), vec4(1.0f)); + vec4 v1 = m[0]; + float a = v1[0]; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { +}
diff --git a/test/tint/bug/tint/825.wgsl.expected.ir.glsl b/test/tint/bug/tint/825.wgsl.expected.ir.glsl index 1e74e77..1e8fbe6 100644 --- a/test/tint/bug/tint/825.wgsl.expected.ir.glsl +++ b/test/tint/bug/tint/825.wgsl.expected.ir.glsl
@@ -1,11 +1,11 @@ -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::Access -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 +void f() { + int i = 0; + int j = 0; + mat2 m = mat2(vec2(1.0f, 2.0f), vec2(3.0f, 4.0f)); + float f_1 = m[i][j]; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { +}
diff --git a/test/tint/bug/tint/998.wgsl.expected.ir.glsl b/test/tint/bug/tint/998.wgsl.expected.ir.glsl index d4bb1c9..9ce5373 100644 --- a/test/tint/bug/tint/998.wgsl.expected.ir.glsl +++ b/test/tint/bug/tint/998.wgsl.expected.ir.glsl
@@ -1,11 +1,21 @@ -SKIP: FAILED +#version 310 es -<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:252 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct Constants { + uint zero; +}; -tint executable returned error: signal: illegal instruction +struct Result { + uint value; +}; + +struct S { + uint data[3]; +}; + +uniform Constants constants; +Result result; +S s = S(uint[3](0u, 0u, 0u)); +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + s.data[constants.zero] = 0u; +}
diff --git a/test/tint/builtins/frexp.wgsl.expected.ir.glsl b/test/tint/builtins/frexp.wgsl.expected.ir.glsl index 1e74e77..e67c0ce 100644 --- a/test/tint/builtins/frexp.wgsl.expected.ir.glsl +++ b/test/tint/builtins/frexp.wgsl.expected.ir.glsl
@@ -1,11 +1,13 @@ -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::Access -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct frexp_result_f32 { + float fract; + int exp; +}; -tint executable returned error: signal: illegal instruction +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + frexp_result_f32 res = frexp_result_f32(0.61500000953674316406f, 1); + int tint_symbol_1 = res.exp; + float tint_symbol_2 = res.fract; +}
diff --git a/test/tint/builtins/frexp/scalar/const.wgsl.expected.ir.glsl b/test/tint/builtins/frexp/scalar/const.wgsl.expected.ir.glsl index 1e74e77..b4f8e66 100644 --- a/test/tint/builtins/frexp/scalar/const.wgsl.expected.ir.glsl +++ b/test/tint/builtins/frexp/scalar/const.wgsl.expected.ir.glsl
@@ -1,11 +1,13 @@ -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::Access -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct frexp_result_f32 { + float fract; + int exp; +}; -tint executable returned error: signal: illegal instruction +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + frexp_result_f32 res = frexp_result_f32(0.625f, 1); + float tint_symbol_2 = res.fract; + int tint_symbol_3 = res.exp; +}
diff --git a/test/tint/builtins/frexp/vector/const.wgsl.expected.ir.glsl b/test/tint/builtins/frexp/vector/const.wgsl.expected.ir.glsl index 1e74e77..8be4b60 100644 --- a/test/tint/builtins/frexp/vector/const.wgsl.expected.ir.glsl +++ b/test/tint/builtins/frexp/vector/const.wgsl.expected.ir.glsl
@@ -1,11 +1,13 @@ -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::Access -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct frexp_result_vec2_f32 { + vec2 fract; + ivec2 exp; +}; -tint executable returned error: signal: illegal instruction +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + frexp_result_vec2_f32 res = frexp_result_vec2_f32(vec2(0.625f, 0.9375f), ivec2(1, 2)); + vec2 tint_symbol_2 = res.fract; + ivec2 tint_symbol_3 = res.exp; +}
diff --git a/test/tint/builtins/modf/scalar/const.wgsl.expected.ir.glsl b/test/tint/builtins/modf/scalar/const.wgsl.expected.ir.glsl index 1e74e77..fdb66f3 100644 --- a/test/tint/builtins/modf/scalar/const.wgsl.expected.ir.glsl +++ b/test/tint/builtins/modf/scalar/const.wgsl.expected.ir.glsl
@@ -1,11 +1,13 @@ -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::Access -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct modf_result_f32 { + float fract; + float whole; +}; -tint executable returned error: signal: illegal instruction +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + modf_result_f32 res = modf_result_f32(0.25f, 1.0f); + float tint_symbol_2 = res.fract; + float whole = res.whole; +}
diff --git a/test/tint/builtins/modf/vector/const.wgsl.expected.ir.glsl b/test/tint/builtins/modf/vector/const.wgsl.expected.ir.glsl index 1e74e77..d415b7f 100644 --- a/test/tint/builtins/modf/vector/const.wgsl.expected.ir.glsl +++ b/test/tint/builtins/modf/vector/const.wgsl.expected.ir.glsl
@@ -1,11 +1,13 @@ -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::Access -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct modf_result_vec2_f32 { + vec2 fract; + vec2 whole; +}; -tint executable returned error: signal: illegal instruction +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + modf_result_vec2_f32 res = modf_result_vec2_f32(vec2(0.25f, 0.75f), vec2(1.0f, 3.0f)); + vec2 tint_symbol_2 = res.fract; + vec2 whole = res.whole; +}
diff --git a/test/tint/expressions/binary/mul/mat3x2-vec3/f16.wgsl.expected.ir.glsl b/test/tint/expressions/binary/mul/mat3x2-vec3/f16.wgsl.expected.ir.glsl index ae9b6d0..4a128fb 100644 --- a/test/tint/expressions/binary/mul/mat3x2-vec3/f16.wgsl.expected.ir.glsl +++ b/test/tint/expressions/binary/mul/mat3x2-vec3/f16.wgsl.expected.ir.glsl
@@ -1,11 +1,15 @@ -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. * -******************************************************************** +struct S { + f16mat3x2 matrix; + f16vec3 vector; +}; +precision highp float; +precision highp int; -tint executable returned error: signal: illegal instruction + +uniform S data; +void main() { + f16vec2 x = (data.matrix * data.vector); +}
diff --git a/test/tint/expressions/binary/mul/mat3x3-vec3/f16.wgsl.expected.ir.glsl b/test/tint/expressions/binary/mul/mat3x3-vec3/f16.wgsl.expected.ir.glsl index ae9b6d0..f216af5 100644 --- a/test/tint/expressions/binary/mul/mat3x3-vec3/f16.wgsl.expected.ir.glsl +++ b/test/tint/expressions/binary/mul/mat3x3-vec3/f16.wgsl.expected.ir.glsl
@@ -1,11 +1,15 @@ -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. * -******************************************************************** +struct S { + f16mat3 matrix; + f16vec3 vector; +}; +precision highp float; +precision highp int; -tint executable returned error: signal: illegal instruction + +uniform S data; +void main() { + f16vec3 x = (data.matrix * data.vector); +}
diff --git a/test/tint/expressions/binary/mul/vec3-mat3x3/f16.wgsl.expected.ir.glsl b/test/tint/expressions/binary/mul/vec3-mat3x3/f16.wgsl.expected.ir.glsl index ae9b6d0..8a20df1 100644 --- a/test/tint/expressions/binary/mul/vec3-mat3x3/f16.wgsl.expected.ir.glsl +++ b/test/tint/expressions/binary/mul/vec3-mat3x3/f16.wgsl.expected.ir.glsl
@@ -1,11 +1,15 @@ -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. * -******************************************************************** +struct S { + f16mat3 matrix; + f16vec3 vector; +}; +precision highp float; +precision highp int; -tint executable returned error: signal: illegal instruction + +uniform S data; +void main() { + f16vec3 x = (data.vector * data.matrix); +}
diff --git a/test/tint/expressions/binary/mul/vec3-mat4x3/f16.wgsl.expected.ir.glsl b/test/tint/expressions/binary/mul/vec3-mat4x3/f16.wgsl.expected.ir.glsl index ae9b6d0..ee391b1 100644 --- a/test/tint/expressions/binary/mul/vec3-mat4x3/f16.wgsl.expected.ir.glsl +++ b/test/tint/expressions/binary/mul/vec3-mat4x3/f16.wgsl.expected.ir.glsl
@@ -1,11 +1,15 @@ -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. * -******************************************************************** +struct S { + f16mat4x3 matrix; + f16vec3 vector; +}; +precision highp float; +precision highp int; -tint executable returned error: signal: illegal instruction + +uniform S data; +void main() { + f16vec4 x = (data.vector * data.matrix); +}
diff --git a/test/tint/expressions/index/let/array_nested_struct.wgsl.expected.ir.glsl b/test/tint/expressions/index/let/array_nested_struct.wgsl.expected.ir.glsl index 1e74e77..936cd36 100644 --- a/test/tint/expressions/index/let/array_nested_struct.wgsl.expected.ir.glsl +++ b/test/tint/expressions/index/let/array_nested_struct.wgsl.expected.ir.glsl
@@ -1,11 +1,14 @@ -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::Access -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct S { + int m; + uint n[4]; +}; -tint executable returned error: signal: illegal instruction +uint f() { + S a[2] = S[2](S(0, uint[4](0u, 0u, 0u, 0u)), S(0, uint[4](0u, 0u, 0u, 0u))); + return a[1].n[1]; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { +}
diff --git a/test/tint/expressions/index/let/let/literal/array.wgsl.expected.ir.glsl b/test/tint/expressions/index/let/let/literal/array.wgsl.expected.ir.glsl index 1e74e77..95de7b1 100644 --- a/test/tint/expressions/index/let/let/literal/array.wgsl.expected.ir.glsl +++ b/test/tint/expressions/index/let/let/literal/array.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::Access -******************************************************************** -* The tint shader compiler has encountered an unexpected 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[8] = int[8](1, 2, 3, 4, 5, 6, 7, 8); + int i = 1; + return a[i]; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { +}
diff --git a/test/tint/expressions/index/let/let/literal/matrix.wgsl.expected.ir.glsl b/test/tint/expressions/index/let/let/literal/matrix.wgsl.expected.ir.glsl index 1e74e77..a2f275f 100644 --- a/test/tint/expressions/index/let/let/literal/matrix.wgsl.expected.ir.glsl +++ b/test/tint/expressions/index/let/let/literal/matrix.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::Access -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 +vec3 f() { + mat3 m = mat3(vec3(1.0f, 2.0f, 3.0f), vec3(4.0f, 5.0f, 6.0f), vec3(7.0f, 8.0f, 9.0f)); + int i = 1; + return m[i]; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { +}
diff --git a/test/tint/expressions/index/let/let/literal/vector.wgsl.expected.ir.glsl b/test/tint/expressions/index/let/let/literal/vector.wgsl.expected.ir.glsl index 1e74e77..b6cfdca 100644 --- a/test/tint/expressions/index/let/let/literal/vector.wgsl.expected.ir.glsl +++ b/test/tint/expressions/index/let/let/literal/vector.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::Access -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 +float f() { + vec3 v = vec3(1.0f, 2.0f, 3.0f); + int i = 1; + return v[i]; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { +}
diff --git a/test/tint/expressions/index/let/let/param/array.wgsl.expected.ir.glsl b/test/tint/expressions/index/let/let/param/array.wgsl.expected.ir.glsl index 1e74e77..4938464 100644 --- a/test/tint/expressions/index/let/let/param/array.wgsl.expected.ir.glsl +++ b/test/tint/expressions/index/let/let/param/array.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::Access -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 x) { + int a[8] = int[8](1, 2, 3, 4, 5, 6, 7, 8); + int i = x; + return a[i]; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { +}
diff --git a/test/tint/expressions/index/let/let/param/matrix.wgsl.expected.ir.glsl b/test/tint/expressions/index/let/let/param/matrix.wgsl.expected.ir.glsl index 1e74e77..16b363c 100644 --- a/test/tint/expressions/index/let/let/param/matrix.wgsl.expected.ir.glsl +++ b/test/tint/expressions/index/let/let/param/matrix.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::Access -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 +vec3 f(int x) { + mat3 m = mat3(vec3(1.0f, 2.0f, 3.0f), vec3(4.0f, 5.0f, 6.0f), vec3(7.0f, 8.0f, 9.0f)); + int i = x; + return m[i]; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { +}
diff --git a/test/tint/expressions/index/let/let/param/vector.wgsl.expected.ir.glsl b/test/tint/expressions/index/let/let/param/vector.wgsl.expected.ir.glsl index 1e74e77..69600ec 100644 --- a/test/tint/expressions/index/let/let/param/vector.wgsl.expected.ir.glsl +++ b/test/tint/expressions/index/let/let/param/vector.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::Access -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 +float f(int x) { + vec3 v = vec3(1.0f, 2.0f, 3.0f); + int i = x; + return v[i]; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { +}
diff --git a/test/tint/expressions/index/let/literal/array.wgsl.expected.ir.glsl b/test/tint/expressions/index/let/literal/array.wgsl.expected.ir.glsl index 1e74e77..d31d251 100644 --- a/test/tint/expressions/index/let/literal/array.wgsl.expected.ir.glsl +++ b/test/tint/expressions/index/let/literal/array.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::Access -******************************************************************** -* The tint shader compiler has encountered an unexpected 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[8] = int[8](1, 2, 3, 4, 5, 6, 7, 8); + return a[1]; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { +}
diff --git a/test/tint/expressions/index/let/literal/matrix.wgsl.expected.ir.glsl b/test/tint/expressions/index/let/literal/matrix.wgsl.expected.ir.glsl index 1e74e77..9f05a7f 100644 --- a/test/tint/expressions/index/let/literal/matrix.wgsl.expected.ir.glsl +++ b/test/tint/expressions/index/let/literal/matrix.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::Access -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 +vec3 f() { + mat3 m = mat3(vec3(1.0f, 2.0f, 3.0f), vec3(4.0f, 5.0f, 6.0f), vec3(7.0f, 8.0f, 9.0f)); + return m[1]; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { +}
diff --git a/test/tint/expressions/index/let/literal/vector.wgsl.expected.ir.glsl b/test/tint/expressions/index/let/literal/vector.wgsl.expected.ir.glsl index 1e74e77..0abf8a1 100644 --- a/test/tint/expressions/index/let/literal/vector.wgsl.expected.ir.glsl +++ b/test/tint/expressions/index/let/literal/vector.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::Access -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 +float f() { + vec3 v = vec3(1.0f, 2.0f, 3.0f); + return v[1]; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { +}
diff --git a/test/tint/expressions/index/let/param/array.wgsl.expected.ir.glsl b/test/tint/expressions/index/let/param/array.wgsl.expected.ir.glsl index 1e74e77..547232f 100644 --- a/test/tint/expressions/index/let/param/array.wgsl.expected.ir.glsl +++ b/test/tint/expressions/index/let/param/array.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::Access -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 i) { + int a[8] = int[8](1, 2, 3, 4, 5, 6, 7, 8); + return a[i]; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { +}
diff --git a/test/tint/expressions/index/let/param/matrix.wgsl.expected.ir.glsl b/test/tint/expressions/index/let/param/matrix.wgsl.expected.ir.glsl index 1e74e77..04e225a 100644 --- a/test/tint/expressions/index/let/param/matrix.wgsl.expected.ir.glsl +++ b/test/tint/expressions/index/let/param/matrix.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::Access -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 +vec3 f(int i) { + mat3 m = mat3(vec3(1.0f, 2.0f, 3.0f), vec3(4.0f, 5.0f, 6.0f), vec3(7.0f, 8.0f, 9.0f)); + return m[i]; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { +}
diff --git a/test/tint/expressions/index/let/param/vector.wgsl.expected.ir.glsl b/test/tint/expressions/index/let/param/vector.wgsl.expected.ir.glsl index 1e74e77..9ad3700 100644 --- a/test/tint/expressions/index/let/param/vector.wgsl.expected.ir.glsl +++ b/test/tint/expressions/index/let/param/vector.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::Access -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 +float f(int i) { + vec3 v = vec3(1.0f, 2.0f, 3.0f); + return v[i]; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { +}
diff --git a/test/tint/expressions/index/let/struct.wgsl.expected.ir.glsl b/test/tint/expressions/index/let/struct.wgsl.expected.ir.glsl index 1e74e77..b96b5b2 100644 --- a/test/tint/expressions/index/let/struct.wgsl.expected.ir.glsl +++ b/test/tint/expressions/index/let/struct.wgsl.expected.ir.glsl
@@ -1,11 +1,14 @@ -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::Access -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct S { + int m; + uint n; +}; -tint executable returned error: signal: illegal instruction +uint f() { + S a = S(0, 0u); + return a.n; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { +}
diff --git a/test/tint/expressions/index/let/struct_nested_array.wgsl.expected.ir.glsl b/test/tint/expressions/index/let/struct_nested_array.wgsl.expected.ir.glsl index 1e74e77..c269d8d 100644 --- a/test/tint/expressions/index/let/struct_nested_array.wgsl.expected.ir.glsl +++ b/test/tint/expressions/index/let/struct_nested_array.wgsl.expected.ir.glsl
@@ -1,11 +1,14 @@ -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::Access -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct S { + int m; + uint n[4]; +}; -tint executable returned error: signal: illegal instruction +uint f() { + S a = S(0, uint[4](0u, 0u, 0u, 0u)); + return a.n[2]; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { +}
diff --git a/test/tint/expressions/index/let/struct_nested_multiple.wgsl.expected.ir.glsl b/test/tint/expressions/index/let/struct_nested_multiple.wgsl.expected.ir.glsl index 1e74e77..49af430 100644 --- a/test/tint/expressions/index/let/struct_nested_multiple.wgsl.expected.ir.glsl +++ b/test/tint/expressions/index/let/struct_nested_multiple.wgsl.expected.ir.glsl
@@ -1,11 +1,18 @@ -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::Access -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct T { + uint k[2]; +}; -tint executable returned error: signal: illegal instruction +struct S { + int m; + T n[4]; +}; + +uint f() { + S a = S(0, T[4](T(uint[2](0u, 0u)), T(uint[2](0u, 0u)), T(uint[2](0u, 0u)), T(uint[2](0u, 0u)))); + return a.n[2].k[1]; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { +}
diff --git a/test/tint/expressions/index/let/struct_nested_struct.wgsl.expected.ir.glsl b/test/tint/expressions/index/let/struct_nested_struct.wgsl.expected.ir.glsl index 1e74e77..264b2ed 100644 --- a/test/tint/expressions/index/let/struct_nested_struct.wgsl.expected.ir.glsl +++ b/test/tint/expressions/index/let/struct_nested_struct.wgsl.expected.ir.glsl
@@ -1,11 +1,19 @@ -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::Access -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct T { + float o; + uint p; +}; -tint executable returned error: signal: illegal instruction +struct S { + int m; + T n; +}; + +uint f() { + S a = S(0, T(0.0f, 0u)); + return a.n.p; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { +}
diff --git a/test/tint/expressions/index/let/struct_with_matrix.wgsl.expected.ir.glsl b/test/tint/expressions/index/let/struct_with_matrix.wgsl.expected.ir.glsl index 1e74e77..626ddf7 100644 --- a/test/tint/expressions/index/let/struct_with_matrix.wgsl.expected.ir.glsl +++ b/test/tint/expressions/index/let/struct_with_matrix.wgsl.expected.ir.glsl
@@ -1,11 +1,14 @@ -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::Access -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct S { + int m; + mat4 n; +}; -tint executable returned error: signal: illegal instruction +float f() { + S a = S(0, mat4(vec4(0.0f), vec4(0.0f), vec4(0.0f), vec4(0.0f))); + return a.n[2][1]; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { +}
diff --git a/test/tint/expressions/index/let/struct_with_vector.wgsl.expected.ir.glsl b/test/tint/expressions/index/let/struct_with_vector.wgsl.expected.ir.glsl index 1e74e77..47ba62a 100644 --- a/test/tint/expressions/index/let/struct_with_vector.wgsl.expected.ir.glsl +++ b/test/tint/expressions/index/let/struct_with_vector.wgsl.expected.ir.glsl
@@ -1,11 +1,14 @@ -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::Access -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct S { + int m; + uvec3 n; +}; -tint executable returned error: signal: illegal instruction +uint f() { + S a = S(0, uvec3(0u)); + return a.n[2]; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { +}
diff --git a/test/tint/expressions/index/let/var/literal/array.wgsl.expected.ir.glsl b/test/tint/expressions/index/let/var/literal/array.wgsl.expected.ir.glsl index 1e74e77..95de7b1 100644 --- a/test/tint/expressions/index/let/var/literal/array.wgsl.expected.ir.glsl +++ b/test/tint/expressions/index/let/var/literal/array.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::Access -******************************************************************** -* The tint shader compiler has encountered an unexpected 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[8] = int[8](1, 2, 3, 4, 5, 6, 7, 8); + int i = 1; + return a[i]; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { +}
diff --git a/test/tint/expressions/index/let/var/literal/matrix.wgsl.expected.ir.glsl b/test/tint/expressions/index/let/var/literal/matrix.wgsl.expected.ir.glsl index 1e74e77..a2f275f 100644 --- a/test/tint/expressions/index/let/var/literal/matrix.wgsl.expected.ir.glsl +++ b/test/tint/expressions/index/let/var/literal/matrix.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::Access -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 +vec3 f() { + mat3 m = mat3(vec3(1.0f, 2.0f, 3.0f), vec3(4.0f, 5.0f, 6.0f), vec3(7.0f, 8.0f, 9.0f)); + int i = 1; + return m[i]; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { +}
diff --git a/test/tint/expressions/index/let/var/literal/vector.wgsl.expected.ir.glsl b/test/tint/expressions/index/let/var/literal/vector.wgsl.expected.ir.glsl index 1e74e77..b6cfdca 100644 --- a/test/tint/expressions/index/let/var/literal/vector.wgsl.expected.ir.glsl +++ b/test/tint/expressions/index/let/var/literal/vector.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::Access -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 +float f() { + vec3 v = vec3(1.0f, 2.0f, 3.0f); + int i = 1; + return v[i]; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { +}
diff --git a/test/tint/expressions/index/var/array_nested_struct.wgsl.expected.ir.glsl b/test/tint/expressions/index/var/array_nested_struct.wgsl.expected.ir.glsl index 72ca17c..936cd36 100644 --- a/test/tint/expressions/index/var/array_nested_struct.wgsl.expected.ir.glsl +++ b/test/tint/expressions/index/var/array_nested_struct.wgsl.expected.ir.glsl
@@ -1,11 +1,14 @@ -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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct S { + int m; + uint n[4]; +}; -tint executable returned error: signal: illegal instruction +uint f() { + S a[2] = S[2](S(0, uint[4](0u, 0u, 0u, 0u)), S(0, uint[4](0u, 0u, 0u, 0u))); + return a[1].n[1]; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { +}
diff --git a/test/tint/expressions/index/var/let/literal/array.wgsl.expected.ir.glsl b/test/tint/expressions/index/var/let/literal/array.wgsl.expected.ir.glsl index 72ca17c..95de7b1 100644 --- a/test/tint/expressions/index/var/let/literal/array.wgsl.expected.ir.glsl +++ b/test/tint/expressions/index/var/let/literal/array.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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected 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[8] = int[8](1, 2, 3, 4, 5, 6, 7, 8); + int i = 1; + return a[i]; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { +}
diff --git a/test/tint/expressions/index/var/let/literal/matrix.wgsl.expected.ir.glsl b/test/tint/expressions/index/var/let/literal/matrix.wgsl.expected.ir.glsl index 72ca17c..a2f275f 100644 --- a/test/tint/expressions/index/var/let/literal/matrix.wgsl.expected.ir.glsl +++ b/test/tint/expressions/index/var/let/literal/matrix.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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 +vec3 f() { + mat3 m = mat3(vec3(1.0f, 2.0f, 3.0f), vec3(4.0f, 5.0f, 6.0f), vec3(7.0f, 8.0f, 9.0f)); + int i = 1; + return m[i]; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { +}
diff --git a/test/tint/expressions/index/var/let/param/array.wgsl.expected.ir.glsl b/test/tint/expressions/index/var/let/param/array.wgsl.expected.ir.glsl index 72ca17c..4938464 100644 --- a/test/tint/expressions/index/var/let/param/array.wgsl.expected.ir.glsl +++ b/test/tint/expressions/index/var/let/param/array.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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 x) { + int a[8] = int[8](1, 2, 3, 4, 5, 6, 7, 8); + int i = x; + return a[i]; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { +}
diff --git a/test/tint/expressions/index/var/let/param/matrix.wgsl.expected.ir.glsl b/test/tint/expressions/index/var/let/param/matrix.wgsl.expected.ir.glsl index 72ca17c..16b363c 100644 --- a/test/tint/expressions/index/var/let/param/matrix.wgsl.expected.ir.glsl +++ b/test/tint/expressions/index/var/let/param/matrix.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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 +vec3 f(int x) { + mat3 m = mat3(vec3(1.0f, 2.0f, 3.0f), vec3(4.0f, 5.0f, 6.0f), vec3(7.0f, 8.0f, 9.0f)); + int i = x; + return m[i]; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { +}
diff --git a/test/tint/expressions/index/var/literal/array.wgsl.expected.ir.glsl b/test/tint/expressions/index/var/literal/array.wgsl.expected.ir.glsl index 72ca17c..d31d251 100644 --- a/test/tint/expressions/index/var/literal/array.wgsl.expected.ir.glsl +++ b/test/tint/expressions/index/var/literal/array.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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected 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[8] = int[8](1, 2, 3, 4, 5, 6, 7, 8); + return a[1]; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { +}
diff --git a/test/tint/expressions/index/var/literal/matrix.wgsl.expected.ir.glsl b/test/tint/expressions/index/var/literal/matrix.wgsl.expected.ir.glsl index 72ca17c..9f05a7f 100644 --- a/test/tint/expressions/index/var/literal/matrix.wgsl.expected.ir.glsl +++ b/test/tint/expressions/index/var/literal/matrix.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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 +vec3 f() { + mat3 m = mat3(vec3(1.0f, 2.0f, 3.0f), vec3(4.0f, 5.0f, 6.0f), vec3(7.0f, 8.0f, 9.0f)); + return m[1]; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { +}
diff --git a/test/tint/expressions/index/var/param/array.wgsl.expected.ir.glsl b/test/tint/expressions/index/var/param/array.wgsl.expected.ir.glsl index 72ca17c..547232f 100644 --- a/test/tint/expressions/index/var/param/array.wgsl.expected.ir.glsl +++ b/test/tint/expressions/index/var/param/array.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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 i) { + int a[8] = int[8](1, 2, 3, 4, 5, 6, 7, 8); + return a[i]; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { +}
diff --git a/test/tint/expressions/index/var/param/matrix.wgsl.expected.ir.glsl b/test/tint/expressions/index/var/param/matrix.wgsl.expected.ir.glsl index 72ca17c..04e225a 100644 --- a/test/tint/expressions/index/var/param/matrix.wgsl.expected.ir.glsl +++ b/test/tint/expressions/index/var/param/matrix.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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 +vec3 f(int i) { + mat3 m = mat3(vec3(1.0f, 2.0f, 3.0f), vec3(4.0f, 5.0f, 6.0f), vec3(7.0f, 8.0f, 9.0f)); + return m[i]; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { +}
diff --git a/test/tint/expressions/index/var/struct.wgsl.expected.ir.glsl b/test/tint/expressions/index/var/struct.wgsl.expected.ir.glsl index 72ca17c..b96b5b2 100644 --- a/test/tint/expressions/index/var/struct.wgsl.expected.ir.glsl +++ b/test/tint/expressions/index/var/struct.wgsl.expected.ir.glsl
@@ -1,11 +1,14 @@ -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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct S { + int m; + uint n; +}; -tint executable returned error: signal: illegal instruction +uint f() { + S a = S(0, 0u); + return a.n; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { +}
diff --git a/test/tint/expressions/index/var/struct_nested_array.wgsl.expected.ir.glsl b/test/tint/expressions/index/var/struct_nested_array.wgsl.expected.ir.glsl index 72ca17c..c269d8d 100644 --- a/test/tint/expressions/index/var/struct_nested_array.wgsl.expected.ir.glsl +++ b/test/tint/expressions/index/var/struct_nested_array.wgsl.expected.ir.glsl
@@ -1,11 +1,14 @@ -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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct S { + int m; + uint n[4]; +}; -tint executable returned error: signal: illegal instruction +uint f() { + S a = S(0, uint[4](0u, 0u, 0u, 0u)); + return a.n[2]; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { +}
diff --git a/test/tint/expressions/index/var/struct_nested_multiple.wgsl.expected.ir.glsl b/test/tint/expressions/index/var/struct_nested_multiple.wgsl.expected.ir.glsl index 72ca17c..49af430 100644 --- a/test/tint/expressions/index/var/struct_nested_multiple.wgsl.expected.ir.glsl +++ b/test/tint/expressions/index/var/struct_nested_multiple.wgsl.expected.ir.glsl
@@ -1,11 +1,18 @@ -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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct T { + uint k[2]; +}; -tint executable returned error: signal: illegal instruction +struct S { + int m; + T n[4]; +}; + +uint f() { + S a = S(0, T[4](T(uint[2](0u, 0u)), T(uint[2](0u, 0u)), T(uint[2](0u, 0u)), T(uint[2](0u, 0u)))); + return a.n[2].k[1]; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { +}
diff --git a/test/tint/expressions/index/var/struct_nested_struct.wgsl.expected.ir.glsl b/test/tint/expressions/index/var/struct_nested_struct.wgsl.expected.ir.glsl index 72ca17c..264b2ed 100644 --- a/test/tint/expressions/index/var/struct_nested_struct.wgsl.expected.ir.glsl +++ b/test/tint/expressions/index/var/struct_nested_struct.wgsl.expected.ir.glsl
@@ -1,11 +1,19 @@ -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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct T { + float o; + uint p; +}; -tint executable returned error: signal: illegal instruction +struct S { + int m; + T n; +}; + +uint f() { + S a = S(0, T(0.0f, 0u)); + return a.n.p; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { +}
diff --git a/test/tint/expressions/type_ctor/mat2x3/explicit/scalars/f16.wgsl.expected.ir.glsl b/test/tint/expressions/type_ctor/mat2x3/explicit/scalars/f16.wgsl.expected.ir.glsl index 72ca17c..759d96c 100644 --- a/test/tint/expressions/type_ctor/mat2x3/explicit/scalars/f16.wgsl.expected.ir.glsl +++ b/test/tint/expressions/type_ctor/mat2x3/explicit/scalars/f16.wgsl.expected.ir.glsl
@@ -1,11 +1,13 @@ -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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 +f16mat2x3 m = f16mat2x3(f16vec3(0.0hf, 1.0hf, 2.0hf), f16vec3(3.0hf, 4.0hf, 5.0hf)); +f16mat2x3 tint_symbol; +void tint_store_and_preserve_padding(inout f16mat2x3 target, f16mat2x3 value_param) { + target[0u] = value_param[0u]; + target[1u] = value_param[1u]; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + tint_store_and_preserve_padding(tint_symbol, m); +}
diff --git a/test/tint/expressions/type_ctor/mat2x3/explicit/scalars/f32.wgsl.expected.ir.glsl b/test/tint/expressions/type_ctor/mat2x3/explicit/scalars/f32.wgsl.expected.ir.glsl index 72ca17c..7077b54 100644 --- a/test/tint/expressions/type_ctor/mat2x3/explicit/scalars/f32.wgsl.expected.ir.glsl +++ b/test/tint/expressions/type_ctor/mat2x3/explicit/scalars/f32.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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 +mat2x3 m = mat2x3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f)); +mat2x3 tint_symbol; +void tint_store_and_preserve_padding(inout mat2x3 target, mat2x3 value_param) { + target[0u] = value_param[0u]; + target[1u] = value_param[1u]; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + tint_store_and_preserve_padding(tint_symbol, m); +}
diff --git a/test/tint/expressions/type_ctor/mat2x3/explicit/vectors/f16.wgsl.expected.ir.glsl b/test/tint/expressions/type_ctor/mat2x3/explicit/vectors/f16.wgsl.expected.ir.glsl index 72ca17c..759d96c 100644 --- a/test/tint/expressions/type_ctor/mat2x3/explicit/vectors/f16.wgsl.expected.ir.glsl +++ b/test/tint/expressions/type_ctor/mat2x3/explicit/vectors/f16.wgsl.expected.ir.glsl
@@ -1,11 +1,13 @@ -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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 +f16mat2x3 m = f16mat2x3(f16vec3(0.0hf, 1.0hf, 2.0hf), f16vec3(3.0hf, 4.0hf, 5.0hf)); +f16mat2x3 tint_symbol; +void tint_store_and_preserve_padding(inout f16mat2x3 target, f16mat2x3 value_param) { + target[0u] = value_param[0u]; + target[1u] = value_param[1u]; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + tint_store_and_preserve_padding(tint_symbol, m); +}
diff --git a/test/tint/expressions/type_ctor/mat2x3/explicit/vectors/f32.wgsl.expected.ir.glsl b/test/tint/expressions/type_ctor/mat2x3/explicit/vectors/f32.wgsl.expected.ir.glsl index 72ca17c..7077b54 100644 --- a/test/tint/expressions/type_ctor/mat2x3/explicit/vectors/f32.wgsl.expected.ir.glsl +++ b/test/tint/expressions/type_ctor/mat2x3/explicit/vectors/f32.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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 +mat2x3 m = mat2x3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f)); +mat2x3 tint_symbol; +void tint_store_and_preserve_padding(inout mat2x3 target, mat2x3 value_param) { + target[0u] = value_param[0u]; + target[1u] = value_param[1u]; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + tint_store_and_preserve_padding(tint_symbol, m); +}
diff --git a/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/abstract-float.wgsl.expected.ir.glsl b/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/abstract-float.wgsl.expected.ir.glsl index d4bb1c9..282538c 100644 --- a/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/abstract-float.wgsl.expected.ir.glsl +++ b/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/abstract-float.wgsl.expected.ir.glsl
@@ -1,11 +1,11 @@ -SKIP: FAILED +#version 310 es -<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:252 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 +mat2x3 tint_symbol; +void tint_store_and_preserve_padding(inout mat2x3 target, mat2x3 value_param) { + target[0u] = value_param[0u]; + target[1u] = value_param[1u]; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + tint_store_and_preserve_padding(tint_symbol, mat2x3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f))); +}
diff --git a/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/f16.wgsl.expected.ir.glsl b/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/f16.wgsl.expected.ir.glsl index 72ca17c..759d96c 100644 --- a/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/f16.wgsl.expected.ir.glsl +++ b/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/f16.wgsl.expected.ir.glsl
@@ -1,11 +1,13 @@ -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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 +f16mat2x3 m = f16mat2x3(f16vec3(0.0hf, 1.0hf, 2.0hf), f16vec3(3.0hf, 4.0hf, 5.0hf)); +f16mat2x3 tint_symbol; +void tint_store_and_preserve_padding(inout f16mat2x3 target, f16mat2x3 value_param) { + target[0u] = value_param[0u]; + target[1u] = value_param[1u]; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + tint_store_and_preserve_padding(tint_symbol, m); +}
diff --git a/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/f32.wgsl.expected.ir.glsl b/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/f32.wgsl.expected.ir.glsl index 72ca17c..7077b54 100644 --- a/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/f32.wgsl.expected.ir.glsl +++ b/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/f32.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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 +mat2x3 m = mat2x3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f)); +mat2x3 tint_symbol; +void tint_store_and_preserve_padding(inout mat2x3 target, mat2x3 value_param) { + target[0u] = value_param[0u]; + target[1u] = value_param[1u]; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + tint_store_and_preserve_padding(tint_symbol, m); +}
diff --git a/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/abstract-float.wgsl.expected.ir.glsl b/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/abstract-float.wgsl.expected.ir.glsl index d4bb1c9..282538c 100644 --- a/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/abstract-float.wgsl.expected.ir.glsl +++ b/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/abstract-float.wgsl.expected.ir.glsl
@@ -1,11 +1,11 @@ -SKIP: FAILED +#version 310 es -<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:252 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 +mat2x3 tint_symbol; +void tint_store_and_preserve_padding(inout mat2x3 target, mat2x3 value_param) { + target[0u] = value_param[0u]; + target[1u] = value_param[1u]; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + tint_store_and_preserve_padding(tint_symbol, mat2x3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f))); +}
diff --git a/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/f16.wgsl.expected.ir.glsl b/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/f16.wgsl.expected.ir.glsl index 72ca17c..759d96c 100644 --- a/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/f16.wgsl.expected.ir.glsl +++ b/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/f16.wgsl.expected.ir.glsl
@@ -1,11 +1,13 @@ -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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 +f16mat2x3 m = f16mat2x3(f16vec3(0.0hf, 1.0hf, 2.0hf), f16vec3(3.0hf, 4.0hf, 5.0hf)); +f16mat2x3 tint_symbol; +void tint_store_and_preserve_padding(inout f16mat2x3 target, f16mat2x3 value_param) { + target[0u] = value_param[0u]; + target[1u] = value_param[1u]; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + tint_store_and_preserve_padding(tint_symbol, m); +}
diff --git a/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/f32.wgsl.expected.ir.glsl b/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/f32.wgsl.expected.ir.glsl index 72ca17c..7077b54 100644 --- a/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/f32.wgsl.expected.ir.glsl +++ b/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/f32.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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 +mat2x3 m = mat2x3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f)); +mat2x3 tint_symbol; +void tint_store_and_preserve_padding(inout mat2x3 target, mat2x3 value_param) { + target[0u] = value_param[0u]; + target[1u] = value_param[1u]; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + tint_store_and_preserve_padding(tint_symbol, m); +}
diff --git a/test/tint/expressions/type_ctor/mat2x3/zero/f16.wgsl.expected.ir.glsl b/test/tint/expressions/type_ctor/mat2x3/zero/f16.wgsl.expected.ir.glsl index 72ca17c..0f14a8c 100644 --- a/test/tint/expressions/type_ctor/mat2x3/zero/f16.wgsl.expected.ir.glsl +++ b/test/tint/expressions/type_ctor/mat2x3/zero/f16.wgsl.expected.ir.glsl
@@ -1,11 +1,13 @@ -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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 +f16mat2x3 m = f16mat2x3(f16vec3(0.0hf), f16vec3(0.0hf)); +f16mat2x3 tint_symbol; +void tint_store_and_preserve_padding(inout f16mat2x3 target, f16mat2x3 value_param) { + target[0u] = value_param[0u]; + target[1u] = value_param[1u]; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + tint_store_and_preserve_padding(tint_symbol, m); +}
diff --git a/test/tint/expressions/type_ctor/mat2x3/zero/f32.wgsl.expected.ir.glsl b/test/tint/expressions/type_ctor/mat2x3/zero/f32.wgsl.expected.ir.glsl index 72ca17c..7575f0b 100644 --- a/test/tint/expressions/type_ctor/mat2x3/zero/f32.wgsl.expected.ir.glsl +++ b/test/tint/expressions/type_ctor/mat2x3/zero/f32.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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 +mat2x3 m = mat2x3(vec3(0.0f), vec3(0.0f)); +mat2x3 tint_symbol; +void tint_store_and_preserve_padding(inout mat2x3 target, mat2x3 value_param) { + target[0u] = value_param[0u]; + target[1u] = value_param[1u]; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + tint_store_and_preserve_padding(tint_symbol, m); +}
diff --git a/test/tint/expressions/type_ctor/mat3x3/explicit/scalars/f16.wgsl.expected.ir.glsl b/test/tint/expressions/type_ctor/mat3x3/explicit/scalars/f16.wgsl.expected.ir.glsl index 72ca17c..3797a02 100644 --- a/test/tint/expressions/type_ctor/mat3x3/explicit/scalars/f16.wgsl.expected.ir.glsl +++ b/test/tint/expressions/type_ctor/mat3x3/explicit/scalars/f16.wgsl.expected.ir.glsl
@@ -1,11 +1,14 @@ -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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 +f16mat3 m = f16mat3(f16vec3(0.0hf, 1.0hf, 2.0hf), f16vec3(3.0hf, 4.0hf, 5.0hf), f16vec3(6.0hf, 7.0hf, 8.0hf)); +f16mat3 tint_symbol; +void tint_store_and_preserve_padding(inout f16mat3 target, f16mat3 value_param) { + target[0u] = value_param[0u]; + target[1u] = value_param[1u]; + target[2u] = value_param[2u]; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + tint_store_and_preserve_padding(tint_symbol, m); +}
diff --git a/test/tint/expressions/type_ctor/mat3x3/explicit/scalars/f32.wgsl.expected.ir.glsl b/test/tint/expressions/type_ctor/mat3x3/explicit/scalars/f32.wgsl.expected.ir.glsl index 72ca17c..9d38dd3 100644 --- a/test/tint/expressions/type_ctor/mat3x3/explicit/scalars/f32.wgsl.expected.ir.glsl +++ b/test/tint/expressions/type_ctor/mat3x3/explicit/scalars/f32.wgsl.expected.ir.glsl
@@ -1,11 +1,13 @@ -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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 +mat3 m = mat3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f), vec3(6.0f, 7.0f, 8.0f)); +mat3 tint_symbol; +void tint_store_and_preserve_padding(inout mat3 target, mat3 value_param) { + target[0u] = value_param[0u]; + target[1u] = value_param[1u]; + target[2u] = value_param[2u]; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + tint_store_and_preserve_padding(tint_symbol, m); +}
diff --git a/test/tint/expressions/type_ctor/mat3x3/explicit/vectors/f16.wgsl.expected.ir.glsl b/test/tint/expressions/type_ctor/mat3x3/explicit/vectors/f16.wgsl.expected.ir.glsl index 72ca17c..3797a02 100644 --- a/test/tint/expressions/type_ctor/mat3x3/explicit/vectors/f16.wgsl.expected.ir.glsl +++ b/test/tint/expressions/type_ctor/mat3x3/explicit/vectors/f16.wgsl.expected.ir.glsl
@@ -1,11 +1,14 @@ -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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 +f16mat3 m = f16mat3(f16vec3(0.0hf, 1.0hf, 2.0hf), f16vec3(3.0hf, 4.0hf, 5.0hf), f16vec3(6.0hf, 7.0hf, 8.0hf)); +f16mat3 tint_symbol; +void tint_store_and_preserve_padding(inout f16mat3 target, f16mat3 value_param) { + target[0u] = value_param[0u]; + target[1u] = value_param[1u]; + target[2u] = value_param[2u]; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + tint_store_and_preserve_padding(tint_symbol, m); +}
diff --git a/test/tint/expressions/type_ctor/mat3x3/explicit/vectors/f32.wgsl.expected.ir.glsl b/test/tint/expressions/type_ctor/mat3x3/explicit/vectors/f32.wgsl.expected.ir.glsl index 72ca17c..9d38dd3 100644 --- a/test/tint/expressions/type_ctor/mat3x3/explicit/vectors/f32.wgsl.expected.ir.glsl +++ b/test/tint/expressions/type_ctor/mat3x3/explicit/vectors/f32.wgsl.expected.ir.glsl
@@ -1,11 +1,13 @@ -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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 +mat3 m = mat3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f), vec3(6.0f, 7.0f, 8.0f)); +mat3 tint_symbol; +void tint_store_and_preserve_padding(inout mat3 target, mat3 value_param) { + target[0u] = value_param[0u]; + target[1u] = value_param[1u]; + target[2u] = value_param[2u]; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + tint_store_and_preserve_padding(tint_symbol, m); +}
diff --git a/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/abstract-float.wgsl.expected.ir.glsl b/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/abstract-float.wgsl.expected.ir.glsl index d4bb1c9..1ce04e0 100644 --- a/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/abstract-float.wgsl.expected.ir.glsl +++ b/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/abstract-float.wgsl.expected.ir.glsl
@@ -1,11 +1,12 @@ -SKIP: FAILED +#version 310 es -<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:252 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 +mat3 tint_symbol; +void tint_store_and_preserve_padding(inout mat3 target, mat3 value_param) { + target[0u] = value_param[0u]; + target[1u] = value_param[1u]; + target[2u] = value_param[2u]; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + tint_store_and_preserve_padding(tint_symbol, mat3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f), vec3(6.0f, 7.0f, 8.0f))); +}
diff --git a/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/f16.wgsl.expected.ir.glsl b/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/f16.wgsl.expected.ir.glsl index 72ca17c..3797a02 100644 --- a/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/f16.wgsl.expected.ir.glsl +++ b/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/f16.wgsl.expected.ir.glsl
@@ -1,11 +1,14 @@ -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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 +f16mat3 m = f16mat3(f16vec3(0.0hf, 1.0hf, 2.0hf), f16vec3(3.0hf, 4.0hf, 5.0hf), f16vec3(6.0hf, 7.0hf, 8.0hf)); +f16mat3 tint_symbol; +void tint_store_and_preserve_padding(inout f16mat3 target, f16mat3 value_param) { + target[0u] = value_param[0u]; + target[1u] = value_param[1u]; + target[2u] = value_param[2u]; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + tint_store_and_preserve_padding(tint_symbol, m); +}
diff --git a/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/f32.wgsl.expected.ir.glsl b/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/f32.wgsl.expected.ir.glsl index 72ca17c..9d38dd3 100644 --- a/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/f32.wgsl.expected.ir.glsl +++ b/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/f32.wgsl.expected.ir.glsl
@@ -1,11 +1,13 @@ -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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 +mat3 m = mat3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f), vec3(6.0f, 7.0f, 8.0f)); +mat3 tint_symbol; +void tint_store_and_preserve_padding(inout mat3 target, mat3 value_param) { + target[0u] = value_param[0u]; + target[1u] = value_param[1u]; + target[2u] = value_param[2u]; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + tint_store_and_preserve_padding(tint_symbol, m); +}
diff --git a/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/abstract-float.wgsl.expected.ir.glsl b/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/abstract-float.wgsl.expected.ir.glsl index d4bb1c9..1ce04e0 100644 --- a/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/abstract-float.wgsl.expected.ir.glsl +++ b/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/abstract-float.wgsl.expected.ir.glsl
@@ -1,11 +1,12 @@ -SKIP: FAILED +#version 310 es -<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:252 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 +mat3 tint_symbol; +void tint_store_and_preserve_padding(inout mat3 target, mat3 value_param) { + target[0u] = value_param[0u]; + target[1u] = value_param[1u]; + target[2u] = value_param[2u]; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + tint_store_and_preserve_padding(tint_symbol, mat3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f), vec3(6.0f, 7.0f, 8.0f))); +}
diff --git a/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/f16.wgsl.expected.ir.glsl b/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/f16.wgsl.expected.ir.glsl index 72ca17c..3797a02 100644 --- a/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/f16.wgsl.expected.ir.glsl +++ b/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/f16.wgsl.expected.ir.glsl
@@ -1,11 +1,14 @@ -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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 +f16mat3 m = f16mat3(f16vec3(0.0hf, 1.0hf, 2.0hf), f16vec3(3.0hf, 4.0hf, 5.0hf), f16vec3(6.0hf, 7.0hf, 8.0hf)); +f16mat3 tint_symbol; +void tint_store_and_preserve_padding(inout f16mat3 target, f16mat3 value_param) { + target[0u] = value_param[0u]; + target[1u] = value_param[1u]; + target[2u] = value_param[2u]; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + tint_store_and_preserve_padding(tint_symbol, m); +}
diff --git a/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/f32.wgsl.expected.ir.glsl b/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/f32.wgsl.expected.ir.glsl index 72ca17c..9d38dd3 100644 --- a/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/f32.wgsl.expected.ir.glsl +++ b/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/f32.wgsl.expected.ir.glsl
@@ -1,11 +1,13 @@ -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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 +mat3 m = mat3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f), vec3(6.0f, 7.0f, 8.0f)); +mat3 tint_symbol; +void tint_store_and_preserve_padding(inout mat3 target, mat3 value_param) { + target[0u] = value_param[0u]; + target[1u] = value_param[1u]; + target[2u] = value_param[2u]; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + tint_store_and_preserve_padding(tint_symbol, m); +}
diff --git a/test/tint/expressions/type_ctor/mat3x3/zero/f16.wgsl.expected.ir.glsl b/test/tint/expressions/type_ctor/mat3x3/zero/f16.wgsl.expected.ir.glsl index 72ca17c..1360ea6 100644 --- a/test/tint/expressions/type_ctor/mat3x3/zero/f16.wgsl.expected.ir.glsl +++ b/test/tint/expressions/type_ctor/mat3x3/zero/f16.wgsl.expected.ir.glsl
@@ -1,11 +1,14 @@ -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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 +f16mat3 m = f16mat3(f16vec3(0.0hf), f16vec3(0.0hf), f16vec3(0.0hf)); +f16mat3 tint_symbol; +void tint_store_and_preserve_padding(inout f16mat3 target, f16mat3 value_param) { + target[0u] = value_param[0u]; + target[1u] = value_param[1u]; + target[2u] = value_param[2u]; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + tint_store_and_preserve_padding(tint_symbol, m); +}
diff --git a/test/tint/expressions/type_ctor/mat3x3/zero/f32.wgsl.expected.ir.glsl b/test/tint/expressions/type_ctor/mat3x3/zero/f32.wgsl.expected.ir.glsl index 72ca17c..89ba1f0 100644 --- a/test/tint/expressions/type_ctor/mat3x3/zero/f32.wgsl.expected.ir.glsl +++ b/test/tint/expressions/type_ctor/mat3x3/zero/f32.wgsl.expected.ir.glsl
@@ -1,11 +1,13 @@ -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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 +mat3 m = mat3(vec3(0.0f), vec3(0.0f), vec3(0.0f)); +mat3 tint_symbol; +void tint_store_and_preserve_padding(inout mat3 target, mat3 value_param) { + target[0u] = value_param[0u]; + target[1u] = value_param[1u]; + target[2u] = value_param[2u]; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + tint_store_and_preserve_padding(tint_symbol, m); +}
diff --git a/test/tint/expressions/type_ctor/mat4x3/explicit/scalars/f16.wgsl.expected.ir.glsl b/test/tint/expressions/type_ctor/mat4x3/explicit/scalars/f16.wgsl.expected.ir.glsl index 72ca17c..7bd2000 100644 --- a/test/tint/expressions/type_ctor/mat4x3/explicit/scalars/f16.wgsl.expected.ir.glsl +++ b/test/tint/expressions/type_ctor/mat4x3/explicit/scalars/f16.wgsl.expected.ir.glsl
@@ -1,11 +1,15 @@ -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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 +f16mat4x3 m = f16mat4x3(f16vec3(0.0hf, 1.0hf, 2.0hf), f16vec3(3.0hf, 4.0hf, 5.0hf), f16vec3(6.0hf, 7.0hf, 8.0hf), f16vec3(9.0hf, 10.0hf, 11.0hf)); +f16mat4x3 tint_symbol; +void tint_store_and_preserve_padding(inout f16mat4x3 target, f16mat4x3 value_param) { + target[0u] = value_param[0u]; + target[1u] = value_param[1u]; + target[2u] = value_param[2u]; + target[3u] = value_param[3u]; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + tint_store_and_preserve_padding(tint_symbol, m); +}
diff --git a/test/tint/expressions/type_ctor/mat4x3/explicit/scalars/f32.wgsl.expected.ir.glsl b/test/tint/expressions/type_ctor/mat4x3/explicit/scalars/f32.wgsl.expected.ir.glsl index 72ca17c..6dc33c1 100644 --- a/test/tint/expressions/type_ctor/mat4x3/explicit/scalars/f32.wgsl.expected.ir.glsl +++ b/test/tint/expressions/type_ctor/mat4x3/explicit/scalars/f32.wgsl.expected.ir.glsl
@@ -1,11 +1,14 @@ -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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 +mat4x3 m = mat4x3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f), vec3(6.0f, 7.0f, 8.0f), vec3(9.0f, 10.0f, 11.0f)); +mat4x3 tint_symbol; +void tint_store_and_preserve_padding(inout mat4x3 target, mat4x3 value_param) { + target[0u] = value_param[0u]; + target[1u] = value_param[1u]; + target[2u] = value_param[2u]; + target[3u] = value_param[3u]; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + tint_store_and_preserve_padding(tint_symbol, m); +}
diff --git a/test/tint/expressions/type_ctor/mat4x3/explicit/vectors/f16.wgsl.expected.ir.glsl b/test/tint/expressions/type_ctor/mat4x3/explicit/vectors/f16.wgsl.expected.ir.glsl index 72ca17c..7bd2000 100644 --- a/test/tint/expressions/type_ctor/mat4x3/explicit/vectors/f16.wgsl.expected.ir.glsl +++ b/test/tint/expressions/type_ctor/mat4x3/explicit/vectors/f16.wgsl.expected.ir.glsl
@@ -1,11 +1,15 @@ -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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 +f16mat4x3 m = f16mat4x3(f16vec3(0.0hf, 1.0hf, 2.0hf), f16vec3(3.0hf, 4.0hf, 5.0hf), f16vec3(6.0hf, 7.0hf, 8.0hf), f16vec3(9.0hf, 10.0hf, 11.0hf)); +f16mat4x3 tint_symbol; +void tint_store_and_preserve_padding(inout f16mat4x3 target, f16mat4x3 value_param) { + target[0u] = value_param[0u]; + target[1u] = value_param[1u]; + target[2u] = value_param[2u]; + target[3u] = value_param[3u]; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + tint_store_and_preserve_padding(tint_symbol, m); +}
diff --git a/test/tint/expressions/type_ctor/mat4x3/explicit/vectors/f32.wgsl.expected.ir.glsl b/test/tint/expressions/type_ctor/mat4x3/explicit/vectors/f32.wgsl.expected.ir.glsl index 72ca17c..6dc33c1 100644 --- a/test/tint/expressions/type_ctor/mat4x3/explicit/vectors/f32.wgsl.expected.ir.glsl +++ b/test/tint/expressions/type_ctor/mat4x3/explicit/vectors/f32.wgsl.expected.ir.glsl
@@ -1,11 +1,14 @@ -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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 +mat4x3 m = mat4x3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f), vec3(6.0f, 7.0f, 8.0f), vec3(9.0f, 10.0f, 11.0f)); +mat4x3 tint_symbol; +void tint_store_and_preserve_padding(inout mat4x3 target, mat4x3 value_param) { + target[0u] = value_param[0u]; + target[1u] = value_param[1u]; + target[2u] = value_param[2u]; + target[3u] = value_param[3u]; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + tint_store_and_preserve_padding(tint_symbol, m); +}
diff --git a/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/abstract-float.wgsl.expected.ir.glsl b/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/abstract-float.wgsl.expected.ir.glsl index d4bb1c9..ca6eff8 100644 --- a/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/abstract-float.wgsl.expected.ir.glsl +++ b/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/abstract-float.wgsl.expected.ir.glsl
@@ -1,11 +1,13 @@ -SKIP: FAILED +#version 310 es -<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:252 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 +mat4x3 tint_symbol; +void tint_store_and_preserve_padding(inout mat4x3 target, mat4x3 value_param) { + target[0u] = value_param[0u]; + target[1u] = value_param[1u]; + target[2u] = value_param[2u]; + target[3u] = value_param[3u]; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + tint_store_and_preserve_padding(tint_symbol, mat4x3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f), vec3(6.0f, 7.0f, 8.0f), vec3(9.0f, 10.0f, 11.0f))); +}
diff --git a/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/f16.wgsl.expected.ir.glsl b/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/f16.wgsl.expected.ir.glsl index 72ca17c..7bd2000 100644 --- a/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/f16.wgsl.expected.ir.glsl +++ b/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/f16.wgsl.expected.ir.glsl
@@ -1,11 +1,15 @@ -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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 +f16mat4x3 m = f16mat4x3(f16vec3(0.0hf, 1.0hf, 2.0hf), f16vec3(3.0hf, 4.0hf, 5.0hf), f16vec3(6.0hf, 7.0hf, 8.0hf), f16vec3(9.0hf, 10.0hf, 11.0hf)); +f16mat4x3 tint_symbol; +void tint_store_and_preserve_padding(inout f16mat4x3 target, f16mat4x3 value_param) { + target[0u] = value_param[0u]; + target[1u] = value_param[1u]; + target[2u] = value_param[2u]; + target[3u] = value_param[3u]; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + tint_store_and_preserve_padding(tint_symbol, m); +}
diff --git a/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/f32.wgsl.expected.ir.glsl b/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/f32.wgsl.expected.ir.glsl index 72ca17c..6dc33c1 100644 --- a/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/f32.wgsl.expected.ir.glsl +++ b/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/f32.wgsl.expected.ir.glsl
@@ -1,11 +1,14 @@ -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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 +mat4x3 m = mat4x3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f), vec3(6.0f, 7.0f, 8.0f), vec3(9.0f, 10.0f, 11.0f)); +mat4x3 tint_symbol; +void tint_store_and_preserve_padding(inout mat4x3 target, mat4x3 value_param) { + target[0u] = value_param[0u]; + target[1u] = value_param[1u]; + target[2u] = value_param[2u]; + target[3u] = value_param[3u]; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + tint_store_and_preserve_padding(tint_symbol, m); +}
diff --git a/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/abstract-float.wgsl.expected.ir.glsl b/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/abstract-float.wgsl.expected.ir.glsl index d4bb1c9..ca6eff8 100644 --- a/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/abstract-float.wgsl.expected.ir.glsl +++ b/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/abstract-float.wgsl.expected.ir.glsl
@@ -1,11 +1,13 @@ -SKIP: FAILED +#version 310 es -<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:252 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 +mat4x3 tint_symbol; +void tint_store_and_preserve_padding(inout mat4x3 target, mat4x3 value_param) { + target[0u] = value_param[0u]; + target[1u] = value_param[1u]; + target[2u] = value_param[2u]; + target[3u] = value_param[3u]; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + tint_store_and_preserve_padding(tint_symbol, mat4x3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f), vec3(6.0f, 7.0f, 8.0f), vec3(9.0f, 10.0f, 11.0f))); +}
diff --git a/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/f16.wgsl.expected.ir.glsl b/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/f16.wgsl.expected.ir.glsl index 72ca17c..7bd2000 100644 --- a/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/f16.wgsl.expected.ir.glsl +++ b/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/f16.wgsl.expected.ir.glsl
@@ -1,11 +1,15 @@ -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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 +f16mat4x3 m = f16mat4x3(f16vec3(0.0hf, 1.0hf, 2.0hf), f16vec3(3.0hf, 4.0hf, 5.0hf), f16vec3(6.0hf, 7.0hf, 8.0hf), f16vec3(9.0hf, 10.0hf, 11.0hf)); +f16mat4x3 tint_symbol; +void tint_store_and_preserve_padding(inout f16mat4x3 target, f16mat4x3 value_param) { + target[0u] = value_param[0u]; + target[1u] = value_param[1u]; + target[2u] = value_param[2u]; + target[3u] = value_param[3u]; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + tint_store_and_preserve_padding(tint_symbol, m); +}
diff --git a/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/f32.wgsl.expected.ir.glsl b/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/f32.wgsl.expected.ir.glsl index 72ca17c..6dc33c1 100644 --- a/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/f32.wgsl.expected.ir.glsl +++ b/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/f32.wgsl.expected.ir.glsl
@@ -1,11 +1,14 @@ -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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 +mat4x3 m = mat4x3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f), vec3(6.0f, 7.0f, 8.0f), vec3(9.0f, 10.0f, 11.0f)); +mat4x3 tint_symbol; +void tint_store_and_preserve_padding(inout mat4x3 target, mat4x3 value_param) { + target[0u] = value_param[0u]; + target[1u] = value_param[1u]; + target[2u] = value_param[2u]; + target[3u] = value_param[3u]; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + tint_store_and_preserve_padding(tint_symbol, m); +}
diff --git a/test/tint/expressions/type_ctor/mat4x3/zero/f16.wgsl.expected.ir.glsl b/test/tint/expressions/type_ctor/mat4x3/zero/f16.wgsl.expected.ir.glsl index 72ca17c..53c3fbe 100644 --- a/test/tint/expressions/type_ctor/mat4x3/zero/f16.wgsl.expected.ir.glsl +++ b/test/tint/expressions/type_ctor/mat4x3/zero/f16.wgsl.expected.ir.glsl
@@ -1,11 +1,15 @@ -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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 +f16mat4x3 m = f16mat4x3(f16vec3(0.0hf), f16vec3(0.0hf), f16vec3(0.0hf), f16vec3(0.0hf)); +f16mat4x3 tint_symbol; +void tint_store_and_preserve_padding(inout f16mat4x3 target, f16mat4x3 value_param) { + target[0u] = value_param[0u]; + target[1u] = value_param[1u]; + target[2u] = value_param[2u]; + target[3u] = value_param[3u]; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + tint_store_and_preserve_padding(tint_symbol, m); +}
diff --git a/test/tint/expressions/type_ctor/mat4x3/zero/f32.wgsl.expected.ir.glsl b/test/tint/expressions/type_ctor/mat4x3/zero/f32.wgsl.expected.ir.glsl index 72ca17c..97ac1ed 100644 --- a/test/tint/expressions/type_ctor/mat4x3/zero/f32.wgsl.expected.ir.glsl +++ b/test/tint/expressions/type_ctor/mat4x3/zero/f32.wgsl.expected.ir.glsl
@@ -1,11 +1,14 @@ -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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 +mat4x3 m = mat4x3(vec3(0.0f), vec3(0.0f), vec3(0.0f), vec3(0.0f)); +mat4x3 tint_symbol; +void tint_store_and_preserve_padding(inout mat4x3 target, mat4x3 value_param) { + target[0u] = value_param[0u]; + target[1u] = value_param[1u]; + target[2u] = value_param[2u]; + target[3u] = value_param[3u]; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + tint_store_and_preserve_padding(tint_symbol, m); +}
diff --git a/test/tint/extensions/pixel_local/entry_point_use/zero_outputs/single_attachment.wgsl.expected.ir.glsl b/test/tint/extensions/pixel_local/entry_point_use/zero_outputs/single_attachment.wgsl.expected.ir.glsl index d4bb1c9..64e1fa1 100644 --- a/test/tint/extensions/pixel_local/entry_point_use/zero_outputs/single_attachment.wgsl.expected.ir.glsl +++ b/test/tint/extensions/pixel_local/entry_point_use/zero_outputs/single_attachment.wgsl.expected.ir.glsl
@@ -1,11 +1,13 @@ -SKIP: FAILED +#version 310 es -<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:252 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct PixelLocal { + uint a; +}; +precision highp float; +precision highp int; -tint executable returned error: signal: illegal instruction + +PixelLocal P; +void main() { + P.a = (P.a + 42u); +}
diff --git a/test/tint/extensions/pixel_local/indirect_use/zero_outputs/single_attachment.wgsl.expected.ir.glsl b/test/tint/extensions/pixel_local/indirect_use/zero_outputs/single_attachment.wgsl.expected.ir.glsl index d4bb1c9..4897dd4 100644 --- a/test/tint/extensions/pixel_local/indirect_use/zero_outputs/single_attachment.wgsl.expected.ir.glsl +++ b/test/tint/extensions/pixel_local/indirect_use/zero_outputs/single_attachment.wgsl.expected.ir.glsl
@@ -1,11 +1,24 @@ -SKIP: FAILED +#version 310 es -<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:252 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct PixelLocal { + uint a; +}; +precision highp float; +precision highp int; -tint executable returned error: signal: illegal instruction + +PixelLocal P; +void f0() { + P.a = (P.a + 9u); +} +void f1() { + f0(); + P.a = (P.a + 8u); +} +void f2() { + P.a = (P.a + 7u); + f1(); +} +void main() { + f2(); +}
diff --git a/test/tint/identifiers/underscore/double/struct.wgsl.expected.ir.glsl b/test/tint/identifiers/underscore/double/struct.wgsl.expected.ir.glsl index 1e74e77..d502b00 100644 --- a/test/tint/identifiers/underscore/double/struct.wgsl.expected.ir.glsl +++ b/test/tint/identifiers/underscore/double/struct.wgsl.expected.ir.glsl
@@ -1,11 +1,13 @@ -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::Access -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct tint_symbol { + int tint_symbol_1; +}; -tint executable returned error: signal: illegal instruction +int s; +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + tint_symbol c = tint_symbol(0); + int d = c.tint_symbol_1; + s = (c.tint_symbol_1 + d); +}
diff --git a/test/tint/identifiers/underscore/prefix/lower/struct.wgsl.expected.ir.glsl b/test/tint/identifiers/underscore/prefix/lower/struct.wgsl.expected.ir.glsl index 1e74e77..8c999d4 100644 --- a/test/tint/identifiers/underscore/prefix/lower/struct.wgsl.expected.ir.glsl +++ b/test/tint/identifiers/underscore/prefix/lower/struct.wgsl.expected.ir.glsl
@@ -1,11 +1,13 @@ -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::Access -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct _a { + int _b; +}; -tint executable returned error: signal: illegal instruction +int s; +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + _a c = _a(0); + int d = c._b; + s = (c._b + d); +}
diff --git a/test/tint/identifiers/underscore/prefix/upper/struct.wgsl.expected.ir.glsl b/test/tint/identifiers/underscore/prefix/upper/struct.wgsl.expected.ir.glsl index 1e74e77..bf13a69 100644 --- a/test/tint/identifiers/underscore/prefix/upper/struct.wgsl.expected.ir.glsl +++ b/test/tint/identifiers/underscore/prefix/upper/struct.wgsl.expected.ir.glsl
@@ -1,11 +1,13 @@ -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::Access -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct _A { + int _B; +}; -tint executable returned error: signal: illegal instruction +int s; +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + _A c = _A(0); + int d = c._B; + s = (c._B + d); +}
diff --git a/test/tint/layout/storage/mat2x2/f32.wgsl.expected.ir.glsl b/test/tint/layout/storage/mat2x2/f32.wgsl.expected.ir.glsl index 72ca17c..73e23eb 100644 --- a/test/tint/layout/storage/mat2x2/f32.wgsl.expected.ir.glsl +++ b/test/tint/layout/storage/mat2x2/f32.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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct SSBO { + mat2 m; +}; -tint executable returned error: signal: illegal instruction +SSBO ssbo; +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + mat2 v = ssbo.m; + ssbo.m = v; +}
diff --git a/test/tint/out_of_order_decls/array/alias.wgsl.expected.ir.glsl b/test/tint/out_of_order_decls/array/alias.wgsl.expected.ir.glsl index d4bb1c9..72648b5 100644 --- a/test/tint/out_of_order_decls/array/alias.wgsl.expected.ir.glsl +++ b/test/tint/out_of_order_decls/array/alias.wgsl.expected.ir.glsl
@@ -1,11 +1,9 @@ -SKIP: FAILED +#version 310 es +precision highp float; +precision highp int; -<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:252 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 A[4] = int[4](0, 0, 0, 0); +void main() { + A[0] = 1; +}
diff --git a/test/tint/out_of_order_decls/array/struct.wgsl.expected.ir.glsl b/test/tint/out_of_order_decls/array/struct.wgsl.expected.ir.glsl index d4bb1c9..033082d 100644 --- a/test/tint/out_of_order_decls/array/struct.wgsl.expected.ir.glsl +++ b/test/tint/out_of_order_decls/array/struct.wgsl.expected.ir.glsl
@@ -1,11 +1,13 @@ -SKIP: FAILED +#version 310 es -<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:252 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct S { + int m; +}; +precision highp float; +precision highp int; -tint executable returned error: signal: illegal instruction + +S A[4] = S[4](S(0), S(0), S(0), S(0)); +void main() { + A[0] = S(1); +}
diff --git a/test/tint/ptr_ref/access/matrix.spvasm.expected.ir.glsl b/test/tint/ptr_ref/access/matrix.spvasm.expected.ir.glsl index d4bb1c9..3303f50 100644 --- a/test/tint/ptr_ref/access/matrix.spvasm.expected.ir.glsl +++ b/test/tint/ptr_ref/access/matrix.spvasm.expected.ir.glsl
@@ -1,11 +1,11 @@ -SKIP: FAILED +#version 310 es -<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:252 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 +void main_1() { + mat3 m = mat3(vec3(0.0f), vec3(0.0f), vec3(0.0f)); + m = mat3(vec3(1.0f, 2.0f, 3.0f), vec3(4.0f, 5.0f, 6.0f), vec3(7.0f, 8.0f, 9.0f)); + m[1] = vec3(5.0f); +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + main_1(); +}
diff --git a/test/tint/ptr_ref/load/global/struct_field.spvasm.expected.ir.glsl b/test/tint/ptr_ref/load/global/struct_field.spvasm.expected.ir.glsl index d4bb1c9..fdb6c43 100644 --- a/test/tint/ptr_ref/load/global/struct_field.spvasm.expected.ir.glsl +++ b/test/tint/ptr_ref/load/global/struct_field.spvasm.expected.ir.glsl
@@ -1,11 +1,15 @@ -SKIP: FAILED +#version 310 es -<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:252 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct S { + int i; +}; -tint executable returned error: signal: illegal instruction +S V = S(0); +void main_1() { + int i = 0; + i = V.i; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + main_1(); +}
diff --git a/test/tint/ptr_ref/load/global/struct_field.wgsl.expected.ir.glsl b/test/tint/ptr_ref/load/global/struct_field.wgsl.expected.ir.glsl index 72ca17c..299ba8b 100644 --- a/test/tint/ptr_ref/load/global/struct_field.wgsl.expected.ir.glsl +++ b/test/tint/ptr_ref/load/global/struct_field.wgsl.expected.ir.glsl
@@ -1,11 +1,11 @@ -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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct S { + int i; +}; -tint executable returned error: signal: illegal instruction +S V = S(0); +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + int i = V.i; +}
diff --git a/test/tint/ptr_ref/load/local/struct_field.spvasm.expected.ir.glsl b/test/tint/ptr_ref/load/local/struct_field.spvasm.expected.ir.glsl index d4bb1c9..71511c4 100644 --- a/test/tint/ptr_ref/load/local/struct_field.spvasm.expected.ir.glsl +++ b/test/tint/ptr_ref/load/local/struct_field.spvasm.expected.ir.glsl
@@ -1,11 +1,15 @@ -SKIP: FAILED +#version 310 es -<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:252 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct S { + int i; +}; -tint executable returned error: signal: illegal instruction +void main_1() { + int i = 0; + S V = S(0); + i = V.i; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + main_1(); +}
diff --git a/test/tint/ptr_ref/load/local/struct_field.wgsl.expected.ir.glsl b/test/tint/ptr_ref/load/local/struct_field.wgsl.expected.ir.glsl index 72ca17c..ee210b96b 100644 --- a/test/tint/ptr_ref/load/local/struct_field.wgsl.expected.ir.glsl +++ b/test/tint/ptr_ref/load/local/struct_field.wgsl.expected.ir.glsl
@@ -1,11 +1,11 @@ -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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct S { + int i; +}; -tint executable returned error: signal: illegal instruction +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + S V = S(0); + int i = V.i; +}
diff --git a/test/tint/ptr_ref/load/param/function/array_in_struct.wgsl.expected.ir.glsl b/test/tint/ptr_ref/load/param/function/array_in_struct.wgsl.expected.ir.glsl index 72ca17c..977ec52 100644 --- a/test/tint/ptr_ref/load/param/function/array_in_struct.wgsl.expected.ir.glsl +++ b/test/tint/ptr_ref/load/param/function/array_in_struct.wgsl.expected.ir.glsl
@@ -1,11 +1,14 @@ -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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct str { + int arr[4]; +}; -tint executable returned error: signal: illegal instruction +int[4] func(inout int pointer[4]) { + return pointer; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + str F = str(int[4](0, 0, 0, 0)); + int r[4] = func(F.arr); +}
diff --git a/test/tint/ptr_ref/load/param/function/i32_in_struct.wgsl.expected.ir.glsl b/test/tint/ptr_ref/load/param/function/i32_in_struct.wgsl.expected.ir.glsl index 72ca17c..2308148 100644 --- a/test/tint/ptr_ref/load/param/function/i32_in_struct.wgsl.expected.ir.glsl +++ b/test/tint/ptr_ref/load/param/function/i32_in_struct.wgsl.expected.ir.glsl
@@ -1,11 +1,14 @@ -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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct str { + int i; +}; -tint executable returned error: signal: illegal instruction +int func(inout int pointer) { + return pointer; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + str F = str(0); + int r = func(F.i); +}
diff --git a/test/tint/ptr_ref/load/param/function/struct_in_array.wgsl.expected.ir.glsl b/test/tint/ptr_ref/load/param/function/struct_in_array.wgsl.expected.ir.glsl index 72ca17c..f49a0a7 100644 --- a/test/tint/ptr_ref/load/param/function/struct_in_array.wgsl.expected.ir.glsl +++ b/test/tint/ptr_ref/load/param/function/struct_in_array.wgsl.expected.ir.glsl
@@ -1,11 +1,14 @@ -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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct str { + int i; +}; -tint executable returned error: signal: illegal instruction +str func(inout str pointer) { + return pointer; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + str F[4] = str[4](str(0), str(0), str(0), str(0)); + str r = func(F[2]); +}
diff --git a/test/tint/ptr_ref/load/param/function/vec2_f32_in_mat2x2.wgsl.expected.ir.glsl b/test/tint/ptr_ref/load/param/function/vec2_f32_in_mat2x2.wgsl.expected.ir.glsl index 72ca17c..7422123 100644 --- a/test/tint/ptr_ref/load/param/function/vec2_f32_in_mat2x2.wgsl.expected.ir.glsl +++ b/test/tint/ptr_ref/load/param/function/vec2_f32_in_mat2x2.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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 +vec2 func(inout vec2 pointer) { + return pointer; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + mat2 F = mat2(vec2(0.0f), vec2(0.0f)); + vec2 r = func(F[1]); +}
diff --git a/test/tint/ptr_ref/load/param/function/vec4_f32_in_mat2x4.wgsl.expected.ir.glsl b/test/tint/ptr_ref/load/param/function/vec4_f32_in_mat2x4.wgsl.expected.ir.glsl index 72ca17c..002fb37 100644 --- a/test/tint/ptr_ref/load/param/function/vec4_f32_in_mat2x4.wgsl.expected.ir.glsl +++ b/test/tint/ptr_ref/load/param/function/vec4_f32_in_mat2x4.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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 +vec4 func(inout vec4 pointer) { + return pointer; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + mat2x4 F = mat2x4(vec4(0.0f), vec4(0.0f)); + vec4 r = func(F[1]); +}
diff --git a/test/tint/ptr_ref/load/param/function/vec4_f32_in_struct.wgsl.expected.ir.glsl b/test/tint/ptr_ref/load/param/function/vec4_f32_in_struct.wgsl.expected.ir.glsl index 72ca17c..eceac6d 100644 --- a/test/tint/ptr_ref/load/param/function/vec4_f32_in_struct.wgsl.expected.ir.glsl +++ b/test/tint/ptr_ref/load/param/function/vec4_f32_in_struct.wgsl.expected.ir.glsl
@@ -1,11 +1,14 @@ -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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct str { + vec4 i; +}; -tint executable returned error: signal: illegal instruction +vec4 func(inout vec4 pointer) { + return pointer; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + str F = str(vec4(0.0f)); + vec4 r = func(F.i); +}
diff --git a/test/tint/ptr_ref/load/param/private/array_in_struct.wgsl.expected.ir.glsl b/test/tint/ptr_ref/load/param/private/array_in_struct.wgsl.expected.ir.glsl index 72ca17c..46d1778 100644 --- a/test/tint/ptr_ref/load/param/private/array_in_struct.wgsl.expected.ir.glsl +++ b/test/tint/ptr_ref/load/param/private/array_in_struct.wgsl.expected.ir.glsl
@@ -1,11 +1,14 @@ -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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct str { + int arr[4]; +}; -tint executable returned error: signal: illegal instruction +str P = str(int[4](0, 0, 0, 0)); +int[4] func(inout int pointer[4]) { + return pointer; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + int r[4] = func(P.arr); +}
diff --git a/test/tint/ptr_ref/load/param/private/i32_in_struct.wgsl.expected.ir.glsl b/test/tint/ptr_ref/load/param/private/i32_in_struct.wgsl.expected.ir.glsl index 72ca17c..9d7ce7e 100644 --- a/test/tint/ptr_ref/load/param/private/i32_in_struct.wgsl.expected.ir.glsl +++ b/test/tint/ptr_ref/load/param/private/i32_in_struct.wgsl.expected.ir.glsl
@@ -1,11 +1,14 @@ -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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct str { + int i; +}; -tint executable returned error: signal: illegal instruction +str P = str(0); +int func(inout int pointer) { + return pointer; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + int r = func(P.i); +}
diff --git a/test/tint/ptr_ref/load/param/private/struct_in_array.wgsl.expected.ir.glsl b/test/tint/ptr_ref/load/param/private/struct_in_array.wgsl.expected.ir.glsl index 72ca17c..0d9b43f 100644 --- a/test/tint/ptr_ref/load/param/private/struct_in_array.wgsl.expected.ir.glsl +++ b/test/tint/ptr_ref/load/param/private/struct_in_array.wgsl.expected.ir.glsl
@@ -1,11 +1,14 @@ -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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct str { + int i; +}; -tint executable returned error: signal: illegal instruction +str P[4] = str[4](str(0), str(0), str(0), str(0)); +str func(inout str pointer) { + return pointer; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + str r = func(P[2]); +}
diff --git a/test/tint/ptr_ref/load/param/private/vec2_f32_in_mat2x2.wgsl.expected.ir.glsl b/test/tint/ptr_ref/load/param/private/vec2_f32_in_mat2x2.wgsl.expected.ir.glsl index 72ca17c..4cd1e6d 100644 --- a/test/tint/ptr_ref/load/param/private/vec2_f32_in_mat2x2.wgsl.expected.ir.glsl +++ b/test/tint/ptr_ref/load/param/private/vec2_f32_in_mat2x2.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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 +mat2 P = mat2(vec2(0.0f), vec2(0.0f)); +vec2 func(inout vec2 pointer) { + return pointer; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + vec2 r = func(P[1]); +}
diff --git a/test/tint/ptr_ref/load/param/private/vec4_f32_in_mat2x4.wgsl.expected.ir.glsl b/test/tint/ptr_ref/load/param/private/vec4_f32_in_mat2x4.wgsl.expected.ir.glsl index 72ca17c..f8863ef 100644 --- a/test/tint/ptr_ref/load/param/private/vec4_f32_in_mat2x4.wgsl.expected.ir.glsl +++ b/test/tint/ptr_ref/load/param/private/vec4_f32_in_mat2x4.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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 +mat2x4 P = mat2x4(vec4(0.0f), vec4(0.0f)); +vec4 func(inout vec4 pointer) { + return pointer; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + vec4 r = func(P[1]); +}
diff --git a/test/tint/ptr_ref/load/param/private/vec4_f32_in_struct.wgsl.expected.ir.glsl b/test/tint/ptr_ref/load/param/private/vec4_f32_in_struct.wgsl.expected.ir.glsl index 72ca17c..1783c04 100644 --- a/test/tint/ptr_ref/load/param/private/vec4_f32_in_struct.wgsl.expected.ir.glsl +++ b/test/tint/ptr_ref/load/param/private/vec4_f32_in_struct.wgsl.expected.ir.glsl
@@ -1,11 +1,14 @@ -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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct str { + vec4 i; +}; -tint executable returned error: signal: illegal instruction +str P = str(vec4(0.0f)); +vec4 func(inout vec4 pointer) { + return pointer; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + vec4 r = func(P.i); +}
diff --git a/test/tint/ptr_ref/load/param/storage/array_in_struct.wgsl.expected.ir.glsl b/test/tint/ptr_ref/load/param/storage/array_in_struct.wgsl.expected.ir.glsl index 72ca17c..eea91bc 100644 --- a/test/tint/ptr_ref/load/param/storage/array_in_struct.wgsl.expected.ir.glsl +++ b/test/tint/ptr_ref/load/param/storage/array_in_struct.wgsl.expected.ir.glsl
@@ -1,11 +1,14 @@ -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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct str { + int arr[4]; +}; -tint executable returned error: signal: illegal instruction +str S; +int[4] func() { + return S.arr; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + int r[4] = func(); +}
diff --git a/test/tint/ptr_ref/load/param/storage/i32.wgsl.expected.ir.glsl b/test/tint/ptr_ref/load/param/storage/i32.wgsl.expected.ir.glsl index 72ca17c..e046592 100644 --- a/test/tint/ptr_ref/load/param/storage/i32.wgsl.expected.ir.glsl +++ b/test/tint/ptr_ref/load/param/storage/i32.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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 S; +int func() { + return S; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + int r = func(); +}
diff --git a/test/tint/ptr_ref/load/param/storage/i32_in_struct.wgsl.expected.ir.glsl b/test/tint/ptr_ref/load/param/storage/i32_in_struct.wgsl.expected.ir.glsl index 72ca17c..2a798a4 100644 --- a/test/tint/ptr_ref/load/param/storage/i32_in_struct.wgsl.expected.ir.glsl +++ b/test/tint/ptr_ref/load/param/storage/i32_in_struct.wgsl.expected.ir.glsl
@@ -1,11 +1,14 @@ -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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct str { + int i; +}; -tint executable returned error: signal: illegal instruction +str S; +int func() { + return S.i; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + int r = func(); +}
diff --git a/test/tint/ptr_ref/load/param/storage/vec4_f32.wgsl.expected.ir.glsl b/test/tint/ptr_ref/load/param/storage/vec4_f32.wgsl.expected.ir.glsl index 72ca17c..aac2ee1 100644 --- a/test/tint/ptr_ref/load/param/storage/vec4_f32.wgsl.expected.ir.glsl +++ b/test/tint/ptr_ref/load/param/storage/vec4_f32.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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 +vec4 S; +vec4 func() { + return S; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + vec4 r = func(); +}
diff --git a/test/tint/ptr_ref/load/param/storage/vec4_f32_in_struct.wgsl.expected.ir.glsl b/test/tint/ptr_ref/load/param/storage/vec4_f32_in_struct.wgsl.expected.ir.glsl index 72ca17c..7e60da4 100644 --- a/test/tint/ptr_ref/load/param/storage/vec4_f32_in_struct.wgsl.expected.ir.glsl +++ b/test/tint/ptr_ref/load/param/storage/vec4_f32_in_struct.wgsl.expected.ir.glsl
@@ -1,11 +1,14 @@ -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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct str { + vec4 i; +}; -tint executable returned error: signal: illegal instruction +str S; +vec4 func() { + return S.i; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + vec4 r = func(); +}
diff --git a/test/tint/ptr_ref/load/param/uniform/array_in_struct.wgsl.expected.ir.glsl b/test/tint/ptr_ref/load/param/uniform/array_in_struct.wgsl.expected.ir.glsl index 72ca17c..3d9381d 100644 --- a/test/tint/ptr_ref/load/param/uniform/array_in_struct.wgsl.expected.ir.glsl +++ b/test/tint/ptr_ref/load/param/uniform/array_in_struct.wgsl.expected.ir.glsl
@@ -1,11 +1,14 @@ -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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct str { + int arr[4]; +}; -tint executable returned error: signal: illegal instruction +uniform str S; +int[4] func() { + return S.arr; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + int r[4] = func(); +}
diff --git a/test/tint/ptr_ref/load/param/uniform/i32.wgsl.expected.ir.glsl b/test/tint/ptr_ref/load/param/uniform/i32.wgsl.expected.ir.glsl index 72ca17c..73681a9 100644 --- a/test/tint/ptr_ref/load/param/uniform/i32.wgsl.expected.ir.glsl +++ b/test/tint/ptr_ref/load/param/uniform/i32.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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 +uniform int S; +int func() { + return S; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + int r = func(); +}
diff --git a/test/tint/ptr_ref/load/param/uniform/i32_in_struct.wgsl.expected.ir.glsl b/test/tint/ptr_ref/load/param/uniform/i32_in_struct.wgsl.expected.ir.glsl index 72ca17c..6c90606 100644 --- a/test/tint/ptr_ref/load/param/uniform/i32_in_struct.wgsl.expected.ir.glsl +++ b/test/tint/ptr_ref/load/param/uniform/i32_in_struct.wgsl.expected.ir.glsl
@@ -1,11 +1,14 @@ -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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct str { + int i; +}; -tint executable returned error: signal: illegal instruction +uniform str S; +int func() { + return S.i; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + int r = func(); +}
diff --git a/test/tint/ptr_ref/load/param/uniform/vec4_f32.wgsl.expected.ir.glsl b/test/tint/ptr_ref/load/param/uniform/vec4_f32.wgsl.expected.ir.glsl index 72ca17c..7b0b3b9 100644 --- a/test/tint/ptr_ref/load/param/uniform/vec4_f32.wgsl.expected.ir.glsl +++ b/test/tint/ptr_ref/load/param/uniform/vec4_f32.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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 +uniform vec4 S; +vec4 func() { + return S; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + vec4 r = func(); +}
diff --git a/test/tint/ptr_ref/load/param/uniform/vec4_f32_in_struct.wgsl.expected.ir.glsl b/test/tint/ptr_ref/load/param/uniform/vec4_f32_in_struct.wgsl.expected.ir.glsl index 72ca17c..f0f926e 100644 --- a/test/tint/ptr_ref/load/param/uniform/vec4_f32_in_struct.wgsl.expected.ir.glsl +++ b/test/tint/ptr_ref/load/param/uniform/vec4_f32_in_struct.wgsl.expected.ir.glsl
@@ -1,11 +1,14 @@ -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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct str { + vec4 i; +}; -tint executable returned error: signal: illegal instruction +uniform str S; +vec4 func() { + return S.i; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + vec4 r = func(); +}
diff --git a/test/tint/ptr_ref/store/global/struct_field.spvasm.expected.ir.glsl b/test/tint/ptr_ref/store/global/struct_field.spvasm.expected.ir.glsl index d4bb1c9..1806ae6 100644 --- a/test/tint/ptr_ref/store/global/struct_field.spvasm.expected.ir.glsl +++ b/test/tint/ptr_ref/store/global/struct_field.spvasm.expected.ir.glsl
@@ -1,11 +1,14 @@ -SKIP: FAILED +#version 310 es -<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:252 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct S { + int i; +}; -tint executable returned error: signal: illegal instruction +S V = S(0); +void main_1() { + V.i = 5; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + main_1(); +}
diff --git a/test/tint/ptr_ref/store/local/struct_field.spvasm.expected.ir.glsl b/test/tint/ptr_ref/store/local/struct_field.spvasm.expected.ir.glsl index d4bb1c9..74ffb1b 100644 --- a/test/tint/ptr_ref/store/local/struct_field.spvasm.expected.ir.glsl +++ b/test/tint/ptr_ref/store/local/struct_field.spvasm.expected.ir.glsl
@@ -1,11 +1,14 @@ -SKIP: FAILED +#version 310 es -<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:252 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct S { + int i; +}; -tint executable returned error: signal: illegal instruction +void main_1() { + S V = S(0); + V.i = 5; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + main_1(); +}
diff --git a/test/tint/ptr_ref/store/param/function/array_in_struct.wgsl.expected.ir.glsl b/test/tint/ptr_ref/store/param/function/array_in_struct.wgsl.expected.ir.glsl index d4bb1c9..b12f792 100644 --- a/test/tint/ptr_ref/store/param/function/array_in_struct.wgsl.expected.ir.glsl +++ b/test/tint/ptr_ref/store/param/function/array_in_struct.wgsl.expected.ir.glsl
@@ -1,11 +1,14 @@ -SKIP: FAILED +#version 310 es -<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:252 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct str { + int arr[4]; +}; -tint executable returned error: signal: illegal instruction +void func(inout int pointer[4]) { + pointer = int[4](0, 0, 0, 0); +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + str F = str(int[4](0, 0, 0, 0)); + func(F.arr); +}
diff --git a/test/tint/ptr_ref/store/param/function/i32_in_struct.wgsl.expected.ir.glsl b/test/tint/ptr_ref/store/param/function/i32_in_struct.wgsl.expected.ir.glsl index d4bb1c9..82c0dfd 100644 --- a/test/tint/ptr_ref/store/param/function/i32_in_struct.wgsl.expected.ir.glsl +++ b/test/tint/ptr_ref/store/param/function/i32_in_struct.wgsl.expected.ir.glsl
@@ -1,11 +1,14 @@ -SKIP: FAILED +#version 310 es -<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:252 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct str { + int i; +}; -tint executable returned error: signal: illegal instruction +void func(inout int pointer) { + pointer = 42; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + str F = str(0); + func(F.i); +}
diff --git a/test/tint/ptr_ref/store/param/function/struct_in_array.wgsl.expected.ir.glsl b/test/tint/ptr_ref/store/param/function/struct_in_array.wgsl.expected.ir.glsl index d4bb1c9..1758082 100644 --- a/test/tint/ptr_ref/store/param/function/struct_in_array.wgsl.expected.ir.glsl +++ b/test/tint/ptr_ref/store/param/function/struct_in_array.wgsl.expected.ir.glsl
@@ -1,11 +1,14 @@ -SKIP: FAILED +#version 310 es -<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:252 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct str { + int i; +}; -tint executable returned error: signal: illegal instruction +void func(inout str pointer) { + pointer = str(0); +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + str F[4] = str[4](str(0), str(0), str(0), str(0)); + func(F[2]); +}
diff --git a/test/tint/ptr_ref/store/param/function/vec2_f32_in_mat2x2.wgsl.expected.ir.glsl b/test/tint/ptr_ref/store/param/function/vec2_f32_in_mat2x2.wgsl.expected.ir.glsl index d4bb1c9..0d45ad7 100644 --- a/test/tint/ptr_ref/store/param/function/vec2_f32_in_mat2x2.wgsl.expected.ir.glsl +++ b/test/tint/ptr_ref/store/param/function/vec2_f32_in_mat2x2.wgsl.expected.ir.glsl
@@ -1,11 +1,10 @@ -SKIP: FAILED +#version 310 es -<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:252 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 +void func(inout vec2 pointer) { + pointer = vec2(0.0f); +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + mat2 F = mat2(vec2(0.0f), vec2(0.0f)); + func(F[1]); +}
diff --git a/test/tint/ptr_ref/store/param/function/vec4_f32_in_mat2x4.wgsl.expected.ir.glsl b/test/tint/ptr_ref/store/param/function/vec4_f32_in_mat2x4.wgsl.expected.ir.glsl index d4bb1c9..6d025d6 100644 --- a/test/tint/ptr_ref/store/param/function/vec4_f32_in_mat2x4.wgsl.expected.ir.glsl +++ b/test/tint/ptr_ref/store/param/function/vec4_f32_in_mat2x4.wgsl.expected.ir.glsl
@@ -1,11 +1,10 @@ -SKIP: FAILED +#version 310 es -<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:252 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 +void func(inout vec4 pointer) { + pointer = vec4(0.0f); +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + mat2x4 F = mat2x4(vec4(0.0f), vec4(0.0f)); + func(F[1]); +}
diff --git a/test/tint/ptr_ref/store/param/function/vec4_f32_in_struct.wgsl.expected.ir.glsl b/test/tint/ptr_ref/store/param/function/vec4_f32_in_struct.wgsl.expected.ir.glsl index d4bb1c9..69d0213 100644 --- a/test/tint/ptr_ref/store/param/function/vec4_f32_in_struct.wgsl.expected.ir.glsl +++ b/test/tint/ptr_ref/store/param/function/vec4_f32_in_struct.wgsl.expected.ir.glsl
@@ -1,11 +1,14 @@ -SKIP: FAILED +#version 310 es -<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:252 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct str { + vec4 i; +}; -tint executable returned error: signal: illegal instruction +void func(inout vec4 pointer) { + pointer = vec4(0.0f); +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + str F = str(vec4(0.0f)); + func(F.i); +}
diff --git a/test/tint/ptr_ref/store/param/private/array_in_struct.wgsl.expected.ir.glsl b/test/tint/ptr_ref/store/param/private/array_in_struct.wgsl.expected.ir.glsl index d4bb1c9..694ac27 100644 --- a/test/tint/ptr_ref/store/param/private/array_in_struct.wgsl.expected.ir.glsl +++ b/test/tint/ptr_ref/store/param/private/array_in_struct.wgsl.expected.ir.glsl
@@ -1,11 +1,14 @@ -SKIP: FAILED +#version 310 es -<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:252 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct str { + int arr[4]; +}; -tint executable returned error: signal: illegal instruction +str P = str(int[4](0, 0, 0, 0)); +void func(inout int pointer[4]) { + pointer = int[4](0, 0, 0, 0); +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + func(P.arr); +}
diff --git a/test/tint/ptr_ref/store/param/private/i32_in_struct.wgsl.expected.ir.glsl b/test/tint/ptr_ref/store/param/private/i32_in_struct.wgsl.expected.ir.glsl index d4bb1c9..69918ef 100644 --- a/test/tint/ptr_ref/store/param/private/i32_in_struct.wgsl.expected.ir.glsl +++ b/test/tint/ptr_ref/store/param/private/i32_in_struct.wgsl.expected.ir.glsl
@@ -1,11 +1,14 @@ -SKIP: FAILED +#version 310 es -<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:252 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct str { + int i; +}; -tint executable returned error: signal: illegal instruction +str P = str(0); +void func(inout int pointer) { + pointer = 42; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + func(P.i); +}
diff --git a/test/tint/ptr_ref/store/param/private/struct_in_array.wgsl.expected.ir.glsl b/test/tint/ptr_ref/store/param/private/struct_in_array.wgsl.expected.ir.glsl index d4bb1c9..00b1c43e 100644 --- a/test/tint/ptr_ref/store/param/private/struct_in_array.wgsl.expected.ir.glsl +++ b/test/tint/ptr_ref/store/param/private/struct_in_array.wgsl.expected.ir.glsl
@@ -1,11 +1,14 @@ -SKIP: FAILED +#version 310 es -<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:252 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct str { + int i; +}; -tint executable returned error: signal: illegal instruction +str P[4] = str[4](str(0), str(0), str(0), str(0)); +void func(inout str pointer) { + pointer = str(0); +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + func(P[2]); +}
diff --git a/test/tint/ptr_ref/store/param/private/vec2_f32_in_mat2x2.wgsl.expected.ir.glsl b/test/tint/ptr_ref/store/param/private/vec2_f32_in_mat2x2.wgsl.expected.ir.glsl index d4bb1c9..78babbf 100644 --- a/test/tint/ptr_ref/store/param/private/vec2_f32_in_mat2x2.wgsl.expected.ir.glsl +++ b/test/tint/ptr_ref/store/param/private/vec2_f32_in_mat2x2.wgsl.expected.ir.glsl
@@ -1,11 +1,10 @@ -SKIP: FAILED +#version 310 es -<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:252 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 +mat2 P = mat2(vec2(0.0f), vec2(0.0f)); +void func(inout vec2 pointer) { + pointer = vec2(0.0f); +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + func(P[1]); +}
diff --git a/test/tint/ptr_ref/store/param/private/vec4_f32_in_mat2x4.wgsl.expected.ir.glsl b/test/tint/ptr_ref/store/param/private/vec4_f32_in_mat2x4.wgsl.expected.ir.glsl index d4bb1c9..fb76858 100644 --- a/test/tint/ptr_ref/store/param/private/vec4_f32_in_mat2x4.wgsl.expected.ir.glsl +++ b/test/tint/ptr_ref/store/param/private/vec4_f32_in_mat2x4.wgsl.expected.ir.glsl
@@ -1,11 +1,10 @@ -SKIP: FAILED +#version 310 es -<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:252 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 +mat2x4 P = mat2x4(vec4(0.0f), vec4(0.0f)); +void func(inout vec4 pointer) { + pointer = vec4(0.0f); +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + func(P[1]); +}
diff --git a/test/tint/ptr_ref/store/param/private/vec4_f32_in_struct.wgsl.expected.ir.glsl b/test/tint/ptr_ref/store/param/private/vec4_f32_in_struct.wgsl.expected.ir.glsl index d4bb1c9..9136446 100644 --- a/test/tint/ptr_ref/store/param/private/vec4_f32_in_struct.wgsl.expected.ir.glsl +++ b/test/tint/ptr_ref/store/param/private/vec4_f32_in_struct.wgsl.expected.ir.glsl
@@ -1,11 +1,14 @@ -SKIP: FAILED +#version 310 es -<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:252 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct str { + vec4 i; +}; -tint executable returned error: signal: illegal instruction +str P = str(vec4(0.0f)); +void func(inout vec4 pointer) { + pointer = vec4(0.0f); +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + func(P.i); +}
diff --git a/test/tint/ptr_ref/store/param/storage/array_in_struct.wgsl.expected.ir.glsl b/test/tint/ptr_ref/store/param/storage/array_in_struct.wgsl.expected.ir.glsl index d4bb1c9..be9bf5c 100644 --- a/test/tint/ptr_ref/store/param/storage/array_in_struct.wgsl.expected.ir.glsl +++ b/test/tint/ptr_ref/store/param/storage/array_in_struct.wgsl.expected.ir.glsl
@@ -1,11 +1,14 @@ -SKIP: FAILED +#version 310 es -<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:252 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct str { + int arr[4]; +}; -tint executable returned error: signal: illegal instruction +str S; +void func() { + S.arr = int[4](0, 0, 0, 0); +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + func(); +}
diff --git a/test/tint/ptr_ref/store/param/storage/i32.wgsl.expected.ir.glsl b/test/tint/ptr_ref/store/param/storage/i32.wgsl.expected.ir.glsl index d4bb1c9..76bd46d5 100644 --- a/test/tint/ptr_ref/store/param/storage/i32.wgsl.expected.ir.glsl +++ b/test/tint/ptr_ref/store/param/storage/i32.wgsl.expected.ir.glsl
@@ -1,11 +1,10 @@ -SKIP: FAILED +#version 310 es -<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:252 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 S; +void func() { + S = 42; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + func(); +}
diff --git a/test/tint/ptr_ref/store/param/storage/i32_in_struct.wgsl.expected.ir.glsl b/test/tint/ptr_ref/store/param/storage/i32_in_struct.wgsl.expected.ir.glsl index d4bb1c9..c585faf 100644 --- a/test/tint/ptr_ref/store/param/storage/i32_in_struct.wgsl.expected.ir.glsl +++ b/test/tint/ptr_ref/store/param/storage/i32_in_struct.wgsl.expected.ir.glsl
@@ -1,11 +1,14 @@ -SKIP: FAILED +#version 310 es -<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:252 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct str { + int i; +}; -tint executable returned error: signal: illegal instruction +str S; +void func() { + S.i = 42; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + func(); +}
diff --git a/test/tint/ptr_ref/store/param/storage/vec4_f32.wgsl.expected.ir.glsl b/test/tint/ptr_ref/store/param/storage/vec4_f32.wgsl.expected.ir.glsl index d4bb1c9..eb586fc 100644 --- a/test/tint/ptr_ref/store/param/storage/vec4_f32.wgsl.expected.ir.glsl +++ b/test/tint/ptr_ref/store/param/storage/vec4_f32.wgsl.expected.ir.glsl
@@ -1,11 +1,10 @@ -SKIP: FAILED +#version 310 es -<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:252 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store -******************************************************************** -* The tint shader compiler has encountered an unexpected 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 +vec4 S; +void func() { + S = vec4(0.0f); +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + func(); +}
diff --git a/test/tint/ptr_ref/store/param/storage/vec4_f32_in_struct.wgsl.expected.ir.glsl b/test/tint/ptr_ref/store/param/storage/vec4_f32_in_struct.wgsl.expected.ir.glsl index d4bb1c9..d65f99f 100644 --- a/test/tint/ptr_ref/store/param/storage/vec4_f32_in_struct.wgsl.expected.ir.glsl +++ b/test/tint/ptr_ref/store/param/storage/vec4_f32_in_struct.wgsl.expected.ir.glsl
@@ -1,11 +1,14 @@ -SKIP: FAILED +#version 310 es -<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:252 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct str { + vec4 i; +}; -tint executable returned error: signal: illegal instruction +str S; +void func() { + S.i = vec4(0.0f); +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + func(); +}
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/indexing_with_side_effect_func.wgsl.expected.ir.glsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/indexing_with_side_effect_func.wgsl.expected.ir.glsl index d4bb1c9..a3a6fd0 100644 --- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/indexing_with_side_effect_func.wgsl.expected.ir.glsl +++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/indexing_with_side_effect_func.wgsl.expected.ir.glsl
@@ -1,11 +1,32 @@ -SKIP: FAILED +#version 310 es -<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:252 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct Uniforms { + uint i; + uint j; +}; -tint executable returned error: signal: illegal instruction +struct InnerS { + int v; +}; + +struct S1 { + InnerS a2[8]; +}; + +struct OuterS { + S1 a1[8]; +}; + +uint nextIndex = 0u; +uniform Uniforms uniforms; +uint getNextIndex() { + nextIndex = (nextIndex + 1u); + return nextIndex; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + InnerS v = InnerS(0); + OuterS s = OuterS(S1[8](S1(InnerS[8](InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0))), S1(InnerS[8](InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0))), S1(InnerS[8](InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0))), S1(InnerS[8](InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0))), S1(InnerS[8](InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0))), S1(InnerS[8](InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0))), S1(InnerS[8](InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0))), S1(InnerS[8](InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0))))); + uint v_1 = getNextIndex(); + s.a1[v_1].a2[uniforms.j] = v; +}
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array.wgsl.expected.ir.glsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array.wgsl.expected.ir.glsl index d4bb1c9..3762854 100644 --- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array.wgsl.expected.ir.glsl +++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array.wgsl.expected.ir.glsl
@@ -1,11 +1,21 @@ -SKIP: FAILED +#version 310 es -<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:252 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct Uniforms { + uint i; +}; -tint executable returned error: signal: illegal instruction +struct InnerS { + int v; +}; + +struct OuterS { + InnerS a1[8]; +}; + +uniform Uniforms uniforms; +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + InnerS v = InnerS(0); + OuterS s1 = OuterS(InnerS[8](InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0))); + s1.a1[uniforms.i] = v; +}
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array_array.wgsl.expected.ir.glsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array_array.wgsl.expected.ir.glsl index d4bb1c9..e2f5363 100644 --- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array_array.wgsl.expected.ir.glsl +++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array_array.wgsl.expected.ir.glsl
@@ -1,11 +1,22 @@ -SKIP: FAILED +#version 310 es -<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:252 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct Uniforms { + uint i; + uint j; +}; -tint executable returned error: signal: illegal instruction +struct InnerS { + int v; +}; + +struct OuterS { + InnerS a1[8][8]; +}; + +uniform Uniforms uniforms; +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + InnerS v = InnerS(0); + OuterS s1 = OuterS(InnerS[8][8](InnerS[8](InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0)), InnerS[8](InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0)), InnerS[8](InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0)), InnerS[8](InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0)), InnerS[8](InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0)), InnerS[8](InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0)), InnerS[8](InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0)), InnerS[8](InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0)))); + s1.a1[uniforms.i][uniforms.j] = v; +}
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array_struct.wgsl.expected.ir.glsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array_struct.wgsl.expected.ir.glsl index d4bb1c9..e0ea516 100644 --- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array_struct.wgsl.expected.ir.glsl +++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array_struct.wgsl.expected.ir.glsl
@@ -1,11 +1,25 @@ -SKIP: FAILED +#version 310 es -<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:252 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct Uniforms { + uint i; +}; -tint executable returned error: signal: illegal instruction +struct InnerS { + int v; +}; + +struct S1 { + InnerS s2; +}; + +struct OuterS { + S1 a1[8]; +}; + +uniform Uniforms uniforms; +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + InnerS v = InnerS(0); + OuterS s1 = OuterS(S1[8](S1(InnerS(0)), S1(InnerS(0)), S1(InnerS(0)), S1(InnerS(0)), S1(InnerS(0)), S1(InnerS(0)), S1(InnerS(0)), S1(InnerS(0)))); + s1.a1[uniforms.i].s2 = v; +}
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array_struct_array.wgsl.expected.ir.glsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array_struct_array.wgsl.expected.ir.glsl index d4bb1c9..f288422 100644 --- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array_struct_array.wgsl.expected.ir.glsl +++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array_struct_array.wgsl.expected.ir.glsl
@@ -1,11 +1,26 @@ -SKIP: FAILED +#version 310 es -<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:252 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct Uniforms { + uint i; + uint j; +}; -tint executable returned error: signal: illegal instruction +struct InnerS { + int v; +}; + +struct S1 { + InnerS a2[8]; +}; + +struct OuterS { + S1 a1[8]; +}; + +uniform Uniforms uniforms; +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + InnerS v = InnerS(0); + OuterS s = OuterS(S1[8](S1(InnerS[8](InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0))), S1(InnerS[8](InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0))), S1(InnerS[8](InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0))), S1(InnerS[8](InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0))), S1(InnerS[8](InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0))), S1(InnerS[8](InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0))), S1(InnerS[8](InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0))), S1(InnerS[8](InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0))))); + s.a1[uniforms.i].a2[uniforms.j] = v; +}
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_multiple_arrays.wgsl.expected.ir.glsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_multiple_arrays.wgsl.expected.ir.glsl index d4bb1c9..b26df73 100644 --- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_multiple_arrays.wgsl.expected.ir.glsl +++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_multiple_arrays.wgsl.expected.ir.glsl
@@ -1,11 +1,23 @@ -SKIP: FAILED +#version 310 es -<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:252 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct Uniforms { + uint i; +}; -tint executable returned error: signal: illegal instruction +struct InnerS { + int v; +}; + +struct OuterS { + InnerS a1[8]; + InnerS a2[8]; +}; + +uniform Uniforms uniforms; +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + InnerS v = InnerS(0); + OuterS s1 = OuterS(InnerS[8](InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0)), InnerS[8](InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0))); + s1.a1[uniforms.i] = v; + s1.a2[uniforms.i] = v; +}
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_struct_array.wgsl.expected.ir.glsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_struct_array.wgsl.expected.ir.glsl index d4bb1c9..4224c91 100644 --- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_struct_array.wgsl.expected.ir.glsl +++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_struct_array.wgsl.expected.ir.glsl
@@ -1,11 +1,25 @@ -SKIP: FAILED +#version 310 es -<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:252 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct Uniforms { + uint i; +}; -tint executable returned error: signal: illegal instruction +struct InnerS { + int v; +}; + +struct S1 { + InnerS a[8]; +}; + +struct OuterS { + S1 s2; +}; + +uniform Uniforms uniforms; +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + InnerS v = InnerS(0); + OuterS s1 = OuterS(S1(InnerS[8](InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0)))); + s1.s2.a[uniforms.i] = v; +}
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/via_pointer_arg.wgsl.expected.ir.glsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/via_pointer_arg.wgsl.expected.ir.glsl index d4bb1c9..810270b 100644 --- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/via_pointer_arg.wgsl.expected.ir.glsl +++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/via_pointer_arg.wgsl.expected.ir.glsl
@@ -1,11 +1,24 @@ -SKIP: FAILED +#version 310 es -<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:252 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct Uniforms { + uint i; +}; -tint executable returned error: signal: illegal instruction +struct InnerS { + int v; +}; + +struct OuterS { + InnerS a1[8]; +}; + +uniform Uniforms uniforms; +void f(inout OuterS p) { + InnerS v = InnerS(0); + p.a1[uniforms.i] = v; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + OuterS s1 = OuterS(InnerS[8](InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0))); + f(s1); +}
diff --git a/test/tint/statements/compound_assign/matrix/minus.wgsl.expected.ir.glsl b/test/tint/statements/compound_assign/matrix/minus.wgsl.expected.ir.glsl index d4bb1c9..00e1c6a 100644 --- a/test/tint/statements/compound_assign/matrix/minus.wgsl.expected.ir.glsl +++ b/test/tint/statements/compound_assign/matrix/minus.wgsl.expected.ir.glsl
@@ -1,11 +1,13 @@ -SKIP: FAILED +#version 310 es -<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:252 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct S { + mat4 a; +}; -tint executable returned error: signal: illegal instruction +S v; +void foo() { + v.a = (v.a - mat4(vec4(0.0f), vec4(0.0f), vec4(0.0f), vec4(0.0f))); +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { +}
diff --git a/test/tint/statements/compound_assign/matrix/plus.wgsl.expected.ir.glsl b/test/tint/statements/compound_assign/matrix/plus.wgsl.expected.ir.glsl index d4bb1c9..2d33cef 100644 --- a/test/tint/statements/compound_assign/matrix/plus.wgsl.expected.ir.glsl +++ b/test/tint/statements/compound_assign/matrix/plus.wgsl.expected.ir.glsl
@@ -1,11 +1,13 @@ -SKIP: FAILED +#version 310 es -<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:252 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct S { + mat4 a; +}; -tint executable returned error: signal: illegal instruction +S v; +void foo() { + v.a = (v.a + mat4(vec4(0.0f), vec4(0.0f), vec4(0.0f), vec4(0.0f))); +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { +}
diff --git a/test/tint/statements/compound_assign/matrix/times-scalar.wgsl.expected.ir.glsl b/test/tint/statements/compound_assign/matrix/times-scalar.wgsl.expected.ir.glsl index d4bb1c9..34ac696 100644 --- a/test/tint/statements/compound_assign/matrix/times-scalar.wgsl.expected.ir.glsl +++ b/test/tint/statements/compound_assign/matrix/times-scalar.wgsl.expected.ir.glsl
@@ -1,11 +1,13 @@ -SKIP: FAILED +#version 310 es -<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:252 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct S { + mat4 a; +}; -tint executable returned error: signal: illegal instruction +S v; +void foo() { + v.a = (v.a * 2.0f); +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { +}
diff --git a/test/tint/statements/compound_assign/matrix/times.wgsl.expected.ir.glsl b/test/tint/statements/compound_assign/matrix/times.wgsl.expected.ir.glsl index d4bb1c9..eaa062f 100644 --- a/test/tint/statements/compound_assign/matrix/times.wgsl.expected.ir.glsl +++ b/test/tint/statements/compound_assign/matrix/times.wgsl.expected.ir.glsl
@@ -1,11 +1,13 @@ -SKIP: FAILED +#version 310 es -<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:252 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct S { + mat4 a; +}; -tint executable returned error: signal: illegal instruction +S v; +void foo() { + v.a = (v.a * mat4(vec4(0.0f), vec4(0.0f), vec4(0.0f), vec4(0.0f))); +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { +}
diff --git a/test/tint/statements/compound_assign/scalar/and.wgsl.expected.ir.glsl b/test/tint/statements/compound_assign/scalar/and.wgsl.expected.ir.glsl index d4bb1c9..176f68d 100644 --- a/test/tint/statements/compound_assign/scalar/and.wgsl.expected.ir.glsl +++ b/test/tint/statements/compound_assign/scalar/and.wgsl.expected.ir.glsl
@@ -1,11 +1,13 @@ -SKIP: FAILED +#version 310 es -<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:252 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct S { + int a; +}; -tint executable returned error: signal: illegal instruction +S v; +void foo() { + v.a = (v.a & 2); +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { +}
diff --git a/test/tint/statements/compound_assign/scalar/minus.wgsl.expected.ir.glsl b/test/tint/statements/compound_assign/scalar/minus.wgsl.expected.ir.glsl index d4bb1c9..6aec0cf 100644 --- a/test/tint/statements/compound_assign/scalar/minus.wgsl.expected.ir.glsl +++ b/test/tint/statements/compound_assign/scalar/minus.wgsl.expected.ir.glsl
@@ -1,11 +1,13 @@ -SKIP: FAILED +#version 310 es -<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:252 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct S { + int a; +}; -tint executable returned error: signal: illegal instruction +S v; +void foo() { + v.a = (v.a - 2); +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { +}
diff --git a/test/tint/statements/compound_assign/scalar/or.wgsl.expected.ir.glsl b/test/tint/statements/compound_assign/scalar/or.wgsl.expected.ir.glsl index d4bb1c9..059fb74 100644 --- a/test/tint/statements/compound_assign/scalar/or.wgsl.expected.ir.glsl +++ b/test/tint/statements/compound_assign/scalar/or.wgsl.expected.ir.glsl
@@ -1,11 +1,13 @@ -SKIP: FAILED +#version 310 es -<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:252 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct S { + int a; +}; -tint executable returned error: signal: illegal instruction +S v; +void foo() { + v.a = (v.a | 2); +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { +}
diff --git a/test/tint/statements/compound_assign/scalar/plus.wgsl.expected.ir.glsl b/test/tint/statements/compound_assign/scalar/plus.wgsl.expected.ir.glsl index d4bb1c9..f04b6a3 100644 --- a/test/tint/statements/compound_assign/scalar/plus.wgsl.expected.ir.glsl +++ b/test/tint/statements/compound_assign/scalar/plus.wgsl.expected.ir.glsl
@@ -1,11 +1,13 @@ -SKIP: FAILED +#version 310 es -<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:252 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct S { + int a; +}; -tint executable returned error: signal: illegal instruction +S v; +void foo() { + v.a = (v.a + 2); +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { +}
diff --git a/test/tint/statements/compound_assign/scalar/shift_left.wgsl.expected.ir.glsl b/test/tint/statements/compound_assign/scalar/shift_left.wgsl.expected.ir.glsl index d4bb1c9..5c52632 100644 --- a/test/tint/statements/compound_assign/scalar/shift_left.wgsl.expected.ir.glsl +++ b/test/tint/statements/compound_assign/scalar/shift_left.wgsl.expected.ir.glsl
@@ -1,11 +1,13 @@ -SKIP: FAILED +#version 310 es -<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:252 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct S { + int a; +}; -tint executable returned error: signal: illegal instruction +S v; +void foo() { + v.a = (v.a << (2u & 31u)); +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { +}
diff --git a/test/tint/statements/compound_assign/scalar/shift_right.wgsl.expected.ir.glsl b/test/tint/statements/compound_assign/scalar/shift_right.wgsl.expected.ir.glsl index d4bb1c9..9d08063 100644 --- a/test/tint/statements/compound_assign/scalar/shift_right.wgsl.expected.ir.glsl +++ b/test/tint/statements/compound_assign/scalar/shift_right.wgsl.expected.ir.glsl
@@ -1,11 +1,13 @@ -SKIP: FAILED +#version 310 es -<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:252 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct S { + int a; +}; -tint executable returned error: signal: illegal instruction +S v; +void foo() { + v.a = (v.a >> (2u & 31u)); +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { +}
diff --git a/test/tint/statements/compound_assign/scalar/times.wgsl.expected.ir.glsl b/test/tint/statements/compound_assign/scalar/times.wgsl.expected.ir.glsl index d4bb1c9..3b8ff19 100644 --- a/test/tint/statements/compound_assign/scalar/times.wgsl.expected.ir.glsl +++ b/test/tint/statements/compound_assign/scalar/times.wgsl.expected.ir.glsl
@@ -1,11 +1,13 @@ -SKIP: FAILED +#version 310 es -<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:252 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct S { + int a; +}; -tint executable returned error: signal: illegal instruction +S v; +void foo() { + v.a = (v.a * 2); +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { +}
diff --git a/test/tint/statements/compound_assign/scalar/xor.wgsl.expected.ir.glsl b/test/tint/statements/compound_assign/scalar/xor.wgsl.expected.ir.glsl index d4bb1c9..5aca015 100644 --- a/test/tint/statements/compound_assign/scalar/xor.wgsl.expected.ir.glsl +++ b/test/tint/statements/compound_assign/scalar/xor.wgsl.expected.ir.glsl
@@ -1,11 +1,13 @@ -SKIP: FAILED +#version 310 es -<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:252 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct S { + int a; +}; -tint executable returned error: signal: illegal instruction +S v; +void foo() { + v.a = (v.a ^ 2); +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { +}
diff --git a/test/tint/statements/compound_assign/vector/and.wgsl.expected.ir.glsl b/test/tint/statements/compound_assign/vector/and.wgsl.expected.ir.glsl index d4bb1c9..1a1309f 100644 --- a/test/tint/statements/compound_assign/vector/and.wgsl.expected.ir.glsl +++ b/test/tint/statements/compound_assign/vector/and.wgsl.expected.ir.glsl
@@ -1,11 +1,13 @@ -SKIP: FAILED +#version 310 es -<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:252 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct S { + ivec4 a; +}; -tint executable returned error: signal: illegal instruction +S v; +void foo() { + v.a = (v.a & ivec4(2)); +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { +}
diff --git a/test/tint/statements/compound_assign/vector/divide-scalar.wgsl.expected.ir.glsl b/test/tint/statements/compound_assign/vector/divide-scalar.wgsl.expected.ir.glsl index d4bb1c9..415d81c 100644 --- a/test/tint/statements/compound_assign/vector/divide-scalar.wgsl.expected.ir.glsl +++ b/test/tint/statements/compound_assign/vector/divide-scalar.wgsl.expected.ir.glsl
@@ -1,11 +1,13 @@ -SKIP: FAILED +#version 310 es -<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:252 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct S { + vec4 a; +}; -tint executable returned error: signal: illegal instruction +S v; +void foo() { + v.a = (v.a / 2.0f); +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { +}
diff --git a/test/tint/statements/compound_assign/vector/minus-scalar.wgsl.expected.ir.glsl b/test/tint/statements/compound_assign/vector/minus-scalar.wgsl.expected.ir.glsl index d4bb1c9..6c6a8dd 100644 --- a/test/tint/statements/compound_assign/vector/minus-scalar.wgsl.expected.ir.glsl +++ b/test/tint/statements/compound_assign/vector/minus-scalar.wgsl.expected.ir.glsl
@@ -1,11 +1,13 @@ -SKIP: FAILED +#version 310 es -<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:252 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct S { + vec4 a; +}; -tint executable returned error: signal: illegal instruction +S v; +void foo() { + v.a = (v.a - 2.0f); +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { +}
diff --git a/test/tint/statements/compound_assign/vector/minus.wgsl.expected.ir.glsl b/test/tint/statements/compound_assign/vector/minus.wgsl.expected.ir.glsl index d4bb1c9..7b519df 100644 --- a/test/tint/statements/compound_assign/vector/minus.wgsl.expected.ir.glsl +++ b/test/tint/statements/compound_assign/vector/minus.wgsl.expected.ir.glsl
@@ -1,11 +1,13 @@ -SKIP: FAILED +#version 310 es -<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:252 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct S { + ivec4 a; +}; -tint executable returned error: signal: illegal instruction +S v; +void foo() { + v.a = (v.a - ivec4(2)); +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { +}
diff --git a/test/tint/statements/compound_assign/vector/or.wgsl.expected.ir.glsl b/test/tint/statements/compound_assign/vector/or.wgsl.expected.ir.glsl index d4bb1c9..85334f1 100644 --- a/test/tint/statements/compound_assign/vector/or.wgsl.expected.ir.glsl +++ b/test/tint/statements/compound_assign/vector/or.wgsl.expected.ir.glsl
@@ -1,11 +1,13 @@ -SKIP: FAILED +#version 310 es -<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:252 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct S { + ivec4 a; +}; -tint executable returned error: signal: illegal instruction +S v; +void foo() { + v.a = (v.a | ivec4(2)); +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { +}
diff --git a/test/tint/statements/compound_assign/vector/plus-scalar.wgsl.expected.ir.glsl b/test/tint/statements/compound_assign/vector/plus-scalar.wgsl.expected.ir.glsl index d4bb1c9..16c4f13 100644 --- a/test/tint/statements/compound_assign/vector/plus-scalar.wgsl.expected.ir.glsl +++ b/test/tint/statements/compound_assign/vector/plus-scalar.wgsl.expected.ir.glsl
@@ -1,11 +1,13 @@ -SKIP: FAILED +#version 310 es -<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:252 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct S { + vec4 a; +}; -tint executable returned error: signal: illegal instruction +S v; +void foo() { + v.a = (v.a + 2.0f); +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { +}
diff --git a/test/tint/statements/compound_assign/vector/plus.wgsl.expected.ir.glsl b/test/tint/statements/compound_assign/vector/plus.wgsl.expected.ir.glsl index d4bb1c9..cf3c448 100644 --- a/test/tint/statements/compound_assign/vector/plus.wgsl.expected.ir.glsl +++ b/test/tint/statements/compound_assign/vector/plus.wgsl.expected.ir.glsl
@@ -1,11 +1,13 @@ -SKIP: FAILED +#version 310 es -<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:252 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct S { + ivec4 a; +}; -tint executable returned error: signal: illegal instruction +S v; +void foo() { + v.a = (v.a + ivec4(2)); +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { +}
diff --git a/test/tint/statements/compound_assign/vector/shift_left.wgsl.expected.ir.glsl b/test/tint/statements/compound_assign/vector/shift_left.wgsl.expected.ir.glsl index d4bb1c9..8a4d0c7 100644 --- a/test/tint/statements/compound_assign/vector/shift_left.wgsl.expected.ir.glsl +++ b/test/tint/statements/compound_assign/vector/shift_left.wgsl.expected.ir.glsl
@@ -1,11 +1,13 @@ -SKIP: FAILED +#version 310 es -<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:252 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct S { + ivec4 a; +}; -tint executable returned error: signal: illegal instruction +S v; +void foo() { + v.a = (v.a << (uvec4(2u) & uvec4(31u))); +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { +}
diff --git a/test/tint/statements/compound_assign/vector/shift_right.wgsl.expected.ir.glsl b/test/tint/statements/compound_assign/vector/shift_right.wgsl.expected.ir.glsl index d4bb1c9..7eee516 100644 --- a/test/tint/statements/compound_assign/vector/shift_right.wgsl.expected.ir.glsl +++ b/test/tint/statements/compound_assign/vector/shift_right.wgsl.expected.ir.glsl
@@ -1,11 +1,13 @@ -SKIP: FAILED +#version 310 es -<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:252 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct S { + ivec4 a; +}; -tint executable returned error: signal: illegal instruction +S v; +void foo() { + v.a = (v.a >> (uvec4(2u) & uvec4(31u))); +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { +}
diff --git a/test/tint/statements/compound_assign/vector/times-matrix.wgsl.expected.ir.glsl b/test/tint/statements/compound_assign/vector/times-matrix.wgsl.expected.ir.glsl index d4bb1c9..6053f4a 100644 --- a/test/tint/statements/compound_assign/vector/times-matrix.wgsl.expected.ir.glsl +++ b/test/tint/statements/compound_assign/vector/times-matrix.wgsl.expected.ir.glsl
@@ -1,11 +1,13 @@ -SKIP: FAILED +#version 310 es -<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:252 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct S { + vec4 a; +}; -tint executable returned error: signal: illegal instruction +S v; +void foo() { + v.a = (v.a * mat4(vec4(0.0f), vec4(0.0f), vec4(0.0f), vec4(0.0f))); +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { +}
diff --git a/test/tint/statements/compound_assign/vector/times-scalar.wgsl.expected.ir.glsl b/test/tint/statements/compound_assign/vector/times-scalar.wgsl.expected.ir.glsl index d4bb1c9..684f4b2 100644 --- a/test/tint/statements/compound_assign/vector/times-scalar.wgsl.expected.ir.glsl +++ b/test/tint/statements/compound_assign/vector/times-scalar.wgsl.expected.ir.glsl
@@ -1,11 +1,13 @@ -SKIP: FAILED +#version 310 es -<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:252 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct S { + vec4 a; +}; -tint executable returned error: signal: illegal instruction +S v; +void foo() { + v.a = (v.a * 2.0f); +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { +}
diff --git a/test/tint/statements/compound_assign/vector/times.wgsl.expected.ir.glsl b/test/tint/statements/compound_assign/vector/times.wgsl.expected.ir.glsl index d4bb1c9..3627dd3 100644 --- a/test/tint/statements/compound_assign/vector/times.wgsl.expected.ir.glsl +++ b/test/tint/statements/compound_assign/vector/times.wgsl.expected.ir.glsl
@@ -1,11 +1,13 @@ -SKIP: FAILED +#version 310 es -<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:252 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct S { + ivec4 a; +}; -tint executable returned error: signal: illegal instruction +S v; +void foo() { + v.a = (v.a * ivec4(2)); +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { +}
diff --git a/test/tint/statements/compound_assign/vector/xor.wgsl.expected.ir.glsl b/test/tint/statements/compound_assign/vector/xor.wgsl.expected.ir.glsl index d4bb1c9..0100b9b 100644 --- a/test/tint/statements/compound_assign/vector/xor.wgsl.expected.ir.glsl +++ b/test/tint/statements/compound_assign/vector/xor.wgsl.expected.ir.glsl
@@ -1,11 +1,13 @@ -SKIP: FAILED +#version 310 es -<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:252 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct S { + ivec4 a; +}; -tint executable returned error: signal: illegal instruction +S v; +void foo() { + v.a = (v.a ^ ivec4(2)); +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { +}
diff --git a/test/tint/statements/decrement/array_element.wgsl.expected.ir.glsl b/test/tint/statements/decrement/array_element.wgsl.expected.ir.glsl index 7a5bf9e..7e0e566 100644 --- a/test/tint/statements/decrement/array_element.wgsl.expected.ir.glsl +++ b/test/tint/statements/decrement/array_element.wgsl.expected.ir.glsl
@@ -1,31 +1,9 @@ -SKIP: FAILED +#version 310 es -<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:509:16: runtime error: member call on null pointer of type 'tint::core::constant::Value' -SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior <dawn>/src/tint/lang/glsl/writer/printer/printer.cc:509:16 in -AddressSanitizer:DEADLYSIGNAL -================================================================= -==1764983==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000000 (pc 0x55686334f4d3 bp 0x7ffcb5963b80 sp 0x7ffcb59639a0 T0) -==1764983==The signal is caused by a READ memory access. -==1764983==Hint: address points to the zero page. - #0 0x55686334f4d3 in tint::glsl::writer::(anonymous namespace)::Printer::EmitConstant(tint::StringStream&, tint::core::constant::Value const*) <dawn>/src/tint/lang/glsl/writer/printer/printer.cc:509:16 - #1 0x55686336217c in tint::glsl::writer::(anonymous namespace)::Printer::EmitZeroValue(tint::StringStream&, tint::core::type::Type const*) <dawn>/src/tint/lang/glsl/writer/printer/printer.cc:470:9 - #2 0x556863361fd1 in tint::glsl::writer::(anonymous namespace)::Printer::EmitVar(tint::StringStream&, tint::core::ir::Var const*) <dawn>/src/tint/lang/glsl/writer/printer/printer.cc:461:13 - #3 0x55686336172f in tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::Var const*)::operator()(tint::core::ir::Var const*) const <dawn>/src/tint/lang/glsl/writer/printer/printer.cc:239:47 - #4 0x55686334c704 in auto auto tint::Switch<tint::detail::Infer, tint::core::ir::Instruction const, tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::Call const*), tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::Let const*), tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::Return const*), tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::Unreachable const*), tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::Var const*), tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::NextIteration const*), tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::ExitIf const*), tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::Access const*), tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::Bitcast const*), tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::Construct const*), tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::CoreBinary const*), tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::CoreUnary const*), tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::Load const*), tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::LoadVectorElement const*), tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::Swizzle const*), tint::SwitchMustMatchCase>(tint::core::ir::Instruction const*, tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::Call const*)&&, tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::Let const*)&&, tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::Return const*)&&, tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::Unreachable const*)&&, tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::Var const*)&&, tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::NextIteration const*)&&, tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::ExitIf const*)&&, tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::Access const*)&&, tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::Bitcast const*)&&, tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::Construct const*)&&, tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::CoreBinary const*)&&, tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::CoreUnary const*)&&, tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::Load const*)&&, tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::LoadVectorElement const*)&&, tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::Swizzle const*)&&, tint::SwitchMustMatchCase&&)::'lambda'(auto&&)::operator()<tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::Var const*)>(auto&&) const <dawn>/src/tint/utils/rtti/switch.h:347:25 - #5 0x55686334ba63 in auto tint::Switch<tint::detail::Infer, tint::core::ir::Instruction const, tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::Call const*), tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::Let const*), tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::Return const*), tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::Unreachable const*), tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::Var const*), tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::NextIteration const*), tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::ExitIf const*), tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::Access const*), tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::Bitcast const*), tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::Construct const*), tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::CoreBinary const*), tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::CoreUnary const*), tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::Load const*), tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::LoadVectorElement const*), tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::Swizzle const*), tint::SwitchMustMatchCase>(tint::core::ir::Instruction const*, tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::Call const*)&&, tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::Let const*)&&, tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::Return const*)&&, tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::Unreachable const*)&&, tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::Var const*)&&, tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::NextIteration const*)&&, tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::ExitIf const*)&&, tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::Access const*)&&, tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::Bitcast const*)&&, tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::Construct const*)&&, tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::CoreBinary const*)&&, tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::CoreUnary const*)&&, tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::Load const*)&&, tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::LoadVectorElement const*)&&, tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::Swizzle const*)&&, tint::SwitchMustMatchCase&&) <dawn>/src/tint/utils/rtti/switch.h:358:22 - #6 0x55686334993a in tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*) <dawn>/src/tint/lang/glsl/writer/printer/printer.cc:233:13 - #7 0x556863348b21 in tint::glsl::writer::(anonymous namespace)::Printer::Generate[abi:cxx11](tint::glsl::writer::Version const&) <dawn>/src/tint/lang/glsl/writer/printer/printer.cc:105:9 - #8 0x55686334802b in tint::glsl::writer::Print[abi:cxx11](tint::core::ir::Module&, tint::glsl::writer::Version const&) <dawn>/src/tint/lang/glsl/writer/printer/printer.cc:596:28 - #9 0x556862e94ebb in tint::glsl::writer::Generate(tint::core::ir::Module&, tint::glsl::writer::Options const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&) <dawn>/src/tint/lang/glsl/writer/writer.cc:48:19 - #10 0x5568626b0455 in (anonymous namespace)::GenerateGlsl(tint::Program const&, (anonymous namespace)::Options const&)::$_0::operator()(tint::Program const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, tint::ast::PipelineStage) const <dawn>/src/tint/cmd/tint/main.cc:1100:22 - #11 0x5568626989a6 in (anonymous namespace)::GenerateGlsl(tint::Program const&, (anonymous namespace)::Options const&) <dawn>/src/tint/cmd/tint/main.cc:1140:16 - #12 0x556862680861 in main <dawn>/src/tint/cmd/tint/main.cc:1434:23 - #13 0x7ffb62443b89 in __libc_start_call_main csu/../sysdeps/nptl/libc_start_call_main.h:58:16 - #14 0x7ffb62443c44 in __libc_start_main csu/../csu/libc-start.c:360:3 - #15 0x5568625a5000 in _start (<dawn>/out/Debug/tint+0x2b08000) (BuildId: e8af56752221240d6aa5bbe38e8d6c485d94acd9) - -AddressSanitizer can not provide additional info. -SUMMARY: AddressSanitizer: SEGV <dawn>/src/tint/lang/glsl/writer/printer/printer.cc:509:16 in tint::glsl::writer::(anonymous namespace)::Printer::EmitConstant(tint::StringStream&, tint::core::constant::Value const*) -==1764983==ABORTING - -tint executable returned error: exit status 1 +uint a[]; +void tint_symbol() { + a[1] = (a[1] - 1u); +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { +}
diff --git a/test/tint/statements/increment/array_element.wgsl.expected.ir.glsl b/test/tint/statements/increment/array_element.wgsl.expected.ir.glsl index 2197dcc..1023a2d 100644 --- a/test/tint/statements/increment/array_element.wgsl.expected.ir.glsl +++ b/test/tint/statements/increment/array_element.wgsl.expected.ir.glsl
@@ -1,31 +1,9 @@ -SKIP: FAILED +#version 310 es -<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:509:16: runtime error: member call on null pointer of type 'tint::core::constant::Value' -SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior <dawn>/src/tint/lang/glsl/writer/printer/printer.cc:509:16 in -AddressSanitizer:DEADLYSIGNAL -================================================================= -==1765018==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000000 (pc 0x55f226c7e4d3 bp 0x7fff15cdc8a0 sp 0x7fff15cdc6c0 T0) -==1765018==The signal is caused by a READ memory access. -==1765018==Hint: address points to the zero page. - #0 0x55f226c7e4d3 in tint::glsl::writer::(anonymous namespace)::Printer::EmitConstant(tint::StringStream&, tint::core::constant::Value const*) <dawn>/src/tint/lang/glsl/writer/printer/printer.cc:509:16 - #1 0x55f226c9117c in tint::glsl::writer::(anonymous namespace)::Printer::EmitZeroValue(tint::StringStream&, tint::core::type::Type const*) <dawn>/src/tint/lang/glsl/writer/printer/printer.cc:470:9 - #2 0x55f226c90fd1 in tint::glsl::writer::(anonymous namespace)::Printer::EmitVar(tint::StringStream&, tint::core::ir::Var const*) <dawn>/src/tint/lang/glsl/writer/printer/printer.cc:461:13 - #3 0x55f226c9072f in tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::Var const*)::operator()(tint::core::ir::Var const*) const <dawn>/src/tint/lang/glsl/writer/printer/printer.cc:239:47 - #4 0x55f226c7b704 in auto auto tint::Switch<tint::detail::Infer, tint::core::ir::Instruction const, tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::Call const*), tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::Let const*), tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::Return const*), tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::Unreachable const*), tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::Var const*), tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::NextIteration const*), tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::ExitIf const*), tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::Access const*), tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::Bitcast const*), tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::Construct const*), tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::CoreBinary const*), tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::CoreUnary const*), tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::Load const*), tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::LoadVectorElement const*), tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::Swizzle const*), tint::SwitchMustMatchCase>(tint::core::ir::Instruction const*, tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::Call const*)&&, tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::Let const*)&&, tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::Return const*)&&, tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::Unreachable const*)&&, tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::Var const*)&&, tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::NextIteration const*)&&, tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::ExitIf const*)&&, tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::Access const*)&&, tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::Bitcast const*)&&, tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::Construct const*)&&, tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::CoreBinary const*)&&, tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::CoreUnary const*)&&, tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::Load const*)&&, tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::LoadVectorElement const*)&&, tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::Swizzle const*)&&, tint::SwitchMustMatchCase&&)::'lambda'(auto&&)::operator()<tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::Var const*)>(auto&&) const <dawn>/src/tint/utils/rtti/switch.h:347:25 - #5 0x55f226c7aa63 in auto tint::Switch<tint::detail::Infer, tint::core::ir::Instruction const, tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::Call const*), tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::Let const*), tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::Return const*), tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::Unreachable const*), tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::Var const*), tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::NextIteration const*), tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::ExitIf const*), tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::Access const*), tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::Bitcast const*), tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::Construct const*), tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::CoreBinary const*), tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::CoreUnary const*), tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::Load const*), tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::LoadVectorElement const*), tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::Swizzle const*), tint::SwitchMustMatchCase>(tint::core::ir::Instruction const*, tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::Call const*)&&, tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::Let const*)&&, tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::Return const*)&&, tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::Unreachable const*)&&, tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::Var const*)&&, tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::NextIteration const*)&&, tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::ExitIf const*)&&, tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::Access const*)&&, tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::Bitcast const*)&&, tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::Construct const*)&&, tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::CoreBinary const*)&&, tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::CoreUnary const*)&&, tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::Load const*)&&, tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::LoadVectorElement const*)&&, tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*)::'lambda'(tint::core::ir::Swizzle const*)&&, tint::SwitchMustMatchCase&&) <dawn>/src/tint/utils/rtti/switch.h:358:22 - #6 0x55f226c7893a in tint::glsl::writer::(anonymous namespace)::Printer::EmitBlock(tint::core::ir::Block const*) <dawn>/src/tint/lang/glsl/writer/printer/printer.cc:233:13 - #7 0x55f226c77b21 in tint::glsl::writer::(anonymous namespace)::Printer::Generate[abi:cxx11](tint::glsl::writer::Version const&) <dawn>/src/tint/lang/glsl/writer/printer/printer.cc:105:9 - #8 0x55f226c7702b in tint::glsl::writer::Print[abi:cxx11](tint::core::ir::Module&, tint::glsl::writer::Version const&) <dawn>/src/tint/lang/glsl/writer/printer/printer.cc:596:28 - #9 0x55f2267c3ebb in tint::glsl::writer::Generate(tint::core::ir::Module&, tint::glsl::writer::Options const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&) <dawn>/src/tint/lang/glsl/writer/writer.cc:48:19 - #10 0x55f225fdf455 in (anonymous namespace)::GenerateGlsl(tint::Program const&, (anonymous namespace)::Options const&)::$_0::operator()(tint::Program const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, tint::ast::PipelineStage) const <dawn>/src/tint/cmd/tint/main.cc:1100:22 - #11 0x55f225fc79a6 in (anonymous namespace)::GenerateGlsl(tint::Program const&, (anonymous namespace)::Options const&) <dawn>/src/tint/cmd/tint/main.cc:1140:16 - #12 0x55f225faf861 in main <dawn>/src/tint/cmd/tint/main.cc:1434:23 - #13 0x7fd5da764b89 in __libc_start_call_main csu/../sysdeps/nptl/libc_start_call_main.h:58:16 - #14 0x7fd5da764c44 in __libc_start_main csu/../csu/libc-start.c:360:3 - #15 0x55f225ed4000 in _start (<dawn>/out/Debug/tint+0x2b08000) (BuildId: e8af56752221240d6aa5bbe38e8d6c485d94acd9) - -AddressSanitizer can not provide additional info. -SUMMARY: AddressSanitizer: SEGV <dawn>/src/tint/lang/glsl/writer/printer/printer.cc:509:16 in tint::glsl::writer::(anonymous namespace)::Printer::EmitConstant(tint::StringStream&, tint::core::constant::Value const*) -==1765018==ABORTING - -tint executable returned error: exit status 1 +uint a[]; +void tint_symbol() { + a[1] = (a[1] + 1u); +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { +}
diff --git a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_Array.spvasm.expected.ir.glsl b/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_Array.spvasm.expected.ir.glsl deleted file mode 100644 index d4bb1c9..0000000 --- a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_Array.spvasm.expected.ir.glsl +++ /dev/null
@@ -1,11 +0,0 @@ -SKIP: FAILED - -<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:252 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store -******************************************************************** -* The tint shader compiler has encountered an unexpected 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/SpvParserMemoryTest_EmitStatement_AccessChain_Matrix.spvasm.expected.ir.glsl b/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_Matrix.spvasm.expected.ir.glsl deleted file mode 100644 index d4bb1c9..0000000 --- a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_Matrix.spvasm.expected.ir.glsl +++ /dev/null
@@ -1,11 +0,0 @@ -SKIP: FAILED - -<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:252 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store -******************************************************************** -* The tint shader compiler has encountered an unexpected 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_CompositeExtract_Array.spvasm.expected.ir.glsl b/test/tint/unittest/reader/spirv/SpvParserTest_CompositeExtract_Array.spvasm.expected.ir.glsl deleted file mode 100644 index 72ca17c..0000000 --- a/test/tint/unittest/reader/spirv/SpvParserTest_CompositeExtract_Array.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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected 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_CompositeExtract_Matrix.spvasm.expected.ir.glsl b/test/tint/unittest/reader/spirv/SpvParserTest_CompositeExtract_Matrix.spvasm.expected.ir.glsl deleted file mode 100644 index 72ca17c..0000000 --- a/test/tint/unittest/reader/spirv/SpvParserTest_CompositeExtract_Matrix.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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected 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_CompositeExtract_Struct.spvasm.expected.ir.glsl b/test/tint/unittest/reader/spirv/SpvParserTest_CompositeExtract_Struct.spvasm.expected.ir.glsl deleted file mode 100644 index 72ca17c..0000000 --- a/test/tint/unittest/reader/spirv/SpvParserTest_CompositeExtract_Struct.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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected 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_CompositeInsert_Array.spvasm.expected.ir.glsl b/test/tint/unittest/reader/spirv/SpvParserTest_CompositeInsert_Array.spvasm.expected.ir.glsl deleted file mode 100644 index 72ca17c..0000000 --- a/test/tint/unittest/reader/spirv/SpvParserTest_CompositeInsert_Array.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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected 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_CompositeInsert_Matrix.spvasm.expected.ir.glsl b/test/tint/unittest/reader/spirv/SpvParserTest_CompositeInsert_Matrix.spvasm.expected.ir.glsl deleted file mode 100644 index 72ca17c..0000000 --- a/test/tint/unittest/reader/spirv/SpvParserTest_CompositeInsert_Matrix.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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected 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_CompositeInsert_Matrix_Vector.spvasm.expected.ir.glsl b/test/tint/unittest/reader/spirv/SpvParserTest_CompositeInsert_Matrix_Vector.spvasm.expected.ir.glsl deleted file mode 100644 index 72ca17c..0000000 --- a/test/tint/unittest/reader/spirv/SpvParserTest_CompositeInsert_Matrix_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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected 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_CompositeInsert_Struct.spvasm.expected.ir.glsl b/test/tint/unittest/reader/spirv/SpvParserTest_CompositeInsert_Struct.spvasm.expected.ir.glsl deleted file mode 100644 index 72ca17c..0000000 --- a/test/tint/unittest/reader/spirv/SpvParserTest_CompositeInsert_Struct.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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected 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_CompositeInsert_Struct_DifferOnlyInMemberName.spvasm.expected.ir.glsl b/test/tint/unittest/reader/spirv/SpvParserTest_CompositeInsert_Struct_DifferOnlyInMemberName.spvasm.expected.ir.glsl deleted file mode 100644 index 72ca17c..0000000 --- a/test/tint/unittest/reader/spirv/SpvParserTest_CompositeInsert_Struct_DifferOnlyInMemberName.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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected 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/var/initialization/function/nested_structs.wgsl.expected.ir.glsl b/test/tint/var/initialization/function/nested_structs.wgsl.expected.ir.glsl index 1e74e77..c0da6c7 100644 --- a/test/tint/var/initialization/function/nested_structs.wgsl.expected.ir.glsl +++ b/test/tint/var/initialization/function/nested_structs.wgsl.expected.ir.glsl
@@ -1,11 +1,22 @@ -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::Access -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct S1 { + int i; +}; -tint executable returned error: signal: illegal instruction +struct S2 { + S1 s1; +}; + +struct S3 { + S2 s2; +}; + +int tint_symbol; +int f(S3 s3) { + return s3.s2.s1.i; +} +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + tint_symbol = f(S3(S2(S1(42)))); +}
diff --git a/test/tint/var/initialization/private/nested_structs.wgsl.expected.ir.glsl b/test/tint/var/initialization/private/nested_structs.wgsl.expected.ir.glsl index d4bb1c9..c0a5ad0 100644 --- a/test/tint/var/initialization/private/nested_structs.wgsl.expected.ir.glsl +++ b/test/tint/var/initialization/private/nested_structs.wgsl.expected.ir.glsl
@@ -1,11 +1,20 @@ -SKIP: FAILED +#version 310 es -<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:252 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store -******************************************************************** -* The tint shader compiler has encountered an unexpected error. * -* * -* Please help us fix this issue by submitting a bug report at * -* crbug.com/tint with the source program that triggered the bug. * -******************************************************************** +struct S1 { + int i; +}; -tint executable returned error: signal: illegal instruction +struct S2 { + S1 s1; +}; + +struct S3 { + S2 s2; +}; + +S3 P = S3(S2(S1(42))); +int tint_symbol; +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + tint_symbol = P.s2.s1.i; +}
diff --git a/test/tint/vk-gl-cts/api/descriptor_set/descriptor_set_layout_binding/layout_binding_order/0.spvasm.expected.ir.glsl b/test/tint/vk-gl-cts/api/descriptor_set/descriptor_set_layout_binding/layout_binding_order/0.spvasm.expected.ir.glsl deleted file mode 100644 index d4bb1c9..0000000 --- a/test/tint/vk-gl-cts/api/descriptor_set/descriptor_set_layout_binding/layout_binding_order/0.spvasm.expected.ir.glsl +++ /dev/null
@@ -1,11 +0,0 @@ -SKIP: FAILED - -<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:252 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store -******************************************************************** -* The tint shader compiler has encountered an unexpected 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/vk-gl-cts/api/descriptor_set/descriptor_set_layout_binding/layout_binding_order/0.wgsl.expected.ir.glsl b/test/tint/vk-gl-cts/api/descriptor_set/descriptor_set_layout_binding/layout_binding_order/0.wgsl.expected.ir.glsl deleted file mode 100644 index 72ca17c..0000000 --- a/test/tint/vk-gl-cts/api/descriptor_set/descriptor_set_layout_binding/layout_binding_order/0.wgsl.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::Load -******************************************************************** -* The tint shader compiler has encountered an unexpected 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/vk-gl-cts/binding_model/dynamic_offset/shader_reuse_differing_layout_compute/0.spvasm.expected.ir.glsl b/test/tint/vk-gl-cts/binding_model/dynamic_offset/shader_reuse_differing_layout_compute/0.spvasm.expected.ir.glsl deleted file mode 100644 index d4bb1c9..0000000 --- a/test/tint/vk-gl-cts/binding_model/dynamic_offset/shader_reuse_differing_layout_compute/0.spvasm.expected.ir.glsl +++ /dev/null
@@ -1,11 +0,0 @@ -SKIP: FAILED - -<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:252 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store -******************************************************************** -* The tint shader compiler has encountered an unexpected 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/vk-gl-cts/binding_model/dynamic_offset/shader_reuse_differing_layout_compute/0.wgsl.expected.ir.glsl b/test/tint/vk-gl-cts/binding_model/dynamic_offset/shader_reuse_differing_layout_compute/0.wgsl.expected.ir.glsl deleted file mode 100644 index d4bb1c9..0000000 --- a/test/tint/vk-gl-cts/binding_model/dynamic_offset/shader_reuse_differing_layout_compute/0.wgsl.expected.ir.glsl +++ /dev/null
@@ -1,11 +0,0 @@ -SKIP: FAILED - -<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:252 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store -******************************************************************** -* The tint shader compiler has encountered an unexpected 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