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)
  %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
}

%textureLoad_1bfdfb = func():void -> %b2 {
  %b2 = block {
    %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
    %5:texture_external = load %arg_0
    %6:vec2<u32> = load %arg_1
    %7:vec4<f32> = textureLoad %5, %6
    %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 %textureLoad_1bfdfb
    ret vec4<f32>(0.0f)
  }
}
%fragment_main = @fragment func():void -> %b4 {
  %b4 = block {
    %13:void = call %textureLoad_1bfdfb
    ret
  }
}
%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
  %b5 = block {
    %15:void = call %textureLoad_1bfdfb
    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.  *
********************************************************************
