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> = call %tint_mod_v4i32, %4, vec4<i32>(2i)
    store %3, %5
    ret
  }
}
%tint_mod_v4i32 = func(%lhs:vec4<i32>, %rhs:vec4<i32>):vec4<i32> {
  $B3: {
    %9:vec4<bool> = eq %rhs, vec4<i32>(0i)
    %10:vec4<bool> = eq %lhs, vec4<i32>(-2147483648i)
    %11:vec4<bool> = eq %rhs, vec4<i32>(-1i)
    %12:vec4<bool> = and %10, %11
    %13:vec4<bool> = or %9, %12
    %14:vec4<i32> = select %rhs, vec4<i32>(1i), %13
    %15:vec4<i32> = let %14
    %16:vec4<i32> = div %lhs, %15
    %17:vec4<i32> = mul %16, %15
    %18:vec4<i32> = sub %lhs, %17
    ret %18
  }
}

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