SKIP: FAILED

<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: vertexUniformBuffer1 = struct @align(8) {
  transform1:mat2x2<f32> @offset(0)
}

vertexUniformBuffer2 = struct @align(8) {
  transform2:mat2x2<f32> @offset(0)
}

%b1 = block {  # root
  %x_20:ptr<uniform, vertexUniformBuffer1, read> = var @binding_point(0, 0)
  %x_26:ptr<uniform, vertexUniformBuffer2, read> = var @binding_point(1, 0)
}

%tint_symbol = @vertex func(%gl_VertexIndex:u32 [@vertex_index]):vec4<f32> [@position] -> %b2 {
  %b2 = block {
    %indexable:ptr<function, array<vec2<f32>, 3>, read_write> = var
    %6:ptr<uniform, mat2x2<f32>, read> = access %x_20, 0u
    %x_23:mat2x2<f32> = load %6
    %8:ptr<uniform, mat2x2<f32>, read> = access %x_26, 0u
    %x_28:mat2x2<f32> = load %8
    %x_46:u32 = let %gl_VertexIndex
    store %indexable, array<vec2<f32>, 3>(vec2<f32>(-1.0f, 1.0f), vec2<f32>(1.0f), vec2<f32>(-1.0f))
    %11:ptr<function, vec2<f32>, read_write> = access %indexable, %x_46
    %x_51:vec2<f32> = load %11
    %13:vec2<f32> = access %x_23, 0u
    %14:vec2<f32> = access %x_28, 0u
    %15:vec2<f32> = add %13, %14
    %16:vec2<f32> = access %x_23, 1u
    %17:vec2<f32> = access %x_28, 1u
    %18:vec2<f32> = add %16, %17
    %19:mat2x2<f32> = construct %15, %18
    %x_52:vec2<f32> = mul %19, %x_51
    %21:f32 = access %x_52, 0u
    %22:f32 = access %x_52, 1u
    %23:vec4<f32> = construct %21, %22, 0.0f, 1.0f
    ret %23
  }
}

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.  *
********************************************************************
