wgpu/naga/tests/out/spv/collatz.spvasm

110 lines
2.5 KiB
Plaintext
Raw Normal View History

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