blob: 26d19af8b14d8567997129aa75d3c7474805ca0b [file]
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 1
; Bound: 89
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint GLCompute %main "main"
OpExecutionMode %main LocalSize 1 1 1
OpMemberName %buffer_block 0 "inner"
OpName %buffer_block "buffer_block"
OpName %main "main"
OpName %i "i"
OpName %tint_loop_idx "tint_loop_idx"
OpName %tint_low_inc "tint_low_inc"
OpName %tint_carry "tint_carry"
OpName %tint_loop_idx_0 "tint_loop_idx"
OpName %tint_low_inc_1 "tint_low_inc_1"
OpName %tint_carry_1 "tint_carry_1"
OpMemberDecorate %buffer_block 0 Offset 0
OpDecorate %buffer_block Block
OpDecorate %1 DescriptorSet 0
OpDecorate %1 Binding 0
OpDecorate %1 Coherent
%int = OpTypeInt 32 1
%buffer_block = OpTypeStruct %int
%_ptr_StorageBuffer_buffer_block = OpTypePointer StorageBuffer %buffer_block
%1 = OpVariable %_ptr_StorageBuffer_buffer_block StorageBuffer
%void = OpTypeVoid
%7 = OpTypeFunction %void
%_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
%uint = OpTypeInt 32 0
%uint_0 = OpConstant %uint 0
%_ptr_Function_int = OpTypePointer Function %int
%v2uint = OpTypeVector %uint 2
%_ptr_Function_v2uint = OpTypePointer Function %v2uint
%uint_4294967295 = OpConstant %uint 4294967295
%26 = OpConstantComposite %v2uint %uint_4294967295 %uint_4294967295
%30 = OpConstantNull %v2uint
%bool = OpTypeBool
%v2bool = OpTypeVector %bool 2
%_ptr_Function_uint = OpTypePointer Function %uint
%uint_1 = OpConstant %uint 1
%int_10 = OpConstant %int 10
%int_5 = OpConstant %int 5
%int_2 = OpConstant %int 2
%main = OpFunction %void None %7
%8 = OpLabel
%i = OpVariable %_ptr_Function_int Function
%tint_loop_idx = OpVariable %_ptr_Function_v2uint Function
%tint_loop_idx_0 = OpVariable %_ptr_Function_v2uint Function
%9 = OpAccessChain %_ptr_StorageBuffer_int %1 %uint_0
%13 = OpLoad %int %9 None
OpStore %i %13
OpBranch %16
%16 = OpLabel
OpStore %tint_loop_idx %26
OpBranch %19
%19 = OpLabel
OpLoopMerge %20 %18 None
OpBranch %17
%17 = OpLabel
%28 = OpLoad %v2uint %tint_loop_idx None
%29 = OpIEqual %v2bool %28 %30
%33 = OpAll %bool %29
OpSelectionMerge %34 None
OpBranchConditional %33 %35 %34
%35 = OpLabel
OpBranch %20
%34 = OpLabel
OpBranch %18
%18 = OpLabel
%36 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0
%38 = OpLoad %uint %36 None
%tint_low_inc = OpISub %uint %38 %uint_1
%41 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0
OpStore %41 %tint_low_inc None
%42 = OpIEqual %bool %tint_low_inc %uint_4294967295
%tint_carry = OpSelect %uint %42 %uint_1 %uint_0
%44 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1
%45 = OpLoad %uint %44 None
%46 = OpISub %uint %45 %tint_carry
%47 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1
OpStore %47 %46 None
OpBranch %48
%48 = OpLabel
OpStore %tint_loop_idx_0 %26
OpBranch %51
%51 = OpLabel
OpLoopMerge %52 %50 None
OpBranch %49
%49 = OpLabel
%57 = OpLoad %v2uint %tint_loop_idx_0 None
%58 = OpIEqual %v2bool %57 %30
%59 = OpAll %bool %58
OpSelectionMerge %60 None
OpBranchConditional %59 %61 %60
%61 = OpLabel
OpBranch %52
%60 = OpLabel
%62 = OpLoad %int %i None
%63 = OpSGreaterThan %bool %62 %int_5
OpSelectionMerge %65 None
OpBranchConditional %63 %66 %67
%66 = OpLabel
%78 = OpLoad %int %i None
%79 = OpBitcast %uint %78
%80 = OpBitcast %uint %int_2
%82 = OpIMul %uint %79 %80
%83 = OpBitcast %int %82
OpStore %i %83 None
OpBranch %52
%67 = OpLabel
%84 = OpLoad %int %i None
%85 = OpBitcast %uint %84
%86 = OpBitcast %uint %int_2
%87 = OpIMul %uint %85 %86
%88 = OpBitcast %int %87
OpStore %i %88 None
OpBranch %52
%65 = OpLabel
OpBranch %52
%50 = OpLabel
%68 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_0
%69 = OpLoad %uint %68 None
%tint_low_inc_1 = OpISub %uint %69 %uint_1
%71 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_0
OpStore %71 %tint_low_inc_1 None
%72 = OpIEqual %bool %tint_low_inc_1 %uint_4294967295
%tint_carry_1 = OpSelect %uint %72 %uint_1 %uint_0
%74 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_1
%75 = OpLoad %uint %74 None
%76 = OpISub %uint %75 %tint_carry_1
%77 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_1
OpStore %77 %76 None
OpBranch %51
%52 = OpLabel
%53 = OpLoad %int %i None
%54 = OpSGreaterThan %bool %53 %int_10
OpBranchConditional %54 %20 %19
%20 = OpLabel
%21 = OpLoad %int %i None
%22 = OpAccessChain %_ptr_StorageBuffer_int %1 %uint_0
OpStore %22 %21 None
OpReturn
OpFunctionEnd