SKIP: FAILED

../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
  resolution:vec2<f32> @offset(0)
}

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

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

%pointInTriangle_vf2_vf2_vf2_vf2_ = func(%p:ptr<function, vec2<f32>, read_write>, %a:ptr<function, vec2<f32>, read_write>, %b:ptr<function, vec2<f32>, read_write>, %c:ptr<function, vec2<f32>, read_write>):i32 {
  $B2: {
    %x_66:ptr<function, f32, read_write> = var
    %x_67:ptr<function, f32, read_write> = var
    %x_68:ptr<function, f32, read_write> = var
    %param:ptr<function, vec2<f32>, read_write> = var
    %param_1:ptr<function, vec2<f32>, read_write> = var
    %param_2:ptr<function, vec2<f32>, read_write> = var
    %param_3:ptr<function, vec2<f32>, read_write> = var
    %param_4:ptr<function, vec2<f32>, read_write> = var
    %param_5:ptr<function, vec2<f32>, read_write> = var
    %x_135:ptr<function, bool, read_write> = var
    %x_172:ptr<function, bool, read_write> = var
    %x_136_phi:ptr<function, bool, read_write> = var
    %x_173_phi:ptr<function, bool, read_write> = var
    %22:f32 = load_vector_element %p, 0u
    %x_70:f32 = let %22
    %24:f32 = load_vector_element %a, 0u
    %x_72:f32 = let %24
    %26:f32 = load_vector_element %p, 1u
    %x_75:f32 = let %26
    %28:f32 = load_vector_element %a, 1u
    %x_77:f32 = let %28
    %30:f32 = load_vector_element %b, 0u
    %x_81:f32 = let %30
    %32:f32 = load_vector_element %a, 0u
    %x_82:f32 = let %32
    %34:f32 = load_vector_element %b, 1u
    %x_85:f32 = let %34
    %36:f32 = load_vector_element %a, 1u
    %x_86:f32 = let %36
    %38:f32 = sub %x_70, %x_72
    %39:f32 = sub %x_75, %x_77
    %40:vec2<f32> = construct %38, %39
    store %param, %40
    %41:f32 = sub %x_81, %x_82
    %42:f32 = sub %x_85, %x_86
    %43:vec2<f32> = construct %41, %42
    store %param_1, %43
    %44:f32 = load_vector_element %param, 0u
    %x_90:f32 = let %44
    %46:f32 = load_vector_element %param_1, 1u
    %x_92:f32 = let %46
    %48:f32 = load_vector_element %param_1, 0u
    %x_95:f32 = let %48
    %50:f32 = load_vector_element %param, 1u
    %x_97:f32 = let %50
    %52:f32 = mul %x_90, %x_92
    %53:f32 = mul %x_95, %x_97
    %54:f32 = sub %52, %53
    %x_99:f32 = let %54
    store %x_68, %x_99
    %56:f32 = load_vector_element %p, 0u
    %x_100:f32 = let %56
    %58:f32 = load_vector_element %b, 0u
    %x_101:f32 = let %58
    %60:f32 = load_vector_element %p, 1u
    %x_103:f32 = let %60
    %62:f32 = load_vector_element %b, 1u
    %x_104:f32 = let %62
    %64:f32 = load_vector_element %c, 0u
    %x_108:f32 = let %64
    %66:f32 = load_vector_element %b, 0u
    %x_109:f32 = let %66
    %68:f32 = load_vector_element %c, 1u
    %x_112:f32 = let %68
    %70:f32 = load_vector_element %b, 1u
    %x_113:f32 = let %70
    %72:f32 = sub %x_100, %x_101
    %73:f32 = sub %x_103, %x_104
    %74:vec2<f32> = construct %72, %73
    store %param_2, %74
    %75:f32 = sub %x_108, %x_109
    %76:f32 = sub %x_112, %x_113
    %77:vec2<f32> = construct %75, %76
    store %param_3, %77
    %78:f32 = load_vector_element %param_2, 0u
    %x_117:f32 = let %78
    %80:f32 = load_vector_element %param_3, 1u
    %x_119:f32 = let %80
    %82:f32 = load_vector_element %param_3, 0u
    %x_122:f32 = let %82
    %84:f32 = load_vector_element %param_2, 1u
    %x_124:f32 = let %84
    %86:f32 = mul %x_117, %x_119
    %87:f32 = mul %x_122, %x_124
    %88:f32 = sub %86, %87
    %x_126:f32 = let %88
    store %x_67, %x_126
    %90:bool = lt %x_99, 0.0f
    %x_127:bool = let %90
    %92:bool = lt %x_126, 0.0f
    %93:bool = and %x_127, %92
    %x_129:bool = let %93
    store %x_136_phi, %x_129
    %95:bool = eq %x_129, false
    if %95 [t: $B3] {  # if_1
      $B3: {  # true
        %96:bool = gte %x_99, 0.0f
        %97:bool = gte %x_126, 0.0f
        %98:bool = and %96, %97
        store %x_135, %98
        %99:bool = load %x_135
        store %x_136_phi, %99
        exit_if  # if_1
      }
    }
    %100:bool = load %x_136_phi
    %x_136:bool = let %100
    %102:bool = eq %x_136, false
    if %102 [t: $B4] {  # if_2
      $B4: {  # true
        ret 0i
      }
    }
    %103:f32 = load_vector_element %p, 0u
    %x_140:f32 = let %103
    %105:f32 = load_vector_element %c, 0u
    %x_141:f32 = let %105
    %107:f32 = load_vector_element %p, 1u
    %x_143:f32 = let %107
    %109:f32 = load_vector_element %c, 1u
    %x_144:f32 = let %109
    %111:f32 = load_vector_element %a, 0u
    %x_147:f32 = let %111
    %113:f32 = load_vector_element %c, 0u
    %x_148:f32 = let %113
    %115:f32 = load_vector_element %a, 1u
    %x_150:f32 = let %115
    %117:f32 = load_vector_element %c, 1u
    %x_151:f32 = let %117
    %119:f32 = sub %x_140, %x_141
    %120:f32 = sub %x_143, %x_144
    %121:vec2<f32> = construct %119, %120
    store %param_4, %121
    %122:f32 = sub %x_147, %x_148
    %123:f32 = sub %x_150, %x_151
    %124:vec2<f32> = construct %122, %123
    store %param_5, %124
    %125:f32 = load_vector_element %param_4, 0u
    %x_155:f32 = let %125
    %127:f32 = load_vector_element %param_5, 1u
    %x_157:f32 = let %127
    %129:f32 = load_vector_element %param_5, 0u
    %x_160:f32 = let %129
    %131:f32 = load_vector_element %param_4, 1u
    %x_162:f32 = let %131
    %133:f32 = mul %x_155, %x_157
    %134:f32 = mul %x_160, %x_162
    %135:f32 = sub %133, %134
    %x_164:f32 = let %135
    store %x_66, %x_164
    %137:bool = lt %x_164, 0.0f
    %138:bool = and %x_127, %137
    %x_166:bool = let %138
    store %x_173_phi, %x_166
    %140:bool = eq %x_166, false
    if %140 [t: $B5] {  # if_3
      $B5: {  # true
        %141:bool = gte %x_99, 0.0f
        %142:bool = gte %x_164, 0.0f
        %143:bool = and %141, %142
        store %x_172, %143
        %144:bool = load %x_172
        store %x_173_phi, %144
        exit_if  # if_3
      }
    }
    %145:bool = load %x_173_phi
    %x_173:bool = let %145
    %147:bool = eq %x_173, false
    if %147 [t: $B6] {  # if_4
      $B6: {  # true
        ret 0i
      }
    }
    ret 1i
  }
}
%main_1 = func():void {
  $B7: {
    %param_6:ptr<function, vec2<f32>, read_write> = var
    %param_7:ptr<function, vec2<f32>, read_write> = var
    %param_8:ptr<function, vec2<f32>, read_write> = var
    %param_9:ptr<function, vec2<f32>, read_write> = var
    %153:vec4<f32> = load %gl_FragCoord
    %x_55:vec4<f32> = let %153
    %155:ptr<uniform, vec2<f32>, read> = access %x_17, 0u
    %156:vec2<f32> = load %155
    %x_58:vec2<f32> = let %156
    %158:f32 = access %x_55, 0u
    %159:f32 = access %x_55, 1u
    %160:vec2<f32> = construct %158, %159
    %161:vec2<f32> = div %160, %x_58
    store %param_6, %161
    store %param_7, vec2<f32>(0.69999998807907104492f, 0.30000001192092895508f)
    store %param_8, vec2<f32>(0.5f, 0.89999997615814208984f)
    store %param_9, vec2<f32>(0.10000000149011611938f, 0.40000000596046447754f)
    %162:i32 = call %pointInTriangle_vf2_vf2_vf2_vf2_, %param_6, %param_7, %param_8, %param_9
    %x_60:i32 = let %162
    %164:bool = eq %x_60, 1i
    if %164 [t: $B8, f: $B9] {  # if_5
      $B8: {  # true
        store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
        exit_if  # if_5
      }
      $B9: {  # false
        store %x_GLF_color, vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f)
        exit_if  # if_5
      }
    }
    ret
  }
}
%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
  $B10: {
    store %gl_FragCoord, %gl_FragCoord_param
    %167:void = call %main_1
    %168:vec4<f32> = load %x_GLF_color
    %169:main_out = construct %168
    ret %169
  }
}

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