SKIP: FAILED

../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
  two:f32 @offset(0)
}

main_out = struct @align(16) {
  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
}

$B1: {  # root
  %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
}

%func_vf2_ = func(%v:ptr<function, vec2<f32>, read_write>):f32 {
  $B2: {
    %5:ptr<uniform, f32, read> = access %x_7, 0u
    %6:f32 = load %5
    %x_42:f32 = let %6
    store_vector_element %v, 0u, %x_42
    %8:f32 = load_vector_element %v, 1u
    %x_45:f32 = let %8
    %10:bool = lt %x_45, 1.0f
    if %10 [t: $B3] {  # if_1
      $B3: {  # true
        ret 1.0f
      }
    }
    ret 5.0f
  }
}
%main_1 = func():void {
  $B4: {
    %f:ptr<function, f32, read_write> = var
    %param:ptr<function, vec2<f32>, read_write> = var
    store %param, vec2<f32>(1.0f)
    %14:f32 = call %func_vf2_, %param
    %x_34:f32 = let %14
    store %f, %x_34
    %16:f32 = load %f
    %x_35:f32 = let %16
    %18:bool = eq %x_35, 5.0f
    if %18 [t: $B5, f: $B6] {  # if_2
      $B5: {  # true
        store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
        exit_if  # if_2
      }
      $B6: {  # false
        store %x_GLF_color, vec4<f32>(0.0f)
        exit_if  # if_2
      }
    }
    ret
  }
}
%tint_symbol = @fragment func():main_out {
  $B7: {
    %20:void = call %main_1
    %21:vec4<f32> = load %x_GLF_color
    %22:main_out = construct %21
    ret %22
  }
}

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