SKIP: FAILED

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

%pack2x16unorm_0f08e4 = func():void -> %b2 {
  %b2 = block {
    %res:ptr<function, u32, read_write> = var, 4294967295u
    %4:u32 = load %res
    store %prevent_dce, %4
    ret
  }
}
%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
  %b3 = block {
    %6:void = call %pack2x16unorm_0f08e4
    ret vec4<f32>(0.0f)
  }
}
%fragment_main = @fragment func():void -> %b4 {
  %b4 = block {
    %8:void = call %pack2x16unorm_0f08e4
    ret
  }
}
%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
  %b5 = block {
    %10:void = call %pack2x16unorm_0f08e4
    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.  *
********************************************************************
