SKIP: FAILED

<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
  %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
}

%cos_5bc2c6 = func():void -> %b2 {
  %b2 = block {
    %arg_0:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(0.0h)
    %4:vec2<f16> = load %arg_0
    %5:vec2<f16> = cos %4
    %res:ptr<function, vec2<f16>, read_write> = var, %5
    %7:vec2<f16> = load %res
    store %prevent_dce, %7
    ret
  }
}
%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
  %b3 = block {
    %9:void = call %cos_5bc2c6
    ret vec4<f32>(0.0f)
  }
}
%fragment_main = @fragment func():void -> %b4 {
  %b4 = block {
    %11:void = call %cos_5bc2c6
    ret
  }
}
%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
  %b5 = block {
    %13:void = call %cos_5bc2c6
    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.  *
********************************************************************
