Created
June 28, 2022 02:24
-
-
Save rayanht/2e1d5e1cfb128ed0049c399142381e93 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
; Magic: 0x07230203 (SPIR-V) | |
; Version: 0x00010700 (Version: 1.7.0) | |
; Generator: 0x00220001 (SPIRVSmith) | |
; Bound: 360 | |
; Schema: 0 | |
OpCapability Shader | |
OpCapability Matrix | |
OpMemoryModel Logical GLSL450 | |
OpEntryPoint GLCompute %28 "main" | |
OpExecutionMode %28 LocalSize 1 1 1 | |
OpDecorate %10 Block | |
OpDecorate %22 DescriptorSet 0 | |
OpDecorate %22 Binding 0 | |
OpMemberDecorate %10 0 Offset 0 | |
OpMemberDecorate %10 1 Offset 32 | |
%1 = OpTypeVoid | |
%2 = OpTypeFunction %1 | |
%3 = OpTypeFloat 32 | |
%4 = OpTypeVector %3 3 | |
%5 = OpTypeInt 32 0 | |
%6 = OpTypeInt 32 1 | |
%7 = OpTypeVector %6 4 | |
%8 = OpTypeVector %3 4 | |
%9 = OpTypeMatrix %8 4 | |
%10 = OpTypeStruct %5 %5 | |
%11 = OpConstant %5 54 | |
%12 = OpConstant %3 6.137816504003634 | |
%13 = OpTypeBool | |
%14 = OpConstantTrue %13 | |
%15 = OpConstantFalse %13 | |
%16 = OpConstant %5 51 | |
%17 = OpConstant %6 2 | |
%18 = OpConstant %3 74.0231388740496 | |
%19 = OpConstantComposite %8 %12 %12 %18 %18 | |
%20 = OpConstantComposite %4 %12 %12 %12 | |
%21 = OpTypePointer StorageBuffer %10 | |
%22 = OpVariable %21 StorageBuffer | |
%23 = OpTypeVector %5 4 | |
%24 = OpTypePointer StorageBuffer %5 | |
%25 = OpConstant %5 1 | |
%26 = OpConstant %5 0 | |
%27 = OpTypeVector %13 4 | |
%28 = OpFunction %1 Pure %2 | |
%29 = OpLabel | |
%30 = OpLoad %10 %22 | |
%31 = OpLogicalNot %13 %15 | |
%32 = OpBitCount %6 %17 | |
%33 = OpConvertFToU %23 %19 | |
%34 = OpAccessChain %24 %22 %25 | |
OpBranch %36 | |
%36 = OpLabel | |
OpLoopMerge %52 %39 None | |
OpBranchConditional %31 %39 %52 | |
%39 = OpLabel | |
%40 = OpLogicalEqual %13 %31 %31 | |
OpStore %34 %25 | |
%42 = OpConvertSToF %3 %32 | |
%43 = OpConvertUToF %3 %16 | |
%44 = OpBitwiseAnd %23 %33 %33 | |
OpStore %34 %16 | |
%46 = OpLoad %10 %22 | |
%47 = OpConvertFToS %6 %43 | |
%48 = OpShiftLeftLogical %5 %11 %11 | |
%49 = OpCompositeExtract %5 %33 0 | |
%50 = OpAccessChain %24 %22 %26 | |
OpBranch %36 | |
%52 = OpLabel | |
%53 = OpNot %6 %32 | |
%54 = OpCompositeExtract %3 %19 2 | |
%55 = OpShiftLeftLogical %6 %32 %53 | |
%56 = OpConvertSToF %3 %55 | |
%57 = OpBitwiseOr %5 %25 %25 | |
%58 = OpConvertFToS %6 %56 | |
OpSelectionMerge %91 None | |
OpBranchConditional %31 %61 %76 | |
%61 = OpLabel | |
%62 = OpConvertFToS %6 %56 | |
OpStore %34 %57 | |
%64 = OpBitCount %6 %32 | |
%65 = OpIEqual %13 %62 %55 | |
%66 = OpConvertSToF %3 %53 | |
%67 = OpShiftLeftLogical %5 %16 %57 | |
%68 = OpLogicalNot %13 %15 | |
OpStore %34 %16 | |
%70 = OpFOrdGreaterThanEqual %13 %12 %56 | |
%71 = OpBitwiseXor %5 %67 %57 | |
%72 = OpAccessChain %24 %22 %26 | |
%73 = OpCompositeExtract %5 %33 1 | |
%74 = OpBitCount %6 %55 | |
OpBranch %91 | |
%76 = OpLabel | |
%77 = OpBitCount %6 %32 | |
%78 = OpBitCount %6 %53 | |
%79 = OpBitCount %6 %78 | |
%80 = OpConvertSToF %3 %17 | |
%81 = OpLoad %10 %22 | |
%82 = OpConvertFToS %6 %56 | |
%83 = OpBitwiseXor %5 %11 %57 | |
%84 = OpLoad %10 %22 | |
OpStore %34 %83 | |
%86 = OpConvertUToF %3 %11 | |
%87 = OpVectorInsertDynamic %8 %19 %86 %55 | |
%88 = OpLogicalOr %13 %31 %31 | |
%89 = OpBitwiseXor %5 %25 %83 | |
OpBranch %91 | |
%91 = OpLabel | |
OpSelectionMerge %123 None | |
OpBranchConditional %31 %94 %111 | |
%94 = OpLabel | |
%95 = OpConvertFToU %5 %12 | |
%96 = OpCopyObject %6 %53 | |
%97 = OpShiftLeftLogical %5 %57 %57 | |
%98 = OpVectorShuffle %23 %33 %33 0 2 0 2 | |
%99 = OpCompositeInsert %23 %95 %33 1 | |
%100 = OpIMul %6 %53 %58 | |
%101 = OpLogicalAnd %13 %31 %31 | |
%102 = OpVectorInsertDynamic %23 %98 %95 %57 | |
%103 = OpCopyObject %23 %98 | |
%104 = OpConvertFToU %5 %54 | |
OpStore %34 %57 | |
%106 = OpAccessChain %24 %22 %26 | |
%107 = OpConvertUToF %3 %16 | |
%108 = OpConvertFToS %6 %54 | |
%109 = OpConvertFToU %5 %107 | |
OpBranch %123 | |
%111 = OpLabel | |
%112 = OpConvertUToF %3 %25 | |
%113 = OpConvertUToF %3 %57 | |
%114 = OpCompositeExtract %5 %33 2 | |
%115 = OpCopyObject %3 %112 | |
%116 = OpCopyObject %24 %34 | |
%117 = OpConvertFToU %5 %56 | |
%118 = OpLoad %10 %22 | |
%119 = OpConvertSToF %3 %17 | |
%120 = OpVectorExtractDynamic %5 %33 %17 | |
%121 = OpVectorShuffle %23 %33 %33 1 3 0 3 | |
OpBranch %123 | |
%123 = OpLabel | |
%124 = OpFUnordNotEqual %13 %54 %54 | |
OpSelectionMerge %157 None | |
OpBranchConditional %124 %127 %141 | |
%127 = OpLabel | |
%128 = OpBitwiseAnd %5 %57 %57 | |
%129 = OpIsNan %13 %54 | |
%130 = OpIAdd %5 %128 %57 | |
%131 = OpFOrdLessThan %13 %56 %54 | |
%132 = OpConvertFToU %5 %54 | |
%133 = OpBitwiseXor %5 %57 %57 | |
%134 = OpBitwiseXor %5 %128 %26 | |
%135 = OpNot %5 %25 | |
%136 = OpShiftRightLogical %5 %134 %25 | |
%137 = OpLogicalEqual %13 %131 %124 | |
%138 = OpShiftRightArithmetic %5 %132 %135 | |
%139 = OpFUnordLessThan %13 %56 %12 | |
OpBranch %157 | |
%141 = OpLabel | |
%142 = OpConvertUToF %3 %57 | |
%143 = OpVectorExtractDynamic %3 %20 %58 | |
%144 = OpShiftLeftLogical %6 %32 %17 | |
%145 = OpCopyObject %6 %58 | |
%146 = OpFUnordGreaterThan %13 %142 %12 | |
%147 = OpConvertFToU %5 %54 | |
%148 = OpVectorExtractDynamic %5 %33 %53 | |
OpStore %34 %147 | |
%150 = OpConvertFToS %6 %143 | |
%151 = OpBitwiseXor %6 %17 %17 | |
%152 = OpConvertUToF %3 %16 | |
%153 = OpConvertFToS %6 %54 | |
%154 = OpConvertFToU %5 %152 | |
%155 = OpConvertUToF %3 %154 | |
OpBranch %157 | |
%157 = OpLabel | |
%158 = OpVectorShuffle %23 %33 %33 1 3 0 1 | |
OpBranch %160 | |
%160 = OpLabel | |
OpLoopMerge %175 %163 None | |
OpBranchConditional %124 %163 %175 | |
%163 = OpLabel | |
%164 = OpLoad %10 %22 | |
%165 = OpIsInf %13 %56 | |
OpStore %34 %57 | |
%167 = OpFUnordNotEqual %13 %54 %54 | |
%168 = OpShiftRightArithmetic %6 %32 %17 | |
%169 = OpVectorInsertDynamic %8 %19 %54 %32 | |
%170 = OpShiftRightLogical %5 %16 %57 | |
%171 = OpConvertFToS %6 %54 | |
%172 = OpUGreaterThan %13 %57 %57 | |
%173 = OpLoad %10 %22 | |
OpBranch %160 | |
%175 = OpLabel | |
%176 = OpBitwiseAnd %5 %16 %57 | |
%177 = OpAccessChain %24 %22 %25 | |
%178 = OpVectorInsertDynamic %23 %33 %26 %25 | |
%179 = OpFUnordLessThanEqual %13 %54 %54 | |
%180 = OpFOrdNotEqual %13 %54 %56 | |
%181 = OpVectorInsertDynamic %23 %178 %176 %11 | |
%182 = OpVectorInsertDynamic %23 %181 %57 %11 | |
%183 = OpBitCount %6 %17 | |
%184 = OpBitwiseXor %6 %183 %183 | |
%185 = OpSGreaterThanEqual %13 %184 %32 | |
%186 = OpConvertUToF %3 %25 | |
%187 = OpLogicalAnd %13 %180 %179 | |
%188 = OpUGreaterThanEqual %27 %181 %178 | |
%189 = OpConvertFToS %6 %56 | |
%190 = OpShiftLeftLogical %6 %184 %58 | |
OpBranch %192 | |
%192 = OpLabel | |
OpLoopMerge %212 %195 None | |
OpBranchConditional %124 %195 %212 | |
%195 = OpLabel | |
%196 = OpCompositeInsert %23 %11 %178 2 | |
%197 = OpFUnordLessThan %13 %186 %54 | |
%198 = OpLoad %10 %22 | |
%199 = OpBitwiseOr %23 %33 %158 | |
%200 = OpBitCount %23 %158 | |
%201 = OpCompositeExtract %5 %199 2 | |
%202 = OpLoad %10 %22 | |
%203 = OpBitCount %6 %184 | |
%204 = OpConvertUToF %3 %176 | |
%205 = OpLogicalAnd %13 %180 %180 | |
%206 = OpBitwiseXor %6 %190 %190 | |
%207 = OpLogicalNot %13 %185 | |
%208 = OpIsNan %13 %204 | |
%209 = OpFOrdNotEqual %13 %18 %204 | |
%210 = OpConvertFToU %5 %186 | |
OpBranch %192 | |
%212 = OpLabel | |
%213 = OpConvertSToF %3 %17 | |
%214 = OpNot %6 %58 | |
%215 = OpAccessChain %24 %22 %26 | |
OpBranch %217 | |
%217 = OpLabel | |
OpLoopMerge %233 %220 None | |
OpBranchConditional %15 %220 %233 | |
%220 = OpLabel | |
%221 = OpLogicalNot %27 %188 | |
%222 = OpConvertSToF %3 %184 | |
%223 = OpConvertFToS %6 %213 | |
%224 = OpConvertSToF %3 %32 | |
%225 = OpLoad %10 %22 | |
OpStore %177 %26 | |
%227 = OpLoad %10 %22 | |
%228 = OpCompositeExtract %5 %225 1 | |
%229 = OpConvertFToU %5 %213 | |
%230 = OpFOrdGreaterThanEqual %13 %12 %56 | |
%231 = OpSLessThan %13 %214 %53 | |
OpBranch %217 | |
%233 = OpLabel | |
%234 = OpCopyObject %13 %14 | |
OpBranch %236 | |
%236 = OpLabel | |
OpLoopMerge %255 %239 None | |
OpBranchConditional %31 %239 %255 | |
%239 = OpLabel | |
%240 = OpLoad %10 %22 | |
%241 = OpShiftRightLogical %6 %55 %17 | |
%242 = OpCopyObject %3 %186 | |
OpStore %34 %57 | |
%244 = OpIsInf %13 %18 | |
%245 = OpVectorExtractDynamic %5 %181 %32 | |
%246 = OpLogicalNot %13 %15 | |
%247 = OpFUnordNotEqual %13 %54 %213 | |
%248 = OpULessThanEqual %27 %182 %181 | |
%249 = OpAll %13 %248 | |
%250 = OpLoad %10 %22 | |
%251 = OpNot %6 %190 | |
%252 = OpLogicalNot %27 %248 | |
OpStore %215 %26 | |
OpBranch %236 | |
%255 = OpLabel | |
%256 = OpNot %6 %184 | |
%257 = OpCompositeExtract %5 %181 0 | |
%258 = OpNot %5 %257 | |
%259 = OpLogicalEqual %27 %188 %188 | |
OpBranch %261 | |
%261 = OpLabel | |
OpLoopMerge %280 %264 None | |
OpBranchConditional %234 %264 %280 | |
%264 = OpLabel | |
%265 = OpConvertSToF %3 %17 | |
%266 = OpCopyObject %3 %186 | |
%267 = OpBitwiseOr %23 %181 %181 | |
%268 = OpFOrdEqual %13 %186 %54 | |
%269 = OpAccessChain %24 %22 %26 | |
%270 = OpBitwiseOr %23 %178 %158 | |
%271 = OpUGreaterThan %27 %33 %181 | |
%272 = OpVectorInsertDynamic %23 %181 %257 %214 | |
%273 = OpNot %23 %181 | |
%274 = OpBitCount %6 %183 | |
%275 = OpConvertFToU %5 %265 | |
%276 = OpIsInf %13 %56 | |
%277 = OpCompositeInsert %27 %180 %259 2 | |
%278 = OpConvertSToF %3 %184 | |
OpBranch %261 | |
%280 = OpLabel | |
OpBranch %282 | |
%282 = OpLabel | |
OpLoopMerge %302 %285 None | |
OpBranchConditional %14 %285 %302 | |
%285 = OpLabel | |
%286 = OpConvertUToF %3 %176 | |
%287 = OpULessThan %13 %258 %176 | |
%288 = OpNot %6 %32 | |
%289 = OpLoad %10 %22 | |
%290 = OpShiftRightLogical %23 %33 %178 | |
%291 = OpBitwiseXor %23 %158 %158 | |
%292 = OpLogicalNotEqual %13 %179 %31 | |
%293 = OpAll %13 %259 | |
%294 = OpIsNan %13 %186 | |
%295 = OpConvertUToF %8 %291 | |
%296 = OpBitCount %23 %33 | |
%297 = OpFUnordNotEqual %13 %213 %56 | |
%298 = OpConvertSToF %3 %256 | |
%299 = OpBitwiseXor %23 %181 %181 | |
%300 = OpAccessChain %24 %22 %26 | |
OpBranch %282 | |
%302 = OpLabel | |
%303 = OpBitCount %5 %57 | |
%304 = OpLoad %10 %22 | |
OpBranch %306 | |
%306 = OpLabel | |
OpLoopMerge %324 %309 None | |
OpBranchConditional %124 %309 %324 | |
%309 = OpLabel | |
%310 = OpConvertSToF %3 %189 | |
%311 = OpCompositeInsert %23 %257 %181 3 | |
%312 = OpSLessThanEqual %13 %183 %190 | |
%313 = OpIsNan %13 %213 | |
%314 = OpAll %13 %188 | |
%315 = OpFOrdNotEqual %13 %213 %310 | |
%316 = OpCompositeExtract %5 %33 3 | |
%317 = OpVectorShuffle %23 %158 %311 2 0 2 0 | |
%318 = OpIsInf %13 %18 | |
%319 = OpConvertSToF %3 %183 | |
%320 = OpNot %5 %26 | |
%321 = OpVectorInsertDynamic %4 %20 %54 %316 | |
%322 = OpVectorInsertDynamic %27 %188 %15 %320 | |
OpBranch %306 | |
%324 = OpLabel | |
%325 = OpBitCount %6 %184 | |
%326 = OpConvertUToF %8 %33 | |
%327 = OpCopyObject %5 %26 | |
%328 = OpCompositeExtract %13 %188 2 | |
%329 = OpShiftRightArithmetic %6 %32 %189 | |
OpSelectionMerge %359 None | |
OpBranchConditional %180 %332 %348 | |
%332 = OpLabel | |
%333 = OpShiftRightLogical %5 %11 %257 | |
%334 = OpAccessChain %24 %22 %26 | |
%335 = OpLoad %10 %22 | |
%336 = OpLoad %10 %22 | |
%337 = OpIsInf %13 %186 | |
%338 = OpBitwiseAnd %5 %327 %57 | |
%339 = OpConvertFToS %6 %186 | |
OpStore %334 %26 | |
%341 = OpAccessChain %24 %22 %25 | |
%342 = OpCompositeInsert %23 %327 %182 2 | |
OpStore %341 %338 | |
%344 = OpBitCount %23 %181 | |
%345 = OpConvertFToS %7 %326 | |
%346 = OpAny %13 %188 | |
OpBranch %359 | |
%348 = OpLabel | |
%349 = OpLoad %10 %22 | |
%350 = OpVectorInsertDynamic %27 %188 %187 %256 | |
%351 = OpNot %6 %58 | |
%352 = OpVectorInsertDynamic %27 %188 %14 %329 | |
%353 = OpBitwiseOr %6 %17 %189 | |
%354 = OpConvertFToU %5 %56 | |
%355 = OpCopyObject %24 %177 | |
%356 = OpCompositeExtract %5 %349 0 | |
%357 = OpConvertFToS %6 %213 | |
OpBranch %359 | |
%359 = OpLabel | |
OpReturn | |
OpFunctionEnd |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment