| 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) | 
 | } | 
 |  | 
 | S_nested = struct @align(4) { | 
 |   arr:array<array<array<i32, 2>, 3>, 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) | 
 |   %dst:ptr<storage, S, read_write> = var @binding_point(0, 2) | 
 |   %dst_nested:ptr<storage, S_nested, read_write> = var @binding_point(0, 3) | 
 | } | 
 |  | 
 | %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 | 
 |     %12:ptr<storage, array<vec4<i32>, 4>, read_write> = access %dst, 0u | 
 |     store %12, array<vec4<i32>, 4>(vec4<i32>(1i), vec4<i32>(2i), vec4<i32>(3i), vec4<i32>(3i)) | 
 |     %13:ptr<storage, array<vec4<i32>, 4>, read_write> = access %dst, 0u | 
 |     store %13, %src_param | 
 |     %14:ptr<storage, array<vec4<i32>, 4>, read_write> = access %dst, 0u | 
 |     %15:array<vec4<i32>, 4> = call %ret_arr | 
 |     store %14, %15 | 
 |     %src_let:array<vec4<i32>, 4> = let array<vec4<i32>, 4>(vec4<i32>(0i)) | 
 |     %17:ptr<storage, array<vec4<i32>, 4>, read_write> = access %dst, 0u | 
 |     store %17, %src_let | 
 |     %18:ptr<storage, array<vec4<i32>, 4>, read_write> = access %dst, 0u | 
 |     %19:array<vec4<i32>, 4> = load %src_function | 
 |     store %18, %19 | 
 |     %20:ptr<storage, array<vec4<i32>, 4>, read_write> = access %dst, 0u | 
 |     %21:array<vec4<i32>, 4> = load %src_private | 
 |     store %20, %21 | 
 |     %22:ptr<storage, array<vec4<i32>, 4>, read_write> = access %dst, 0u | 
 |     %23:array<vec4<i32>, 4> = load %src_workgroup | 
 |     store %22, %23 | 
 |     %24:ptr<storage, array<vec4<i32>, 4>, read_write> = access %dst, 0u | 
 |     %25:S = call %ret_struct_arr | 
 |     %26:array<vec4<i32>, 4> = access %25, 0u | 
 |     store %24, %26 | 
 |     %27:ptr<storage, array<vec4<i32>, 4>, read_write> = access %dst, 0u | 
 |     %28:ptr<uniform, array<vec4<i32>, 4>, read> = access %src_uniform, 0u | 
 |     %29:array<vec4<i32>, 4> = load %28 | 
 |     store %27, %29 | 
 |     %30:ptr<storage, array<vec4<i32>, 4>, read_write> = access %dst, 0u | 
 |     %31:ptr<storage, array<vec4<i32>, 4>, read_write> = access %src_storage, 0u | 
 |     %32:array<vec4<i32>, 4> = load %31 | 
 |     store %30, %32 | 
 |     %src_nested:ptr<function, array<array<array<i32, 2>, 3>, 4>, read_write> = var | 
 |     %34:ptr<storage, array<array<array<i32, 2>, 3>, 4>, read_write> = access %dst_nested, 0u | 
 |     %35:array<array<array<i32, 2>, 3>, 4> = load %src_nested | 
 |     store %34, %35 | 
 |     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 | 
 |         %39:bool = gte %idx:u32, 4u | 
 |         if %39 [t: %b9] {  # if_1 | 
 |           %b9 = block {  # true | 
 |             exit_loop  # loop_1 | 
 |           } | 
 |         } | 
 |         %40:ptr<workgroup, vec4<i32>, read_write> = access %src_workgroup, %idx:u32 | 
 |         store %40, vec4<i32>(0i) | 
 |         continue %b8 | 
 |       } | 
 |       %b8 = block {  # continuing | 
 |         %41:u32 = add %idx:u32, 1u | 
 |         next_iteration %b7 %41 | 
 |       } | 
 |     } | 
 |     %42:void = msl.threadgroup_barrier 4u | 
 |     %ary:array<vec4<i32>, 4> = let array<vec4<i32>, 4>(vec4<i32>(0i)) | 
 |     %44:void = call %foo, %ary | 
 |     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.  * | 
 | ******************************************************************** |