SKIP: FAILED

<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
  %arg_0:ptr<handle, texture_storage_2d_array<r32sint, read_write>, read> = var @binding_point(1, 0)
  %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
}

%textureNumLayers_8e1bd0 = func():void -> %b2 {
  %b2 = block {
    %4:texture_storage_2d_array<r32sint, read_write> = load %arg_0
    %5:u32 = textureNumLayers %4
    %res:ptr<function, u32, read_write> = var, %5
    %7:u32 = load %res
    store %prevent_dce, %7
    ret
  }
}
%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
  %b3 = block {
    %9:void = call %textureNumLayers_8e1bd0
    ret vec4<f32>(0.0f)
  }
}
%fragment_main = @fragment func():void -> %b4 {
  %b4 = block {
    %11:void = call %textureNumLayers_8e1bd0
    ret
  }
}
%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
  %b5 = block {
    %13:void = call %textureNumLayers_8e1bd0
    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.  *
********************************************************************
