SKIP: FAILED

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

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(552)
}

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

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