SKIP: FAILED

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

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