;
; fragment_main
;
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 1
; Bound: 45
; Schema: 0
               OpCapability Shader
               OpCapability StorageImageExtendedFormats
               OpCapability ImageQuery
         %22 = OpExtInstImport "GLSL.std.450"
               OpMemoryModel Logical GLSL450
               OpEntryPoint Fragment %fragment_main "fragment_main"
               OpExecutionMode %fragment_main OriginUpperLeft
               OpMemberName %prevent_dce_block 0 "inner"
               OpName %prevent_dce_block "prevent_dce_block"
               OpName %arg_0 "arg_0"
               OpName %textureLoad_424afd "textureLoad_424afd"
               OpName %res "res"
               OpName %fragment_main "fragment_main"
               OpMemberDecorate %prevent_dce_block 0 Offset 0
               OpDecorate %prevent_dce_block Block
               OpDecorate %1 DescriptorSet 0
               OpDecorate %1 Binding 0
               OpDecorate %1 Coherent
               OpDecorate %arg_0 DescriptorSet 1
               OpDecorate %arg_0 Binding 0
               OpDecorate %arg_0 Coherent
        %int = OpTypeInt 32 1
      %v4int = OpTypeVector %int 4
%prevent_dce_block = OpTypeStruct %v4int
%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
          %8 = OpTypeImage %int 2D 0 1 0 2 Rg32i
%_ptr_UniformConstant_8 = OpTypePointer UniformConstant %8
      %arg_0 = OpVariable %_ptr_UniformConstant_8 UniformConstant
         %10 = OpTypeFunction %v4int
       %uint = OpTypeInt 32 0
     %v3uint = OpTypeVector %uint 3
     %uint_1 = OpConstant %uint 1
      %int_1 = OpConstant %int 1
     %v2uint = OpTypeVector %uint 2
         %27 = OpConstantComposite %v2uint %uint_1 %uint_1
      %v2int = OpTypeVector %int 2
         %29 = OpConstantComposite %v2int %int_1 %int_1
%_ptr_Function_v4int = OpTypePointer Function %v4int
       %void = OpTypeVoid
         %39 = OpTypeFunction %void
%_ptr_StorageBuffer_v4int = OpTypePointer StorageBuffer %v4int
     %uint_0 = OpConstant %uint 0
%textureLoad_424afd = OpFunction %v4int None %10
         %11 = OpLabel
        %res = OpVariable %_ptr_Function_v4int Function
         %12 = OpLoad %8 %arg_0 None
         %13 = OpImageQuerySize %v3uint %12
         %16 = OpCompositeExtract %uint %13 2
         %17 = OpISub %uint %16 %uint_1
         %19 = OpBitcast %uint %int_1
         %21 = OpExtInst %uint %22 UMin %19 %17
         %23 = OpImageQuerySize %v3uint %12
         %24 = OpVectorShuffle %v2uint %23 %23 0 1
         %26 = OpISub %v2uint %24 %27
         %28 = OpBitcast %v2uint %29
         %31 = OpExtInst %v2uint %22 UMin %28 %26
         %32 = OpCompositeConstruct %v3uint %31 %21
         %33 = OpImageRead %v4int %12 %32 None
               OpStore %res %33
         %36 = OpLoad %v4int %res None
               OpReturnValue %36
               OpFunctionEnd
%fragment_main = OpFunction %void None %39
         %40 = OpLabel
         %41 = OpFunctionCall %v4int %textureLoad_424afd
         %42 = OpAccessChain %_ptr_StorageBuffer_v4int %1 %uint_0
               OpStore %42 %41 None
               OpReturn
               OpFunctionEnd
;
; compute_main
;
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 1
; Bound: 45
; Schema: 0
               OpCapability Shader
               OpCapability StorageImageExtendedFormats
               OpCapability ImageQuery
         %22 = OpExtInstImport "GLSL.std.450"
               OpMemoryModel Logical GLSL450
               OpEntryPoint GLCompute %compute_main "compute_main"
               OpExecutionMode %compute_main LocalSize 1 1 1
               OpMemberName %prevent_dce_block 0 "inner"
               OpName %prevent_dce_block "prevent_dce_block"
               OpName %arg_0 "arg_0"
               OpName %textureLoad_424afd "textureLoad_424afd"
               OpName %res "res"
               OpName %compute_main "compute_main"
               OpMemberDecorate %prevent_dce_block 0 Offset 0
               OpDecorate %prevent_dce_block Block
               OpDecorate %1 DescriptorSet 0
               OpDecorate %1 Binding 0
               OpDecorate %1 Coherent
               OpDecorate %arg_0 DescriptorSet 1
               OpDecorate %arg_0 Binding 0
               OpDecorate %arg_0 Coherent
        %int = OpTypeInt 32 1
      %v4int = OpTypeVector %int 4
%prevent_dce_block = OpTypeStruct %v4int
%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
          %8 = OpTypeImage %int 2D 0 1 0 2 Rg32i
%_ptr_UniformConstant_8 = OpTypePointer UniformConstant %8
      %arg_0 = OpVariable %_ptr_UniformConstant_8 UniformConstant
         %10 = OpTypeFunction %v4int
       %uint = OpTypeInt 32 0
     %v3uint = OpTypeVector %uint 3
     %uint_1 = OpConstant %uint 1
      %int_1 = OpConstant %int 1
     %v2uint = OpTypeVector %uint 2
         %27 = OpConstantComposite %v2uint %uint_1 %uint_1
      %v2int = OpTypeVector %int 2
         %29 = OpConstantComposite %v2int %int_1 %int_1
%_ptr_Function_v4int = OpTypePointer Function %v4int
       %void = OpTypeVoid
         %39 = OpTypeFunction %void
%_ptr_StorageBuffer_v4int = OpTypePointer StorageBuffer %v4int
     %uint_0 = OpConstant %uint 0
%textureLoad_424afd = OpFunction %v4int None %10
         %11 = OpLabel
        %res = OpVariable %_ptr_Function_v4int Function
         %12 = OpLoad %8 %arg_0 None
         %13 = OpImageQuerySize %v3uint %12
         %16 = OpCompositeExtract %uint %13 2
         %17 = OpISub %uint %16 %uint_1
         %19 = OpBitcast %uint %int_1
         %21 = OpExtInst %uint %22 UMin %19 %17
         %23 = OpImageQuerySize %v3uint %12
         %24 = OpVectorShuffle %v2uint %23 %23 0 1
         %26 = OpISub %v2uint %24 %27
         %28 = OpBitcast %v2uint %29
         %31 = OpExtInst %v2uint %22 UMin %28 %26
         %32 = OpCompositeConstruct %v3uint %31 %21
         %33 = OpImageRead %v4int %12 %32 None
               OpStore %res %33
         %36 = OpLoad %v4int %res None
               OpReturnValue %36
               OpFunctionEnd
%compute_main = OpFunction %void None %39
         %40 = OpLabel
         %41 = OpFunctionCall %v4int %textureLoad_424afd
         %42 = OpAccessChain %_ptr_StorageBuffer_v4int %1 %uint_0
               OpStore %42 %41 None
               OpReturn
               OpFunctionEnd
