SKIP: FAILED

../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Inner = struct @align(16) {
  scalar_f32:f32 @offset(0)
  scalar_i32:i32 @offset(4)
  scalar_u32:u32 @offset(8)
  scalar_f16:f16 @offset(12)
  vec2_f32:vec2<f32> @offset(16)
  vec2_i32:vec2<i32> @offset(24)
  vec2_u32:vec2<u32> @offset(32)
  vec2_f16:vec2<f16> @offset(40)
  vec3_f32:vec3<f32> @offset(48)
  vec3_i32:vec3<i32> @offset(64)
  vec3_u32:vec3<u32> @offset(80)
  vec3_f16:vec3<f16> @offset(96)
  vec4_f32:vec4<f32> @offset(112)
  vec4_i32:vec4<i32> @offset(128)
  vec4_u32:vec4<u32> @offset(144)
  vec4_f16:vec4<f16> @offset(160)
  mat2x2_f32:mat2x2<f32> @offset(168)
  mat2x3_f32:mat2x3<f32> @offset(192)
  mat2x4_f32:mat2x4<f32> @offset(224)
  mat3x2_f32:mat3x2<f32> @offset(256)
  mat3x3_f32:mat3x3<f32> @offset(288)
  mat3x4_f32:mat3x4<f32> @offset(336)
  mat4x2_f32:mat4x2<f32> @offset(384)
  mat4x3_f32:mat4x3<f32> @offset(416)
  mat4x4_f32:mat4x4<f32> @offset(480)
  mat2x2_f16:mat2x2<f16> @offset(544)
  mat2x3_f16:mat2x3<f16> @offset(552)
  mat2x4_f16:mat2x4<f16> @offset(568)
  mat3x2_f16:mat3x2<f16> @offset(584)
  mat3x3_f16:mat3x3<f16> @offset(600)
  mat3x4_f16:mat3x4<f16> @offset(624)
  mat4x2_f16:mat4x2<f16> @offset(648)
  mat4x3_f16:mat4x3<f16> @offset(664)
  mat4x4_f16:mat4x4<f16> @offset(696)
  arr2_vec3_f32:array<vec3<f32>, 2> @offset(736)
  arr2_mat4x2_f16:array<mat4x2<f16>, 2> @offset(768)
}

S = struct @align(16) {
  arr:array<Inner> @offset(0)
}

$B1: {  # root
  %sb:ptr<storage, S, read> = var @binding_point(0, 0)
  %s:ptr<storage, i32, read_write> = var @binding_point(0, 1)
}

