SKIP: FAILED

../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
  %arg_0:ptr<handle, texture_depth_cube_array, read> = var @binding_point(1, 0)
  %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
  %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
}

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