; SPIR-V
; Version: 1.3
; Generator: Unknown(30017); 21022
; Bound: 232
; Schema: 0
OpCapability Shader
OpCapability SampledBuffer
OpCapability ImageBuffer
OpCapability GroupNonUniformBallot
OpCapability GroupNonUniformPartitionedNV
OpExtension "SPV_NV_shader_subgroup_partitioned"
OpMemoryModel Logical GLSL450
OpEntryPoint GLCompute %3 "main" %18
OpExecutionMode %3 LocalSize 64 1 1
OpName %3 "main"
OpDecorate %8 DescriptorSet 0
OpDecorate %8 Binding 0
OpDecorate %9 DescriptorSet 0
OpDecorate %9 Binding 1
OpDecorate %12 DescriptorSet 0
OpDecorate %12 Binding 0
OpDecorate %12 NonReadable
OpDecorate %18 BuiltIn GlobalInvocationId
%1 = OpTypeVoid
%2 = OpTypeFunction %1
%5 = OpTypeInt 32 0
%6 = OpTypeImage %5 Buffer 0 0 0 1 Unknown
%7 = OpTypePointer UniformConstant %6
%8 = OpVariable %7 UniformConstant
%9 = OpVariable %7 UniformConstant
%10 = OpTypeImage %5 Buffer 0 0 0 2 R32ui
%11 = OpTypePointer UniformConstant %10
%12 = OpVariable %11 UniformConstant
%16 = OpTypeVector %5 3
%17 = OpTypePointer Input %16
%18 = OpVariable %17 Input
%19 = OpTypePointer Input %5
%21 = OpConstant %5 0
%24 = OpConstant %5 4
%25 = OpTypeVector %5 4
%30 = OpConstant %5 1
%34 = OpConstant %5 2
%38 = OpConstant %5 3
%50 = OpTypeBool
%51 = OpConstantTrue %50
%54 = OpConstant %5 7
%76 = OpTypeFloat 32
%196 = OpConstant %5 5
%226 = OpConstant %5 6
%3 = OpFunction %1 None %2
%4 = OpLabel
OpBranch %230
%230 = OpLabel
%13 = OpLoad %10 %12
%14 = OpLoad %6 %9
%15 = OpLoad %6 %8
%20 = OpAccessChain %19 %18 %21
%22 = OpLoad %5 %20
%23 = OpIMul %5 %22 %24
%26 = OpImageFetch %25 %14 %23
%27 = OpCompositeExtract %5 %26 0
%29 = OpIAdd %5 %23 %30
%28 = OpImageFetch %25 %14 %29
%31 = OpCompositeExtract %5 %28 0
%33 = OpIAdd %5 %23 %34
%32 = OpImageFetch %25 %14 %33
%35 = OpCompositeExtract %5 %32 0
%37 = OpIAdd %5 %23 %38
%36 = OpImageFetch %25 %14 %37
%39 = OpCompositeExtract %5 %36 0
%40 = OpCompositeConstruct %25 %27 %31 %35 %39
%41 = OpCompositeExtract %5 %40 0
%42 = OpCompositeExtract %5 %40 1
%43 = OpCompositeExtract %5 %40 2
%44 = OpCompositeExtract %5 %40 3
%45 = OpImageFetch %25 %15 %22
%46 = OpCompositeExtract %5 %45 0
%48 = OpCompositeConstruct %25 %41 %42 %43 %44
%49 = OpGroupNonUniformBallot %25 %38 %51
%52 = OpBitwiseAnd %25 %48 %49
%47 = OpGroupNonUniformIAdd %5 %38 PartitionedExclusiveScanNV %46 %52
%53 = OpIMul %5 %22 %54
%55 = OpIMul %5 %22 %54
%56 = OpCompositeConstruct %25 %47 %47 %47 %47
OpImageWrite %13 %55 %56
%57 = OpIMul %5 %22 %24
%58 = OpImageFetch %25 %14 %57
%59 = OpCompositeExtract %5 %58 0
%61 = OpIAdd %5 %57 %30
%60 = OpImageFetch %25 %14 %61
%62 = OpCompositeExtract %5 %60 0
%64 = OpIAdd %5 %57 %34
%63 = OpImageFetch %25 %14 %64
%65 = OpCompositeExtract %5 %63 0
%67 = OpIAdd %5 %57 %38
%66 = OpImageFetch %25 %14 %67
%68 = OpCompositeExtract %5 %66 0
%69 = OpCompositeConstruct %25 %59 %62 %65 %68
%70 = OpCompositeExtract %5 %69 0
%71 = OpCompositeExtract %5 %69 1
%72 = OpCompositeExtract %5 %69 2
%73 = OpCompositeExtract %5 %69 3
%74 = OpImageFetch %25 %15 %22
%75 = OpCompositeExtract %5 %74 0
%77 = OpBitcast %76 %75
%79 = OpCompositeConstruct %25 %70 %71 %72 %73
%80 = OpGroupNonUniformBallot %25 %38 %51
%81 = OpBitwiseAnd %25 %79 %80
%78 = OpGroupNonUniformFAdd %76 %38 PartitionedExclusiveScanNV %77 %81
%82 = OpConvertFToU %5 %78
%83 = OpIAdd %5 %53 %30
%84 = OpIMul %5 %22 %54
%85 = OpIAdd %5 %84 %30
%86 = OpCompositeConstruct %25 %82 %82 %82 %82
OpImageWrite %13 %85 %86
%87 = OpIMul %5 %22 %24
%88 = OpImageFetch %25 %14 %87
%89 = OpCompositeExtract %5 %88 0
%91 = OpIAdd %5 %87 %30
%90 = OpImageFetch %25 %14 %91
%92 = OpCompositeExtract %5 %90 0
%94 = OpIAdd %5 %87 %34
%93 = OpImageFetch %25 %14 %94
%95 = OpCompositeExtract %5 %93 0
%97 = OpIAdd %5 %87 %38
%96 = OpImageFetch %25 %14 %97
%98 = OpCompositeExtract %5 %96 0
%99 = OpCompositeConstruct %25 %89 %92 %95 %98
%100 = OpCompositeExtract %5 %99 0
%101 = OpCompositeExtract %5 %99 1
%102 = OpCompositeExtract %5 %99 2
%103 = OpCompositeExtract %5 %99 3
%104 = OpImageFetch %25 %15 %22
%105 = OpCompositeExtract %5 %104 0
%107 = OpCompositeConstruct %25 %100 %101 %102 %103
%108 = OpGroupNonUniformBallot %25 %38 %51
%109 = OpBitwiseAnd %25 %107 %108
%106 = OpGroupNonUniformIMul %5 %38 PartitionedExclusiveScanNV %105 %109
%110 = OpIAdd %5 %53 %34
%111 = OpIMul %5 %22 %54
%112 = OpIAdd %5 %111 %34
%113 = OpCompositeConstruct %25 %106 %106 %106 %106
OpImageWrite %13 %112 %113
%114 = OpIMul %5 %22 %24
%115 = OpImageFetch %25 %14 %114
%116 = OpCompositeExtract %5 %115 0
%118 = OpIAdd %5 %114 %30
%117 = OpImageFetch %25 %14 %118
%119 = OpCompositeExtract %5 %117 0
%121 = OpIAdd %5 %114 %34
%120 = OpImageFetch %25 %14 %121
%122 = OpCompositeExtract %5 %120 0
%124 = OpIAdd %5 %114 %38
%123 = OpImageFetch %25 %14 %124
%125 = OpCompositeExtract %5 %123 0
%126 = OpCompositeConstruct %25 %116 %119 %122 %125
%127 = OpCompositeExtract %5 %126 0
%128 = OpCompositeExtract %5 %126 1
%129 = OpCompositeExtract %5 %126 2
%130 = OpCompositeExtract %5 %126 3
%131 = OpImageFetch %25 %15 %22
%132 = OpCompositeExtract %5 %131 0
%133 = OpBitcast %76 %132
%135 = OpCompositeConstruct %25 %127 %128 %129 %130
%136 = OpGroupNonUniformBallot %25 %38 %51
%137 = OpBitwiseAnd %25 %135 %136
%134 = OpGroupNonUniformFMul %76 %38 PartitionedExclusiveScanNV %133 %137
%138 = OpConvertFToU %5 %134
%139 = OpIAdd %5 %53 %38
%140 = OpIMul %5 %22 %54
%141 = OpIAdd %5 %140 %38
%142 = OpCompositeConstruct %25 %138 %138 %138 %138
OpImageWrite %13 %141 %142
%143 = OpIMul %5 %22 %24
%144 = OpImageFetch %25 %14 %143
%145 = OpCompositeExtract %5 %144 0
%147 = OpIAdd %5 %143 %30
%146 = OpImageFetch %25 %14 %147
%148 = OpCompositeExtract %5 %146 0
%150 = OpIAdd %5 %143 %34
%149 = OpImageFetch %25 %14 %150
%151 = OpCompositeExtract %5 %149 0
%153 = OpIAdd %5 %143 %38
%152 = OpImageFetch %25 %14 %153
%154 = OpCompositeExtract %5 %152 0
%155 = OpCompositeConstruct %25 %145 %148 %151 %154
%156 = OpCompositeExtract %5 %155 0
%157 = OpCompositeExtract %5 %155 1
%158 = OpCompositeExtract %5 %155 2
%159 = OpCompositeExtract %5 %155 3
%160 = OpImageFetch %25 %15 %22
%161 = OpCompositeExtract %5 %160 0
%163 = OpCompositeConstruct %25 %156 %157 %158 %159
%164 = OpGroupNonUniformBallot %25 %38 %51
%165 = OpBitwiseAnd %25 %163 %164
%162 = OpGroupNonUniformBitwiseOr %5 %38 PartitionedExclusiveScanNV %161 %165
%166 = OpIAdd %5 %53 %24
%167 = OpIMul %5 %22 %54
%168 = OpIAdd %5 %167 %24
%169 = OpCompositeConstruct %25 %162 %162 %162 %162
OpImageWrite %13 %168 %169
%170 = OpIMul %5 %22 %24
%171 = OpImageFetch %25 %14 %170
%172 = OpCompositeExtract %5 %171 0
%174 = OpIAdd %5 %170 %30
%173 = OpImageFetch %25 %14 %174
%175 = OpCompositeExtract %5 %173 0
%177 = OpIAdd %5 %170 %34
%176 = OpImageFetch %25 %14 %177
%178 = OpCompositeExtract %5 %176 0
%180 = OpIAdd %5 %170 %38
%179 = OpImageFetch %25 %14 %180
%181 = OpCompositeExtract %5 %179 0
%182 = OpCompositeConstruct %25 %172 %175 %178 %181
%183 = OpCompositeExtract %5 %182 0
%184 = OpCompositeExtract %5 %182 1
%185 = OpCompositeExtract %5 %182 2
%186 = OpCompositeExtract %5 %182 3
%187 = OpImageFetch %25 %15 %22
%188 = OpCompositeExtract %5 %187 0
%189 = OpBitcast %76 %188
%190 = OpConvertFToS %5 %189
%192 = OpCompositeConstruct %25 %183 %184 %185 %186
%193 = OpGroupNonUniformBallot %25 %38 %51
%194 = OpBitwiseAnd %25 %192 %193
%191 = OpGroupNonUniformBitwiseAnd %5 %38 PartitionedExclusiveScanNV %190 %194
%195 = OpIAdd %5 %53 %196
%197 = OpIMul %5 %22 %54
%198 = OpIAdd %5 %197 %196
%199 = OpCompositeConstruct %25 %191 %191 %191 %191
OpImageWrite %13 %198 %199
%200 = OpIMul %5 %22 %24
%201 = OpImageFetch %25 %14 %200
%202 = OpCompositeExtract %5 %201 0
%204 = OpIAdd %5 %200 %30
%203 = OpImageFetch %25 %14 %204
%205 = OpCompositeExtract %5 %203 0
%207 = OpIAdd %5 %200 %34
%206 = OpImageFetch %25 %14 %207
%208 = OpCompositeExtract %5 %206 0
%210 = OpIAdd %5 %200 %38
%209 = OpImageFetch %25 %14 %210
%211 = OpCompositeExtract %5 %209 0
%212 = OpCompositeConstruct %25 %202 %205 %208 %211
%213 = OpCompositeExtract %5 %212 0
%214 = OpCompositeExtract %5 %212 1
%215 = OpCompositeExtract %5 %212 2
%216 = OpCompositeExtract %5 %212 3
%217 = OpImageFetch %25 %15 %22
%218 = OpCompositeExtract %5 %217 0
%219 = OpBitcast %76 %218
%220 = OpConvertFToS %5 %219
%222 = OpCompositeConstruct %25 %213 %214 %215 %216
%223 = OpGroupNonUniformBallot %25 %38 %51
%224 = OpBitwiseAnd %25 %222 %223
%221 = OpGroupNonUniformBitwiseXor %5 %38 PartitionedExclusiveScanNV %220 %224
%225 = OpIAdd %5 %53 %226
%227 = OpIMul %5 %22 %54
%228 = OpIAdd %5 %227 %226
%229 = OpCompositeConstruct %25 %221 %221 %221 %221
OpImageWrite %13 %228 %229
OpReturn
OpFunctionEnd

