|
; SPIR-V |
|
; Version: 1.3 |
|
; Generator: Khronos; 0 |
|
; Bound: 772 |
|
; Schema: 0 |
|
OpCapability Shader |
|
OpCapability Int8 |
|
OpCapability DotProduct |
|
OpCapability DotProductInput4x8BitPacked |
|
OpExtension "SPV_KHR_integer_dot_product" |
|
%418 = OpExtInstImport "GLSL.std.450" |
|
OpMemoryModel Logical GLSL450 |
|
OpEntryPoint GLCompute %51 "main" %gl_LocalInvocationID %gl_WorkGroupID |
|
OpExecutionMode %51 LocalSize 256 1 1 |
|
OpDecorate %_runtimearr_uint ArrayStride 4 |
|
OpDecorate %_struct_3 Block |
|
OpMemberDecorate %_struct_3 0 Offset 0 |
|
OpDecorate %5 DescriptorSet 0 |
|
OpDecorate %5 Binding 0 |
|
OpDecorate %6 DescriptorSet 0 |
|
OpDecorate %6 Binding 1 |
|
OpDecorate %7 DescriptorSet 0 |
|
OpDecorate %7 Binding 2 |
|
OpDecorate %8 DescriptorSet 0 |
|
OpDecorate %8 Binding 3 |
|
OpDecorate %_runtimearr_float ArrayStride 4 |
|
OpDecorate %_struct_11 Block |
|
OpMemberDecorate %_struct_11 0 Offset 0 |
|
OpDecorate %13 DescriptorSet 0 |
|
OpDecorate %13 Binding 4 |
|
OpDecorate %14 DescriptorSet 0 |
|
OpDecorate %14 Binding 5 |
|
OpDecorate %_struct_15 Block |
|
OpMemberDecorate %_struct_15 0 Offset 0 |
|
OpMemberDecorate %_struct_15 1 Offset 4 |
|
OpMemberDecorate %_struct_15 2 Offset 8 |
|
OpDecorate %gl_LocalInvocationID BuiltIn LocalInvocationId |
|
OpDecorate %gl_WorkGroupID BuiltIn WorkgroupId |
|
%uint = OpTypeInt 32 0 |
|
%_runtimearr_uint = OpTypeRuntimeArray %uint |
|
%_struct_3 = OpTypeStruct %_runtimearr_uint |
|
%_ptr_StorageBuffer__struct_3 = OpTypePointer StorageBuffer %_struct_3 |
|
%5 = OpVariable %_ptr_StorageBuffer__struct_3 StorageBuffer |
|
%6 = OpVariable %_ptr_StorageBuffer__struct_3 StorageBuffer |
|
%7 = OpVariable %_ptr_StorageBuffer__struct_3 StorageBuffer |
|
%8 = OpVariable %_ptr_StorageBuffer__struct_3 StorageBuffer |
|
%float = OpTypeFloat 32 |
|
%_runtimearr_float = OpTypeRuntimeArray %float |
|
%_struct_11 = OpTypeStruct %_runtimearr_float |
|
%_ptr_StorageBuffer__struct_11 = OpTypePointer StorageBuffer %_struct_11 |
|
%13 = OpVariable %_ptr_StorageBuffer__struct_11 StorageBuffer |
|
%14 = OpVariable %_ptr_StorageBuffer__struct_11 StorageBuffer |
|
%_struct_15 = OpTypeStruct %uint %uint %uint |
|
%_ptr_PushConstant__struct_15 = OpTypePointer PushConstant %_struct_15 |
|
%17 = OpVariable %_ptr_PushConstant__struct_15 PushConstant |
|
%v4uint = OpTypeVector %uint 4 |
|
%uint_544 = OpConstant %uint 544 |
|
%_arr_v4uint_uint_544 = OpTypeArray %v4uint %uint_544 |
|
%_ptr_Workgroup__arr_v4uint_uint_544 = OpTypePointer Workgroup %_arr_v4uint_uint_544 |
|
%22 = OpVariable %_ptr_Workgroup__arr_v4uint_uint_544 Workgroup |
|
%23 = OpVariable %_ptr_Workgroup__arr_v4uint_uint_544 Workgroup |
|
%uint_256 = OpConstant %uint 256 |
|
%_arr_float_uint_256 = OpTypeArray %float %uint_256 |
|
%_ptr_Workgroup__arr_float_uint_256 = OpTypePointer Workgroup %_arr_float_uint_256 |
|
%27 = OpVariable %_ptr_Workgroup__arr_float_uint_256 Workgroup |
|
%28 = OpVariable %_ptr_Workgroup__arr_float_uint_256 Workgroup |
|
%29 = OpVariable %_ptr_Workgroup__arr_float_uint_256 Workgroup |
|
%void = OpTypeVoid |
|
%32 = OpTypeFunction %void |
|
%v3uint = OpTypeVector %uint 3 |
|
%_ptr_Input_v3uint = OpTypePointer Input %v3uint |
|
%gl_LocalInvocationID = OpVariable %_ptr_Input_v3uint Input |
|
%37 = OpTypeFunction %v4uint |
|
%gl_WorkGroupID = OpVariable %_ptr_Input_v3uint Input |
|
%40 = OpTypeFunction %void %uint %uint %uint %uint %uint %uint %uint |
|
%42 = OpTypeFunction %void %uint %uint %uint %uint %uint %uint |
|
%45 = OpTypeFunction %void %uint %uint %uint %uint %uint |
|
%v4float = OpTypeVector %float 4 |
|
%48 = OpTypeFunction %v4float %uint %uint %uint %float |
|
%50 = OpTypeFunction %void %uint %uint %uint %uint %uint %v4float |
|
%_ptr_Function_v4float = OpTypePointer Function %v4float |
|
%_ptr_Function_uint = OpTypePointer Function %uint |
|
%int = OpTypeInt 32 1 |
|
%_ptr_Function_int = OpTypePointer Function %int |
|
%_ptr_PushConstant_uint = OpTypePointer PushConstant %uint |
|
%uint_1 = OpConstant %uint 1 |
|
%uint_31 = OpConstant %uint 31 |
|
%uint_32 = OpConstant %uint 32 |
|
%uint_0 = OpConstant %uint 0 |
|
%_ptr_Input_uint = OpTypePointer Input %uint |
|
%uint_8 = OpConstant %uint 8 |
|
%float_0 = OpConstant %float 0 |
|
%92 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0 |
|
%bool = OpTypeBool |
|
%uint_2 = OpConstant %uint 2 |
|
%uint_264 = OpConstant %uint 264 |
|
%_ptr_Workgroup_float = OpTypePointer Workgroup %float |
|
%int_0 = OpConstant %int 0 |
|
%int_8 = OpConstant %int 8 |
|
%int_1 = OpConstant %int 1 |
|
%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint |
|
%uint_4 = OpConstant %uint 4 |
|
%uint_3 = OpConstant %uint 3 |
|
%_ptr_Function_v4uint = OpTypePointer Function %v4uint |
|
%int_2 = OpConstant %int 2 |
|
%187 = OpConstantComposite %v4uint %uint_0 %uint_0 %uint_0 %uint_0 |
|
%uint_64 = OpConstant %uint 64 |
|
%uint_17 = OpConstant %uint 17 |
|
%_ptr_Workgroup_v4uint = OpTypePointer Workgroup %v4uint |
|
%uint_48 = OpConstant %uint 48 |
|
%uint_252645135 = OpConstant %uint 252645135 |
|
%uint_50529027 = OpConstant %uint 50529027 |
|
%_ptr_Function_float = OpTypePointer Function %float |
|
%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float |
|
%uint_5 = OpConstant %uint 5 |
|
%char = OpTypeInt 8 1 |
|
%v4char = OpTypeVector %char 4 |
|
%v4int = OpTypeVector %int 4 |
|
%v2float = OpTypeVector %float 2 |
|
%uint_16843009 = OpConstant %uint 16843009 |
|
%uint_16 = OpConstant %uint 16 |
|
%uint_24 = OpConstant %uint 24 |
|
%int_32 = OpConstant %int 32 |
|
%51 = OpFunction %void None %32 |
|
%52 = OpLabel |
|
%53 = OpFunctionCall %void %31 |
|
OpReturn |
|
OpFunctionEnd |
|
%31 = OpFunction %void None %32 |
|
%54 = OpLabel |
|
%56 = OpVariable %_ptr_Function_v4float Function |
|
%58 = OpVariable %_ptr_Function_uint Function |
|
%61 = OpVariable %_ptr_Function_int Function |
|
%62 = OpFunctionCall %v4uint %36 |
|
%63 = OpCompositeExtract %uint %62 0 |
|
%64 = OpCompositeExtract %uint %62 1 |
|
%65 = OpCompositeExtract %uint %62 2 |
|
%66 = OpCompositeExtract %uint %62 3 |
|
%68 = OpAccessChain %_ptr_PushConstant_uint %17 %uint_1 |
|
%70 = OpLoad %uint %68 |
|
%72 = OpIAdd %uint %70 %uint_31 |
|
%74 = OpUDiv %uint %72 %uint_32 |
|
%75 = OpUDiv %uint %66 %74 |
|
%76 = OpUMod %uint %66 %74 |
|
%77 = OpAccessChain %_ptr_PushConstant_uint %17 %uint_0 |
|
%79 = OpLoad %uint %77 |
|
%80 = OpUDiv %uint %79 %uint_256 |
|
%82 = OpAccessChain %_ptr_Input_uint %gl_LocalInvocationID %uint_0 |
|
%83 = OpLoad %uint %82 |
|
%85 = OpUMod %uint %83 %uint_8 |
|
%86 = OpUDiv %uint %83 %uint_8 |
|
%87 = OpIMul %uint %75 %uint_32 |
|
%88 = OpIAdd %uint %87 %86 |
|
%89 = OpIMul %uint %76 %uint_32 |
|
%90 = OpIAdd %uint %89 %86 |
|
OpStore %56 %92 |
|
OpStore %58 %uint_0 |
|
OpBranch %93 |
|
%93 = OpLabel |
|
OpLoopMerge %97 %96 None |
|
OpBranch %94 |
|
%94 = OpLabel |
|
%98 = OpLoad %uint %58 |
|
%100 = OpULessThan %bool %98 %80 |
|
OpBranchConditional %100 %95 %97 |
|
%95 = OpLabel |
|
%101 = OpLoad %uint %58 |
|
%102 = OpFunctionCall %void %39 %64 %88 %65 %80 %101 %85 %86 |
|
%103 = OpLoad %uint %58 |
|
%104 = OpFunctionCall %void %41 %63 %90 %80 %103 %85 %86 |
|
%105 = OpLoad %uint %58 |
|
%106 = OpFunctionCall %void %43 %64 %75 %65 %80 %105 %83 |
|
%107 = OpLoad %uint %58 |
|
%108 = OpFunctionCall %void %44 %63 %76 %80 %107 %83 |
|
OpControlBarrier %uint_2 %uint_2 %uint_264 |
|
%111 = OpAccessChain %_ptr_Workgroup_float %27 %86 |
|
%113 = OpLoad %float %111 |
|
OpStore %61 %int_0 |
|
OpBranch %116 |
|
%116 = OpLabel |
|
OpLoopMerge %120 %119 None |
|
OpBranch %117 |
|
%117 = OpLabel |
|
%121 = OpLoad %int %61 |
|
%122 = OpSLessThan %bool %121 %int_8 |
|
OpBranchConditional %122 %118 %120 |
|
%118 = OpLabel |
|
%123 = OpLoad %int %61 |
|
%124 = OpBitcast %uint %123 |
|
%125 = OpFunctionCall %v4float %47 %124 %86 %85 %113 |
|
%126 = OpLoad %v4float %56 |
|
%127 = OpFAdd %v4float %126 %125 |
|
OpStore %56 %127 |
|
OpBranch %119 |
|
%119 = OpLabel |
|
%128 = OpLoad %int %61 |
|
%129 = OpIAdd %int %128 %int_1 |
|
OpStore %61 %129 |
|
OpBranch %116 |
|
%120 = OpLabel |
|
OpControlBarrier %uint_2 %uint_2 %uint_264 |
|
%131 = OpLoad %uint %58 |
|
%132 = OpIAdd %uint %131 %uint_1 |
|
OpStore %58 %132 |
|
OpBranch %96 |
|
%96 = OpLabel |
|
OpBranch %93 |
|
%97 = OpLabel |
|
%133 = OpLoad %v4float %56 |
|
%134 = OpFunctionCall %void %49 %88 %65 %64 %76 %85 %133 |
|
OpReturn |
|
OpFunctionEnd |
|
%36 = OpFunction %v4uint None %37 |
|
%135 = OpLabel |
|
%136 = OpAccessChain %_ptr_PushConstant_uint %17 %uint_2 |
|
%137 = OpLoad %uint %136 |
|
%138 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 |
|
%139 = OpLoad %uint %138 |
|
%140 = OpIAdd %uint %137 %139 |
|
%141 = OpAccessChain %_ptr_StorageBuffer_uint %7 %uint_0 %140 |
|
%143 = OpLoad %uint %141 |
|
%145 = OpIMul %uint %143 %uint_4 |
|
%146 = OpAccessChain %_ptr_StorageBuffer_uint %7 %uint_0 %145 |
|
%147 = OpLoad %uint %146 |
|
%148 = OpIAdd %uint %145 %uint_1 |
|
%149 = OpAccessChain %_ptr_StorageBuffer_uint %7 %uint_0 %148 |
|
%150 = OpLoad %uint %149 |
|
%151 = OpIAdd %uint %145 %uint_2 |
|
%152 = OpAccessChain %_ptr_StorageBuffer_uint %7 %uint_0 %151 |
|
%153 = OpLoad %uint %152 |
|
%154 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 |
|
%155 = OpLoad %uint %154 |
|
%157 = OpIAdd %uint %145 %uint_3 |
|
%158 = OpAccessChain %_ptr_StorageBuffer_uint %7 %uint_0 %157 |
|
%159 = OpLoad %uint %158 |
|
%160 = OpISub %uint %155 %159 |
|
%161 = OpCompositeConstruct %v4uint %147 %150 %153 %160 |
|
OpReturnValue %161 |
|
OpFunctionEnd |
|
%39 = OpFunction %void None %40 |
|
%162 = OpFunctionParameter %uint |
|
%163 = OpFunctionParameter %uint |
|
%164 = OpFunctionParameter %uint |
|
%165 = OpFunctionParameter %uint |
|
%166 = OpFunctionParameter %uint |
|
%167 = OpFunctionParameter %uint |
|
%168 = OpFunctionParameter %uint |
|
%169 = OpLabel |
|
%170 = OpVariable %_ptr_Function_int Function |
|
%172 = OpVariable %_ptr_Function_v4uint Function |
|
OpStore %170 %int_0 |
|
OpBranch %174 |
|
%174 = OpLabel |
|
OpLoopMerge %178 %177 None |
|
OpBranch %175 |
|
%175 = OpLabel |
|
%179 = OpLoad %int %170 |
|
%180 = OpSLessThan %bool %179 %int_2 |
|
OpBranchConditional %180 %176 %178 |
|
%176 = OpLabel |
|
%181 = OpLoad %int %170 |
|
%182 = OpBitcast %uint %181 |
|
%183 = OpIMul %uint %182 %uint_8 |
|
%184 = OpIAdd %uint %167 %183 |
|
%185 = OpUDiv %uint %184 %uint_2 |
|
%186 = OpUMod %uint %184 %uint_2 |
|
OpStore %172 %187 |
|
%188 = OpULessThan %bool %163 %164 |
|
OpSelectionMerge %189 None |
|
OpBranchConditional %188 %190 %189 |
|
%190 = OpLabel |
|
%191 = OpIAdd %uint %162 %163 |
|
%192 = OpIMul %uint %191 %165 |
|
%193 = OpIAdd %uint %192 %166 |
|
%195 = OpIMul %uint %193 %uint_64 |
|
%196 = OpIMul %uint %185 %uint_8 |
|
%197 = OpIAdd %uint %195 %196 |
|
%198 = OpIMul %uint %186 %uint_4 |
|
%199 = OpIAdd %uint %197 %198 |
|
%200 = OpAccessChain %_ptr_StorageBuffer_uint %8 %uint_0 %199 |
|
%201 = OpLoad %uint %200 |
|
%202 = OpIAdd %uint %199 %uint_1 |
|
%203 = OpAccessChain %_ptr_StorageBuffer_uint %8 %uint_0 %202 |
|
%204 = OpLoad %uint %203 |
|
%205 = OpIAdd %uint %199 %uint_2 |
|
%206 = OpAccessChain %_ptr_StorageBuffer_uint %8 %uint_0 %205 |
|
%207 = OpLoad %uint %206 |
|
%208 = OpIAdd %uint %199 %uint_3 |
|
%209 = OpAccessChain %_ptr_StorageBuffer_uint %8 %uint_0 %208 |
|
%210 = OpLoad %uint %209 |
|
%211 = OpCompositeConstruct %v4uint %201 %204 %207 %210 |
|
OpStore %172 %211 |
|
OpBranch %189 |
|
%189 = OpLabel |
|
%213 = OpIMul %uint %168 %uint_17 |
|
%214 = OpIAdd %uint %213 %184 |
|
%215 = OpAccessChain %_ptr_Workgroup_v4uint %22 %214 |
|
%217 = OpLoad %v4uint %172 |
|
OpStore %215 %217 |
|
OpBranch %177 |
|
%177 = OpLabel |
|
%218 = OpLoad %int %170 |
|
%219 = OpIAdd %int %218 %int_1 |
|
OpStore %170 %219 |
|
OpBranch %174 |
|
%178 = OpLabel |
|
OpReturn |
|
OpFunctionEnd |
|
%41 = OpFunction %void None %42 |
|
%220 = OpFunctionParameter %uint |
|
%221 = OpFunctionParameter %uint |
|
%222 = OpFunctionParameter %uint |
|
%223 = OpFunctionParameter %uint |
|
%224 = OpFunctionParameter %uint |
|
%225 = OpFunctionParameter %uint |
|
%226 = OpLabel |
|
%227 = OpVariable %_ptr_Function_int Function |
|
%228 = OpVariable %_ptr_Function_v4uint Function |
|
OpStore %227 %int_0 |
|
OpBranch %229 |
|
%229 = OpLabel |
|
OpLoopMerge %233 %232 None |
|
OpBranch %230 |
|
%230 = OpLabel |
|
%234 = OpLoad %int %227 |
|
%235 = OpSLessThan %bool %234 %int_2 |
|
OpBranchConditional %235 %231 %233 |
|
%231 = OpLabel |
|
%236 = OpLoad %int %227 |
|
%237 = OpBitcast %uint %236 |
|
%238 = OpIMul %uint %237 %uint_8 |
|
%239 = OpIAdd %uint %224 %238 |
|
%240 = OpUDiv %uint %239 %uint_2 |
|
%241 = OpUMod %uint %239 %uint_2 |
|
OpStore %228 %187 |
|
%242 = OpAccessChain %_ptr_PushConstant_uint %17 %uint_1 |
|
%243 = OpLoad %uint %242 |
|
%244 = OpULessThan %bool %221 %243 |
|
OpSelectionMerge %245 None |
|
OpBranchConditional %244 %246 %245 |
|
%246 = OpLabel |
|
%247 = OpIMul %uint %221 %222 |
|
%248 = OpIAdd %uint %220 %247 |
|
%249 = OpIAdd %uint %248 %223 |
|
%251 = OpIMul %uint %249 %uint_48 |
|
%252 = OpIMul %uint %240 %uint_4 |
|
%253 = OpIAdd %uint %251 %252 |
|
%254 = OpAccessChain %_ptr_StorageBuffer_uint %5 %uint_0 %253 |
|
%255 = OpLoad %uint %254 |
|
%256 = OpIAdd %uint %253 %uint_1 |
|
%257 = OpAccessChain %_ptr_StorageBuffer_uint %5 %uint_0 %256 |
|
%258 = OpLoad %uint %257 |
|
%259 = OpIAdd %uint %253 %uint_2 |
|
%260 = OpAccessChain %_ptr_StorageBuffer_uint %5 %uint_0 %259 |
|
%261 = OpLoad %uint %260 |
|
%262 = OpIAdd %uint %253 %uint_3 |
|
%263 = OpAccessChain %_ptr_StorageBuffer_uint %5 %uint_0 %262 |
|
%264 = OpLoad %uint %263 |
|
%265 = OpIMul %uint %249 %uint_48 |
|
%266 = OpIAdd %uint %265 %uint_32 |
|
%267 = OpUDiv %uint %240 %uint_4 |
|
%268 = OpIMul %uint %267 %uint_8 |
|
%269 = OpIAdd %uint %266 %268 |
|
%270 = OpIMul %uint %241 %uint_4 |
|
%271 = OpIAdd %uint %269 %270 |
|
%272 = OpAccessChain %_ptr_StorageBuffer_uint %5 %uint_0 %271 |
|
%273 = OpLoad %uint %272 |
|
%274 = OpIAdd %uint %271 %uint_1 |
|
%275 = OpAccessChain %_ptr_StorageBuffer_uint %5 %uint_0 %274 |
|
%276 = OpLoad %uint %275 |
|
%277 = OpIAdd %uint %271 %uint_2 |
|
%278 = OpAccessChain %_ptr_StorageBuffer_uint %5 %uint_0 %277 |
|
%279 = OpLoad %uint %278 |
|
%280 = OpIAdd %uint %271 %uint_3 |
|
%281 = OpAccessChain %_ptr_StorageBuffer_uint %5 %uint_0 %280 |
|
%282 = OpLoad %uint %281 |
|
%283 = OpUMod %uint %240 %uint_4 |
|
%284 = OpIMul %uint %283 %uint_2 |
|
%285 = OpIEqual %bool %241 %uint_0 |
|
OpSelectionMerge %286 None |
|
OpBranchConditional %285 %287 %288 |
|
%287 = OpLabel |
|
%290 = OpBitwiseAnd %uint %255 %uint_252645135 |
|
%291 = OpShiftRightLogical %uint %273 %284 |
|
%293 = OpBitwiseAnd %uint %291 %uint_50529027 |
|
%294 = OpShiftLeftLogical %uint %293 %uint_4 |
|
%295 = OpBitwiseOr %uint %290 %294 |
|
%296 = OpBitwiseAnd %uint %258 %uint_252645135 |
|
%297 = OpShiftRightLogical %uint %276 %284 |
|
%298 = OpBitwiseAnd %uint %297 %uint_50529027 |
|
%299 = OpShiftLeftLogical %uint %298 %uint_4 |
|
%300 = OpBitwiseOr %uint %296 %299 |
|
%301 = OpBitwiseAnd %uint %261 %uint_252645135 |
|
%302 = OpShiftRightLogical %uint %279 %284 |
|
%303 = OpBitwiseAnd %uint %302 %uint_50529027 |
|
%304 = OpShiftLeftLogical %uint %303 %uint_4 |
|
%305 = OpBitwiseOr %uint %301 %304 |
|
%306 = OpBitwiseAnd %uint %264 %uint_252645135 |
|
%307 = OpShiftRightLogical %uint %282 %284 |
|
%308 = OpBitwiseAnd %uint %307 %uint_50529027 |
|
%309 = OpShiftLeftLogical %uint %308 %uint_4 |
|
%310 = OpBitwiseOr %uint %306 %309 |
|
%311 = OpCompositeConstruct %v4uint %295 %300 %305 %310 |
|
OpStore %228 %311 |
|
OpBranch %286 |
|
%288 = OpLabel |
|
%312 = OpShiftRightLogical %uint %255 %uint_4 |
|
%313 = OpBitwiseAnd %uint %312 %uint_252645135 |
|
%314 = OpShiftRightLogical %uint %273 %284 |
|
%315 = OpBitwiseAnd %uint %314 %uint_50529027 |
|
%316 = OpShiftLeftLogical %uint %315 %uint_4 |
|
%317 = OpBitwiseOr %uint %313 %316 |
|
%318 = OpShiftRightLogical %uint %258 %uint_4 |
|
%319 = OpBitwiseAnd %uint %318 %uint_252645135 |
|
%320 = OpShiftRightLogical %uint %276 %284 |
|
%321 = OpBitwiseAnd %uint %320 %uint_50529027 |
|
%322 = OpShiftLeftLogical %uint %321 %uint_4 |
|
%323 = OpBitwiseOr %uint %319 %322 |
|
%324 = OpShiftRightLogical %uint %261 %uint_4 |
|
%325 = OpBitwiseAnd %uint %324 %uint_252645135 |
|
%326 = OpShiftRightLogical %uint %279 %284 |
|
%327 = OpBitwiseAnd %uint %326 %uint_50529027 |
|
%328 = OpShiftLeftLogical %uint %327 %uint_4 |
|
%329 = OpBitwiseOr %uint %325 %328 |
|
%330 = OpShiftRightLogical %uint %264 %uint_4 |
|
%331 = OpBitwiseAnd %uint %330 %uint_252645135 |
|
%332 = OpShiftRightLogical %uint %282 %284 |
|
%333 = OpBitwiseAnd %uint %332 %uint_50529027 |
|
%334 = OpShiftLeftLogical %uint %333 %uint_4 |
|
%335 = OpBitwiseOr %uint %331 %334 |
|
%336 = OpCompositeConstruct %v4uint %317 %323 %329 %335 |
|
OpStore %228 %336 |
|
OpBranch %286 |
|
%286 = OpLabel |
|
OpBranch %245 |
|
%245 = OpLabel |
|
%337 = OpIMul %uint %225 %uint_17 |
|
%338 = OpIAdd %uint %337 %239 |
|
%339 = OpAccessChain %_ptr_Workgroup_v4uint %23 %338 |
|
%340 = OpLoad %v4uint %228 |
|
OpStore %339 %340 |
|
OpBranch %232 |
|
%232 = OpLabel |
|
%341 = OpLoad %int %227 |
|
%342 = OpIAdd %int %341 %int_1 |
|
OpStore %227 %342 |
|
OpBranch %229 |
|
%233 = OpLabel |
|
OpReturn |
|
OpFunctionEnd |
|
%43 = OpFunction %void None %42 |
|
%343 = OpFunctionParameter %uint |
|
%344 = OpFunctionParameter %uint |
|
%345 = OpFunctionParameter %uint |
|
%346 = OpFunctionParameter %uint |
|
%347 = OpFunctionParameter %uint |
|
%348 = OpFunctionParameter %uint |
|
%349 = OpLabel |
|
%351 = OpVariable %_ptr_Function_float Function |
|
%352 = OpULessThan %bool %348 %uint_32 |
|
OpSelectionMerge %353 None |
|
OpBranchConditional %352 %354 %353 |
|
%354 = OpLabel |
|
OpStore %351 %float_0 |
|
%355 = OpIMul %uint %344 %uint_32 |
|
%356 = OpIAdd %uint %355 %348 |
|
%357 = OpULessThan %bool %356 %345 |
|
OpSelectionMerge %358 None |
|
OpBranchConditional %357 %359 %358 |
|
%359 = OpLabel |
|
%360 = OpIMul %uint %344 %uint_32 |
|
%361 = OpIAdd %uint %343 %360 |
|
%362 = OpIAdd %uint %361 %348 |
|
%363 = OpIMul %uint %362 %346 |
|
%364 = OpIAdd %uint %363 %347 |
|
%365 = OpAccessChain %_ptr_StorageBuffer_float %13 %uint_0 %364 |
|
%367 = OpLoad %float %365 |
|
OpStore %351 %367 |
|
OpBranch %358 |
|
%358 = OpLabel |
|
%368 = OpAccessChain %_ptr_Workgroup_float %27 %348 |
|
%369 = OpLoad %float %351 |
|
OpStore %368 %369 |
|
OpBranch %353 |
|
%353 = OpLabel |
|
OpReturn |
|
OpFunctionEnd |
|
%44 = OpFunction %void None %45 |
|
%370 = OpFunctionParameter %uint |
|
%371 = OpFunctionParameter %uint |
|
%372 = OpFunctionParameter %uint |
|
%373 = OpFunctionParameter %uint |
|
%374 = OpFunctionParameter %uint |
|
%375 = OpLabel |
|
%376 = OpVariable %_ptr_Function_float Function |
|
%377 = OpVariable %_ptr_Function_float Function |
|
%378 = OpUMod %uint %374 %uint_32 |
|
%379 = OpUDiv %uint %374 %uint_32 |
|
OpStore %376 %float_0 |
|
OpStore %377 %float_0 |
|
%380 = OpIMul %uint %371 %uint_32 |
|
%381 = OpIAdd %uint %380 %378 |
|
%382 = OpAccessChain %_ptr_PushConstant_uint %17 %uint_1 |
|
%383 = OpLoad %uint %382 |
|
%384 = OpULessThan %bool %381 %383 |
|
OpSelectionMerge %385 None |
|
OpBranchConditional %384 %386 %385 |
|
%386 = OpLabel |
|
%387 = OpIMul %uint %371 %uint_32 |
|
%388 = OpIAdd %uint %387 %378 |
|
%389 = OpIMul %uint %388 %372 |
|
%390 = OpIAdd %uint %370 %389 |
|
%391 = OpIAdd %uint %390 %373 |
|
%393 = OpIMul %uint %391 %uint_5 |
|
%394 = OpUDiv %uint %379 %uint_2 |
|
%395 = OpIAdd %uint %393 %394 |
|
%396 = OpAccessChain %_ptr_StorageBuffer_uint %6 %uint_0 %395 |
|
%397 = OpLoad %uint %396 |
|
%398 = OpBitcast %int %397 |
|
%401 = OpBitcast %v4char %398 |
|
%403 = OpSConvert %v4int %401 |
|
%404 = OpUMod %uint %379 %uint_2 |
|
%405 = OpIEqual %bool %404 %uint_0 |
|
%406 = OpCompositeExtract %int %403 0 |
|
%407 = OpCompositeExtract %int %403 2 |
|
%408 = OpSelect %int %405 %406 %407 |
|
%409 = OpUMod %uint %379 %uint_2 |
|
%410 = OpIEqual %bool %409 %uint_0 |
|
%411 = OpCompositeExtract %int %403 1 |
|
%412 = OpCompositeExtract %int %403 3 |
|
%413 = OpSelect %int %410 %411 %412 |
|
%414 = OpIMul %uint %391 %uint_5 |
|
%415 = OpIAdd %uint %414 %uint_4 |
|
%416 = OpAccessChain %_ptr_StorageBuffer_uint %6 %uint_0 %415 |
|
%417 = OpLoad %uint %416 |
|
%420 = OpExtInst %v2float %418 UnpackHalf2x16 %417 |
|
%421 = OpCompositeExtract %float %420 0 |
|
%422 = OpConvertSToF %float %408 |
|
%423 = OpFMul %float %421 %422 |
|
OpStore %376 %423 |
|
%424 = OpConvertSToF %float %413 |
|
%425 = OpFMul %float %421 %424 |
|
OpStore %377 %425 |
|
OpBranch %385 |
|
%385 = OpLabel |
|
%426 = OpIMul %uint %379 %uint_32 |
|
%427 = OpIAdd %uint %426 %378 |
|
%428 = OpAccessChain %_ptr_Workgroup_float %28 %427 |
|
%429 = OpLoad %float %376 |
|
OpStore %428 %429 |
|
%430 = OpIMul %uint %379 %uint_32 |
|
%431 = OpIAdd %uint %430 %378 |
|
%432 = OpAccessChain %_ptr_Workgroup_float %29 %431 |
|
%433 = OpLoad %float %377 |
|
OpStore %432 %433 |
|
OpReturn |
|
OpFunctionEnd |
|
%47 = OpFunction %v4float None %48 |
|
%434 = OpFunctionParameter %uint |
|
%435 = OpFunctionParameter %uint |
|
%436 = OpFunctionParameter %uint |
|
%437 = OpFunctionParameter %float |
|
%438 = OpLabel |
|
%439 = OpIMul %uint %434 %uint_2 |
|
%440 = OpIMul %uint %434 %uint_2 |
|
%441 = OpIAdd %uint %440 %uint_1 |
|
%442 = OpIMul %uint %435 %uint_17 |
|
%443 = OpIAdd %uint %442 %439 |
|
%444 = OpAccessChain %_ptr_Workgroup_v4uint %22 %443 |
|
%445 = OpLoad %v4uint %444 |
|
%446 = OpIMul %uint %435 %uint_17 |
|
%447 = OpIAdd %uint %446 %441 |
|
%448 = OpAccessChain %_ptr_Workgroup_v4uint %22 %447 |
|
%449 = OpLoad %v4uint %448 |
|
%450 = OpCompositeExtract %uint %445 0 |
|
%452 = OpSDot %int %450 %uint_16843009 PackedVectorFormat4x8Bit |
|
%453 = OpCompositeExtract %uint %445 1 |
|
%454 = OpSDot %int %453 %uint_16843009 PackedVectorFormat4x8Bit |
|
%455 = OpIAdd %int %452 %454 |
|
%456 = OpCompositeExtract %uint %445 2 |
|
%457 = OpSDot %int %456 %uint_16843009 PackedVectorFormat4x8Bit |
|
%458 = OpIAdd %int %455 %457 |
|
%459 = OpCompositeExtract %uint %445 3 |
|
%460 = OpSDot %int %459 %uint_16843009 PackedVectorFormat4x8Bit |
|
%461 = OpIAdd %int %458 %460 |
|
%462 = OpCompositeExtract %uint %449 0 |
|
%463 = OpSDot %int %462 %uint_16843009 PackedVectorFormat4x8Bit |
|
%464 = OpCompositeExtract %uint %449 1 |
|
%465 = OpSDot %int %464 %uint_16843009 PackedVectorFormat4x8Bit |
|
%466 = OpIAdd %int %463 %465 |
|
%467 = OpCompositeExtract %uint %449 2 |
|
%468 = OpSDot %int %467 %uint_16843009 PackedVectorFormat4x8Bit |
|
%469 = OpIAdd %int %466 %468 |
|
%470 = OpCompositeExtract %uint %449 3 |
|
%471 = OpSDot %int %470 %uint_16843009 PackedVectorFormat4x8Bit |
|
%472 = OpIAdd %int %469 %471 |
|
%473 = OpIMul %uint %436 %uint_17 |
|
%474 = OpIAdd %uint %473 %439 |
|
%475 = OpAccessChain %_ptr_Workgroup_v4uint %23 %474 |
|
%476 = OpLoad %v4uint %475 |
|
%477 = OpIAdd %uint %436 %uint_8 |
|
%478 = OpIMul %uint %477 %uint_17 |
|
%479 = OpIAdd %uint %478 %439 |
|
%480 = OpAccessChain %_ptr_Workgroup_v4uint %23 %479 |
|
%481 = OpLoad %v4uint %480 |
|
%483 = OpIAdd %uint %436 %uint_16 |
|
%484 = OpIMul %uint %483 %uint_17 |
|
%485 = OpIAdd %uint %484 %439 |
|
%486 = OpAccessChain %_ptr_Workgroup_v4uint %23 %485 |
|
%487 = OpLoad %v4uint %486 |
|
%489 = OpIAdd %uint %436 %uint_24 |
|
%490 = OpIMul %uint %489 %uint_17 |
|
%491 = OpIAdd %uint %490 %439 |
|
%492 = OpAccessChain %_ptr_Workgroup_v4uint %23 %491 |
|
%493 = OpLoad %v4uint %492 |
|
%494 = OpIMul %uint %436 %uint_17 |
|
%495 = OpIAdd %uint %494 %441 |
|
%496 = OpAccessChain %_ptr_Workgroup_v4uint %23 %495 |
|
%497 = OpLoad %v4uint %496 |
|
%498 = OpIAdd %uint %436 %uint_8 |
|
%499 = OpIMul %uint %498 %uint_17 |
|
%500 = OpIAdd %uint %499 %441 |
|
%501 = OpAccessChain %_ptr_Workgroup_v4uint %23 %500 |
|
%502 = OpLoad %v4uint %501 |
|
%503 = OpIAdd %uint %436 %uint_16 |
|
%504 = OpIMul %uint %503 %uint_17 |
|
%505 = OpIAdd %uint %504 %441 |
|
%506 = OpAccessChain %_ptr_Workgroup_v4uint %23 %505 |
|
%507 = OpLoad %v4uint %506 |
|
%508 = OpIAdd %uint %436 %uint_24 |
|
%509 = OpIMul %uint %508 %uint_17 |
|
%510 = OpIAdd %uint %509 %441 |
|
%511 = OpAccessChain %_ptr_Workgroup_v4uint %23 %510 |
|
%512 = OpLoad %v4uint %511 |
|
%513 = OpCompositeExtract %uint %476 0 |
|
%514 = OpCompositeExtract %uint %445 0 |
|
%515 = OpSDot %int %513 %514 PackedVectorFormat4x8Bit |
|
%516 = OpCompositeExtract %uint %476 1 |
|
%517 = OpCompositeExtract %uint %445 1 |
|
%518 = OpSDot %int %516 %517 PackedVectorFormat4x8Bit |
|
%519 = OpIAdd %int %515 %518 |
|
%520 = OpCompositeExtract %uint %476 2 |
|
%521 = OpCompositeExtract %uint %445 2 |
|
%522 = OpSDot %int %520 %521 PackedVectorFormat4x8Bit |
|
%523 = OpIAdd %int %519 %522 |
|
%524 = OpCompositeExtract %uint %476 3 |
|
%525 = OpCompositeExtract %uint %445 3 |
|
%526 = OpSDot %int %524 %525 PackedVectorFormat4x8Bit |
|
%527 = OpIAdd %int %523 %526 |
|
%528 = OpCompositeExtract %uint %481 0 |
|
%529 = OpCompositeExtract %uint %445 0 |
|
%530 = OpSDot %int %528 %529 PackedVectorFormat4x8Bit |
|
%531 = OpCompositeExtract %uint %481 1 |
|
%532 = OpCompositeExtract %uint %445 1 |
|
%533 = OpSDot %int %531 %532 PackedVectorFormat4x8Bit |
|
%534 = OpIAdd %int %530 %533 |
|
%535 = OpCompositeExtract %uint %481 2 |
|
%536 = OpCompositeExtract %uint %445 2 |
|
%537 = OpSDot %int %535 %536 PackedVectorFormat4x8Bit |
|
%538 = OpIAdd %int %534 %537 |
|
%539 = OpCompositeExtract %uint %481 3 |
|
%540 = OpCompositeExtract %uint %445 3 |
|
%541 = OpSDot %int %539 %540 PackedVectorFormat4x8Bit |
|
%542 = OpIAdd %int %538 %541 |
|
%543 = OpCompositeExtract %uint %487 0 |
|
%544 = OpCompositeExtract %uint %445 0 |
|
%545 = OpSDot %int %543 %544 PackedVectorFormat4x8Bit |
|
%546 = OpCompositeExtract %uint %487 1 |
|
%547 = OpCompositeExtract %uint %445 1 |
|
%548 = OpSDot %int %546 %547 PackedVectorFormat4x8Bit |
|
%549 = OpIAdd %int %545 %548 |
|
%550 = OpCompositeExtract %uint %487 2 |
|
%551 = OpCompositeExtract %uint %445 2 |
|
%552 = OpSDot %int %550 %551 PackedVectorFormat4x8Bit |
|
%553 = OpIAdd %int %549 %552 |
|
%554 = OpCompositeExtract %uint %487 3 |
|
%555 = OpCompositeExtract %uint %445 3 |
|
%556 = OpSDot %int %554 %555 PackedVectorFormat4x8Bit |
|
%557 = OpIAdd %int %553 %556 |
|
%558 = OpCompositeExtract %uint %493 0 |
|
%559 = OpCompositeExtract %uint %445 0 |
|
%560 = OpSDot %int %558 %559 PackedVectorFormat4x8Bit |
|
%561 = OpCompositeExtract %uint %493 1 |
|
%562 = OpCompositeExtract %uint %445 1 |
|
%563 = OpSDot %int %561 %562 PackedVectorFormat4x8Bit |
|
%564 = OpIAdd %int %560 %563 |
|
%565 = OpCompositeExtract %uint %493 2 |
|
%566 = OpCompositeExtract %uint %445 2 |
|
%567 = OpSDot %int %565 %566 PackedVectorFormat4x8Bit |
|
%568 = OpIAdd %int %564 %567 |
|
%569 = OpCompositeExtract %uint %493 3 |
|
%570 = OpCompositeExtract %uint %445 3 |
|
%571 = OpSDot %int %569 %570 PackedVectorFormat4x8Bit |
|
%572 = OpIAdd %int %568 %571 |
|
%573 = OpCompositeExtract %uint %497 0 |
|
%574 = OpCompositeExtract %uint %449 0 |
|
%575 = OpSDot %int %573 %574 PackedVectorFormat4x8Bit |
|
%576 = OpCompositeExtract %uint %497 1 |
|
%577 = OpCompositeExtract %uint %449 1 |
|
%578 = OpSDot %int %576 %577 PackedVectorFormat4x8Bit |
|
%579 = OpIAdd %int %575 %578 |
|
%580 = OpCompositeExtract %uint %497 2 |
|
%581 = OpCompositeExtract %uint %449 2 |
|
%582 = OpSDot %int %580 %581 PackedVectorFormat4x8Bit |
|
%583 = OpIAdd %int %579 %582 |
|
%584 = OpCompositeExtract %uint %497 3 |
|
%585 = OpCompositeExtract %uint %449 3 |
|
%586 = OpSDot %int %584 %585 PackedVectorFormat4x8Bit |
|
%587 = OpIAdd %int %583 %586 |
|
%588 = OpCompositeExtract %uint %502 0 |
|
%589 = OpCompositeExtract %uint %449 0 |
|
%590 = OpSDot %int %588 %589 PackedVectorFormat4x8Bit |
|
%591 = OpCompositeExtract %uint %502 1 |
|
%592 = OpCompositeExtract %uint %449 1 |
|
%593 = OpSDot %int %591 %592 PackedVectorFormat4x8Bit |
|
%594 = OpIAdd %int %590 %593 |
|
%595 = OpCompositeExtract %uint %502 2 |
|
%596 = OpCompositeExtract %uint %449 2 |
|
%597 = OpSDot %int %595 %596 PackedVectorFormat4x8Bit |
|
%598 = OpIAdd %int %594 %597 |
|
%599 = OpCompositeExtract %uint %502 3 |
|
%600 = OpCompositeExtract %uint %449 3 |
|
%601 = OpSDot %int %599 %600 PackedVectorFormat4x8Bit |
|
%602 = OpIAdd %int %598 %601 |
|
%603 = OpCompositeExtract %uint %507 0 |
|
%604 = OpCompositeExtract %uint %449 0 |
|
%605 = OpSDot %int %603 %604 PackedVectorFormat4x8Bit |
|
%606 = OpCompositeExtract %uint %507 1 |
|
%607 = OpCompositeExtract %uint %449 1 |
|
%608 = OpSDot %int %606 %607 PackedVectorFormat4x8Bit |
|
%609 = OpIAdd %int %605 %608 |
|
%610 = OpCompositeExtract %uint %507 2 |
|
%611 = OpCompositeExtract %uint %449 2 |
|
%612 = OpSDot %int %610 %611 PackedVectorFormat4x8Bit |
|
%613 = OpIAdd %int %609 %612 |
|
%614 = OpCompositeExtract %uint %507 3 |
|
%615 = OpCompositeExtract %uint %449 3 |
|
%616 = OpSDot %int %614 %615 PackedVectorFormat4x8Bit |
|
%617 = OpIAdd %int %613 %616 |
|
%618 = OpCompositeExtract %uint %512 0 |
|
%619 = OpCompositeExtract %uint %449 0 |
|
%620 = OpSDot %int %618 %619 PackedVectorFormat4x8Bit |
|
%621 = OpCompositeExtract %uint %512 1 |
|
%622 = OpCompositeExtract %uint %449 1 |
|
%623 = OpSDot %int %621 %622 PackedVectorFormat4x8Bit |
|
%624 = OpIAdd %int %620 %623 |
|
%625 = OpCompositeExtract %uint %512 2 |
|
%626 = OpCompositeExtract %uint %449 2 |
|
%627 = OpSDot %int %625 %626 PackedVectorFormat4x8Bit |
|
%628 = OpIAdd %int %624 %627 |
|
%629 = OpCompositeExtract %uint %512 3 |
|
%630 = OpCompositeExtract %uint %449 3 |
|
%631 = OpSDot %int %629 %630 PackedVectorFormat4x8Bit |
|
%632 = OpIAdd %int %628 %631 |
|
%633 = OpIMul %uint %434 %uint_32 |
|
%634 = OpIAdd %uint %633 %436 |
|
%635 = OpAccessChain %_ptr_Workgroup_float %28 %634 |
|
%636 = OpLoad %float %635 |
|
%638 = OpIMul %int %461 %int_32 |
|
%639 = OpISub %int %527 %638 |
|
%640 = OpConvertSToF %float %639 |
|
%641 = OpFMul %float %636 %640 |
|
%642 = OpIMul %uint %434 %uint_32 |
|
%643 = OpIAdd %uint %642 %436 |
|
%644 = OpAccessChain %_ptr_Workgroup_float %29 %643 |
|
%645 = OpLoad %float %644 |
|
%646 = OpIMul %int %472 %int_32 |
|
%647 = OpISub %int %587 %646 |
|
%648 = OpConvertSToF %float %647 |
|
%649 = OpFMul %float %645 %648 |
|
%650 = OpFAdd %float %641 %649 |
|
%651 = OpFMul %float %437 %650 |
|
%652 = OpIMul %uint %434 %uint_32 |
|
%653 = OpIAdd %uint %652 %436 |
|
%654 = OpIAdd %uint %653 %uint_8 |
|
%655 = OpAccessChain %_ptr_Workgroup_float %28 %654 |
|
%656 = OpLoad %float %655 |
|
%657 = OpIMul %int %461 %int_32 |
|
%658 = OpISub %int %542 %657 |
|
%659 = OpConvertSToF %float %658 |
|
%660 = OpFMul %float %656 %659 |
|
%661 = OpIMul %uint %434 %uint_32 |
|
%662 = OpIAdd %uint %661 %436 |
|
%663 = OpIAdd %uint %662 %uint_8 |
|
%664 = OpAccessChain %_ptr_Workgroup_float %29 %663 |
|
%665 = OpLoad %float %664 |
|
%666 = OpIMul %int %472 %int_32 |
|
%667 = OpISub %int %602 %666 |
|
%668 = OpConvertSToF %float %667 |
|
%669 = OpFMul %float %665 %668 |
|
%670 = OpFAdd %float %660 %669 |
|
%671 = OpFMul %float %437 %670 |
|
%672 = OpIMul %uint %434 %uint_32 |
|
%673 = OpIAdd %uint %672 %436 |
|
%674 = OpIAdd %uint %673 %uint_16 |
|
%675 = OpAccessChain %_ptr_Workgroup_float %28 %674 |
|
%676 = OpLoad %float %675 |
|
%677 = OpIMul %int %461 %int_32 |
|
%678 = OpISub %int %557 %677 |
|
%679 = OpConvertSToF %float %678 |
|
%680 = OpFMul %float %676 %679 |
|
%681 = OpIMul %uint %434 %uint_32 |
|
%682 = OpIAdd %uint %681 %436 |
|
%683 = OpIAdd %uint %682 %uint_16 |
|
%684 = OpAccessChain %_ptr_Workgroup_float %29 %683 |
|
%685 = OpLoad %float %684 |
|
%686 = OpIMul %int %472 %int_32 |
|
%687 = OpISub %int %617 %686 |
|
%688 = OpConvertSToF %float %687 |
|
%689 = OpFMul %float %685 %688 |
|
%690 = OpFAdd %float %680 %689 |
|
%691 = OpFMul %float %437 %690 |
|
%692 = OpIMul %uint %434 %uint_32 |
|
%693 = OpIAdd %uint %692 %436 |
|
%694 = OpIAdd %uint %693 %uint_24 |
|
%695 = OpAccessChain %_ptr_Workgroup_float %28 %694 |
|
%696 = OpLoad %float %695 |
|
%697 = OpIMul %int %461 %int_32 |
|
%698 = OpISub %int %572 %697 |
|
%699 = OpConvertSToF %float %698 |
|
%700 = OpFMul %float %696 %699 |
|
%701 = OpIMul %uint %434 %uint_32 |
|
%702 = OpIAdd %uint %701 %436 |
|
%703 = OpIAdd %uint %702 %uint_24 |
|
%704 = OpAccessChain %_ptr_Workgroup_float %29 %703 |
|
%705 = OpLoad %float %704 |
|
%706 = OpIMul %int %472 %int_32 |
|
%707 = OpISub %int %632 %706 |
|
%708 = OpConvertSToF %float %707 |
|
%709 = OpFMul %float %705 %708 |
|
%710 = OpFAdd %float %700 %709 |
|
%711 = OpFMul %float %437 %710 |
|
%712 = OpCompositeConstruct %v4float %651 %671 %691 %711 |
|
OpReturnValue %712 |
|
OpFunctionEnd |
|
%49 = OpFunction %void None %50 |
|
%713 = OpFunctionParameter %uint |
|
%714 = OpFunctionParameter %uint |
|
%715 = OpFunctionParameter %uint |
|
%716 = OpFunctionParameter %uint |
|
%717 = OpFunctionParameter %uint |
|
%718 = OpFunctionParameter %v4float |
|
%719 = OpLabel |
|
%720 = OpULessThan %bool %713 %714 |
|
OpSelectionMerge %721 None |
|
OpBranchConditional %720 %722 %721 |
|
%722 = OpLabel |
|
%723 = OpIAdd %uint %715 %713 |
|
%724 = OpAccessChain %_ptr_PushConstant_uint %17 %uint_1 |
|
%725 = OpLoad %uint %724 |
|
%726 = OpIMul %uint %723 %725 |
|
%727 = OpIMul %uint %716 %uint_32 |
|
%728 = OpIAdd %uint %726 %727 |
|
%729 = OpIAdd %uint %728 %717 |
|
%730 = OpIMul %uint %716 %uint_32 |
|
%731 = OpIAdd %uint %730 %717 |
|
%732 = OpAccessChain %_ptr_PushConstant_uint %17 %uint_1 |
|
%733 = OpLoad %uint %732 |
|
%734 = OpULessThan %bool %731 %733 |
|
OpSelectionMerge %735 None |
|
OpBranchConditional %734 %736 %735 |
|
%736 = OpLabel |
|
%737 = OpAccessChain %_ptr_StorageBuffer_float %14 %uint_0 %729 |
|
%738 = OpCompositeExtract %float %718 0 |
|
OpStore %737 %738 |
|
OpBranch %735 |
|
%735 = OpLabel |
|
%739 = OpIMul %uint %716 %uint_32 |
|
%740 = OpIAdd %uint %739 %717 |
|
%741 = OpIAdd %uint %740 %uint_8 |
|
%742 = OpAccessChain %_ptr_PushConstant_uint %17 %uint_1 |
|
%743 = OpLoad %uint %742 |
|
%744 = OpULessThan %bool %741 %743 |
|
OpSelectionMerge %745 None |
|
OpBranchConditional %744 %746 %745 |
|
%746 = OpLabel |
|
%747 = OpIAdd %uint %729 %uint_8 |
|
%748 = OpAccessChain %_ptr_StorageBuffer_float %14 %uint_0 %747 |
|
%749 = OpCompositeExtract %float %718 1 |
|
OpStore %748 %749 |
|
OpBranch %745 |
|
%745 = OpLabel |
|
%750 = OpIMul %uint %716 %uint_32 |
|
%751 = OpIAdd %uint %750 %717 |
|
%752 = OpIAdd %uint %751 %uint_16 |
|
%753 = OpAccessChain %_ptr_PushConstant_uint %17 %uint_1 |
|
%754 = OpLoad %uint %753 |
|
%755 = OpULessThan %bool %752 %754 |
|
OpSelectionMerge %756 None |
|
OpBranchConditional %755 %757 %756 |
|
%757 = OpLabel |
|
%758 = OpIAdd %uint %729 %uint_16 |
|
%759 = OpAccessChain %_ptr_StorageBuffer_float %14 %uint_0 %758 |
|
%760 = OpCompositeExtract %float %718 2 |
|
OpStore %759 %760 |
|
OpBranch %756 |
|
%756 = OpLabel |
|
%761 = OpIMul %uint %716 %uint_32 |
|
%762 = OpIAdd %uint %761 %717 |
|
%763 = OpIAdd %uint %762 %uint_24 |
|
%764 = OpAccessChain %_ptr_PushConstant_uint %17 %uint_1 |
|
%765 = OpLoad %uint %764 |
|
%766 = OpULessThan %bool %763 %765 |
|
OpSelectionMerge %767 None |
|
OpBranchConditional %766 %768 %767 |
|
%768 = OpLabel |
|
%769 = OpIAdd %uint %729 %uint_24 |
|
%770 = OpAccessChain %_ptr_StorageBuffer_float %14 %uint_0 %769 |
|
%771 = OpCompositeExtract %float %718 3 |
|
OpStore %770 %771 |
|
OpBranch %767 |
|
%767 = OpLabel |
|
OpBranch %721 |
|
%721 = OpLabel |
|
OpReturn |
|
OpFunctionEnd |