SKIP: FAILED

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

buf1 = struct @align(4) {
  x_GLF_uniform_int_values:array<strided_arr, 4> @offset(0)
}

strided_arr_1 = struct @align(4) {
  el:f32 @offset(0)
}

buf0 = struct @align(4) {
  x_GLF_uniform_float_values:array<strided_arr_1, 1> @offset(0)
}

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

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

%main_1 = func():void {
  $B2: {
    %m0:ptr<function, mat4x4<f32>, read_write> = var
    %c:ptr<function, i32, read_write> = var
    %m1:ptr<function, mat4x4<f32>, read_write> = var
    %8:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
    %9:i32 = load %8
    %x_40:i32 = let %9
    %11:f32 = convert %x_40
    %x_41:f32 = let %11
    %13:vec4<f32> = construct %x_41, 0.0f, 0.0f, 0.0f
    %14:vec4<f32> = let %13
    %15:vec4<f32> = construct 0.0f, %x_41, 0.0f, 0.0f
    %16:vec4<f32> = let %15
    %17:vec4<f32> = construct 0.0f, 0.0f, %x_41, 0.0f
    %18:vec4<f32> = let %17
    %19:vec4<f32> = construct 0.0f, 0.0f, 0.0f, %x_41
    %20:mat4x4<f32> = construct %14, %16, %18, %19
    store %m0, %20
    %21:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
    %22:i32 = load %21
    %x_48:i32 = let %22
    store %c, %x_48
    loop [b: $B3, c: $B4] {  # loop_1
      $B3: {  # body
        %24:i32 = load %c
        %x_53:i32 = let %24
        %26:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
        %27:i32 = load %26
        %x_55:i32 = let %27
        %29:bool = lt %x_53, %x_55
        if %29 [t: $B5, f: $B6] {  # if_1
          $B5: {  # true
            exit_if  # if_1
          }
          $B6: {  # false
            exit_loop  # loop_1
          }
        }
        %30:mat4x4<f32> = load %m0
        %x_58:mat4x4<f32> = let %30
        store %m1, %x_58
        %32:i32 = load %c
        %x_59:i32 = let %32
        %34:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
        %35:i32 = load %34
        %x_61:i32 = let %35
        %37:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
        %38:i32 = load %37
        %x_64:i32 = let %38
        %40:ptr<uniform, f32, read> = access %x_10, 0u, 0i, 0u
        %41:f32 = load %40
        %x_66:f32 = let %41
        %43:i32 = call %tint_mod_i32, %x_59, %x_61
        %45:ptr<function, vec4<f32>, read_write> = access %m1, %43
        store_vector_element %45, %x_64, %x_66
        %46:i32 = load %c
        %x_68:i32 = let %46
        %48:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
        %49:i32 = load %48
        %x_70:i32 = let %49
        %51:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
        %52:i32 = load %51
        %x_73:i32 = let %52
        %54:ptr<uniform, f32, read> = access %x_10, 0u, 0i, 0u
        %55:f32 = load %54
        %x_75:f32 = let %55
        %57:i32 = call %tint_mod_i32, %x_68, %x_70
        %58:ptr<function, vec4<f32>, read_write> = access %m0, %57
        store_vector_element %58, %x_73, %x_75
        continue  # -> $B4
      }
      $B4: {  # continuing
        %59:i32 = load %c
        %x_77:i32 = let %59
        %61:i32 = add %x_77, 1i
        store %c, %61
        next_iteration  # -> $B3
      }
    }
    %62:mat4x4<f32> = load %m0
    %x_79:mat4x4<f32> = let %62
    %64:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
    %65:i32 = load %64
    %x_81:i32 = let %65
    %67:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
    %68:i32 = load %67
    %x_84:i32 = let %68
    %70:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
    %71:i32 = load %70
    %x_87:i32 = let %71
    %73:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
    %74:i32 = load %73
    %x_90:i32 = let %74
    %76:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
    %77:i32 = load %76
    %x_93:i32 = let %77
    %79:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
    %80:i32 = load %79
    %x_96:i32 = let %80
    %82:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
    %83:i32 = load %82
    %x_99:i32 = let %83
    %85:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
    %86:i32 = load %85
    %x_102:i32 = let %86
    %88:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
    %89:i32 = load %88
    %x_105:i32 = let %89
    %91:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
    %92:i32 = load %91
    %x_108:i32 = let %92
    %94:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
    %95:i32 = load %94
    %x_111:i32 = let %95
    %97:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
    %98:i32 = load %97
    %x_114:i32 = let %98
    %100:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
    %101:i32 = load %100
    %x_117:i32 = let %101
    %103:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
    %104:i32 = load %103
    %x_120:i32 = let %104
    %106:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
    %107:i32 = load %106
    %x_123:i32 = let %107
    %109:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
    %110:i32 = load %109
    %x_126:i32 = let %110
    %112:f32 = convert %x_81
    %113:f32 = let %112
    %114:f32 = convert %x_84
    %115:f32 = let %114
    %116:f32 = convert %x_87
    %117:f32 = let %116
    %118:f32 = convert %x_90
    %119:vec4<f32> = construct %113, %115, %117, %118
    %120:vec4<f32> = let %119
    %121:f32 = convert %x_93
    %122:f32 = let %121
    %123:f32 = convert %x_96
    %124:f32 = let %123
    %125:f32 = convert %x_99
    %126:f32 = let %125
    %127:f32 = convert %x_102
    %128:vec4<f32> = construct %122, %124, %126, %127
    %129:vec4<f32> = let %128
    %130:f32 = convert %x_105
    %131:f32 = let %130
    %132:f32 = convert %x_108
    %133:f32 = let %132
    %134:f32 = convert %x_111
    %135:f32 = let %134
    %136:f32 = convert %x_114
    %137:vec4<f32> = construct %131, %133, %135, %136
    %138:vec4<f32> = let %137
    %139:f32 = convert %x_117
    %140:f32 = let %139
    %141:f32 = convert %x_120
    %142:f32 = let %141
    %143:f32 = convert %x_123
    %144:f32 = let %143
    %145:f32 = convert %x_126
    %146:vec4<f32> = construct %140, %142, %144, %145
    %147:mat4x4<f32> = construct %120, %129, %138, %146
    %x_132:mat4x4<f32> = let %147
    %149:vec4<f32> = access %x_79, 0u
    %150:vec4<f32> = access %x_132, 0u
    %151:vec4<bool> = eq %149, %150
    %152:bool = all %151
    %153:bool = let %152
    %154:vec4<f32> = access %x_79, 1u
    %155:vec4<f32> = access %x_132, 1u
    %156:vec4<bool> = eq %154, %155
    %157:bool = all %156
    %158:bool = and %153, %157
    %159:bool = let %158
    %160:vec4<f32> = access %x_79, 2u
    %161:vec4<f32> = access %x_132, 2u
    %162:vec4<bool> = eq %160, %161
    %163:bool = all %162
    %164:bool = and %159, %163
    %165:bool = let %164
    %166:vec4<f32> = access %x_79, 3u
    %167:vec4<f32> = access %x_132, 3u
    %168:vec4<bool> = eq %166, %167
    %169:bool = all %168
    %170:bool = and %165, %169
    if %170 [t: $B7, f: $B8] {  # if_2
      $B7: {  # true
        %171:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
        %172:i32 = load %171
        %x_156:i32 = let %172
        %174:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
        %175:i32 = load %174
        %x_159:i32 = let %175
        %177:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
        %178:i32 = load %177
        %x_162:i32 = let %178
        %180:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
        %181:i32 = load %180
        %x_165:i32 = let %181
        %183:f32 = convert %x_156
        %184:f32 = let %183
        %185:f32 = convert %x_159
        %186:f32 = let %185
        %187:f32 = convert %x_162
        %188:f32 = let %187
        %189:f32 = convert %x_165
        %190:vec4<f32> = construct %184, %186, %188, %189
        store %x_GLF_color, %190
        exit_if  # if_2
      }
      $B8: {  # false
        %191:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
        %192:i32 = load %191
        %x_169:i32 = let %192
        %194:f32 = convert %x_169
        %x_170:f32 = let %194
        %196:vec4<f32> = construct %x_170, %x_170, %x_170, %x_170
        store %x_GLF_color, %196
        exit_if  # if_2
      }
    }
    ret
  }
}
%tint_symbol = @fragment func():main_out {
  $B9: {
    %198:void = call %main_1
    %199:vec4<f32> = load %x_GLF_color
    %200:main_out = construct %199
    ret %200
  }
}
%tint_mod_i32 = func(%lhs:i32, %rhs:i32):i32 {
  $B10: {
    %203:bool = eq %rhs, 0i
    %204:bool = eq %lhs, -2147483648i
    %205:bool = eq %rhs, -1i
    %206:bool = and %204, %205
    %207:bool = or %203, %206
    %208:i32 = select %rhs, 1i, %207
    %209:i32 = let %208
    %210:i32 = div %lhs, %209
    %211:i32 = mul %210, %209
    %212:i32 = sub %lhs, %211
    ret %212
  }
}

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