1*c8dee2aaSAndroid Build Coastguard Worker OpCapability Shader 2*c8dee2aaSAndroid Build Coastguard Worker %1 = OpExtInstImport "GLSL.std.450" 3*c8dee2aaSAndroid Build Coastguard Worker OpMemoryModel Logical GLSL450 4*c8dee2aaSAndroid Build Coastguard Worker OpEntryPoint GLCompute %main "main" %sk_LocalInvocationID 5*c8dee2aaSAndroid Build Coastguard Worker OpExecutionMode %main LocalSize 256 1 1 6*c8dee2aaSAndroid Build Coastguard Worker OpName %GlobalCounts "GlobalCounts" 7*c8dee2aaSAndroid Build Coastguard Worker OpMemberName %GlobalCounts 0 "firstHalfCount" 8*c8dee2aaSAndroid Build Coastguard Worker OpMemberName %GlobalCounts 1 "secondHalfCount" 9*c8dee2aaSAndroid Build Coastguard Worker OpName %ssbo "ssbo" 10*c8dee2aaSAndroid Build Coastguard Worker OpMemberName %ssbo 0 "globalCounts" 11*c8dee2aaSAndroid Build Coastguard Worker OpName %sk_LocalInvocationID "sk_LocalInvocationID" 12*c8dee2aaSAndroid Build Coastguard Worker OpName %localCounts "localCounts" 13*c8dee2aaSAndroid Build Coastguard Worker OpName %main "main" 14*c8dee2aaSAndroid Build Coastguard Worker OpName %idx "idx" 15*c8dee2aaSAndroid Build Coastguard Worker OpMemberDecorate %GlobalCounts 0 Offset 0 16*c8dee2aaSAndroid Build Coastguard Worker OpMemberDecorate %GlobalCounts 0 RelaxedPrecision 17*c8dee2aaSAndroid Build Coastguard Worker OpMemberDecorate %GlobalCounts 1 Offset 4 18*c8dee2aaSAndroid Build Coastguard Worker OpMemberDecorate %GlobalCounts 1 RelaxedPrecision 19*c8dee2aaSAndroid Build Coastguard Worker OpMemberDecorate %ssbo 0 Offset 0 20*c8dee2aaSAndroid Build Coastguard Worker OpMemberDecorate %ssbo 0 RelaxedPrecision 21*c8dee2aaSAndroid Build Coastguard Worker OpDecorate %ssbo BufferBlock 22*c8dee2aaSAndroid Build Coastguard Worker OpDecorate %3 Binding 0 23*c8dee2aaSAndroid Build Coastguard Worker OpDecorate %3 DescriptorSet 0 24*c8dee2aaSAndroid Build Coastguard Worker OpDecorate %sk_LocalInvocationID BuiltIn LocalInvocationId 25*c8dee2aaSAndroid Build Coastguard Worker OpDecorate %_arr_uint_int_2 ArrayStride 16 26*c8dee2aaSAndroid Build Coastguard Worker %uint = OpTypeInt 32 0 27*c8dee2aaSAndroid Build Coastguard Worker%GlobalCounts = OpTypeStruct %uint %uint 28*c8dee2aaSAndroid Build Coastguard Worker %ssbo = OpTypeStruct %GlobalCounts 29*c8dee2aaSAndroid Build Coastguard Worker%_ptr_Uniform_ssbo = OpTypePointer Uniform %ssbo 30*c8dee2aaSAndroid Build Coastguard Worker %3 = OpVariable %_ptr_Uniform_ssbo Uniform 31*c8dee2aaSAndroid Build Coastguard Worker %v3uint = OpTypeVector %uint 3 32*c8dee2aaSAndroid Build Coastguard Worker%_ptr_Input_v3uint = OpTypePointer Input %v3uint 33*c8dee2aaSAndroid Build Coastguard Worker%sk_LocalInvocationID = OpVariable %_ptr_Input_v3uint Input 34*c8dee2aaSAndroid Build Coastguard Worker %int = OpTypeInt 32 1 35*c8dee2aaSAndroid Build Coastguard Worker %int_2 = OpConstant %int 2 36*c8dee2aaSAndroid Build Coastguard Worker%_arr_uint_int_2 = OpTypeArray %uint %int_2 37*c8dee2aaSAndroid Build Coastguard Worker%_ptr_Workgroup__arr_uint_int_2 = OpTypePointer Workgroup %_arr_uint_int_2 38*c8dee2aaSAndroid Build Coastguard Worker%localCounts = OpVariable %_ptr_Workgroup__arr_uint_int_2 Workgroup 39*c8dee2aaSAndroid Build Coastguard Worker %void = OpTypeVoid 40*c8dee2aaSAndroid Build Coastguard Worker %17 = OpTypeFunction %void 41*c8dee2aaSAndroid Build Coastguard Worker %uint_0 = OpConstant %uint 0 42*c8dee2aaSAndroid Build Coastguard Worker %bool = OpTypeBool 43*c8dee2aaSAndroid Build Coastguard Worker %int_0 = OpConstant %int 0 44*c8dee2aaSAndroid Build Coastguard Worker%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint 45*c8dee2aaSAndroid Build Coastguard Worker %uint_2 = OpConstant %uint 2 46*c8dee2aaSAndroid Build Coastguard Worker %int_1 = OpConstant %int 1 47*c8dee2aaSAndroid Build Coastguard Worker %uint_264 = OpConstant %uint 264 48*c8dee2aaSAndroid Build Coastguard Worker%_ptr_Function_uint = OpTypePointer Function %uint 49*c8dee2aaSAndroid Build Coastguard Worker %uint_128 = OpConstant %uint 128 50*c8dee2aaSAndroid Build Coastguard Worker %uint_1 = OpConstant %uint 1 51*c8dee2aaSAndroid Build Coastguard Worker%_ptr_Uniform_uint = OpTypePointer Uniform %uint 52*c8dee2aaSAndroid Build Coastguard Worker %main = OpFunction %void None %17 53*c8dee2aaSAndroid Build Coastguard Worker %18 = OpLabel 54*c8dee2aaSAndroid Build Coastguard Worker %idx = OpVariable %_ptr_Function_uint Function 55*c8dee2aaSAndroid Build Coastguard Worker %19 = OpLoad %v3uint %sk_LocalInvocationID 56*c8dee2aaSAndroid Build Coastguard Worker %20 = OpCompositeExtract %uint %19 0 57*c8dee2aaSAndroid Build Coastguard Worker %22 = OpIEqual %bool %20 %uint_0 58*c8dee2aaSAndroid Build Coastguard Worker OpSelectionMerge %25 None 59*c8dee2aaSAndroid Build Coastguard Worker OpBranchConditional %22 %24 %25 60*c8dee2aaSAndroid Build Coastguard Worker %24 = OpLabel 61*c8dee2aaSAndroid Build Coastguard Worker %28 = OpAccessChain %_ptr_Workgroup_uint %localCounts %int_0 62*c8dee2aaSAndroid Build Coastguard Worker OpAtomicStore %28 %uint_2 %uint_0 %uint_0 63*c8dee2aaSAndroid Build Coastguard Worker %33 = OpAccessChain %_ptr_Workgroup_uint %localCounts %int_1 64*c8dee2aaSAndroid Build Coastguard Worker OpAtomicStore %33 %uint_2 %uint_0 %uint_0 65*c8dee2aaSAndroid Build Coastguard Worker OpBranch %25 66*c8dee2aaSAndroid Build Coastguard Worker %25 = OpLabel 67*c8dee2aaSAndroid Build Coastguard Worker OpControlBarrier %uint_2 %uint_2 %uint_264 68*c8dee2aaSAndroid Build Coastguard Worker %38 = OpLoad %v3uint %sk_LocalInvocationID 69*c8dee2aaSAndroid Build Coastguard Worker %39 = OpCompositeExtract %uint %38 0 70*c8dee2aaSAndroid Build Coastguard Worker %41 = OpULessThan %bool %39 %uint_128 71*c8dee2aaSAndroid Build Coastguard Worker %42 = OpSelect %int %41 %int_0 %int_1 72*c8dee2aaSAndroid Build Coastguard Worker %43 = OpBitcast %uint %42 73*c8dee2aaSAndroid Build Coastguard Worker OpStore %idx %43 74*c8dee2aaSAndroid Build Coastguard Worker %45 = OpAccessChain %_ptr_Workgroup_uint %localCounts %43 75*c8dee2aaSAndroid Build Coastguard Worker %44 = OpAtomicIAdd %uint %45 %uint_2 %uint_0 %uint_1 76*c8dee2aaSAndroid Build Coastguard Worker OpControlBarrier %uint_2 %uint_2 %uint_264 77*c8dee2aaSAndroid Build Coastguard Worker %48 = OpLoad %v3uint %sk_LocalInvocationID 78*c8dee2aaSAndroid Build Coastguard Worker %49 = OpCompositeExtract %uint %48 0 79*c8dee2aaSAndroid Build Coastguard Worker %50 = OpIEqual %bool %49 %uint_0 80*c8dee2aaSAndroid Build Coastguard Worker OpSelectionMerge %52 None 81*c8dee2aaSAndroid Build Coastguard Worker OpBranchConditional %50 %51 %52 82*c8dee2aaSAndroid Build Coastguard Worker %51 = OpLabel 83*c8dee2aaSAndroid Build Coastguard Worker %54 = OpAccessChain %_ptr_Uniform_uint %3 %int_0 %int_0 84*c8dee2aaSAndroid Build Coastguard Worker %57 = OpAccessChain %_ptr_Workgroup_uint %localCounts %int_0 85*c8dee2aaSAndroid Build Coastguard Worker %56 = OpAtomicLoad %uint %57 %uint_2 %uint_0 86*c8dee2aaSAndroid Build Coastguard Worker %53 = OpAtomicIAdd %uint %54 %uint_1 %uint_0 %56 87*c8dee2aaSAndroid Build Coastguard Worker %59 = OpAccessChain %_ptr_Uniform_uint %3 %int_0 %int_1 88*c8dee2aaSAndroid Build Coastguard Worker %61 = OpAccessChain %_ptr_Workgroup_uint %localCounts %int_1 89*c8dee2aaSAndroid Build Coastguard Worker %60 = OpAtomicLoad %uint %61 %uint_2 %uint_0 90*c8dee2aaSAndroid Build Coastguard Worker %58 = OpAtomicIAdd %uint %59 %uint_1 %uint_0 %60 91*c8dee2aaSAndroid Build Coastguard Worker OpBranch %52 92*c8dee2aaSAndroid Build Coastguard Worker %52 = OpLabel 93*c8dee2aaSAndroid Build Coastguard Worker OpReturn 94*c8dee2aaSAndroid Build Coastguard Worker OpFunctionEnd 95