SKIP: FAILED

<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
  %arg_0:ptr<handle, texture_depth_2d_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_9a6358 = func():void -> %b2 {
  %b2 = block {
    %5:texture_depth_2d_array = load %arg_0
    %6:sampler = load %arg_1
    %7:vec4<f32> = textureGather %5, %6, vec2<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 {
  %b3 = block {
    %11:void = call %textureGather_9a6358
    ret vec4<f32>(0.0f)
  }
}
%fragment_main = @fragment func():void -> %b4 {
  %b4 = block {
    %13:void = call %textureGather_9a6358
    ret
  }
}
%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
  %b5 = block {
    %15:void = call %textureGather_9a6358
    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.  *
********************************************************************
