110 lines
4.5 KiB
Plaintext
110 lines
4.5 KiB
Plaintext
; SPIR-V
|
|
; Version: 1.0
|
|
; Generator: Google Clspv; 0
|
|
; Bound: 83
|
|
; Schema: 0
|
|
OpCapability Shader
|
|
OpExtension "SPV_KHR_storage_buffer_storage_class"
|
|
OpMemoryModel Logical GLSL450
|
|
OpEntryPoint GLCompute %19 "main" %gl_GlobalInvocationID
|
|
OpSource OpenCL_C 120
|
|
OpDecorate %_runtimearr_float ArrayStride 4
|
|
OpMemberDecorate %_struct_3 0 Offset 0
|
|
OpDecorate %_struct_3 Block
|
|
OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId
|
|
OpDecorate %gl_WorkGroupSize BuiltIn WorkgroupSize
|
|
OpDecorate %15 DescriptorSet 0
|
|
OpDecorate %15 Binding 0
|
|
OpDecorate %16 DescriptorSet 0
|
|
OpDecorate %16 Binding 1
|
|
OpDecorate %10 SpecId 0
|
|
OpDecorate %11 SpecId 1
|
|
OpDecorate %12 SpecId 2
|
|
%float = OpTypeFloat 32
|
|
%_runtimearr_float = OpTypeRuntimeArray %float
|
|
%_struct_3 = OpTypeStruct %_runtimearr_float
|
|
%_ptr_StorageBuffer__struct_3 = OpTypePointer StorageBuffer %_struct_3
|
|
%uint = OpTypeInt 32 0
|
|
%v3uint = OpTypeVector %uint 3
|
|
%_ptr_Input_v3uint = OpTypePointer Input %v3uint
|
|
%_ptr_Private_v3uint = OpTypePointer Private %v3uint
|
|
%10 = OpSpecConstant %uint 1
|
|
%11 = OpSpecConstant %uint 1
|
|
%12 = OpSpecConstant %uint 1
|
|
%gl_WorkGroupSize = OpSpecConstantComposite %v3uint %10 %11 %12
|
|
%void = OpTypeVoid
|
|
%18 = OpTypeFunction %void
|
|
%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
|
|
%uint_0 = OpConstant %uint 0
|
|
%_ptr_Input_uint = OpTypePointer Input %uint
|
|
%uint_35 = OpConstant %uint 35
|
|
%uint_1 = OpConstant %uint 1
|
|
%float_3 = OpConstant %float 3
|
|
%bool = OpTypeBool
|
|
%uint_34 = OpConstant %uint 34
|
|
%uint_5 = OpConstant %uint 5
|
|
%gl_GlobalInvocationID = OpVariable %_ptr_Input_v3uint Input
|
|
%14 = OpVariable %_ptr_Private_v3uint Private %gl_WorkGroupSize
|
|
%15 = OpVariable %_ptr_StorageBuffer__struct_3 StorageBuffer
|
|
%16 = OpVariable %_ptr_StorageBuffer__struct_3 StorageBuffer
|
|
%19 = OpFunction %void None %18
|
|
%20 = OpLabel
|
|
%23 = OpAccessChain %_ptr_StorageBuffer_float %15 %uint_0 %uint_0
|
|
%25 = OpAccessChain %_ptr_Input_uint %gl_GlobalInvocationID %uint_0
|
|
%26 = OpLoad %uint %25
|
|
%27 = OpLoad %float %23
|
|
%29 = OpAccessChain %_ptr_StorageBuffer_float %15 %uint_0 %uint_35
|
|
OpBranch %31
|
|
%31 = OpLabel
|
|
%32 = OpPhi %float %27 %20 %67 %58
|
|
%33 = OpPhi %uint %uint_0 %20 %63 %58
|
|
%34 = OpLoad %float %29
|
|
OpLoopMerge %69 %58 None
|
|
OpBranch %37
|
|
%37 = OpLabel
|
|
%38 = OpPhi %float %46 %37 %32 %31
|
|
%39 = OpPhi %float %38 %37 %34 %31
|
|
%40 = OpPhi %uint %44 %37 %uint_0 %31
|
|
%41 = OpAccessChain %_ptr_StorageBuffer_float %15 %uint_0 %40
|
|
%42 = OpFAdd %float %39 %38
|
|
%44 = OpIAdd %uint %40 %uint_1
|
|
%45 = OpAccessChain %_ptr_StorageBuffer_float %15 %uint_0 %44
|
|
%46 = OpLoad %float %45
|
|
%47 = OpFAdd %float %42 %46
|
|
%49 = OpFDiv %float %47 %float_3
|
|
OpStore %41 %49
|
|
%52 = OpULessThan %bool %40 %uint_34
|
|
%53 = OpLogicalNot %bool %52
|
|
OpLoopMerge %56 %37 None
|
|
OpBranchConditional %53 %56 %37
|
|
%56 = OpLabel
|
|
OpBranch %58
|
|
%58 = OpLabel
|
|
%59 = OpLoad %float %29
|
|
%60 = OpFAdd %float %38 %59
|
|
%61 = OpFAdd %float %32 %60
|
|
%62 = OpFDiv %float %61 %float_3
|
|
OpStore %29 %62
|
|
%63 = OpIAdd %uint %33 %uint_1
|
|
%65 = OpULessThan %bool %33 %uint_5
|
|
%66 = OpLogicalNot %bool %65
|
|
%67 = OpLoad %float %23
|
|
OpBranchConditional %66 %69 %31
|
|
%69 = OpLabel
|
|
%70 = OpPhi %float %75 %69 %67 %58
|
|
%71 = OpPhi %uint %76 %69 %uint_1 %58
|
|
%72 = OpAccessChain %_ptr_StorageBuffer_float %15 %uint_0 %71
|
|
%73 = OpLoad %float %72
|
|
%74 = OpFOrdLessThan %bool %70 %73
|
|
%75 = OpSelect %float %74 %73 %70
|
|
%76 = OpIAdd %uint %71 %uint_1
|
|
%77 = OpULessThan %bool %71 %uint_35
|
|
%78 = OpLogicalNot %bool %77
|
|
OpLoopMerge %81 %69 None
|
|
OpBranchConditional %78 %81 %69
|
|
%81 = OpLabel
|
|
%82 = OpAccessChain %_ptr_StorageBuffer_float %16 %uint_0 %26
|
|
OpStore %82 %75
|
|
OpReturn
|
|
OpFunctionEnd
|