SKIP: FAILED

<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 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 = block {  # root
  %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
  %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
}

%main_1 = func():void -> %b2 {
  %b2 = block {
    %x_195:ptr<function, array<i32, 256>, read_write> = var
    %x_196:ptr<function, array<i32, 256>, read_write> = var
    %x_197:ptr<function, array<i32, 256>, read_write> = var
    %x_208:ptr<function, vec2<f32>, read_write> = var
    %x_214:ptr<function, vec2<i32>, read_write> = var
    %x_249:ptr<function, vec4<f32>, read_write> = var
    %x_251:ptr<function, vec4<f32>, read_write> = var
    %x_218_phi:ptr<function, vec2<i32>, read_write> = var
    %x_251_phi:ptr<function, vec4<f32>, read_write> = var
    %x_252_phi:ptr<function, bool, read_write> = var
    %x_254_phi:ptr<function, vec4<f32>, read_write> = var
    %x_198:vec4<f32> = load %gl_FragCoord
    %17:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
    %x_201:vec2<f32> = load %17
    %19:f32 = access %x_198, 0u
    %20:f32 = access %x_198, 1u
    %21:vec2<f32> = construct %19, %20
    %x_202:vec2<f32> = div %21, %x_201
    %x_204:i32 = let -82i
    %24:vec4<f32> = construct %x_201, 15.0f, 15.0f
    %25:f32 = access %24, 2u
    %26:vec2<f32> = construct 0.0f, %25
    store %x_208, %26
    %x_209:i32 = let 120i
    %28:f32 = access %x_202, 0u
    %29:f32 = mul %28, 256.0f
    %30:i32 = convert %29
    %31:f32 = access %x_202, 1u
    %32:f32 = mul %31, 256.0f
    %33:i32 = convert %32
    %34:vec2<i32> = construct %30, %33
    store %x_214, %34
    switch 0u [c: (default, %b3)] {  # switch_1
      %b3 = block {  # case
        %35:vec2<i32> = load %x_214
        store %x_218_phi, %35
        loop [b: %b4, c: %b5] {  # loop_1
          %b4 = block {  # body
            %x_235:ptr<function, bool, read_write> = var
            %x_236_phi:ptr<function, bool, read_write> = var
            %x_218:vec2<i32> = load %x_218_phi
            %x_221:i32 = access %x_218, 1u
            store %x_251_phi, vec4<f32>(0.0f)
            store %x_252_phi, false
            %40:bool = neq %x_221, 256i
            if %40 [t: %b6, f: %b7] {  # if_1
              %b6 = block {  # true
                exit_if  # if_1
              }
              %b7 = block {  # false
                exit_loop  # loop_1
              }
            }
            %x_225:i32 = access %x_218, 0u
            store %x_195, array<i32, 256>(115i, 133i, 150i, 164i, 176i, 184i, 190i, 192i, 191i, 187i, 181i, 172i, 163i, 153i, 143i, 134i, 126i, 120i, 116i, 114i, 114i, 117i, 121i, 127i, 134i, 141i, 148i, 154i, 159i, 162i, 163i, 161i, 157i, 151i, 143i, 134i, 124i, 113i, 103i, 94i, 87i, 82i, 79i, 80i, 84i, 91i, 101i, 114i, 130i, 146i, 164i, 182i, 199i, 215i, 229i, 240i, 249i, 254i, 256i, 254i, 250i, 243i, 233i, 223i, 212i, 200i, 190i, 180i, 172i, 166i, 163i, 161i, 162i, 164i, 169i, 174i, 179i, 185i, 190i, 193i, 195i, 195i, 192i, 188i, 180i, 171i, 161i, 149i, 137i, 125i, 114i, 105i, 97i, 93i, 91i, 93i, 98i, 106i, 117i, 130i, 145i, 161i, 177i, 193i, 208i, 221i, 231i, 239i, 243i, 244i, 242i, 236i, 228i, 218i, 207i, 194i, 181i, 169i, 158i, 148i, 141i, 135i, 132i, 131i, 132i, 135i, 138i, 143i, 147i, 151i, 154i, 155i, 155i, 152i, 146i, 139i, 129i, 118i, 106i, 93i, 80i, 68i, 58i, 49i, 43i, 40i, 41i, 44i, 51i, 61i, 73i, 87i, 103i, 119i, 134i, 149i, 162i, 173i, 181i, 186i, 188i, 186i, 181i, 174i, 164i, 153i, 141i, 128i, 116i, 104i, 94i, 86i, 81i, 77i, 76i, 77i, 80i, 84i, 89i, 94i, 98i, 102i, 104i, 104i, 102i, 98i, 92i, 83i, 73i, 62i, 50i, 38i, 26i, 16i, 8i, 2i, 0i, 0i, 4i, 11i, 21i, 33i, 48i, 64i, 81i, 98i, 114i, 129i, 141i, 151i, 158i, 161i, 161i, 158i, 152i, 144i, 134i, 123i, 112i, 100i, 90i, 81i, 73i, 68i, 65i, 65i, 67i, 70i, 75i, 81i, 87i, 92i, 97i, 101i, 103i, 102i, 100i, 95i, 88i, 79i, 69i, 58i, 47i, 36i, 26i, 18i, 13i, 11i, 11i, 15i, 22i, 32i, 45i, 60i, 77i, 94i)
            %42:ptr<function, i32, read_write> = access %x_195, %x_221
            %x_227:i32 = load %42
            %44:i32 = add %x_227, 15i
            %x_229:bool = lt %x_225, %44
            store %x_236_phi, %x_229
            if %x_229 [t: %b8] {  # if_2
              %b8 = block {  # true
                store %x_196, array<i32, 256>(115i, 133i, 150i, 164i, 176i, 184i, 190i, 192i, 191i, 187i, 181i, 172i, 163i, 153i, 143i, 134i, 126i, 120i, 116i, 114i, 114i, 117i, 121i, 127i, 134i, 141i, 148i, 154i, 159i, 162i, 163i, 161i, 157i, 151i, 143i, 134i, 124i, 113i, 103i, 94i, 87i, 82i, 79i, 80i, 84i, 91i, 101i, 114i, 130i, 146i, 164i, 182i, 199i, 215i, 229i, 240i, 249i, 254i, 256i, 254i, 250i, 243i, 233i, 223i, 212i, 200i, 190i, 180i, 172i, 166i, 163i, 161i, 162i, 164i, 169i, 174i, 179i, 185i, 190i, 193i, 195i, 195i, 192i, 188i, 180i, 171i, 161i, 149i, 137i, 125i, 114i, 105i, 97i, 93i, 91i, 93i, 98i, 106i, 117i, 130i, 145i, 161i, 177i, 193i, 208i, 221i, 231i, 239i, 243i, 244i, 242i, 236i, 228i, 218i, 207i, 194i, 181i, 169i, 158i, 148i, 141i, 135i, 132i, 131i, 132i, 135i, 138i, 143i, 147i, 151i, 154i, 155i, 155i, 152i, 146i, 139i, 129i, 118i, 106i, 93i, 80i, 68i, 58i, 49i, 43i, 40i, 41i, 44i, 51i, 61i, 73i, 87i, 103i, 119i, 134i, 149i, 162i, 173i, 181i, 186i, 188i, 186i, 181i, 174i, 164i, 153i, 141i, 128i, 116i, 104i, 94i, 86i, 81i, 77i, 76i, 77i, 80i, 84i, 89i, 94i, 98i, 102i, 104i, 104i, 102i, 98i, 92i, 83i, 73i, 62i, 50i, 38i, 26i, 16i, 8i, 2i, 0i, 0i, 4i, 11i, 21i, 33i, 48i, 64i, 81i, 98i, 114i, 129i, 141i, 151i, 158i, 161i, 161i, 158i, 152i, 144i, 134i, 123i, 112i, 100i, 90i, 81i, 73i, 68i, 65i, 65i, 67i, 70i, 75i, 81i, 87i, 92i, 97i, 101i, 103i, 102i, 100i, 95i, 88i, 79i, 69i, 58i, 47i, 36i, 26i, 18i, 13i, 11i, 11i, 15i, 22i, 32i, 45i, 60i, 77i, 94i)
                %46:ptr<function, i32, read_write> = access %x_196, %x_221
                %x_233:i32 = load %46
                %48:i32 = sub %x_233, 15i
                %49:bool = gt %x_225, %48
                store %x_235, %49
                %50:bool = load %x_235
                store %x_236_phi, %50
                exit_if  # if_2
              }
            }
            %x_236:bool = load %x_236_phi
            if %x_236 [t: %b9] {  # if_3
              %b9 = block {  # true
                store %x_197, array<i32, 256>(115i, 133i, 150i, 164i, 176i, 184i, 190i, 192i, 191i, 187i, 181i, 172i, 163i, 153i, 143i, 134i, 126i, 120i, 116i, 114i, 114i, 117i, 121i, 127i, 134i, 141i, 148i, 154i, 159i, 162i, 163i, 161i, 157i, 151i, 143i, 134i, 124i, 113i, 103i, 94i, 87i, 82i, 79i, 80i, 84i, 91i, 101i, 114i, 130i, 146i, 164i, 182i, 199i, 215i, 229i, 240i, 249i, 254i, 256i, 254i, 250i, 243i, 233i, 223i, 212i, 200i, 190i, 180i, 172i, 166i, 163i, 161i, 162i, 164i, 169i, 174i, 179i, 185i, 190i, 193i, 195i, 195i, 192i, 188i, 180i, 171i, 161i, 149i, 137i, 125i, 114i, 105i, 97i, 93i, 91i, 93i, 98i, 106i, 117i, 130i, 145i, 161i, 177i, 193i, 208i, 221i, 231i, 239i, 243i, 244i, 242i, 236i, 228i, 218i, 207i, 194i, 181i, 169i, 158i, 148i, 141i, 135i, 132i, 131i, 132i, 135i, 138i, 143i, 147i, 151i, 154i, 155i, 155i, 152i, 146i, 139i, 129i, 118i, 106i, 93i, 80i, 68i, 58i, 49i, 43i, 40i, 41i, 44i, 51i, 61i, 73i, 87i, 103i, 119i, 134i, 149i, 162i, 173i, 181i, 186i, 188i, 186i, 181i, 174i, 164i, 153i, 141i, 128i, 116i, 104i, 94i, 86i, 81i, 77i, 76i, 77i, 80i, 84i, 89i, 94i, 98i, 102i, 104i, 104i, 102i, 98i, 92i, 83i, 73i, 62i, 50i, 38i, 26i, 16i, 8i, 2i, 0i, 0i, 4i, 11i, 21i, 33i, 48i, 64i, 81i, 98i, 114i, 129i, 141i, 151i, 158i, 161i, 161i, 158i, 152i, 144i, 134i, 123i, 112i, 100i, 90i, 81i, 73i, 68i, 65i, 65i, 67i, 70i, 75i, 81i, 87i, 92i, 97i, 101i, 103i, 102i, 100i, 95i, 88i, 79i, 69i, 58i, 47i, 36i, 26i, 18i, 13i, 11i, 11i, 15i, 22i, 32i, 45i, 60i, 77i, 94i)
                %52:ptr<function, i32, read_write> = access %x_197, %x_221
                %x_240:i32 = load %52
                %x_244:i32 = let 335i
                %55:vec2<f32> = load %x_208
                %56:buf0 = construct %55
                %57:f32 = access %56, 0u, 1u
                %58:i32 = sub %x_225, %x_240
                %59:f32 = convert %58
                %60:f32 = abs %59
                %61:f32 = sub %57, %60
                %x_248:f32 = mul %61, 0.06666667014360427856f
                %63:vec4<f32> = construct %x_248, %x_248, %x_248, 1.0f
                store %x_249, %63
                %64:vec4<f32> = load %x_249
                store %x_251_phi, %64
                store %x_252_phi, true
                exit_loop  # loop_1
              }
            }
            %x_219_1:ptr<function, vec2<i32>, read_write> = var, %x_218
            %66:i32 = add %x_221, 1i
            store_vector_element %x_219_1, 1u, %66
            %x_219:vec2<i32> = load %x_219_1
            continue %b5
          }
          %b5 = block {  # continuing
            store %x_218_phi, %x_219
            next_iteration %b4
          }
        }
        %68:vec4<f32> = load %x_251_phi
        store %x_251, %68
        %x_252:bool = load %x_252_phi
        %70:vec4<f32> = load %x_251
        store %x_254_phi, %70
        if %x_252 [t: %b10] {  # if_4
          %b10 = block {  # true
            exit_switch  # switch_1
          }
        }
        store %x_254_phi, vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f)
        exit_switch  # switch_1
      }
    }
    %x_254:vec4<f32> = load %x_254_phi
    store %x_GLF_color, %x_254
    ret
  }
}
%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b11 {
  %b11 = block {
    store %gl_FragCoord, %gl_FragCoord_param
    %74:void = call %main_1
    %75:vec4<f32> = load %x_GLF_color
    %76:main_out = construct %75
    ret %76
  }
}

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