SKIP: FAILED

../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
  %prevent_dce:ptr<storage, vec2<i32>, read_write> = var @binding_point(2, 0)
}

%bitcast_899e50 = func():void {
  $B2: {
    %arg_0:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
    %4:vec2<f32> = load %arg_0
    %5:vec2<i32> = bitcast %4
    %res:ptr<function, vec2<i32>, read_write> = var, %5
    %7:vec2<i32> = load %res
    store %prevent_dce, %7
    ret
  }
}
%vertex_main = @vertex func():vec4<f32> [@position] {
  $B3: {
    %9:void = call %bitcast_899e50
    ret vec4<f32>(0.0f)
  }
}
%fragment_main = @fragment func():void {
  $B4: {
    %11:void = call %bitcast_899e50
    ret
  }
}
%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
  $B5: {
    %13:void = call %bitcast_899e50
    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.  *
********************************************************************
