| ; SPIR-V | 
 | ; Version: 1.3 | 
 | ; Generator: Google Tint Compiler; 1 | 
 | ; Bound: 129 | 
 | ; Schema: 0 | 
 |                OpCapability Shader | 
 |          %68 = OpExtInstImport "GLSL.std.450" | 
 |                OpMemoryModel Logical GLSL450 | 
 |                OpEntryPoint GLCompute %unused_entry_point "unused_entry_point" | 
 |                OpExecutionMode %unused_entry_point LocalSize 1 1 1 | 
 |                OpMemberName %S_tint_explicit_layout 0 "a" | 
 |                OpName %S_tint_explicit_layout "S_tint_explicit_layout" | 
 |                OpMemberName %buffer_block_tint_explicit_layout 0 "inner" | 
 |                OpName %buffer_block_tint_explicit_layout "buffer_block_tint_explicit_layout" | 
 |                OpName %v "v" | 
 |                OpName %idx1 "idx1" | 
 |                OpName %idx2 "idx2" | 
 |                OpName %idx3 "idx3" | 
 |                OpName %idx4 "idx4" | 
 |                OpName %idx5 "idx5" | 
 |                OpName %idx6 "idx6" | 
 |                OpName %main "main" | 
 |                OpName %tint_loop_idx "tint_loop_idx" | 
 |                OpName %tint_low_inc "tint_low_inc" | 
 |                OpName %tint_carry "tint_carry" | 
 |                OpName %unused_entry_point "unused_entry_point" | 
 |                OpDecorate %_arr_v4int_uint_4 ArrayStride 16 | 
 |                OpMemberDecorate %S_tint_explicit_layout 0 Offset 0 | 
 |                OpDecorate %_runtimearr_S_tint_explicit_layout ArrayStride 64 | 
 |                OpMemberDecorate %buffer_block_tint_explicit_layout 0 Offset 0 | 
 |                OpDecorate %buffer_block_tint_explicit_layout Block | 
 |                OpDecorate %1 DescriptorSet 0 | 
 |                OpDecorate %1 Binding 0 | 
 |                OpDecorate %1 Coherent | 
 |         %int = OpTypeInt 32 1 | 
 |       %v4int = OpTypeVector %int 4 | 
 |        %uint = OpTypeInt 32 0 | 
 |      %uint_4 = OpConstant %uint 4 | 
 | %_arr_v4int_uint_4 = OpTypeArray %v4int %uint_4 | 
 | %S_tint_explicit_layout = OpTypeStruct %_arr_v4int_uint_4 | 
 | %_runtimearr_S_tint_explicit_layout = OpTypeRuntimeArray %S_tint_explicit_layout | 
 | %buffer_block_tint_explicit_layout = OpTypeStruct %_runtimearr_S_tint_explicit_layout | 
 | %_ptr_StorageBuffer_buffer_block_tint_explicit_layout = OpTypePointer StorageBuffer %buffer_block_tint_explicit_layout | 
 |           %1 = OpVariable %_ptr_StorageBuffer_buffer_block_tint_explicit_layout StorageBuffer | 
 | %_ptr_Private_uint = OpTypePointer Private %uint | 
 |          %13 = OpConstantNull %uint | 
 |           %v = OpVariable %_ptr_Private_uint Private %13 | 
 |          %15 = OpTypeFunction %int | 
 |      %uint_1 = OpConstant %uint 1 | 
 |       %int_1 = OpConstant %int 1 | 
 |       %int_2 = OpConstant %int 2 | 
 |       %int_3 = OpConstant %int 3 | 
 |       %int_4 = OpConstant %int 4 | 
 |       %int_0 = OpConstant %int 0 | 
 |        %void = OpTypeVoid | 
 |          %47 = OpTypeFunction %void | 
 |      %v2uint = OpTypeVector %uint 2 | 
 | %_ptr_Function_v2uint = OpTypePointer Function %v2uint | 
 | %uint_4294967295 = OpConstant %uint 4294967295 | 
 |          %57 = OpConstantComposite %v2uint %uint_4294967295 %uint_4294967295 | 
 | %_ptr_StorageBuffer__runtimearr_S_tint_explicit_layout = OpTypePointer StorageBuffer %_runtimearr_S_tint_explicit_layout | 
 |      %uint_0 = OpConstant %uint 0 | 
 |      %uint_3 = OpConstant %uint 3 | 
 | %_ptr_StorageBuffer_v4int = OpTypePointer StorageBuffer %v4int | 
 | %_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int | 
 |          %86 = OpConstantNull %v2uint | 
 |        %bool = OpTypeBool | 
 |      %v2bool = OpTypeVector %bool 2 | 
 |     %uint_10 = OpConstant %uint 10 | 
 | %_ptr_Function_uint = OpTypePointer Function %uint | 
 |        %idx1 = OpFunction %int None %15 | 
 |          %16 = OpLabel | 
 |          %17 = OpLoad %uint %v None | 
 |          %18 = OpIAdd %uint %17 %uint_1 | 
 |                OpStore %v %18 None | 
 |                OpReturnValue %int_1 | 
 |                OpFunctionEnd | 
 |        %idx2 = OpFunction %int None %15 | 
 |          %22 = OpLabel | 
 |          %23 = OpLoad %uint %v None | 
 |          %24 = OpIAdd %uint %23 %uint_1 | 
 |                OpStore %v %24 None | 
 |                OpReturnValue %int_2 | 
 |                OpFunctionEnd | 
 |        %idx3 = OpFunction %int None %15 | 
 |          %27 = OpLabel | 
 |          %28 = OpLoad %uint %v None | 
 |          %29 = OpIAdd %uint %28 %uint_1 | 
 |                OpStore %v %29 None | 
 |                OpReturnValue %int_3 | 
 |                OpFunctionEnd | 
 |        %idx4 = OpFunction %int None %15 | 
 |          %32 = OpLabel | 
 |          %33 = OpLoad %uint %v None | 
 |          %34 = OpIAdd %uint %33 %uint_1 | 
 |                OpStore %v %34 None | 
 |                OpReturnValue %int_4 | 
 |                OpFunctionEnd | 
 |        %idx5 = OpFunction %int None %15 | 
 |          %37 = OpLabel | 
 |          %38 = OpLoad %uint %v None | 
 |          %39 = OpIAdd %uint %38 %uint_1 | 
 |                OpStore %v %39 None | 
 |                OpReturnValue %int_0 | 
 |                OpFunctionEnd | 
 |        %idx6 = OpFunction %int None %15 | 
 |          %42 = OpLabel | 
 |          %43 = OpLoad %uint %v None | 
 |          %44 = OpIAdd %uint %43 %uint_1 | 
 |                OpStore %v %44 None | 
 |                OpReturnValue %int_2 | 
 |                OpFunctionEnd | 
 |        %main = OpFunction %void None %47 | 
 |          %48 = OpLabel | 
 | %tint_loop_idx = OpVariable %_ptr_Function_v2uint Function | 
 |                OpBranch %49 | 
 |          %49 = OpLabel | 
 |                OpStore %tint_loop_idx %57 | 
 |          %59 = OpFunctionCall %int %idx1 | 
 |          %60 = OpFunctionCall %int %idx2 | 
 |          %61 = OpAccessChain %_ptr_StorageBuffer__runtimearr_S_tint_explicit_layout %1 %uint_0 | 
 |          %64 = OpArrayLength %uint %1 0 | 
 |          %65 = OpISub %uint %64 %uint_1 | 
 |          %66 = OpBitcast %uint %59 | 
 |          %67 = OpExtInst %uint %68 UMin %66 %65 | 
 |          %69 = OpBitcast %uint %60 | 
 |          %70 = OpExtInst %uint %68 UMin %69 %uint_3 | 
 |          %72 = OpAccessChain %_ptr_StorageBuffer_v4int %1 %uint_0 %67 %uint_0 %70 | 
 |          %74 = OpFunctionCall %int %idx3 | 
 |          %75 = OpBitcast %uint %74 | 
 |          %76 = OpExtInst %uint %68 UMin %75 %uint_3 | 
 |          %77 = OpAccessChain %_ptr_StorageBuffer_int %72 %76 | 
 |          %79 = OpLoad %int %77 None | 
 |          %80 = OpIAdd %int %79 %int_1 | 
 |          %81 = OpBitcast %uint %74 | 
 |          %82 = OpExtInst %uint %68 UMin %81 %uint_3 | 
 |          %83 = OpAccessChain %_ptr_StorageBuffer_int %72 %82 | 
 |                OpStore %83 %80 None | 
 |                OpBranch %52 | 
 |          %52 = OpLabel | 
 |                OpLoopMerge %53 %51 None | 
 |                OpBranch %50 | 
 |          %50 = OpLabel | 
 |          %84 = OpLoad %v2uint %tint_loop_idx None | 
 |          %85 = OpIEqual %v2bool %84 %86 | 
 |          %89 = OpAll %bool %85 | 
 |                OpSelectionMerge %90 None | 
 |                OpBranchConditional %89 %91 %90 | 
 |          %91 = OpLabel | 
 |                OpBranch %53 | 
 |          %90 = OpLabel | 
 |          %92 = OpLoad %uint %v None | 
 |          %93 = OpULessThan %bool %92 %uint_10 | 
 |                OpSelectionMerge %95 None | 
 |                OpBranchConditional %93 %95 %96 | 
 |          %96 = OpLabel | 
 |                OpBranch %53 | 
 |          %95 = OpLabel | 
 |                OpBranch %51 | 
 |          %51 = OpLabel | 
 |          %97 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 | 
 |          %99 = OpLoad %uint %97 None | 
 | %tint_low_inc = OpISub %uint %99 %uint_1 | 
 |         %101 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0 | 
 |                OpStore %101 %tint_low_inc None | 
 |         %102 = OpIEqual %bool %tint_low_inc %uint_4294967295 | 
 |  %tint_carry = OpSelect %uint %102 %uint_1 %uint_0 | 
 |         %104 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 | 
 |         %105 = OpLoad %uint %104 None | 
 |         %106 = OpISub %uint %105 %tint_carry | 
 |         %107 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1 | 
 |                OpStore %107 %106 None | 
 |         %108 = OpFunctionCall %int %idx4 | 
 |         %109 = OpFunctionCall %int %idx5 | 
 |         %110 = OpAccessChain %_ptr_StorageBuffer__runtimearr_S_tint_explicit_layout %1 %uint_0 | 
 |         %111 = OpArrayLength %uint %1 0 | 
 |         %112 = OpISub %uint %111 %uint_1 | 
 |         %113 = OpBitcast %uint %108 | 
 |         %114 = OpExtInst %uint %68 UMin %113 %112 | 
 |         %115 = OpBitcast %uint %109 | 
 |         %116 = OpExtInst %uint %68 UMin %115 %uint_3 | 
 |         %117 = OpAccessChain %_ptr_StorageBuffer_v4int %1 %uint_0 %114 %uint_0 %116 | 
 |         %118 = OpFunctionCall %int %idx6 | 
 |         %119 = OpBitcast %uint %118 | 
 |         %120 = OpExtInst %uint %68 UMin %119 %uint_3 | 
 |         %121 = OpAccessChain %_ptr_StorageBuffer_int %117 %120 | 
 |         %122 = OpLoad %int %121 None | 
 |         %123 = OpIAdd %int %122 %int_1 | 
 |         %124 = OpBitcast %uint %118 | 
 |         %125 = OpExtInst %uint %68 UMin %124 %uint_3 | 
 |         %126 = OpAccessChain %_ptr_StorageBuffer_int %117 %125 | 
 |                OpStore %126 %123 None | 
 |                OpBranch %52 | 
 |          %53 = OpLabel | 
 |                OpReturn | 
 |                OpFunctionEnd | 
 | %unused_entry_point = OpFunction %void None %47 | 
 |         %128 = OpLabel | 
 |                OpReturn | 
 |                OpFunctionEnd |