SKIP: FAILED

<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1057 internal compiler error: %b1 = block {  # root
  %arg_0:ptr<handle, texture_external, read> = var @binding_point(1, 0)
}

%textureLoad2d = func(%tint_symbol:texture_external, %coords:vec2<i32>):vec4<f32> -> %b2 {
  %b2 = block {
    %5:vec4<f32> = textureLoad %tint_symbol, %coords
    ret %5
  }
}
%doTextureLoad = func():void -> %b3 {
  %b3 = block {
    %7:texture_external = load %arg_0
    %8:vec4<f32> = call %textureLoad2d, %7, vec2<i32>(0i)
    %res:ptr<function, vec4<f32>, read_write> = var, %8
    ret
  }
}
%vertex_main = @vertex func():vec4<f32> [@position] -> %b4 {
  %b4 = block {
    %11:void = call %doTextureLoad
    ret vec4<f32>(0.0f)
  }
}
%fragment_main = @fragment func():void -> %b5 {
  %b5 = block {
    %13:void = call %doTextureLoad
    ret
  }
}
%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b6 {
  %b6 = block {
    %15:void = call %doTextureLoad
    ret
  }
}

Multiplanar external texture transform was not run.
********************************************************************
*  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.  *
********************************************************************
