SKIP: FAILED

../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
  %arg_0:ptr<handle, texture_storage_1d<rgba8sint, read_write>, read> = var @binding_point(1, 0)
  %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
}

%textureLoad_5e17a7 = func():void {
  $B2: {
    %arg_1:ptr<function, i32, read_write> = var, 1i
    %5:texture_storage_1d<rgba8sint, read_write> = load %arg_0
    %6:i32 = load %arg_1
    %7:vec4<i32> = textureLoad %5, %6
    %res:ptr<function, vec4<i32>, read_write> = var, %7
    %9:vec4<i32> = load %res
    store %prevent_dce, %9
    ret
  }
}
%vertex_main = @vertex func():vec4<f32> [@position] {
  $B3: {
    %11:void = call %textureLoad_5e17a7
    ret vec4<f32>(0.0f)
  }
}
%fragment_main = @fragment func():void {
  $B4: {
    %13:void = call %textureLoad_5e17a7
    ret
  }
}
%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
  $B5: {
    %15:void = call %textureLoad_5e17a7
    ret
  }
}

invalid access control for storage texture
********************************************************************
*  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.  *
********************************************************************
