SKIP: FAILED

<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Inner = struct @align(16) {
  scalar_i32:i32 @offset(0)
  scalar_f32:f32 @offset(16)
}

S = struct @align(16) {
  scalar_f32:f32 @offset(0)
  scalar_i32:i32 @offset(4)
  scalar_u32:u32 @offset(8)
  vec2_f32:vec2<f32> @offset(16)
  vec2_i32:vec2<i32> @offset(24)
  vec2_u32:vec2<u32> @offset(32)
  vec3_f32:vec3<f32> @offset(48)
  vec3_i32:vec3<i32> @offset(64)
  vec3_u32:vec3<u32> @offset(80)
  vec4_f32:vec4<f32> @offset(96)
  vec4_i32:vec4<i32> @offset(112)
  vec4_u32:vec4<u32> @offset(128)
  mat2x2_f32:mat2x2<f32> @offset(144)
  mat2x3_f32:mat2x3<f32> @offset(160)
  mat2x4_f32:mat2x4<f32> @offset(192)
  mat3x2_f32:mat3x2<f32> @offset(224)
  mat3x3_f32:mat3x3<f32> @offset(256)
  mat3x4_f32:mat3x4<f32> @offset(304)
  mat4x2_f32:mat4x2<f32> @offset(352)
  mat4x3_f32:mat4x3<f32> @offset(384)
  mat4x4_f32:mat4x4<f32> @offset(448)
  arr2_vec3_f32:array<vec3<f32>, 2> @offset(512)
  struct_inner:Inner @offset(544)
  array_struct_inner:array<Inner, 4> @offset(576)
}

%b1 = block {  # root
  %ub:ptr<uniform, S, read> = var @binding_point(0, 0)
}

%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
  %b2 = block {
    %3:ptr<uniform, f32, read> = access %ub, 0u
    %scalar_f32:f32 = load %3
    %5:ptr<uniform, i32, read> = access %ub, 1u
    %scalar_i32:i32 = load %5
    %7:ptr<uniform, u32, read> = access %ub, 2u
    %scalar_u32:u32 = load %7
    %9:ptr<uniform, vec2<f32>, read> = access %ub, 3u
    %vec2_f32:vec2<f32> = load %9
    %11:ptr<uniform, vec2<i32>, read> = access %ub, 4u
    %vec2_i32:vec2<i32> = load %11
    %13:ptr<uniform, vec2<u32>, read> = access %ub, 5u
    %vec2_u32:vec2<u32> = load %13
    %15:ptr<uniform, vec3<f32>, read> = access %ub, 6u
    %vec3_f32:vec3<f32> = load %15
    %17:ptr<uniform, vec3<i32>, read> = access %ub, 7u
    %vec3_i32:vec3<i32> = load %17
    %19:ptr<uniform, vec3<u32>, read> = access %ub, 8u
    %vec3_u32:vec3<u32> = load %19
    %21:ptr<uniform, vec4<f32>, read> = access %ub, 9u
    %vec4_f32:vec4<f32> = load %21
    %23:ptr<uniform, vec4<i32>, read> = access %ub, 10u
    %vec4_i32:vec4<i32> = load %23
    %25:ptr<uniform, vec4<u32>, read> = access %ub, 11u
    %vec4_u32:vec4<u32> = load %25
    %27:ptr<uniform, mat2x2<f32>, read> = access %ub, 12u
    %mat2x2_f32:mat2x2<f32> = load %27
    %29:ptr<uniform, mat2x3<f32>, read> = access %ub, 13u
    %mat2x3_f32:mat2x3<f32> = load %29
    %31:ptr<uniform, mat2x4<f32>, read> = access %ub, 14u
    %mat2x4_f32:mat2x4<f32> = load %31
    %33:ptr<uniform, mat3x2<f32>, read> = access %ub, 15u
    %mat3x2_f32:mat3x2<f32> = load %33
    %35:ptr<uniform, mat3x3<f32>, read> = access %ub, 16u
    %mat3x3_f32:mat3x3<f32> = load %35
    %37:ptr<uniform, mat3x4<f32>, read> = access %ub, 17u
    %mat3x4_f32:mat3x4<f32> = load %37
    %39:ptr<uniform, mat4x2<f32>, read> = access %ub, 18u
    %mat4x2_f32:mat4x2<f32> = load %39
    %41:ptr<uniform, mat4x3<f32>, read> = access %ub, 19u
    %mat4x3_f32:mat4x3<f32> = load %41
    %43:ptr<uniform, mat4x4<f32>, read> = access %ub, 20u
    %mat4x4_f32:mat4x4<f32> = load %43
    %45:ptr<uniform, array<vec3<f32>, 2>, read> = access %ub, 21u
    %arr2_vec3_f32:array<vec3<f32>, 2> = load %45
    %47:ptr<uniform, Inner, read> = access %ub, 22u
    %struct_inner:Inner = load %47
    %49:ptr<uniform, array<Inner, 4>, read> = access %ub, 23u
    %array_struct_inner:array<Inner, 4> = load %49
    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.  *
********************************************************************