%tint_symbol = @compute @workgroup_size(1, 1, 1) func(%idx:u32 [@local_invocation_index]):void {
  $B2: {
    %5:ptr<storage, f32, read> = access %sb, 0u, %idx, 0u
    %6:f32 = load %5
    %scalar_f32:f32 = let %6
    %8:ptr<storage, i32, read> = access %sb, 0u, %idx, 1u
    %9:i32 = load %8
    %scalar_i32:i32 = let %9
    %11:ptr<storage, u32, read> = access %sb, 0u, %idx, 2u
    %12:u32 = load %11
    %scalar_u32:u32 = let %12
    %14:ptr<storage, f16, read> = access %sb, 0u, %idx, 3u
    %15:f16 = load %14
    %scalar_f16:f16 = let %15
    %17:ptr<storage, vec2<f32>, read> = access %sb, 0u, %idx, 4u
    %18:vec2<f32> = load %17
    %vec2_f32:vec2<f32> = let %18
    %20:ptr<storage, vec2<i32>, read> = access %sb, 0u, %idx, 5u
    %21:vec2<i32> = load %20
    %vec2_i32:vec2<i32> = let %21
    %23:ptr<storage, vec2<u32>, read> = access %sb, 0u, %idx, 6u
    %24:vec2<u32> = load %23
    %vec2_u32:vec2<u32> = let %24
    %26:ptr<storage, vec2<f16>, read> = access %sb, 0u, %idx, 7u
    %27:vec2<f16> = load %26
    %vec2_f16:vec2<f16> = let %27
    %29:ptr<storage, vec3<f32>, read> = access %sb, 0u, %idx, 8u
    %30:vec3<f32> = load %29
    %vec3_f32:vec3<f32> = let %30
    %32:ptr<storage, vec3<i32>, read> = access %sb, 0u, %idx, 9u
    %33:vec3<i32> = load %32
    %vec3_i32:vec3<i32> = let %33
    %35:ptr<storage, vec3<u32>, read> = access %sb, 0u, %idx, 10u
    %36:vec3<u32> = load %35
    %vec3_u32:vec3<u32> = let %36
    %38:ptr<storage, vec3<f16>, read> = access %sb, 0u, %idx, 11u
    %39:vec3<f16> = load %38
    %vec3_f16:vec3<f16> = let %39
    %41:ptr<storage, vec4<f32>, read> = access %sb, 0u, %idx, 12u
    %42:vec4<f32> = load %41
    %vec4_f32:vec4<f32> = let %42
    %44:ptr<storage, vec4<i32>, read> = access %sb, 0u, %idx, 13u
    %45:vec4<i32> = load %44
    %vec4_i32:vec4<i32> = let %45
    %47:ptr<storage, vec4<u32>, read> = access %sb, 0u, %idx, 14u
    %48:vec4<u32> = load %47
    %vec4_u32:vec4<u32> = let %48
    %50:ptr<storage, vec4<f16>, read> = access %sb, 0u, %idx, 15u
    %51:vec4<f16> = load %50
    %vec4_f16:vec4<f16> = let %51
    %53:ptr<storage, mat2x2<f32>, read> = access %sb, 0u, %idx, 16u
    %54:mat2x2<f32> = load %53
    %mat2x2_f32:mat2x2<f32> = let %54
    %56:ptr<storage, mat2x3<f32>, read> = access %sb, 0u, %idx, 17u
    %57:mat2x3<f32> = load %56
    %mat2x3_f32:mat2x3<f32> = let %57
    %59:ptr<storage, mat2x4<f32>, read> = access %sb, 0u, %idx, 18u
    %60:mat2x4<f32> = load %59
    %mat2x4_f32:mat2x4<f32> = let %60
    %62:ptr<storage, mat3x2<f32>, read> = access %sb, 0u, %idx, 19u
    %63:mat3x2<f32> = load %62
    %mat3x2_f32:mat3x2<f32> = let %63
    %65:ptr<storage, mat3x3<f32>, read> = access %sb, 0u, %idx, 20u
    %66:mat3x3<f32> = load %65
    %mat3x3_f32:mat3x3<f32> = let %66
    %68:ptr<storage, mat3x4<f32>, read> = access %sb, 0u, %idx, 21u
    %69:mat3x4<f32> = load %68
    %mat3x4_f32:mat3x4<f32> = let %69
    %71:ptr<storage, mat4x2<f32>, read> = access %sb, 0u, %idx, 22u
    %72:mat4x2<f32> = load %71
    %mat4x2_f32:mat4x2<f32> = let %72
    %74:ptr<storage, mat4x3<f32>, read> = access %sb, 0u, %idx, 23u
    %75:mat4x3<f32> = load %74
    %mat4x3_f32:mat4x3<f32> = let %75
    %77:ptr<storage, mat4x4<f32>, read> = access %sb, 0u, %idx, 24u
    %78:mat4x4<f32> = load %77
    %mat4x4_f32:mat4x4<f32> = let %78
    %80:ptr<storage, mat2x2<f16>, read> = access %sb, 0u, %idx, 25u
    %81:mat2x2<f16> = load %80
    %mat2x2_f16:mat2x2<f16> = let %81
    %83:ptr<storage, mat2x3<f16>, read> = access %sb, 0u, %idx, 26u
    %84:mat2x3<f16> = load %83
    %mat2x3_f16:mat2x3<f16> = let %84
    %86:ptr<storage, mat2x4<f16>, read> = access %sb, 0u, %idx, 27u
    %87:mat2x4<f16> = load %86
    %mat2x4_f16:mat2x4<f16> = let %87
    %89:ptr<storage, mat3x2<f16>, read> = access %sb, 0u, %idx, 28u
    %90:mat3x2<f16> = load %89
    %mat3x2_f16:mat3x2<f16> = let %90
    %92:ptr<storage, mat3x3<f16>, read> = access %sb, 0u, %idx, 29u
    %93:mat3x3<f16> = load %92
    %mat3x3_f16:mat3x3<f16> = let %93
    %95:ptr<storage, mat3x4<f16>, read> = access %sb, 0u, %idx, 30u
    %96:mat3x4<f16> = load %95
    %mat3x4_f16:mat3x4<f16> = let %96
    %98:ptr<storage, mat4x2<f16>, read> = access %sb, 0u, %idx, 31u
    %99:mat4x2<f16> = load %98
    %mat4x2_f16:mat4x2<f16> = let %99
    %101:ptr<storage, mat4x3<f16>, read> = access %sb, 0u, %idx, 32u
    %102:mat4x3<f16> = load %101
    %mat4x3_f16:mat4x3<f16> = let %102
    %104:ptr<storage, mat4x4<f16>, read> = access %sb, 0u, %idx, 33u
    %105:mat4x4<f16> = load %104
    %mat4x4_f16:mat4x4<f16> = let %105
    %107:ptr<storage, array<vec3<f32>, 2>, read> = access %sb, 0u, %idx, 34u
    %108:array<vec3<f32>, 2> = load %107
    %arr2_vec3_f32:array<vec3<f32>, 2> = let %108
    %110:ptr<storage, array<mat4x2<f16>, 2>, read> = access %sb, 0u, %idx, 35u
    %111:array<mat4x2<f16>, 2> = load %110
    %arr2_mat4x2_f16:array<mat4x2<f16>, 2> = let %111
    %113:i32 = call %tint_f32_to_i32, %scalar_f32
    %115:i32 = add %113, %scalar_i32
    %116:i32 = let %115
    %117:i32 = convert %scalar_u32
    %118:i32 = add %116, %117
    %119:i32 = let %118
    %120:i32 = call %tint_f16_to_i32, %scalar_f16
    %122:i32 = add %119, %120
    %123:i32 = let %122
    %124:f32 = access %vec2_f32, 0u
    %125:i32 = call %tint_f32_to_i32, %124
    %126:i32 = add %123, %125
    %127:i32 = access %vec2_i32, 0u
    %128:i32 = add %126, %127
    %129:i32 = let %128
    %130:u32 = access %vec2_u32, 0u
    %131:i32 = convert %130
    %132:i32 = add %129, %131
    %133:i32 = let %132
    %134:f16 = access %vec2_f16, 0u
    %135:i32 = call %tint_f16_to_i32, %134
    %136:i32 = add %133, %135
    %137:i32 = let %136
    %138:f32 = access %vec3_f32, 1u
    %139:i32 = call %tint_f32_to_i32, %138
    %140:i32 = add %137, %139
    %141:i32 = access %vec3_i32, 1u
    %142:i32 = add %140, %141
    %143:i32 = let %142
    %144:u32 = access %vec3_u32, 1u
    %145:i32 = convert %144
    %146:i32 = add %143, %145
    %147:i32 = let %146
    %148:f16 = access %vec3_f16, 1u
    %149:i32 = call %tint_f16_to_i32, %148
    %150:i32 = add %147, %149
    %151:i32 = let %150
    %152:f32 = access %vec4_f32, 2u
    %153:i32 = call %tint_f32_to_i32, %152
    %154:i32 = add %151, %153
    %155:i32 = access %vec4_i32, 2u
    %156:i32 = add %154, %155
    %157:i32 = let %156
    %158:u32 = access %vec4_u32, 2u
    %159:i32 = convert %158
    %160:i32 = add %157, %159
    %161:i32 = let %160
    %162:f16 = access %vec4_f16, 2u
    %163:i32 = call %tint_f16_to_i32, %162
    %164:i32 = add %161, %163
    %165:i32 = let %164
    %166:f32 = access %mat2x2_f32, 0i, 0u
    %167:i32 = call %tint_f32_to_i32, %166
    %168:i32 = add %165, %167
    %169:i32 = let %168
    %170:f32 = access %mat2x3_f32, 0i, 0u
    %171:i32 = call %tint_f32_to_i32, %170
    %172:i32 = add %169, %171
    %173:i32 = let %172
    %174:f32 = access %mat2x4_f32, 0i, 0u
    %175:i32 = call %tint_f32_to_i32, %174
    %176:i32 = add %173, %175
    %177:i32 = let %176
    %178:f32 = access %mat3x2_f32, 0i, 0u
    %179:i32 = call %tint_f32_to_i32, %178
    %180:i32 = add %177, %179
    %181:i32 = let %180
    %182:f32 = access %mat3x3_f32, 0i, 0u
    %183:i32 = call %tint_f32_to_i32, %182
    %184:i32 = add %181, %183
    %185:i32 = let %184
    %186:f32 = access %mat3x4_f32, 0i, 0u
    %187:i32 = call %tint_f32_to_i32, %186
    %188:i32 = add %185, %187
    %189:i32 = let %188
    %190:f32 = access %mat4x2_f32, 0i, 0u
    %191:i32 = call %tint_f32_to_i32, %190
    %192:i32 = add %189, %191
    %193:i32 = let %192
    %194:f32 = access %mat4x3_f32, 0i, 0u
    %195:i32 = call %tint_f32_to_i32, %194
    %196:i32 = add %193, %195
    %197:i32 = let %196
    %198:f32 = access %mat4x4_f32, 0i, 0u
    %199:i32 = call %tint_f32_to_i32, %198
    %200:i32 = add %197, %199
    %201:i32 = let %200
    %202:f16 = access %mat2x2_f16, 0i, 0u
    %203:i32 = call %tint_f16_to_i32, %202
    %204:i32 = add %201, %203
    %205:i32 = let %204
    %206:f16 = access %mat2x3_f16, 0i, 0u
    %207:i32 = call %tint_f16_to_i32, %206
    %208:i32 = add %205, %207
    %209:i32 = let %208
    %210:f16 = access %mat2x4_f16, 0i, 0u
    %211:i32 = call %tint_f16_to_i32, %210
    %212:i32 = add %209, %211
    %213:i32 = let %212
    %214:f16 = access %mat3x2_f16, 0i, 0u
    %215:i32 = call %tint_f16_to_i32, %214
    %216:i32 = add %213, %215
    %217:i32 = let %216
    %218:f16 = access %mat3x3_f16, 0i, 0u
    %219:i32 = call %tint_f16_to_i32, %218
    %220:i32 = add %217, %219
    %221:i32 = let %220
    %222:f16 = access %mat3x4_f16, 0i, 0u
    %223:i32 = call %tint_f16_to_i32, %222
    %224:i32 = add %221, %223
    %225:i32 = let %224
    %226:f16 = access %mat4x2_f16, 0i, 0u
    %227:i32 = call %tint_f16_to_i32, %226
    %228:i32 = add %225, %227
    %229:i32 = let %228
    %230:f16 = access %mat4x3_f16, 0i, 0u
    %231:i32 = call %tint_f16_to_i32, %230
    %232:i32 = add %229, %231
    %233:i32 = let %232
    %234:f16 = access %mat4x4_f16, 0i, 0u
    %235:i32 = call %tint_f16_to_i32, %234
    %236:i32 = add %233, %235
    %237:i32 = let %236
    %238:f16 = access %arr2_mat4x2_f16, 0i, 0i, 0u
    %239:i32 = call %tint_f16_to_i32, %238
    %240:i32 = add %237, %239
    %241:i32 = let %240
    %242:f32 = access %arr2_vec3_f32, 0i, 0u
    %243:i32 = call %tint_f32_to_i32, %242
    %244:i32 = add %241, %243
    store %s, %244
    ret
  }
}
%tint_f32_to_i32 = func(%value:f32):i32 {
  $B3: {
    %246:i32 = convert %value
    %247:bool = gte %value, -2147483648.0f
    %248:i32 = select -2147483648i, %246, %247
    %249:bool = lte %value, 2147483520.0f
    %250:i32 = select 2147483647i, %248, %249
    ret %250
  }
}
%tint_f16_to_i32 = func(%value_1:f16):i32 {  # %value_1: 'value'
  $B4: {
    %252:i32 = convert %value_1
    %253:bool = gte %value_1, -65504.0h
    %254:i32 = select -2147483648i, %252, %253
    %255:bool = lte %value_1, 65504.0h
    %256:i32 = select 2147483647i, %254, %255
    ret %256
  }
}

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