blob: 096187bdf3150d913273781f128370083e0a95f9 [file] [log] [blame]
SKIP: FAILED
../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: QuicksortObject = struct @align(4) {
numbers:array<i32, 10> @offset(0)
}
buf0 = struct @align(8) {
resolution:vec2<f32> @offset(0)
}
main_out = struct @align(16) {
frag_color_1:vec4<f32> @offset(0), @location(0)
gl_Position:vec4<f32> @offset(16), @builtin(position)
}
$B1: { # root
%obj:ptr<private, QuicksortObject, read_write> = var
%x_GLF_FragCoord:ptr<private, vec4<f32>, read_write> = var
%x_GLF_pos:ptr<private, vec4<f32>, read_write> = var
%x_34:ptr<uniform, buf0, read> = var @binding_point(0, 0)
%frag_color:ptr<private, vec4<f32>, read_write> = var
%gl_Position:ptr<private, vec4<f32>, read_write> = var
}
%main_1 = func():void {
$B2: {
%x_90:ptr<function, i32, read_write> = var
%x_91:ptr<function, i32, read_write> = var
%x_92:ptr<function, i32, read_write> = var
%x_93:ptr<function, i32, read_write> = var
%x_94:ptr<function, i32, read_write> = var
%x_95:ptr<function, i32, read_write> = var
%x_96:ptr<function, i32, read_write> = var
%x_97:ptr<function, i32, read_write> = var
%x_98:ptr<function, i32, read_write> = var
%x_99:ptr<function, i32, read_write> = var
%x_100:ptr<function, i32, read_write> = var
%x_101:ptr<function, i32, read_write> = var
%x_102:ptr<function, i32, read_write> = var
%x_103:ptr<function, array<i32, 10>, read_write> = var
%x_104:ptr<function, i32, read_write> = var
%x_105:ptr<function, i32, read_write> = var
%x_106:ptr<function, i32, read_write> = var
%i_2:ptr<function, i32, read_write> = var
%uv:ptr<function, vec2<f32>, read_write> = var
%color:ptr<function, vec3<f32>, read_write> = var
%28:vec4<f32> = load %x_GLF_pos
%x_107:vec4<f32> = let %28
%30:vec4<f32> = add %x_107, vec4<f32>(1.0f, 1.0f, 0.0f, 0.0f)
%31:vec4<f32> = mul %30, vec4<f32>(128.0f, 128.0f, 1.0f, 1.0f)
store %x_GLF_FragCoord, %31
store %i_2, 0i
loop [b: $B3, c: $B4] { # loop_1
$B3: { # body
%32:i32 = load %i_2
%x_114:i32 = let %32
%34:bool = lt %x_114, 10i
if %34 [t: $B5, f: $B6] { # if_1
$B5: { # true
exit_if # if_1
}
$B6: { # false
exit_loop # loop_1
}
}
%35:i32 = load %i_2
%x_117:i32 = let %35
%37:i32 = load %i_2
%x_118:i32 = let %37
%39:ptr<private, i32, read_write> = access %obj, 0u, %x_117
%40:i32 = sub 10i, %x_118
store %39, %40
%41:i32 = load %i_2
%x_121:i32 = let %41
%43:i32 = load %i_2
%x_122:i32 = let %43
%45:ptr<private, i32, read_write> = access %obj, 0u, %x_122
%46:i32 = load %45
%x_124:i32 = let %46
%48:i32 = load %i_2
%x_125:i32 = let %48
%50:ptr<private, i32, read_write> = access %obj, 0u, %x_125
%51:i32 = load %50
%x_127:i32 = let %51
%53:ptr<private, i32, read_write> = access %obj, 0u, %x_121
%54:i32 = mul %x_124, %x_127
store %53, %54
continue # -> $B4
}
$B4: { # continuing
%55:i32 = load %i_2
%x_130:i32 = let %55
%57:i32 = add %x_130, 1i
store %i_2, %57
next_iteration # -> $B3
}
}
store %x_100, 0i
store %x_101, 9i
store %x_102, -1i
%58:i32 = load %x_102
%x_132:i32 = let %58
%60:i32 = add %x_132, 1i
%x_133:i32 = let %60
store %x_102, %x_133
%62:i32 = load %x_100
%x_134:i32 = let %62
%64:ptr<function, i32, read_write> = access %x_103, %x_133
store %64, %x_134
%65:i32 = load %x_102
%x_136:i32 = let %65
%67:i32 = add %x_136, 1i
%x_137:i32 = let %67
store %x_102, %x_137
%69:i32 = load %x_101
%x_138:i32 = let %69
%71:ptr<function, i32, read_write> = access %x_103, %x_137
store %71, %x_138
loop [b: $B7, c: $B8] { # loop_2
$B7: { # body
%72:i32 = load %x_102
%x_144:i32 = let %72
%74:bool = gte %x_144, 0i
if %74 [t: $B9, f: $B10] { # if_2
$B9: { # true
exit_if # if_2
}
$B10: { # false
exit_loop # loop_2
}
}
%75:i32 = load %x_102
%x_147:i32 = let %75
%77:i32 = sub %x_147, 1i
store %x_102, %77
%78:ptr<function, i32, read_write> = access %x_103, %x_147
%79:i32 = load %78
%x_150:i32 = let %79
store %x_101, %x_150
%81:i32 = load %x_102
%x_151:i32 = let %81
%83:i32 = sub %x_151, 1i
store %x_102, %83
%84:ptr<function, i32, read_write> = access %x_103, %x_151
%85:i32 = load %84
%x_154:i32 = let %85
store %x_100, %x_154
%87:i32 = load %x_100
%x_155:i32 = let %87
store %x_105, %x_155
%89:i32 = load %x_101
%x_156:i32 = let %89
store %x_106, %x_156
%91:i32 = load %x_106
%x_157:i32 = let %91
%93:ptr<private, i32, read_write> = access %obj, 0u, %x_157
%94:i32 = load %93
%x_159:i32 = let %94
store %x_92, %x_159
%96:i32 = load %x_105
%x_160:i32 = let %96
%98:i32 = sub %x_160, 1i
store %x_93, %98
%99:i32 = load %x_105
%x_162:i32 = let %99
store %x_94, %x_162
loop [b: $B11, c: $B12] { # loop_3
$B11: { # body
%101:i32 = load %x_94
%x_167:i32 = let %101
%103:i32 = load %x_106
%x_168:i32 = let %103
%105:i32 = sub %x_168, 1i
%106:bool = lte %x_167, %105
if %106 [t: $B13, f: $B14] { # if_3
$B13: { # true
exit_if # if_3
}
$B14: { # false
exit_loop # loop_3
}
}
%107:i32 = load %x_94
%x_172:i32 = let %107
%109:ptr<private, i32, read_write> = access %obj, 0u, %x_172
%110:i32 = load %109
%x_174:i32 = let %110
%112:i32 = load %x_92
%x_175:i32 = let %112
%114:bool = lte %x_174, %x_175
if %114 [t: $B15] { # if_4
$B15: { # true
%115:i32 = load %x_93
%x_179:i32 = let %115
%117:i32 = add %x_179, 1i
store %x_93, %117
%118:i32 = load %x_93
%x_181:i32 = let %118
store %x_95, %x_181
%120:i32 = load %x_94
%x_182:i32 = let %120
store %x_96, %x_182
%122:i32 = load %x_95
%x_183:i32 = let %122
%124:ptr<private, i32, read_write> = access %obj, 0u, %x_183
%125:i32 = load %124
%x_185:i32 = let %125
store %x_91, %x_185
%127:i32 = load %x_95
%x_186:i32 = let %127
%129:i32 = load %x_96
%x_187:i32 = let %129
%131:ptr<private, i32, read_write> = access %obj, 0u, %x_187
%132:i32 = load %131
%x_189:i32 = let %132
%134:ptr<private, i32, read_write> = access %obj, 0u, %x_186
store %134, %x_189
%135:i32 = load %x_96
%x_191:i32 = let %135
%137:i32 = load %x_91
%x_192:i32 = let %137
%139:ptr<private, i32, read_write> = access %obj, 0u, %x_191
store %139, %x_192
exit_if # if_4
}
}
continue # -> $B12
}
$B12: { # continuing
%140:i32 = load %x_94
%x_194:i32 = let %140
%142:i32 = add %x_194, 1i
store %x_94, %142
next_iteration # -> $B11
}
}
%143:i32 = load %x_93
%x_196:i32 = let %143
%145:i32 = add %x_196, 1i
store %x_97, %145
%146:i32 = load %x_106
%x_198:i32 = let %146
store %x_98, %x_198
%148:i32 = load %x_97
%x_199:i32 = let %148
%150:ptr<private, i32, read_write> = access %obj, 0u, %x_199
%151:i32 = load %150
%x_201:i32 = let %151
store %x_90, %x_201
%153:i32 = load %x_97
%x_202:i32 = let %153
%155:i32 = load %x_98
%x_203:i32 = let %155
%157:ptr<private, i32, read_write> = access %obj, 0u, %x_203
%158:i32 = load %157
%x_205:i32 = let %158
%160:ptr<private, i32, read_write> = access %obj, 0u, %x_202
store %160, %x_205
%161:i32 = load %x_98
%x_207:i32 = let %161
%163:i32 = load %x_90
%x_208:i32 = let %163
%165:ptr<private, i32, read_write> = access %obj, 0u, %x_207
store %165, %x_208
%166:i32 = load %x_93
%x_210:i32 = let %166
%168:i32 = add %x_210, 1i
store %x_99, %168
%169:i32 = load %x_99
%x_212:i32 = let %169
store %x_104, %x_212
%171:i32 = load %x_104
%x_213:i32 = let %171
%173:i32 = load %x_100
%x_215:i32 = let %173
%175:i32 = sub %x_213, 1i
%176:bool = gt %175, %x_215
if %176 [t: $B16] { # if_5
$B16: { # true
%177:i32 = load %x_102
%x_219:i32 = let %177
%179:i32 = add %x_219, 1i
%x_220:i32 = let %179
store %x_102, %x_220
%181:i32 = load %x_100
%x_221:i32 = let %181
%183:ptr<function, i32, read_write> = access %x_103, %x_220
store %183, %x_221
%184:i32 = load %x_102
%x_223:i32 = let %184
%186:i32 = add %x_223, 1i
%x_224:i32 = let %186
store %x_102, %x_224
%188:i32 = load %x_104
%x_225:i32 = let %188
%190:ptr<function, i32, read_write> = access %x_103, %x_224
%191:i32 = sub %x_225, 1i
store %190, %191
exit_if # if_5
}
}
%192:i32 = load %x_104
%x_228:i32 = let %192
%194:i32 = load %x_101
%x_230:i32 = let %194
%196:i32 = add %x_228, 1i
%197:bool = lt %196, %x_230
if %197 [t: $B17] { # if_6
$B17: { # true
%198:i32 = load %x_102
%x_234:i32 = let %198
%200:i32 = add %x_234, 1i
%x_235:i32 = let %200
store %x_102, %x_235
%202:i32 = load %x_104
%x_236:i32 = let %202
%204:ptr<function, i32, read_write> = access %x_103, %x_235
%205:i32 = add %x_236, 1i
store %204, %205
%206:i32 = load %x_102
%x_239:i32 = let %206
%208:i32 = add %x_239, 1i
%x_240:i32 = let %208
store %x_102, %x_240
%210:i32 = load %x_101
%x_241:i32 = let %210
%212:ptr<function, i32, read_write> = access %x_103, %x_240
store %212, %x_241
exit_if # if_6
}
}
continue # -> $B8
}
$B8: { # continuing
next_iteration # -> $B7
}
}
%213:vec4<f32> = load %x_GLF_FragCoord
%x_243:vec4<f32> = let %213
%215:ptr<uniform, vec2<f32>, read> = access %x_34, 0u
%216:vec2<f32> = load %215
%x_246:vec2<f32> = let %216
%218:f32 = access %x_243, 0u
%219:f32 = access %x_243, 1u
%220:vec2<f32> = construct %218, %219
%221:vec2<f32> = div %220, %x_246
store %uv, %221
store %color, vec3<f32>(1.0f, 2.0f, 3.0f)
%222:ptr<private, i32, read_write> = access %obj, 0u, 0i
%223:i32 = load %222
%x_249:i32 = let %223
%225:f32 = load_vector_element %color, 0u
%x_252:f32 = let %225
%227:f32 = convert %x_249
%228:f32 = add %x_252, %227
store_vector_element %color, 0u, %228
%229:f32 = load_vector_element %uv, 0u
%x_256:f32 = let %229
%231:bool = gt %x_256, 0.25f
if %231 [t: $B18] { # if_7
$B18: { # true
%232:ptr<private, i32, read_write> = access %obj, 0u, 1i
%233:i32 = load %232
%x_261:i32 = let %233
%235:f32 = load_vector_element %color, 0u
%x_264:f32 = let %235
%237:f32 = convert %x_261
%238:f32 = add %x_264, %237
store_vector_element %color, 0u, %238
exit_if # if_7
}
}
%239:f32 = load_vector_element %uv, 0u
%x_268:f32 = let %239
%241:bool = gt %x_268, 0.5f
if %241 [t: $B19] { # if_8
$B19: { # true
%242:ptr<private, i32, read_write> = access %obj, 0u, 2i
%243:i32 = load %242
%x_273:i32 = let %243
%245:f32 = load_vector_element %color, 1u
%x_276:f32 = let %245
%247:f32 = convert %x_273
%248:f32 = add %x_276, %247
store_vector_element %color, 1u, %248
exit_if # if_8
}
}
%249:f32 = load_vector_element %uv, 0u
%x_280:f32 = let %249
%251:bool = gt %x_280, 0.75f
if %251 [t: $B20] { # if_9
$B20: { # true
%252:ptr<private, i32, read_write> = access %obj, 0u, 3i
%253:i32 = load %252
%x_285:i32 = let %253
%255:f32 = load_vector_element %color, 2u
%x_288:f32 = let %255
%257:f32 = convert %x_285
%258:f32 = add %x_288, %257
store_vector_element %color, 2u, %258
exit_if # if_9
}
}
%259:ptr<private, i32, read_write> = access %obj, 0u, 4i
%260:i32 = load %259
%x_292:i32 = let %260
%262:f32 = load_vector_element %color, 1u
%x_295:f32 = let %262
%264:f32 = convert %x_292
%265:f32 = add %x_295, %264
store_vector_element %color, 1u, %265
%266:f32 = load_vector_element %uv, 1u
%x_299:f32 = let %266
%268:bool = gt %x_299, 0.25f
if %268 [t: $B21] { # if_10
$B21: { # true
%269:ptr<private, i32, read_write> = access %obj, 0u, 5i
%270:i32 = load %269
%x_304:i32 = let %270
%272:f32 = load_vector_element %color, 0u
%x_307:f32 = let %272
%274:f32 = convert %x_304
%275:f32 = add %x_307, %274
store_vector_element %color, 0u, %275
exit_if # if_10
}
}
%276:f32 = load_vector_element %uv, 1u
%x_311:f32 = let %276
%278:bool = gt %x_311, 0.5f
if %278 [t: $B22] { # if_11
$B22: { # true
%279:ptr<private, i32, read_write> = access %obj, 0u, 6i
%280:i32 = load %279
%x_316:i32 = let %280
%282:f32 = load_vector_element %color, 1u
%x_319:f32 = let %282
%284:f32 = convert %x_316
%285:f32 = add %x_319, %284
store_vector_element %color, 1u, %285
exit_if # if_11
}
}
%286:f32 = load_vector_element %uv, 1u
%x_323:f32 = let %286
%288:bool = gt %x_323, 0.75f
if %288 [t: $B23] { # if_12
$B23: { # true
%289:ptr<private, i32, read_write> = access %obj, 0u, 7i
%290:i32 = load %289
%x_328:i32 = let %290
%292:f32 = load_vector_element %color, 2u
%x_331:f32 = let %292
%294:f32 = convert %x_328
%295:f32 = add %x_331, %294
store_vector_element %color, 2u, %295
exit_if # if_12
}
}
%296:ptr<private, i32, read_write> = access %obj, 0u, 8i
%297:i32 = load %296
%x_335:i32 = let %297
%299:f32 = load_vector_element %color, 2u
%x_338:f32 = let %299
%301:f32 = convert %x_335
%302:f32 = add %x_338, %301
store_vector_element %color, 2u, %302
%303:f32 = load_vector_element %uv, 0u
%x_342:f32 = let %303
%305:f32 = load_vector_element %uv, 1u
%x_344:f32 = let %305
%307:f32 = sub %x_342, %x_344
%308:f32 = abs %307
%309:bool = lt %308, 0.25f
if %309 [t: $B24] { # if_13
$B24: { # true
%310:ptr<private, i32, read_write> = access %obj, 0u, 9i
%311:i32 = load %310
%x_351:i32 = let %311
%313:f32 = load_vector_element %color, 0u
%x_354:f32 = let %313
%315:f32 = convert %x_351
%316:f32 = add %x_354, %315
store_vector_element %color, 0u, %316
exit_if # if_13
}
}
%317:vec3<f32> = load %color
%x_357:vec3<f32> = let %317
%319:vec3<f32> = normalize %x_357
%x_358:vec3<f32> = let %319
%321:f32 = access %x_358, 0u
%322:f32 = access %x_358, 1u
%323:f32 = access %x_358, 2u
%324:vec4<f32> = construct %321, %322, %323, 1.0f
store %frag_color, %324
%325:vec4<f32> = load %x_GLF_pos
%x_363:vec4<f32> = let %325
store %gl_Position, %x_363
ret
}
}
%tint_symbol = @vertex func(%x_GLF_pos_param:vec4<f32> [@location(0)]):main_out {
$B25: {
store %x_GLF_pos, %x_GLF_pos_param
%329:void = call %main_1
%330:vec4<f32> = load %frag_color
%331:vec4<f32> = load %gl_Position
%332:main_out = construct %330, %331
ret %332
}
}
%swap_i1_i1_ = func(%i:ptr<function, i32, read_write>, %j:ptr<function, i32, read_write>):void {
$B26: {
%temp:ptr<function, i32, read_write> = var
%337:i32 = load %i
%x_366:i32 = let %337
%339:ptr<private, i32, read_write> = access %obj, 0u, %x_366
%340:i32 = load %339
%x_368:i32 = let %340
store %temp, %x_368
%342:i32 = load %i
%x_369:i32 = let %342
%344:i32 = load %j
%x_370:i32 = let %344
%346:ptr<private, i32, read_write> = access %obj, 0u, %x_370
%347:i32 = load %346
%x_372:i32 = let %347
%349:ptr<private, i32, read_write> = access %obj, 0u, %x_369
store %349, %x_372
%350:i32 = load %j
%x_374:i32 = let %350
%352:i32 = load %temp
%x_375:i32 = let %352
%354:ptr<private, i32, read_write> = access %obj, 0u, %x_374
store %354, %x_375
ret
}
}
%performPartition_i1_i1_ = func(%l:ptr<function, i32, read_write>, %h:ptr<function, i32, read_write>):i32 {
$B27: {
%pivot:ptr<function, i32, read_write> = var
%i_1:ptr<function, i32, read_write> = var
%j_1:ptr<function, i32, read_write> = var
%param:ptr<function, i32, read_write> = var
%param_1:ptr<function, i32, read_write> = var
%param_2:ptr<function, i32, read_write> = var
%param_3:ptr<function, i32, read_write> = var
%365:i32 = load %h
%x_378:i32 = let %365
%367:ptr<private, i32, read_write> = access %obj, 0u, %x_378
%368:i32 = load %367
%x_380:i32 = let %368
store %pivot, %x_380
%370:i32 = load %l
%x_381:i32 = let %370
%372:i32 = sub %x_381, 1i
store %i_1, %372
%373:i32 = load %l
%x_383:i32 = let %373
store %j_1, %x_383
loop [b: $B28, c: $B29] { # loop_4
$B28: { # body
%375:i32 = load %j_1
%x_388:i32 = let %375
%377:i32 = load %h
%x_389:i32 = let %377
%379:i32 = sub %x_389, 1i
%380:bool = lte %x_388, %379
if %380 [t: $B30, f: $B31] { # if_14
$B30: { # true
exit_if # if_14
}
$B31: { # false
exit_loop # loop_4
}
}
%381:i32 = load %j_1
%x_393:i32 = let %381
%383:ptr<private, i32, read_write> = access %obj, 0u, %x_393
%384:i32 = load %383
%x_395:i32 = let %384
%386:i32 = load %pivot
%x_396:i32 = let %386
%388:bool = lte %x_395, %x_396
if %388 [t: $B32] { # if_15
$B32: { # true
%389:i32 = load %i_1
%x_400:i32 = let %389
%391:i32 = add %x_400, 1i
store %i_1, %391
%392:i32 = load %i_1
%x_402:i32 = let %392
store %param, %x_402
%394:i32 = load %j_1
%x_403:i32 = let %394
store %param_1, %x_403
%396:void = call %swap_i1_i1_, %param, %param_1
exit_if # if_15
}
}
continue # -> $B29
}
$B29: { # continuing
%397:i32 = load %j_1
%x_405:i32 = let %397
%399:i32 = add %x_405, 1i
store %j_1, %399
next_iteration # -> $B28
}
}
%400:i32 = load %i_1
%x_407:i32 = let %400
%402:i32 = add %x_407, 1i
store %param_2, %402
%403:i32 = load %h
%x_409:i32 = let %403
store %param_3, %x_409
%405:void = call %swap_i1_i1_, %param_2, %param_3
%406:i32 = load %i_1
%x_411:i32 = let %406
%408:i32 = add %x_411, 1i
ret %408
}
}
%quicksort_ = func():void {
$B33: {
%l_1:ptr<function, i32, read_write> = var
%h_1:ptr<function, i32, read_write> = var
%top:ptr<function, i32, read_write> = var
%stack:ptr<function, array<i32, 10>, read_write> = var
%p:ptr<function, i32, read_write> = var
%param_4:ptr<function, i32, read_write> = var
%param_5:ptr<function, i32, read_write> = var
store %l_1, 0i
store %h_1, 9i
store %top, -1i
%417:i32 = load %top
%x_414:i32 = let %417
%419:i32 = add %x_414, 1i
%x_415:i32 = let %419
store %top, %x_415
%421:i32 = load %l_1
%x_416:i32 = let %421
%423:ptr<function, i32, read_write> = access %stack, %x_415
store %423, %x_416
%424:i32 = load %top
%x_418:i32 = let %424
%426:i32 = add %x_418, 1i
%x_419:i32 = let %426
store %top, %x_419
%428:i32 = load %h_1
%x_420:i32 = let %428
%430:ptr<function, i32, read_write> = access %stack, %x_419
store %430, %x_420
loop [b: $B34, c: $B35] { # loop_5
$B34: { # body
%431:i32 = load %top
%x_426:i32 = let %431
%433:bool = gte %x_426, 0i
if %433 [t: $B36, f: $B37] { # if_16
$B36: { # true
exit_if # if_16
}
$B37: { # false
exit_loop # loop_5
}
}
%434:i32 = load %top
%x_429:i32 = let %434
%436:i32 = sub %x_429, 1i
store %top, %436
%437:ptr<function, i32, read_write> = access %stack, %x_429
%438:i32 = load %437
%x_432:i32 = let %438
store %h_1, %x_432
%440:i32 = load %top
%x_433:i32 = let %440
%442:i32 = sub %x_433, 1i
store %top, %442
%443:ptr<function, i32, read_write> = access %stack, %x_433
%444:i32 = load %443
%x_436:i32 = let %444
store %l_1, %x_436
%446:i32 = load %l_1
%x_437:i32 = let %446
store %param_4, %x_437
%448:i32 = load %h_1
%x_438:i32 = let %448
store %param_5, %x_438
%450:i32 = call %performPartition_i1_i1_, %param_4, %param_5
%x_439:i32 = let %450
store %p, %x_439
%452:i32 = load %p
%x_440:i32 = let %452
%454:i32 = load %l_1
%x_442:i32 = let %454
%456:i32 = sub %x_440, 1i
%457:bool = gt %456, %x_442
if %457 [t: $B38] { # if_17
$B38: { # true
%458:i32 = load %top
%x_446:i32 = let %458
%460:i32 = add %x_446, 1i
%x_447:i32 = let %460
store %top, %x_447
%462:i32 = load %l_1
%x_448:i32 = let %462
%464:ptr<function, i32, read_write> = access %stack, %x_447
store %464, %x_448
%465:i32 = load %top
%x_450:i32 = let %465
%467:i32 = add %x_450, 1i
%x_451:i32 = let %467
store %top, %x_451
%469:i32 = load %p
%x_452:i32 = let %469
%471:ptr<function, i32, read_write> = access %stack, %x_451
%472:i32 = sub %x_452, 1i
store %471, %472
exit_if # if_17
}
}
%473:i32 = load %p
%x_455:i32 = let %473
%475:i32 = load %h_1
%x_457:i32 = let %475
%477:i32 = add %x_455, 1i
%478:bool = lt %477, %x_457
if %478 [t: $B39] { # if_18
$B39: { # true
%479:i32 = load %top
%x_461:i32 = let %479
%481:i32 = add %x_461, 1i
%x_462:i32 = let %481
store %top, %x_462
%483:i32 = load %p
%x_463:i32 = let %483
%485:ptr<function, i32, read_write> = access %stack, %x_462
%486:i32 = add %x_463, 1i
store %485, %486
%487:i32 = load %top
%x_466:i32 = let %487
%489:i32 = add %x_466, 1i
%x_467:i32 = let %489
store %top, %x_467
%491:i32 = load %h_1
%x_468:i32 = let %491
%493:ptr<function, i32, read_write> = access %stack, %x_467
store %493, %x_468
exit_if # if_18
}
}
continue # -> $B35
}
$B35: { # continuing
next_iteration # -> $B34
}
}
ret
}
}
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. *
********************************************************************