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_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
  %map:ptr<private, array<i32, 256>, read_write> = var
  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
}

%main_1 = func():void {
  $B2: {
    %pos:ptr<function, vec2<f32>, read_write> = var
    %ipos:ptr<function, vec2<i32>, read_write> = var
    %i:ptr<function, i32, read_write> = var
    %p:ptr<function, vec2<i32>, read_write> = var
    %canwalk:ptr<function, bool, read_write> = var
    %v:ptr<function, i32, read_write> = var
    %directions:ptr<function, i32, read_write> = var
    %j:ptr<function, i32, read_write> = var
    %d:ptr<function, i32, read_write> = var
    %15:vec4<f32> = load %gl_FragCoord
    %x_57:vec4<f32> = let %15
    %17:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
    %18:vec2<f32> = load %17
    %x_60:vec2<f32> = let %18
    %20:f32 = access %x_57, 0u
    %21:f32 = access %x_57, 1u
    %22:vec2<f32> = construct %20, %21
    %23:vec2<f32> = div %22, %x_60
    store %pos, %23
    %24:f32 = load_vector_element %pos, 0u
    %x_63:f32 = let %24
    %26:f32 = load_vector_element %pos, 1u
    %x_67:f32 = let %26
    %28:f32 = mul %x_63, 16.0f
    %29:i32 = call %tint_f32_to_i32, %28
    %31:i32 = let %29
    %32:f32 = mul %x_67, 16.0f
    %33:i32 = call %tint_f32_to_i32, %32
    %34:vec2<i32> = construct %31, %33
    store %ipos, %34
    store %i, 0i
    loop [b: $B3, c: $B4] {  # loop_1
      $B3: {  # body
        %35:i32 = load %i
        %x_75:i32 = let %35
        %37:bool = lt %x_75, 256i
        if %37 [t: $B5, f: $B6] {  # if_1
          $B5: {  # true
            exit_if  # if_1
          }
          $B6: {  # false
            exit_loop  # loop_1
          }
        }
        %38:i32 = load %i
        %x_78:i32 = let %38
        %40:ptr<private, i32, read_write> = access %map, %x_78
        store %40, 0i
        continue  # -> $B4
      }
      $B4: {  # continuing
        %41:i32 = load %i
        %x_80:i32 = let %41
        %43:i32 = add %x_80, 1i
        store %i, %43
        next_iteration  # -> $B3
      }
    }
    store %p, vec2<i32>(0i)
    store %canwalk, true
    store %v, 0i
    loop [b: $B7, c: $B8] {  # loop_2
      $B7: {  # body
        %x_102:ptr<function, bool, read_write> = var
        %x_122:ptr<function, bool, read_write> = var
        %x_142:ptr<function, bool, read_write> = var
        %x_162:ptr<function, bool, read_write> = var
        %x_103_phi:ptr<function, bool, read_write> = var
        %x_123_phi:ptr<function, bool, read_write> = var
        %x_143_phi:ptr<function, bool, read_write> = var
        %x_163_phi:ptr<function, bool, read_write> = var
        %52:i32 = load %v
        %x_86:i32 = let %52
        %54:i32 = add %x_86, 1i
        store %v, %54
        store %directions, 0i
        %55:i32 = load_vector_element %p, 0u
        %x_89:i32 = let %55
        %57:bool = gt %x_89, 0i
        %x_90:bool = let %57
        store %x_103_phi, %x_90
        if %x_90 [t: $B9] {  # if_2
          $B9: {  # true
            %59:i32 = load_vector_element %p, 0u
            %x_94:i32 = let %59
            %61:i32 = load_vector_element %p, 1u
            %x_97:i32 = let %61
            %63:i32 = sub %x_94, 2i
            %64:i32 = mul %x_97, 16i
            %65:i32 = add %63, %64
            %66:ptr<private, i32, read_write> = access %map, %65
            %67:i32 = load %66
            %x_101:i32 = let %67
            %69:bool = eq %x_101, 0i
            store %x_102, %69
            %70:bool = load %x_102
            store %x_103_phi, %70
            exit_if  # if_2
          }
        }
        %71:bool = load %x_103_phi
        %x_103:bool = let %71
        if %x_103 [t: $B10] {  # if_3
          $B10: {  # true
            %73:i32 = load %directions
            %x_106:i32 = let %73
            %75:i32 = add %x_106, 1i
            store %directions, %75
            exit_if  # if_3
          }
        }
        %76:i32 = load_vector_element %p, 1u
        %x_109:i32 = let %76
        %78:bool = gt %x_109, 0i
        %x_110:bool = let %78
        store %x_123_phi, %x_110
        if %x_110 [t: $B11] {  # if_4
          $B11: {  # true
            %80:i32 = load_vector_element %p, 0u
            %x_114:i32 = let %80
            %82:i32 = load_vector_element %p, 1u
            %x_116:i32 = let %82
            %84:i32 = sub %x_116, 2i
            %85:i32 = mul %84, 16i
            %86:i32 = add %x_114, %85
            %87:ptr<private, i32, read_write> = access %map, %86
            %88:i32 = load %87
            %x_121:i32 = let %88
            %90:bool = eq %x_121, 0i
            store %x_122, %90
            %91:bool = load %x_122
            store %x_123_phi, %91
            exit_if  # if_4
          }
        }
        %92:bool = load %x_123_phi
        %x_123:bool = let %92
        if %x_123 [t: $B12] {  # if_5
          $B12: {  # true
            %94:i32 = load %directions
            %x_126:i32 = let %94
            %96:i32 = add %x_126, 1i
            store %directions, %96
            exit_if  # if_5
          }
        }
        %97:i32 = load_vector_element %p, 0u
        %x_129:i32 = let %97
        %99:bool = lt %x_129, 14i
        %x_130:bool = let %99
        store %x_143_phi, %x_130
        if %x_130 [t: $B13] {  # if_6
          $B13: {  # true
            %101:i32 = load_vector_element %p, 0u
            %x_134:i32 = let %101
            %103:i32 = load_vector_element %p, 1u
            %x_137:i32 = let %103
            %105:i32 = add %x_134, 2i
            %106:i32 = mul %x_137, 16i
            %107:i32 = add %105, %106
            %108:ptr<private, i32, read_write> = access %map, %107
            %109:i32 = load %108
            %x_141:i32 = let %109
            %111:bool = eq %x_141, 0i
            store %x_142, %111
            %112:bool = load %x_142
            store %x_143_phi, %112
            exit_if  # if_6
          }
        }
        %113:bool = load %x_143_phi
        %x_143:bool = let %113
        if %x_143 [t: $B14] {  # if_7
          $B14: {  # true
            %115:i32 = load %directions
            %x_146:i32 = let %115
            %117:i32 = add %x_146, 1i
            store %directions, %117
            exit_if  # if_7
          }
        }
        %118:i32 = load_vector_element %p, 1u
        %x_149:i32 = let %118
        %120:bool = lt %x_149, 14i
        %x_150:bool = let %120
        store %x_163_phi, %x_150
        if %x_150 [t: $B15] {  # if_8
          $B15: {  # true
            %122:i32 = load_vector_element %p, 0u
            %x_154:i32 = let %122
            %124:i32 = load_vector_element %p, 1u
            %x_156:i32 = let %124
            %126:i32 = add %x_156, 2i
            %127:i32 = mul %126, 16i
            %128:i32 = add %x_154, %127
            %129:ptr<private, i32, read_write> = access %map, %128
            %130:i32 = load %129
            %x_161:i32 = let %130
            %132:bool = eq %x_161, 0i
            store %x_162, %132
            %133:bool = load %x_162
            store %x_163_phi, %133
            exit_if  # if_8
          }
        }
        %134:bool = load %x_163_phi
        %x_163:bool = let %134
        if %x_163 [t: $B16] {  # if_9
          $B16: {  # true
            %136:i32 = load %directions
            %x_166:i32 = let %136
            %138:i32 = add %x_166, 1i
            store %directions, %138
            exit_if  # if_9
          }
        }
        %x_227:ptr<function, bool, read_write> = var
        %x_240:ptr<function, bool, read_write> = var
        %x_279:ptr<function, bool, read_write> = var
        %x_292:ptr<function, bool, read_write> = var
        %x_331:ptr<function, bool, read_write> = var
        %x_344:ptr<function, bool, read_write> = var
        %x_383:ptr<function, bool, read_write> = var
        %x_396:ptr<function, bool, read_write> = var
        %x_228_phi:ptr<function, bool, read_write> = var
        %x_241_phi:ptr<function, bool, read_write> = var
        %x_280_phi:ptr<function, bool, read_write> = var
        %x_293_phi:ptr<function, bool, read_write> = var
        %x_332_phi:ptr<function, bool, read_write> = var
        %x_345_phi:ptr<function, bool, read_write> = var
        %x_384_phi:ptr<function, bool, read_write> = var
        %x_397_phi:ptr<function, bool, read_write> = var
        %155:i32 = load %directions
        %x_168:i32 = let %155
        %157:bool = eq %x_168, 0i
        if %157 [t: $B17, f: $B18] {  # if_10
          $B17: {  # true
            store %canwalk, false
            store %i, 0i
            loop [b: $B19, c: $B20] {  # loop_3
              $B19: {  # body
                %158:i32 = load %i
                %x_177:i32 = let %158
                %160:bool = lt %x_177, 8i
                if %160 [t: $B21, f: $B22] {  # if_11
                  $B21: {  # true
                    exit_if  # if_11
                  }
                  $B22: {  # false
                    exit_loop  # loop_3
                  }
                }
                store %j, 0i
                loop [b: $B23, c: $B24] {  # loop_4
                  $B23: {  # body
                    %161:i32 = load %j
                    %x_184:i32 = let %161
                    %163:bool = lt %x_184, 8i
                    if %163 [t: $B25, f: $B26] {  # if_12
                      $B25: {  # true
                        exit_if  # if_12
                      }
                      $B26: {  # false
                        exit_loop  # loop_4
                      }
                    }
                    %164:i32 = load %j
                    %x_187:i32 = let %164
                    %166:i32 = load %i
                    %x_189:i32 = let %166
                    %168:i32 = mul %x_187, 2i
                    %169:i32 = mul %x_189, 2i
                    %170:i32 = mul %169, 16i
                    %171:i32 = add %168, %170
                    %172:ptr<private, i32, read_write> = access %map, %171
                    %173:i32 = load %172
                    %x_194:i32 = let %173
                    %175:bool = eq %x_194, 0i
                    if %175 [t: $B27] {  # if_13
                      $B27: {  # true
                        %176:i32 = load %j
                        %x_198:i32 = let %176
                        %178:i32 = mul %x_198, 2i
                        store_vector_element %p, 0u, %178
                        %179:i32 = load %i
                        %x_201:i32 = let %179
                        %181:i32 = mul %x_201, 2i
                        store_vector_element %p, 1u, %181
                        store %canwalk, true
                        exit_if  # if_13
                      }
                    }
                    continue  # -> $B24
                  }
                  $B24: {  # continuing
                    %182:i32 = load %j
                    %x_204:i32 = let %182
                    %184:i32 = add %x_204, 1i
                    store %j, %184
                    next_iteration  # -> $B23
                  }
                }
                continue  # -> $B20
              }
              $B20: {  # continuing
                %185:i32 = load %i
                %x_206:i32 = let %185
                %187:i32 = add %x_206, 1i
                store %i, %187
                next_iteration  # -> $B19
              }
            }
            %188:i32 = load_vector_element %p, 0u
            %x_209:i32 = let %188
            %190:i32 = load_vector_element %p, 1u
            %x_211:i32 = let %190
            %192:i32 = mul %x_211, 16i
            %193:i32 = add %x_209, %192
            %194:ptr<private, i32, read_write> = access %map, %193
            store %194, 1i
            exit_if  # if_10
          }
          $B18: {  # false
            %195:i32 = load %v
            %x_215:i32 = let %195
            %197:i32 = load %directions
            %x_216:i32 = let %197
            %199:i32 = call %tint_mod_i32, %x_215, %x_216
            store %d, %199
            %201:i32 = load %directions
            %x_218:i32 = let %201
            %203:i32 = load %v
            %x_219:i32 = let %203
            %205:i32 = add %x_219, %x_218
            store %v, %205
            %206:i32 = load %d
            %x_221:i32 = let %206
            %208:bool = gte %x_221, 0i
            %x_222:bool = let %208
            store %x_228_phi, %x_222
            if %x_222 [t: $B28] {  # if_14
              $B28: {  # true
                %210:i32 = load_vector_element %p, 0u
                %x_226:i32 = let %210
                %212:bool = gt %x_226, 0i
                store %x_227, %212
                %213:bool = load %x_227
                store %x_228_phi, %213
                exit_if  # if_14
              }
            }
            %214:bool = load %x_228_phi
            %x_228:bool = let %214
            store %x_241_phi, %x_228
            if %x_228 [t: $B29] {  # if_15
              $B29: {  # true
                %216:i32 = load_vector_element %p, 0u
                %x_232:i32 = let %216
                %218:i32 = load_vector_element %p, 1u
                %x_235:i32 = let %218
                %220:i32 = sub %x_232, 2i
                %221:i32 = mul %x_235, 16i
                %222:i32 = add %220, %221
                %223:ptr<private, i32, read_write> = access %map, %222
                %224:i32 = load %223
                %x_239:i32 = let %224
                %226:bool = eq %x_239, 0i
                store %x_240, %226
                %227:bool = load %x_240
                store %x_241_phi, %227
                exit_if  # if_15
              }
            }
            %228:bool = load %x_241_phi
            %x_241:bool = let %228
            if %x_241 [t: $B30] {  # if_16
              $B30: {  # true
                %230:i32 = load %d
                %x_244:i32 = let %230
                %232:i32 = sub %x_244, 1i
                store %d, %232
                %233:i32 = load_vector_element %p, 0u
                %x_247:i32 = let %233
                %235:i32 = load_vector_element %p, 1u
                %x_249:i32 = let %235
                %237:i32 = mul %x_249, 16i
                %238:i32 = add %x_247, %237
                %239:ptr<private, i32, read_write> = access %map, %238
                store %239, 1i
                %240:i32 = load_vector_element %p, 0u
                %x_254:i32 = let %240
                %242:i32 = load_vector_element %p, 1u
                %x_257:i32 = let %242
                %244:i32 = sub %x_254, 1i
                %245:i32 = mul %x_257, 16i
                %246:i32 = add %244, %245
                %247:ptr<private, i32, read_write> = access %map, %246
                store %247, 1i
                %248:i32 = load_vector_element %p, 0u
                %x_262:i32 = let %248
                %250:i32 = load_vector_element %p, 1u
                %x_265:i32 = let %250
                %252:i32 = sub %x_262, 2i
                %253:i32 = mul %x_265, 16i
                %254:i32 = add %252, %253
                %255:ptr<private, i32, read_write> = access %map, %254
                store %255, 1i
                %256:i32 = load_vector_element %p, 0u
                %x_270:i32 = let %256
                %258:i32 = sub %x_270, 2i
                store_vector_element %p, 0u, %258
                exit_if  # if_16
              }
            }
            %259:i32 = load %d
            %x_273:i32 = let %259
            %261:bool = gte %x_273, 0i
            %x_274:bool = let %261
            store %x_280_phi, %x_274
            if %x_274 [t: $B31] {  # if_17
              $B31: {  # true
                %263:i32 = load_vector_element %p, 1u
                %x_278:i32 = let %263
                %265:bool = gt %x_278, 0i
                store %x_279, %265
                %266:bool = load %x_279
                store %x_280_phi, %266
                exit_if  # if_17
              }
            }
            %267:bool = load %x_280_phi
            %x_280:bool = let %267
            store %x_293_phi, %x_280
            if %x_280 [t: $B32] {  # if_18
              $B32: {  # true
                %269:i32 = load_vector_element %p, 0u
                %x_284:i32 = let %269
                %271:i32 = load_vector_element %p, 1u
                %x_286:i32 = let %271
                %273:i32 = sub %x_286, 2i
                %274:i32 = mul %273, 16i
                %275:i32 = add %x_284, %274
                %276:ptr<private, i32, read_write> = access %map, %275
                %277:i32 = load %276
                %x_291:i32 = let %277
                %279:bool = eq %x_291, 0i
                store %x_292, %279
                %280:bool = load %x_292
                store %x_293_phi, %280
                exit_if  # if_18
              }
            }
            %281:bool = load %x_293_phi
            %x_293:bool = let %281
            if %x_293 [t: $B33] {  # if_19
              $B33: {  # true
                %283:i32 = load %d
                %x_296:i32 = let %283
                %285:i32 = sub %x_296, 1i
                store %d, %285
                %286:i32 = load_vector_element %p, 0u
                %x_299:i32 = let %286
                %288:i32 = load_vector_element %p, 1u
                %x_301:i32 = let %288
                %290:i32 = mul %x_301, 16i
                %291:i32 = add %x_299, %290
                %292:ptr<private, i32, read_write> = access %map, %291
                store %292, 1i
                %293:i32 = load_vector_element %p, 0u
                %x_306:i32 = let %293
                %295:i32 = load_vector_element %p, 1u
                %x_308:i32 = let %295
                %297:i32 = sub %x_308, 1i
                %298:i32 = mul %297, 16i
                %299:i32 = add %x_306, %298
                %300:ptr<private, i32, read_write> = access %map, %299
                store %300, 1i
                %301:i32 = load_vector_element %p, 0u
                %x_314:i32 = let %301
                %303:i32 = load_vector_element %p, 1u
                %x_316:i32 = let %303
                %305:i32 = sub %x_316, 2i
                %306:i32 = mul %305, 16i
                %307:i32 = add %x_314, %306
                %308:ptr<private, i32, read_write> = access %map, %307
                store %308, 1i
                %309:i32 = load_vector_element %p, 1u
                %x_322:i32 = let %309
                %311:i32 = sub %x_322, 2i
                store_vector_element %p, 1u, %311
                exit_if  # if_19
              }
            }
            %312:i32 = load %d
            %x_325:i32 = let %312
            %314:bool = gte %x_325, 0i
            %x_326:bool = let %314
            store %x_332_phi, %x_326
            if %x_326 [t: $B34] {  # if_20
              $B34: {  # true
                %316:i32 = load_vector_element %p, 0u
                %x_330:i32 = let %316
                %318:bool = lt %x_330, 14i
                store %x_331, %318
                %319:bool = load %x_331
                store %x_332_phi, %319
                exit_if  # if_20
              }
            }
            %320:bool = load %x_332_phi
            %x_332:bool = let %320
            store %x_345_phi, %x_332
            if %x_332 [t: $B35] {  # if_21
              $B35: {  # true
                %322:i32 = load_vector_element %p, 0u
                %x_336:i32 = let %322
                %324:i32 = load_vector_element %p, 1u
                %x_339:i32 = let %324
                %326:i32 = add %x_336, 2i
                %327:i32 = mul %x_339, 16i
                %328:i32 = add %326, %327
                %329:ptr<private, i32, read_write> = access %map, %328
                %330:i32 = load %329
                %x_343:i32 = let %330
                %332:bool = eq %x_343, 0i
                store %x_344, %332
                %333:bool = load %x_344
                store %x_345_phi, %333
                exit_if  # if_21
              }
            }
            %334:bool = load %x_345_phi
            %x_345:bool = let %334
            if %x_345 [t: $B36] {  # if_22
              $B36: {  # true
                %336:i32 = load %d
                %x_348:i32 = let %336
                %338:i32 = sub %x_348, 1i
                store %d, %338
                %339:i32 = load_vector_element %p, 0u
                %x_351:i32 = let %339
                %341:i32 = load_vector_element %p, 1u
                %x_353:i32 = let %341
                %343:i32 = mul %x_353, 16i
                %344:i32 = add %x_351, %343
                %345:ptr<private, i32, read_write> = access %map, %344
                store %345, 1i
                %346:i32 = load_vector_element %p, 0u
                %x_358:i32 = let %346
                %348:i32 = load_vector_element %p, 1u
                %x_361:i32 = let %348
                %350:i32 = add %x_358, 1i
                %351:i32 = mul %x_361, 16i
                %352:i32 = add %350, %351
                %353:ptr<private, i32, read_write> = access %map, %352
                store %353, 1i
                %354:i32 = load_vector_element %p, 0u
                %x_366:i32 = let %354
                %356:i32 = load_vector_element %p, 1u
                %x_369:i32 = let %356
                %358:i32 = add %x_366, 2i
                %359:i32 = mul %x_369, 16i
                %360:i32 = add %358, %359
                %361:ptr<private, i32, read_write> = access %map, %360
                store %361, 1i
                %362:i32 = load_vector_element %p, 0u
                %x_374:i32 = let %362
                %364:i32 = add %x_374, 2i
                store_vector_element %p, 0u, %364
                exit_if  # if_22
              }
            }
            %365:i32 = load %d
            %x_377:i32 = let %365
            %367:bool = gte %x_377, 0i
            %x_378:bool = let %367
            store %x_384_phi, %x_378
            if %x_378 [t: $B37] {  # if_23
              $B37: {  # true
                %369:i32 = load_vector_element %p, 1u
                %x_382:i32 = let %369
                %371:bool = lt %x_382, 14i
                store %x_383, %371
                %372:bool = load %x_383
                store %x_384_phi, %372
                exit_if  # if_23
              }
            }
            %373:bool = load %x_384_phi
            %x_384:bool = let %373
            store %x_397_phi, %x_384
            if %x_384 [t: $B38] {  # if_24
              $B38: {  # true
                %375:i32 = load_vector_element %p, 0u
                %x_388:i32 = let %375
                %377:i32 = load_vector_element %p, 1u
                %x_390:i32 = let %377
                %379:i32 = add %x_390, 2i
                %380:i32 = mul %379, 16i
                %381:i32 = add %x_388, %380
                %382:ptr<private, i32, read_write> = access %map, %381
                %383:i32 = load %382
                %x_395:i32 = let %383
                %385:bool = eq %x_395, 0i
                store %x_396, %385
                %386:bool = load %x_396
                store %x_397_phi, %386
                exit_if  # if_24
              }
            }
            %387:bool = load %x_397_phi
            %x_397:bool = let %387
            if %x_397 [t: $B39] {  # if_25
              $B39: {  # true
                %389:i32 = load %d
                %x_400:i32 = let %389
                %391:i32 = sub %x_400, 1i
                store %d, %391
                %392:i32 = load_vector_element %p, 0u
                %x_403:i32 = let %392
                %394:i32 = load_vector_element %p, 1u
                %x_405:i32 = let %394
                %396:i32 = mul %x_405, 16i
                %397:i32 = add %x_403, %396
                %398:ptr<private, i32, read_write> = access %map, %397
                store %398, 1i
                %399:i32 = load_vector_element %p, 0u
                %x_410:i32 = let %399
                %401:i32 = load_vector_element %p, 1u
                %x_412:i32 = let %401
                %403:i32 = add %x_412, 1i
                %404:i32 = mul %403, 16i
                %405:i32 = add %x_410, %404
                %406:ptr<private, i32, read_write> = access %map, %405
                store %406, 1i
                %407:i32 = load_vector_element %p, 0u
                %x_418:i32 = let %407
                %409:i32 = load_vector_element %p, 1u
                %x_420:i32 = let %409
                %411:i32 = add %x_420, 2i
                %412:i32 = mul %411, 16i
                %413:i32 = add %x_418, %412
                %414:ptr<private, i32, read_write> = access %map, %413
                store %414, 1i
                %415:i32 = load_vector_element %p, 1u
                %x_426:i32 = let %415
                %417:i32 = add %x_426, 2i
                store_vector_element %p, 1u, %417
                exit_if  # if_25
              }
            }
            exit_if  # if_10
          }
        }
        %418:i32 = load_vector_element %ipos, 1u
        %x_430:i32 = let %418
        %420:i32 = load_vector_element %ipos, 0u
        %x_433:i32 = let %420
        %422:i32 = mul %x_430, 16i
        %423:i32 = add %422, %x_433
        %424:ptr<private, i32, read_write> = access %map, %423
        %425:i32 = load %424
        %x_436:i32 = let %425
        %427:bool = eq %x_436, 1i
        if %427 [t: $B40] {  # if_26
          $B40: {  # true
            store %x_GLF_color, vec4<f32>(1.0f)
            ret
          }
        }
        continue  # -> $B8
      }
      $B8: {  # continuing
        %428:bool = load %canwalk
        %x_440:bool = let %428
        %430:bool = eq %x_440, false
        break_if %430  # -> [t: exit_loop loop_2, f: $B7]
      }
    }
    store %x_GLF_color, vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f)
    ret
  }
}
%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
  $B41: {
    store %gl_FragCoord, %gl_FragCoord_param
    %433:void = call %main_1
    %434:vec4<f32> = load %x_GLF_color
    %435:main_out = construct %434
    ret %435
  }
}
%tint_mod_i32 = func(%lhs:i32, %rhs:i32):i32 {
  $B42: {
    %438:bool = eq %rhs, 0i
    %439:bool = eq %lhs, -2147483648i
    %440:bool = eq %rhs, -1i
    %441:bool = and %439, %440
    %442:bool = or %438, %441
    %443:i32 = select %rhs, 1i, %442
    %444:i32 = let %443
    %445:i32 = div %lhs, %444
    %446:i32 = mul %445, %444
    %447:i32 = sub %lhs, %446
    ret %447
  }
}
%tint_f32_to_i32 = func(%value:f32):i32 {
  $B43: {
    %449:i32 = convert %value
    %450:bool = gte %value, -2147483648.0f
    %451:i32 = select -2147483648i, %449, %450
    %452:bool = lte %value, 2147483520.0f
    %453:i32 = select 2147483647i, %451, %452
    ret %453
  }
}

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