| SKIP: FAILED |
| |
| <dawn>/src/tint/lang/msl/writer/printer/printer.cc:493 internal compiler error: S = struct @align(16) { |
| arr:array<vec4<i32>, 4> @offset(0) |
| } |
| |
| %b1 = block { # root |
| %src_private:ptr<private, array<vec4<i32>, 4>, read_write> = var |
| %src_workgroup:ptr<workgroup, array<vec4<i32>, 4>, read_write> = var |
| %src_uniform:ptr<uniform, S, read> = var @binding_point(0, 0) |
| %src_storage:ptr<storage, S, read_write> = var @binding_point(0, 1) |
| } |
| |
| %ret_arr = func():array<vec4<i32>, 4> -> %b2 { |
| %b2 = block { |
| ret array<vec4<i32>, 4>(vec4<i32>(0i)) |
| } |
| } |
| %ret_struct_arr = func():S -> %b3 { |
| %b3 = block { |
| ret S(array<vec4<i32>, 4>(vec4<i32>(0i))) |
| } |
| } |
| %foo = func(%src_param:array<vec4<i32>, 4>):void -> %b4 { |
| %b4 = block { |
| %src_function:ptr<function, array<vec4<i32>, 4>, read_write> = var |
| %dst:ptr<function, array<vec4<i32>, 4>, read_write> = var |
| store %dst, array<vec4<i32>, 4>(vec4<i32>(1i), vec4<i32>(2i), vec4<i32>(3i), vec4<i32>(3i)) |
| store %dst, %src_param |
| %11:array<vec4<i32>, 4> = call %ret_arr |
| store %dst, %11 |
| %src_let:array<vec4<i32>, 4> = let array<vec4<i32>, 4>(vec4<i32>(0i)) |
| store %dst, %src_let |
| %13:array<vec4<i32>, 4> = load %src_function |
| store %dst, %13 |
| %14:array<vec4<i32>, 4> = load %src_private |
| store %dst, %14 |
| %15:array<vec4<i32>, 4> = load %src_workgroup |
| store %dst, %15 |
| %16:S = call %ret_struct_arr |
| %17:array<vec4<i32>, 4> = access %16, 0u |
| store %dst, %17 |
| %18:ptr<uniform, array<vec4<i32>, 4>, read> = access %src_uniform, 0u |
| %19:array<vec4<i32>, 4> = load %18 |
| store %dst, %19 |
| %20:ptr<storage, array<vec4<i32>, 4>, read_write> = access %src_storage, 0u |
| %21:array<vec4<i32>, 4> = load %20 |
| store %dst, %21 |
| %dst_nested:ptr<function, array<array<array<i32, 2>, 3>, 4>, read_write> = var |
| %src_nested:ptr<function, array<array<array<i32, 2>, 3>, 4>, read_write> = var |
| %24:array<array<array<i32, 2>, 3>, 4> = load %src_nested |
| store %dst_nested, %24 |
| ret |
| } |
| } |
| %tint_symbol = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void -> %b5 { |
| %b5 = block { |
| loop [i: %b6, b: %b7, c: %b8] { # loop_1 |
| %b6 = block { # initializer |
| next_iteration %b7 %tint_local_index |
| } |
| %b7 = block (%idx:u32) { # body |
| %28:bool = gte %idx:u32, 4u |
| if %28 [t: %b9] { # if_1 |
| %b9 = block { # true |
| exit_loop # loop_1 |
| } |
| } |
| %29:ptr<workgroup, vec4<i32>, read_write> = access %src_workgroup, %idx:u32 |
| store %29, vec4<i32>(0i) |
| continue %b8 |
| } |
| %b8 = block { # continuing |
| %30:u32 = add %idx:u32, 1u |
| next_iteration %b7 %30 |
| } |
| } |
| %31:void = msl.threadgroup_barrier 4u |
| %val:array<vec4<i32>, 4> = let array<vec4<i32>, 4>(vec4<i32>(0i)) |
| %33:void = call %foo, %val |
| ret |
| } |
| } |
| |
| unhandled variable address space |
| ******************************************************************** |
| * The tint shader compiler has encountered an unexpected error. * |
| * * |
| * Please help us fix this issue by submitting a bug report at * |
| * crbug.com/tint with the source program that triggered the bug. * |
| ******************************************************************** |