SKIP: FAILED

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

main_out = struct @align(16) {
  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
}

$B1: {  # root
  %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
}

%main_1 = func():void {
  $B2: {
    %a:ptr<function, u32, read_write> = var
    %b:ptr<function, u32, read_write> = var
    %c:ptr<function, u32, read_write> = var
    %d:ptr<function, u32, read_write> = var
    %e:ptr<function, u32, read_write> = var
    %f:ptr<function, u32, read_write> = var
    %10:ptr<uniform, u32, read> = access %x_6, 0u
    %11:u32 = load %10
    %12:u32 = add 77u, %11
    %13:u32 = and 32u, 31u
    %14:u32 = shr %12, %13
    store %a, %14
    %15:ptr<uniform, u32, read> = access %x_6, 0u
    %16:u32 = load %15
    %17:u32 = add 3243u, %16
    %18:u32 = and 33u, 31u
    %19:u32 = shr %17, %18
    store %b, %19
    %20:ptr<uniform, u32, read> = access %x_6, 0u
    %21:u32 = load %20
    %22:u32 = add 23u, %21
    %23:u32 = and 345u, 31u
    %24:u32 = shr %22, %23
    store %c, %24
    %25:ptr<uniform, u32, read> = access %x_6, 0u
    %26:u32 = load %25
    %27:u32 = add 2395u, %26
    %28:u32 = and 32u, 31u
    %29:u32 = shl %27, %28
    store %d, %29
    %30:ptr<uniform, u32, read> = access %x_6, 0u
    %31:u32 = load %30
    %32:u32 = add 290485u, %31
    %33:u32 = and 33u, 31u
    %34:u32 = shl %32, %33
    store %e, %34
    %35:ptr<uniform, u32, read> = access %x_6, 0u
    %36:u32 = load %35
    %37:u32 = add 44321u, %36
    %38:u32 = and 345u, 31u
    %39:u32 = shl %37, %38
    store %f, %39
    %40:u32 = load %a
    %41:bool = neq %40, 1u
    if %41 [t: $B3] {  # if_1
      $B3: {  # true
        store %a, 1u
        exit_if  # if_1
      }
    }
    %42:u32 = load %b
    %43:bool = neq %42, 0u
    if %43 [t: $B4] {  # if_2
      $B4: {  # true
        store %b, 0u
        exit_if  # if_2
      }
    }
    %44:u32 = load %c
    %45:bool = neq %44, 1u
    if %45 [t: $B5] {  # if_3
      $B5: {  # true
        store %c, 1u
        exit_if  # if_3
      }
    }
    %46:u32 = load %d
    %47:bool = neq %46, 0u
    if %47 [t: $B6] {  # if_4
      $B6: {  # true
        store %d, 0u
        exit_if  # if_4
      }
    }
    %48:u32 = load %e
    %49:bool = neq %48, 1u
    if %49 [t: $B7] {  # if_5
      $B7: {  # true
        store %e, 1u
        exit_if  # if_5
      }
    }
    %50:u32 = load %f
    %51:bool = neq %50, 0u
    if %51 [t: $B8] {  # if_6
      $B8: {  # true
        store %f, 0u
        exit_if  # if_6
      }
    }
    %52:u32 = load %a
    %53:bool = eq %52, 1u
    %54:u32 = load %b
    %55:bool = eq %54, 0u
    %56:bool = and %53, %55
    %57:u32 = load %c
    %58:bool = eq %57, 1u
    %59:bool = and %56, %58
    %60:u32 = load %d
    %61:bool = eq %60, 0u
    %62:bool = and %59, %61
    %63:u32 = load %e
    %64:bool = eq %63, 1u
    %65:bool = and %62, %64
    %66:u32 = load %f
    %67:bool = eq %66, 0u
    %68:bool = and %65, %67
    if %68 [t: $B9, f: $B10] {  # if_7
      $B9: {  # true
        store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
        exit_if  # if_7
      }
      $B10: {  # false
        store %x_GLF_color, vec4<f32>(0.0f)
        exit_if  # if_7
      }
    }
    ret
  }
}
%tint_symbol = @fragment func():main_out {
  $B11: {
    %70:void = call %main_1
    %71:vec4<f32> = load %x_GLF_color
    %72:main_out = construct %71
    ret %72
  }
}

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