mirror of
https://github.com/gfx-rs/wgpu.git
synced 2024-12-04 04:38:02 +00:00
106 lines
2.4 KiB
Plaintext
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 |