dawn-cmake/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-b.../1.spvasm

179 lines
7.0 KiB
Plaintext

OpCapability Shader
%1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %main "main" %gl_FragCoord %_GLF_color
OpExecutionMode %main OriginUpperLeft
OpSource ESSL 320
OpName %main "main"
OpName %gl_FragCoord "gl_FragCoord"
OpName %buf1 "buf1"
OpMemberName %buf1 0 "resolution"
OpName %_ ""
OpName %data "data"
OpName %buf0 "buf0"
OpMemberName %buf0 0 "injectionSwitch"
OpName %__0 ""
OpName %_GLF_color "_GLF_color"
OpDecorate %gl_FragCoord BuiltIn FragCoord
OpMemberDecorate %buf1 0 Offset 0
OpDecorate %buf1 Block
OpDecorate %_ DescriptorSet 0
OpDecorate %_ Binding 1
OpMemberDecorate %buf0 0 Offset 0
OpDecorate %buf0 Block
OpDecorate %__0 DescriptorSet 0
OpDecorate %__0 Binding 0
OpDecorate %_GLF_color Location 0
%void = OpTypeVoid
%11 = OpTypeFunction %void
%float = OpTypeFloat 32
%_ptr_Function_float = OpTypePointer Function %float
%bool = OpTypeBool
%v4float = OpTypeVector %float 4
%_ptr_Input_v4float = OpTypePointer Input %v4float
%gl_FragCoord = OpVariable %_ptr_Input_v4float Input
%uint = OpTypeInt 32 0
%uint_1 = OpConstant %uint 1
%_ptr_Input_float = OpTypePointer Input %float
%v2float = OpTypeVector %float 2
%buf1 = OpTypeStruct %v2float
%_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
%_ = OpVariable %_ptr_Uniform_buf1 Uniform
%int = OpTypeInt 32 1
%int_0 = OpConstant %int 0
%_ptr_Uniform_float = OpTypePointer Uniform %float
%int_10 = OpConstant %int 10
%uint_10 = OpConstant %uint 10
%_arr_float_uint_10 = OpTypeArray %float %uint_10
%_ptr_Function__arr_float_uint_10 = OpTypePointer Function %_arr_float_uint_10
%buf0 = OpTypeStruct %v2float
%_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
%__0 = OpVariable %_ptr_Uniform_buf0 Uniform
%int_1 = OpConstant %int 1
%int_9 = OpConstant %int 9
%uint_0 = OpConstant %uint 0
%_ptr_Output_v4float = OpTypePointer Output %v4float
%_GLF_color = OpVariable %_ptr_Output_v4float Output
%int_5 = OpConstant %int 5
%float_1 = OpConstant %float 1
%float_0_5 = OpConstant %float 0.5
%float_0_100000001 = OpConstant %float 0.100000001
%true = OpConstantTrue %bool
%main = OpFunction %void None %11
%39 = OpLabel
%data = OpVariable %_ptr_Function__arr_float_uint_10 Function
OpBranch %40
%40 = OpLabel
%41 = OpPhi %int %int_0 %39 %42 %43
%44 = OpSLessThan %bool %41 %int_10
OpLoopMerge %45 %43 None
OpBranchConditional %44 %43 %45
%43 = OpLabel
%46 = OpISub %int %int_10 %41
%47 = OpConvertSToF %float %46
%48 = OpAccessChain %_ptr_Uniform_float %__0 %int_0 %uint_1
%49 = OpLoad %float %48
%50 = OpFMul %float %47 %49
%51 = OpAccessChain %_ptr_Function_float %data %41
OpStore %51 %50
%42 = OpIAdd %int %41 %int_1
OpBranch %40
%45 = OpLabel
OpBranch %52
%52 = OpLabel
%53 = OpPhi %int %int_0 %45 %54 %55
%56 = OpSLessThan %bool %53 %int_9
OpLoopMerge %57 %55 None
OpBranchConditional %56 %58 %57
%58 = OpLabel
OpBranch %59
%59 = OpLabel
%60 = OpPhi %int %int_0 %58 %61 %62
%63 = OpSLessThan %bool %60 %int_10
OpLoopMerge %64 %62 None
OpBranchConditional %63 %65 %64
%65 = OpLabel
%66 = OpIAdd %int %53 %int_1
%67 = OpSLessThan %bool %60 %66
OpSelectionMerge %68 None
OpBranchConditional %67 %69 %68
%69 = OpLabel
OpBranch %62
%68 = OpLabel
%70 = OpAccessChain %_ptr_Function_float %data %53
%71 = OpLoad %float %70
%72 = OpAccessChain %_ptr_Function_float %data %60
%73 = OpLoad %float %72
%74 = OpAccessChain %_ptr_Input_float %gl_FragCoord %uint_1
%75 = OpLoad %float %74
%76 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %uint_1
%77 = OpLoad %float %76
%78 = OpFMul %float %77 %float_0_5
%79 = OpFOrdLessThan %bool %75 %78
OpSelectionMerge %80 None
OpBranchConditional %79 %81 %82
%81 = OpLabel
%83 = OpFOrdGreaterThan %bool %71 %73
OpBranch %80
%82 = OpLabel
%84 = OpFOrdLessThan %bool %71 %73
OpBranch %80
%80 = OpLabel
%85 = OpPhi %bool %83 %81 %84 %82
OpSelectionMerge %86 None
OpBranchConditional %85 %87 %86
%87 = OpLabel
%88 = OpLoad %float %70
%89 = OpLoad %float %72
OpStore %70 %89
OpStore %72 %88
OpBranch %86
%86 = OpLabel
OpBranch %62
%62 = OpLabel
%61 = OpIAdd %int %60 %int_1
OpBranch %59
%64 = OpLabel
OpBranch %55
%55 = OpLabel
%54 = OpIAdd %int %53 %int_1
OpBranch %52
%57 = OpLabel
%90 = OpAccessChain %_ptr_Input_float %gl_FragCoord %uint_0
%91 = OpLoad %float %90
%92 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %uint_0
%93 = OpLoad %float %92
%94 = OpFMul %float %93 %float_0_5
%95 = OpFOrdLessThan %bool %91 %94
OpSelectionMerge %96 None
OpBranchConditional %95 %97 %98
%97 = OpLabel
%99 = OpAccessChain %_ptr_Function_float %data %int_0
%100 = OpLoad %float %99
%101 = OpFMul %float %100 %float_0_100000001
%102 = OpAccessChain %_ptr_Function_float %data %int_5
%103 = OpLoad %float %102
%104 = OpFMul %float %103 %float_0_100000001
%105 = OpAccessChain %_ptr_Function_float %data %int_9
%106 = OpLoad %float %105
%107 = OpFMul %float %106 %float_0_100000001
%108 = OpCompositeConstruct %v4float %101 %104 %107 %float_1
OpStore %_GLF_color %108
OpBranch %96
%98 = OpLabel
%109 = OpAccessChain %_ptr_Function_float %data %int_5
%110 = OpLoad %float %109
%111 = OpFMul %float %110 %float_0_100000001
%112 = OpAccessChain %_ptr_Function_float %data %int_9
%113 = OpLoad %float %112
%114 = OpFMul %float %113 %float_0_100000001
%115 = OpAccessChain %_ptr_Function_float %data %int_0
%116 = OpLoad %float %115
%117 = OpFMul %float %116 %float_0_100000001
%118 = OpCompositeConstruct %v4float %111 %114 %117 %float_1
OpStore %_GLF_color %118
OpBranchConditional %true %96 %96
%96 = OpLabel
OpReturn
OpFunctionEnd