mirror of
https://github.com/gfx-rs/wgpu.git
synced 2024-11-23 07:14:01 +00:00
110 lines
2.5 KiB
Plaintext
110 lines
2.5 KiB
Plaintext
; SPIR-V
|
|
; Version: 1.0
|
|
; Generator: rspirv
|
|
; Bound: 62
|
|
OpCapability Shader
|
|
OpExtension "SPV_KHR_storage_buffer_storage_class"
|
|
%1 = OpExtInstImport "GLSL.std.450"
|
|
OpMemoryModel Logical GLSL450
|
|
OpEntryPoint GLCompute %51 "main" %48
|
|
OpExecutionMode %51 LocalSize 1 1 1
|
|
OpMemberName %5 0 "data"
|
|
OpName %5 "PrimeIndices"
|
|
OpName %7 "v_indices"
|
|
OpName %10 "n_base"
|
|
OpName %11 "collatz_iterations"
|
|
OpName %17 "n"
|
|
OpName %20 "i"
|
|
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
|
|
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
|
|
%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
|
|
%27 = OpTypeBool
|
|
%49 = OpTypePointer Input %6
|
|
%48 = OpVariable %49 Input
|
|
%52 = OpTypeFunction %2
|
|
%54 = OpTypePointer StorageBuffer %4
|
|
%56 = OpTypePointer StorageBuffer %3
|
|
%11 = OpFunction %3 None %12
|
|
%10 = OpFunctionParameter %3
|
|
%9 = OpLabel
|
|
%17 = OpVariable %18 Function %19
|
|
%20 = OpVariable %18 Function %13
|
|
OpBranch %21
|
|
%21 = OpLabel
|
|
OpStore %17 %10
|
|
OpBranch %22
|
|
%22 = OpLabel
|
|
OpLoopMerge %23 %25 None
|
|
OpBranch %24
|
|
%24 = OpLabel
|
|
%26 = OpLoad %3 %17
|
|
%28 = OpUGreaterThan %27 %26 %14
|
|
OpSelectionMerge %29 None
|
|
OpBranchConditional %28 %29 %30
|
|
%30 = OpLabel
|
|
OpBranch %23
|
|
%29 = OpLabel
|
|
OpBranch %31
|
|
%31 = OpLabel
|
|
%33 = OpLoad %3 %17
|
|
%34 = OpUMod %3 %33 %15
|
|
%35 = OpIEqual %27 %34 %13
|
|
OpSelectionMerge %36 None
|
|
OpBranchConditional %35 %37 %38
|
|
%37 = OpLabel
|
|
%39 = OpLoad %3 %17
|
|
%40 = OpUDiv %3 %39 %15
|
|
OpStore %17 %40
|
|
OpBranch %36
|
|
%38 = OpLabel
|
|
%41 = OpLoad %3 %17
|
|
%42 = OpIMul %3 %16 %41
|
|
%43 = OpIAdd %3 %42 %14
|
|
OpStore %17 %43
|
|
OpBranch %36
|
|
%36 = OpLabel
|
|
%44 = OpLoad %3 %20
|
|
%45 = OpIAdd %3 %44 %14
|
|
OpStore %20 %45
|
|
OpBranch %32
|
|
%32 = OpLabel
|
|
OpBranch %25
|
|
%25 = OpLabel
|
|
OpBranch %22
|
|
%23 = OpLabel
|
|
%46 = OpLoad %3 %20
|
|
OpReturnValue %46
|
|
OpFunctionEnd
|
|
%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
|
|
%58 = OpAccessChain %56 %7 %13 %57
|
|
%59 = OpLoad %3 %58
|
|
%60 = OpFunctionCall %3 %11 %59
|
|
%61 = OpAccessChain %56 %7 %13 %55
|
|
OpStore %61 %60
|
|
OpReturn
|
|
OpFunctionEnd |