SPIRV-Cross/shaders-no-opt/asm/comp/fuzz-collapse-degenerate-loop.asm.comp

119 lines
4.6 KiB
Plaintext
Raw Normal View History

; SPIR-V
; Version: 1.3
; Generator: Khronos SPIR-V Tools Assembler; 0
; Bound: 71
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint GLCompute %1 "main"
OpExecutionMode %1 LocalSize 1 1 1
OpDecorate %_struct_2 BufferBlock
OpMemberDecorate %_struct_2 0 Offset 0
OpDecorate %_arr_uint_uint_2 ArrayStride 4
OpDecorate %_struct_4 BufferBlock
OpMemberDecorate %_struct_4 0 Offset 0
OpDecorate %_arr_uint_uint_3 ArrayStride 4
OpDecorate %_struct_6 BufferBlock
OpMemberDecorate %_struct_6 0 Offset 0
OpDecorate %_arr_uint_uint_11 ArrayStride 4
OpDecorate %8 DescriptorSet 0
OpDecorate %8 Binding 0
OpDecorate %9 DescriptorSet 0
OpDecorate %9 Binding 1
OpDecorate %10 DescriptorSet 0
OpDecorate %10 Binding 2
%void = OpTypeVoid
%12 = OpTypeFunction %void
%bool = OpTypeBool
%uint = OpTypeInt 32 0
%true = OpConstantTrue %bool
%uint_0 = OpConstant %uint 0
%uint_0_0 = OpConstant %uint 0
%uint_1 = OpConstant %uint 1
%uint_2 = OpConstant %uint 2
%uint_3 = OpConstant %uint 3
%uint_8 = OpConstant %uint 8
%uint_9 = OpConstant %uint 9
%uint_10 = OpConstant %uint 10
%uint_11 = OpConstant %uint 11
%uint_12 = OpConstant %uint 12
%uint_13 = OpConstant %uint 13
%uint_14 = OpConstant %uint 14
%_arr_uint_uint_2 = OpTypeArray %uint %uint_2
%_struct_2 = OpTypeStruct %_arr_uint_uint_2
%_ptr_Uniform__struct_2 = OpTypePointer Uniform %_struct_2
%9 = OpVariable %_ptr_Uniform__struct_2 Uniform
%_arr_uint_uint_3 = OpTypeArray %uint %uint_3
%_struct_4 = OpTypeStruct %_arr_uint_uint_3
%_ptr_Uniform__struct_4 = OpTypePointer Uniform %_struct_4
%8 = OpVariable %_ptr_Uniform__struct_4 Uniform
%_arr_uint_uint_11 = OpTypeArray %uint %uint_11
%_struct_6 = OpTypeStruct %_arr_uint_uint_11
%_ptr_Uniform__struct_6 = OpTypePointer Uniform %_struct_6
%10 = OpVariable %_ptr_Uniform__struct_6 Uniform
%_ptr_Function_uint = OpTypePointer Function %uint
%_ptr_Uniform_uint = OpTypePointer Uniform %uint
%1 = OpFunction %void None %12
%33 = OpLabel
%34 = OpVariable %_ptr_Function_uint Function %uint_0_0
%35 = OpVariable %_ptr_Function_uint Function %uint_0_0
%36 = OpVariable %_ptr_Function_uint Function %uint_0_0
%37 = OpLoad %uint %34
%38 = OpAccessChain %_ptr_Uniform_uint %10 %uint_0_0 %37
OpStore %38 %uint_8
%39 = OpIAdd %uint %37 %uint_1
OpStore %34 %39
OpBranch %40
%40 = OpLabel
%41 = OpLoad %uint %34
%42 = OpAccessChain %_ptr_Uniform_uint %10 %uint_0_0 %41
OpStore %42 %uint_9
%43 = OpIAdd %uint %41 %uint_1
OpStore %34 %43
%44 = OpLoad %uint %35
%45 = OpAccessChain %_ptr_Uniform_uint %8 %uint_0_0 %44
%46 = OpLoad %uint %45
%47 = OpIEqual %bool %46 %uint_1
%48 = OpIAdd %uint %44 %uint_1
OpStore %35 %48
OpLoopMerge %49 %50 None
OpBranchConditional %47 %51 %49
%51 = OpLabel
%52 = OpLoad %uint %34
%53 = OpAccessChain %_ptr_Uniform_uint %10 %uint_0_0 %52
OpStore %53 %uint_12
%54 = OpIAdd %uint %52 %uint_1
OpStore %34 %54
%55 = OpLoad %uint %36
%56 = OpAccessChain %_ptr_Uniform_uint %9 %uint_0_0 %55
%57 = OpLoad %uint %56
%58 = OpIEqual %bool %57 %uint_1
%59 = OpIAdd %uint %55 %uint_1
OpStore %36 %59
OpLoopMerge %60 %61 None
OpBranchConditional %58 %60 %60
%49 = OpLabel
%62 = OpLoad %uint %34
%63 = OpAccessChain %_ptr_Uniform_uint %10 %uint_0_0 %62
OpStore %63 %uint_10
%64 = OpIAdd %uint %62 %uint_1
OpStore %34 %64
OpReturn
%60 = OpLabel
%65 = OpLoad %uint %34
%66 = OpAccessChain %_ptr_Uniform_uint %10 %uint_0_0 %65
OpStore %66 %uint_13
%67 = OpIAdd %uint %65 %uint_1
OpStore %34 %67
OpBranch %50
%61 = OpLabel
OpBranch %51
%50 = OpLabel
%68 = OpLoad %uint %34
%69 = OpAccessChain %_ptr_Uniform_uint %10 %uint_0_0 %68
OpStore %69 %uint_11
%70 = OpIAdd %uint %68 %uint_1
OpStore %34 %70
OpBranch %40
OpFunctionEnd