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_div_v4i32, %4, vec4<i32>(2i)
    store %3, %5
    ret
  }
}
%tint_div_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> = div %lhs, %14
    ret %15
  }
}

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