wgpu/tests/out/spv/collatz.spvasm
2022-03-22 22:47:47 -07:00

106 lines
2.4 KiB
Plaintext

; SPIR-V
; Version: 1.0
; Generator: rspirv
; Bound: 59
OpCapability Shader
OpExtension "SPV_KHR_storage_buffer_storage_class"
%1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint GLCompute %48 "main" %45
OpExecutionMode %48 LocalSize 1 1 1
OpSource GLSL 450
OpMemberName %9 0 "data"
OpName %9 "PrimeIndices"
OpName %11 "v_indices"
OpName %13 "n"
OpName %15 "i"
OpName %17 "n_base"
OpName %18 "collatz_iterations"
OpName %45 "global_id"
OpName %48 "main"
OpDecorate %8 ArrayStride 4
OpMemberDecorate %9 0 Offset 0
OpDecorate %11 DescriptorSet 0
OpDecorate %11 Binding 0
OpDecorate %9 Block
OpDecorate %45 BuiltIn GlobalInvocationId
%2 = OpTypeVoid
%4 = OpTypeInt 32 0
%3 = OpConstant %4 0
%5 = OpConstant %4 1
%6 = OpConstant %4 2
%7 = OpConstant %4 3
%8 = OpTypeRuntimeArray %4
%9 = OpTypeStruct %8
%10 = OpTypeVector %4 3
%12 = OpTypePointer StorageBuffer %9
%11 = OpVariable %12 StorageBuffer
%14 = OpTypePointer Function %4
%19 = OpTypeFunction %4 %4
%26 = OpTypeBool
%46 = OpTypePointer Input %10
%45 = OpVariable %46 Input
%49 = OpTypeFunction %2
%51 = OpTypePointer StorageBuffer %8
%53 = OpTypePointer StorageBuffer %4
%18 = OpFunction %4 None %19
%17 = OpFunctionParameter %4
%16 = OpLabel
%13 = OpVariable %14 Function
%15 = OpVariable %14 Function %3
OpBranch %20
%20 = OpLabel
OpStore %13 %17
OpBranch %21
%21 = OpLabel
OpLoopMerge %22 %24 None
OpBranch %23
%23 = OpLabel
%25 = OpLoad %4 %13
%27 = OpUGreaterThan %26 %25 %5
OpSelectionMerge %28 None
OpBranchConditional %27 %28 %29
%29 = OpLabel
OpBranch %22
%28 = OpLabel
%30 = OpLoad %4 %13
%31 = OpUMod %4 %30 %6
%32 = OpIEqual %26 %31 %3
OpSelectionMerge %33 None
OpBranchConditional %32 %34 %35
%34 = OpLabel
%36 = OpLoad %4 %13
%37 = OpUDiv %4 %36 %6
OpStore %13 %37
OpBranch %33
%35 = OpLabel
%38 = OpLoad %4 %13
%39 = OpIMul %4 %7 %38
%40 = OpIAdd %4 %39 %5
OpStore %13 %40
OpBranch %33
%33 = OpLabel
%41 = OpLoad %4 %15
%42 = OpIAdd %4 %41 %5
OpStore %15 %42
OpBranch %24
%24 = OpLabel
OpBranch %21
%22 = OpLabel
%43 = OpLoad %4 %15
OpReturnValue %43
OpFunctionEnd
%48 = OpFunction %2 None %49
%44 = OpLabel
%47 = OpLoad %10 %45
OpBranch %50
%50 = OpLabel
%52 = OpCompositeExtract %4 %47 0
%54 = OpCompositeExtract %4 %47 0
%55 = OpAccessChain %53 %11 %3 %54
%56 = OpLoad %4 %55
%57 = OpFunctionCall %4 %18 %56
%58 = OpAccessChain %53 %11 %3 %52
OpStore %58 %57
OpReturn
OpFunctionEnd