SKIP: FAILED

../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: PixelLocal = struct @align(4) {
  a:u32 @offset(0)
}

Out = struct @align(16) {
  x:vec4<f32> @offset(0), @location(0)
  y:vec4<f32> @offset(16), @location(2)
  z:vec4<f32> @offset(32), @location(3)
}

$B1: {  # root
  %P:ptr<pixel_local, PixelLocal, read_write> = var
}

%f = @fragment func():Out {
  $B2: {
    %3:ptr<pixel_local, u32, read_write> = access %P, 0u
    %4:u32 = load %3
    %5:u32 = add %4, 42u
    store %3, %5
    ret Out(vec4<f32>(10.0f), vec4<f32>(20.0f), vec4<f32>(30.0f))
  }
}

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.  *
********************************************************************
