SKIP: FAILED

../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(16) {
  a:vec4<i32> @offset(0)
}

$B1: {  # root
  %v:ptr<storage, S, read_write> = var @binding_point(0, 0)
}

%foo = func():void {
  $B2: {
    %3:ptr<storage, vec4<i32>, read_write> = access %v, 0u
    %4:vec4<i32> = load %3
    %5:vec4<i32> = let %4
    %6:vec4<i32> = construct 2i
    %7:vec4<i32> = call %tint_mod_v4i32, %5, %6
    store %3, %7
    ret
  }
}
%tint_mod_v4i32 = func(%lhs:vec4<i32>, %rhs:vec4<i32>):vec4<i32> {
  $B3: {
    %11:vec4<bool> = eq %rhs, vec4<i32>(0i)
    %12:vec4<bool> = eq %lhs, vec4<i32>(-2147483648i)
    %13:vec4<bool> = eq %rhs, vec4<i32>(-1i)
    %14:vec4<bool> = and %12, %13
    %15:vec4<bool> = or %11, %14
    %16:vec4<i32> = select %rhs, vec4<i32>(1i), %15
    %17:vec4<i32> = let %16
    %18:vec4<i32> = div %lhs, %17
    %19:vec4<i32> = mul %18, %17
    %20:vec4<i32> = sub %lhs, %19
    ret %20
  }
}

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