| SKIP: FAILED |
| |
| ../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(16) { |
| arr:array<vec4<i32>, 4> @offset(0) |
| } |
| |
| $B1: { # 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: { |
| ret array<vec4<i32>, 4>(vec4<i32>(0i)) |
| } |
| } |
| %ret_struct_arr = func():S { |
| $B3: { |
| ret S(array<vec4<i32>, 4>(vec4<i32>(0i))) |
| } |
| } |
| %foo = func(%src_param:array<vec4<i32>, 4>):void { |
| $B4: { |
| %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: { |
| loop [i: $B6, b: $B7, c: $B8] { # loop_1 |
| $B6: { # initializer |
| next_iteration %tint_local_index # -> $B7 |
| } |
| $B7 (%idx:u32): { # body |
| %28:bool = gte %idx, 4u |
| if %28 [t: $B9] { # if_1 |
| $B9: { # true |
| exit_loop # loop_1 |
| } |
| } |
| %29:ptr<workgroup, vec4<i32>, read_write> = access %src_workgroup, %idx |
| store %29, vec4<i32>(0i) |
| continue # -> $B8 |
| } |
| $B8: { # continuing |
| %30:u32 = add %idx, 1u |
| next_iteration %30 # -> $B7 |
| } |
| } |
| %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. * |
| ******************************************************************** |