1a5a320547
`writeComposite` can write and deduplicate constants, so it's preferable to manually emitting an OpCompositeConstruct opcode. Change-Id: I0c4ac8f8a456c8561c0b6a90cd316934f20895e8 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/528638 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: John Stiles <johnstiles@google.com>
857 lines
28 KiB
JavaScript
857 lines
28 KiB
JavaScript
OpCapability Shader
|
|
%1 = OpExtInstImport "GLSL.std.450"
|
|
OpMemoryModel Logical GLSL450
|
|
OpEntryPoint Fragment %_entrypoint_v "_entrypoint" %sk_FragColor %sk_Clockwise
|
|
OpExecutionMode %_entrypoint_v OriginUpperLeft
|
|
OpName %sk_FragColor "sk_FragColor"
|
|
OpName %sk_Clockwise "sk_Clockwise"
|
|
OpName %_UniformBuffer "_UniformBuffer"
|
|
OpMemberName %_UniformBuffer 0 "colorGreen"
|
|
OpMemberName %_UniformBuffer 1 "colorRed"
|
|
OpName %_entrypoint_v "_entrypoint_v"
|
|
OpName %test_half_b "test_half_b"
|
|
OpName %ok "ok"
|
|
OpName %m1 "m1"
|
|
OpName %m3 "m3"
|
|
OpName %m4 "m4"
|
|
OpName %m5 "m5"
|
|
OpName %m7 "m7"
|
|
OpName %m9 "m9"
|
|
OpName %m10 "m10"
|
|
OpName %m11 "m11"
|
|
OpName %test_comma_b "test_comma_b"
|
|
OpName %x "x"
|
|
OpName %y "y"
|
|
OpName %main "main"
|
|
OpName %_0_ok "_0_ok"
|
|
OpName %_1_m1 "_1_m1"
|
|
OpName %_2_m3 "_2_m3"
|
|
OpName %_3_m4 "_3_m4"
|
|
OpName %_4_m5 "_4_m5"
|
|
OpName %_5_m7 "_5_m7"
|
|
OpName %_6_m9 "_6_m9"
|
|
OpName %_7_m10 "_7_m10"
|
|
OpName %_8_m11 "_8_m11"
|
|
OpDecorate %sk_FragColor RelaxedPrecision
|
|
OpDecorate %sk_FragColor Location 0
|
|
OpDecorate %sk_FragColor Index 0
|
|
OpDecorate %sk_Clockwise BuiltIn FrontFacing
|
|
OpMemberDecorate %_UniformBuffer 0 Offset 0
|
|
OpMemberDecorate %_UniformBuffer 0 RelaxedPrecision
|
|
OpMemberDecorate %_UniformBuffer 1 Offset 16
|
|
OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision
|
|
OpDecorate %_UniformBuffer Block
|
|
OpDecorate %12 Binding 0
|
|
OpDecorate %12 DescriptorSet 0
|
|
OpDecorate %m1 RelaxedPrecision
|
|
OpDecorate %37 RelaxedPrecision
|
|
OpDecorate %38 RelaxedPrecision
|
|
OpDecorate %39 RelaxedPrecision
|
|
OpDecorate %41 RelaxedPrecision
|
|
OpDecorate %44 RelaxedPrecision
|
|
OpDecorate %45 RelaxedPrecision
|
|
OpDecorate %m3 RelaxedPrecision
|
|
OpDecorate %58 RelaxedPrecision
|
|
OpDecorate %59 RelaxedPrecision
|
|
OpDecorate %62 RelaxedPrecision
|
|
OpDecorate %63 RelaxedPrecision
|
|
OpDecorate %m4 RelaxedPrecision
|
|
OpDecorate %76 RelaxedPrecision
|
|
OpDecorate %77 RelaxedPrecision
|
|
OpDecorate %78 RelaxedPrecision
|
|
OpDecorate %79 RelaxedPrecision
|
|
OpDecorate %82 RelaxedPrecision
|
|
OpDecorate %83 RelaxedPrecision
|
|
OpDecorate %94 RelaxedPrecision
|
|
OpDecorate %95 RelaxedPrecision
|
|
OpDecorate %96 RelaxedPrecision
|
|
OpDecorate %97 RelaxedPrecision
|
|
OpDecorate %100 RelaxedPrecision
|
|
OpDecorate %104 RelaxedPrecision
|
|
OpDecorate %105 RelaxedPrecision
|
|
OpDecorate %106 RelaxedPrecision
|
|
OpDecorate %m5 RelaxedPrecision
|
|
OpDecorate %121 RelaxedPrecision
|
|
OpDecorate %122 RelaxedPrecision
|
|
OpDecorate %123 RelaxedPrecision
|
|
OpDecorate %124 RelaxedPrecision
|
|
OpDecorate %125 RelaxedPrecision
|
|
OpDecorate %126 RelaxedPrecision
|
|
OpDecorate %129 RelaxedPrecision
|
|
OpDecorate %130 RelaxedPrecision
|
|
OpDecorate %131 RelaxedPrecision
|
|
OpDecorate %132 RelaxedPrecision
|
|
OpDecorate %143 RelaxedPrecision
|
|
OpDecorate %144 RelaxedPrecision
|
|
OpDecorate %145 RelaxedPrecision
|
|
OpDecorate %146 RelaxedPrecision
|
|
OpDecorate %147 RelaxedPrecision
|
|
OpDecorate %148 RelaxedPrecision
|
|
OpDecorate %149 RelaxedPrecision
|
|
OpDecorate %150 RelaxedPrecision
|
|
OpDecorate %151 RelaxedPrecision
|
|
OpDecorate %152 RelaxedPrecision
|
|
OpDecorate %155 RelaxedPrecision
|
|
OpDecorate %158 RelaxedPrecision
|
|
OpDecorate %159 RelaxedPrecision
|
|
OpDecorate %160 RelaxedPrecision
|
|
OpDecorate %m7 RelaxedPrecision
|
|
OpDecorate %173 RelaxedPrecision
|
|
OpDecorate %174 RelaxedPrecision
|
|
OpDecorate %175 RelaxedPrecision
|
|
OpDecorate %176 RelaxedPrecision
|
|
OpDecorate %179 RelaxedPrecision
|
|
OpDecorate %180 RelaxedPrecision
|
|
OpDecorate %m9 RelaxedPrecision
|
|
OpDecorate %196 RelaxedPrecision
|
|
OpDecorate %197 RelaxedPrecision
|
|
OpDecorate %198 RelaxedPrecision
|
|
OpDecorate %199 RelaxedPrecision
|
|
OpDecorate %200 RelaxedPrecision
|
|
OpDecorate %203 RelaxedPrecision
|
|
OpDecorate %204 RelaxedPrecision
|
|
OpDecorate %m10 RelaxedPrecision
|
|
OpDecorate %225 RelaxedPrecision
|
|
OpDecorate %226 RelaxedPrecision
|
|
OpDecorate %227 RelaxedPrecision
|
|
OpDecorate %228 RelaxedPrecision
|
|
OpDecorate %229 RelaxedPrecision
|
|
OpDecorate %230 RelaxedPrecision
|
|
OpDecorate %233 RelaxedPrecision
|
|
OpDecorate %234 RelaxedPrecision
|
|
OpDecorate %m11 RelaxedPrecision
|
|
OpDecorate %258 RelaxedPrecision
|
|
OpDecorate %259 RelaxedPrecision
|
|
OpDecorate %260 RelaxedPrecision
|
|
OpDecorate %261 RelaxedPrecision
|
|
OpDecorate %262 RelaxedPrecision
|
|
OpDecorate %263 RelaxedPrecision
|
|
OpDecorate %264 RelaxedPrecision
|
|
OpDecorate %265 RelaxedPrecision
|
|
OpDecorate %266 RelaxedPrecision
|
|
OpDecorate %267 RelaxedPrecision
|
|
OpDecorate %268 RelaxedPrecision
|
|
OpDecorate %269 RelaxedPrecision
|
|
OpDecorate %270 RelaxedPrecision
|
|
OpDecorate %271 RelaxedPrecision
|
|
OpDecorate %272 RelaxedPrecision
|
|
OpDecorate %273 RelaxedPrecision
|
|
OpDecorate %274 RelaxedPrecision
|
|
OpDecorate %275 RelaxedPrecision
|
|
OpDecorate %278 RelaxedPrecision
|
|
OpDecorate %279 RelaxedPrecision
|
|
OpDecorate %280 RelaxedPrecision
|
|
OpDecorate %281 RelaxedPrecision
|
|
OpDecorate %282 RelaxedPrecision
|
|
OpDecorate %283 RelaxedPrecision
|
|
OpDecorate %304 RelaxedPrecision
|
|
OpDecorate %327 RelaxedPrecision
|
|
OpDecorate %344 RelaxedPrecision
|
|
OpDecorate %361 RelaxedPrecision
|
|
OpDecorate %379 RelaxedPrecision
|
|
OpDecorate %401 RelaxedPrecision
|
|
OpDecorate %425 RelaxedPrecision
|
|
OpDecorate %442 RelaxedPrecision
|
|
OpDecorate %459 RelaxedPrecision
|
|
OpDecorate %481 RelaxedPrecision
|
|
OpDecorate %523 RelaxedPrecision
|
|
OpDecorate %548 RelaxedPrecision
|
|
OpDecorate %565 RelaxedPrecision
|
|
OpDecorate %567 RelaxedPrecision
|
|
OpDecorate %568 RelaxedPrecision
|
|
%float = OpTypeFloat 32
|
|
%v4float = OpTypeVector %float 4
|
|
%_ptr_Output_v4float = OpTypePointer Output %v4float
|
|
%sk_FragColor = OpVariable %_ptr_Output_v4float Output
|
|
%bool = OpTypeBool
|
|
%_ptr_Input_bool = OpTypePointer Input %bool
|
|
%sk_Clockwise = OpVariable %_ptr_Input_bool Input
|
|
%_UniformBuffer = OpTypeStruct %v4float %v4float
|
|
%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer
|
|
%12 = OpVariable %_ptr_Uniform__UniformBuffer Uniform
|
|
%void = OpTypeVoid
|
|
%17 = OpTypeFunction %void
|
|
%v2float = OpTypeVector %float 2
|
|
%float_0 = OpConstant %float 0
|
|
%21 = OpConstantComposite %v2float %float_0 %float_0
|
|
%_ptr_Function_v2float = OpTypePointer Function %v2float
|
|
%25 = OpTypeFunction %bool
|
|
%_ptr_Function_bool = OpTypePointer Function %bool
|
|
%true = OpConstantTrue %bool
|
|
%mat2v2float = OpTypeMatrix %v2float 2
|
|
%_ptr_Function_mat2v2float = OpTypePointer Function %mat2v2float
|
|
%float_1 = OpConstant %float 1
|
|
%float_2 = OpConstant %float 2
|
|
%float_3 = OpConstant %float 3
|
|
%float_4 = OpConstant %float 4
|
|
%37 = OpConstantComposite %v2float %float_1 %float_2
|
|
%38 = OpConstantComposite %v2float %float_3 %float_4
|
|
%false = OpConstantFalse %bool
|
|
%v2bool = OpTypeVector %bool 2
|
|
%float_6 = OpConstant %float 6
|
|
%77 = OpConstantComposite %v2float %float_6 %float_0
|
|
%78 = OpConstantComposite %v2float %float_0 %float_6
|
|
%float_12 = OpConstant %float 12
|
|
%float_18 = OpConstant %float 18
|
|
%float_24 = OpConstant %float 24
|
|
%104 = OpConstantComposite %v2float %float_6 %float_12
|
|
%105 = OpConstantComposite %v2float %float_18 %float_24
|
|
%int = OpTypeInt 32 1
|
|
%int_1 = OpConstant %int 1
|
|
%130 = OpConstantComposite %v2float %float_4 %float_0
|
|
%131 = OpConstantComposite %v2float %float_0 %float_4
|
|
%float_5 = OpConstant %float 5
|
|
%float_8 = OpConstant %float 8
|
|
%158 = OpConstantComposite %v2float %float_5 %float_2
|
|
%159 = OpConstantComposite %v2float %float_3 %float_8
|
|
%float_7 = OpConstant %float 7
|
|
%173 = OpConstantComposite %v2float %float_5 %float_6
|
|
%174 = OpConstantComposite %v2float %float_7 %float_8
|
|
%v3float = OpTypeVector %float 3
|
|
%mat3v3float = OpTypeMatrix %v3float 3
|
|
%_ptr_Function_mat3v3float = OpTypePointer Function %mat3v3float
|
|
%float_9 = OpConstant %float 9
|
|
%197 = OpConstantComposite %v3float %float_9 %float_0 %float_0
|
|
%198 = OpConstantComposite %v3float %float_0 %float_9 %float_0
|
|
%199 = OpConstantComposite %v3float %float_0 %float_0 %float_9
|
|
%v3bool = OpTypeVector %bool 3
|
|
%mat4v4float = OpTypeMatrix %v4float 4
|
|
%_ptr_Function_mat4v4float = OpTypePointer Function %mat4v4float
|
|
%float_11 = OpConstant %float 11
|
|
%226 = OpConstantComposite %v4float %float_11 %float_0 %float_0 %float_0
|
|
%227 = OpConstantComposite %v4float %float_0 %float_11 %float_0 %float_0
|
|
%228 = OpConstantComposite %v4float %float_0 %float_0 %float_11 %float_0
|
|
%229 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_11
|
|
%v4bool = OpTypeVector %bool 4
|
|
%float_20 = OpConstant %float 20
|
|
%258 = OpConstantComposite %v4float %float_20 %float_20 %float_20 %float_20
|
|
%279 = OpConstantComposite %v4float %float_9 %float_20 %float_20 %float_20
|
|
%280 = OpConstantComposite %v4float %float_20 %float_9 %float_20 %float_20
|
|
%281 = OpConstantComposite %v4float %float_20 %float_20 %float_9 %float_20
|
|
%282 = OpConstantComposite %v4float %float_20 %float_20 %float_20 %float_9
|
|
%321 = OpTypeFunction %v4float %_ptr_Function_v2float
|
|
%_ptr_Function_v4float = OpTypePointer Function %v4float
|
|
%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
|
|
%int_0 = OpConstant %int 0
|
|
%_entrypoint_v = OpFunction %void None %17
|
|
%18 = OpLabel
|
|
%22 = OpVariable %_ptr_Function_v2float Function
|
|
OpStore %22 %21
|
|
%24 = OpFunctionCall %v4float %main %22
|
|
OpStore %sk_FragColor %24
|
|
OpReturn
|
|
OpFunctionEnd
|
|
%test_half_b = OpFunction %bool None %25
|
|
%26 = OpLabel
|
|
%ok = OpVariable %_ptr_Function_bool Function
|
|
%m1 = OpVariable %_ptr_Function_mat2v2float Function
|
|
%m3 = OpVariable %_ptr_Function_mat2v2float Function
|
|
%m4 = OpVariable %_ptr_Function_mat2v2float Function
|
|
%m5 = OpVariable %_ptr_Function_mat2v2float Function
|
|
%m7 = OpVariable %_ptr_Function_mat2v2float Function
|
|
%m9 = OpVariable %_ptr_Function_mat3v3float Function
|
|
%m10 = OpVariable %_ptr_Function_mat4v4float Function
|
|
%m11 = OpVariable %_ptr_Function_mat4v4float Function
|
|
OpStore %ok %true
|
|
%39 = OpCompositeConstruct %mat2v2float %37 %38
|
|
OpStore %m1 %39
|
|
%41 = OpLoad %bool %ok
|
|
OpSelectionMerge %43 None
|
|
OpBranchConditional %41 %42 %43
|
|
%42 = OpLabel
|
|
%44 = OpLoad %mat2v2float %m1
|
|
%45 = OpCompositeConstruct %mat2v2float %37 %38
|
|
%47 = OpCompositeExtract %v2float %44 0
|
|
%48 = OpCompositeExtract %v2float %45 0
|
|
%49 = OpFOrdEqual %v2bool %47 %48
|
|
%50 = OpAll %bool %49
|
|
%51 = OpCompositeExtract %v2float %44 1
|
|
%52 = OpCompositeExtract %v2float %45 1
|
|
%53 = OpFOrdEqual %v2bool %51 %52
|
|
%54 = OpAll %bool %53
|
|
%55 = OpLogicalAnd %bool %50 %54
|
|
OpBranch %43
|
|
%43 = OpLabel
|
|
%56 = OpPhi %bool %false %26 %55 %42
|
|
OpStore %ok %56
|
|
%58 = OpLoad %mat2v2float %m1
|
|
OpStore %m3 %58
|
|
%59 = OpLoad %bool %ok
|
|
OpSelectionMerge %61 None
|
|
OpBranchConditional %59 %60 %61
|
|
%60 = OpLabel
|
|
%62 = OpLoad %mat2v2float %m3
|
|
%63 = OpCompositeConstruct %mat2v2float %37 %38
|
|
%64 = OpCompositeExtract %v2float %62 0
|
|
%65 = OpCompositeExtract %v2float %63 0
|
|
%66 = OpFOrdEqual %v2bool %64 %65
|
|
%67 = OpAll %bool %66
|
|
%68 = OpCompositeExtract %v2float %62 1
|
|
%69 = OpCompositeExtract %v2float %63 1
|
|
%70 = OpFOrdEqual %v2bool %68 %69
|
|
%71 = OpAll %bool %70
|
|
%72 = OpLogicalAnd %bool %67 %71
|
|
OpBranch %61
|
|
%61 = OpLabel
|
|
%73 = OpPhi %bool %false %43 %72 %60
|
|
OpStore %ok %73
|
|
%76 = OpCompositeConstruct %mat2v2float %77 %78
|
|
OpStore %m4 %76
|
|
%79 = OpLoad %bool %ok
|
|
OpSelectionMerge %81 None
|
|
OpBranchConditional %79 %80 %81
|
|
%80 = OpLabel
|
|
%82 = OpLoad %mat2v2float %m4
|
|
%83 = OpCompositeConstruct %mat2v2float %77 %78
|
|
%84 = OpCompositeExtract %v2float %82 0
|
|
%85 = OpCompositeExtract %v2float %83 0
|
|
%86 = OpFOrdEqual %v2bool %84 %85
|
|
%87 = OpAll %bool %86
|
|
%88 = OpCompositeExtract %v2float %82 1
|
|
%89 = OpCompositeExtract %v2float %83 1
|
|
%90 = OpFOrdEqual %v2bool %88 %89
|
|
%91 = OpAll %bool %90
|
|
%92 = OpLogicalAnd %bool %87 %91
|
|
OpBranch %81
|
|
%81 = OpLabel
|
|
%93 = OpPhi %bool %false %61 %92 %80
|
|
OpStore %ok %93
|
|
%94 = OpLoad %mat2v2float %m3
|
|
%95 = OpLoad %mat2v2float %m4
|
|
%96 = OpMatrixTimesMatrix %mat2v2float %94 %95
|
|
OpStore %m3 %96
|
|
%97 = OpLoad %bool %ok
|
|
OpSelectionMerge %99 None
|
|
OpBranchConditional %97 %98 %99
|
|
%98 = OpLabel
|
|
%100 = OpLoad %mat2v2float %m3
|
|
%106 = OpCompositeConstruct %mat2v2float %104 %105
|
|
%107 = OpCompositeExtract %v2float %100 0
|
|
%108 = OpCompositeExtract %v2float %106 0
|
|
%109 = OpFOrdEqual %v2bool %107 %108
|
|
%110 = OpAll %bool %109
|
|
%111 = OpCompositeExtract %v2float %100 1
|
|
%112 = OpCompositeExtract %v2float %106 1
|
|
%113 = OpFOrdEqual %v2bool %111 %112
|
|
%114 = OpAll %bool %113
|
|
%115 = OpLogicalAnd %bool %110 %114
|
|
OpBranch %99
|
|
%99 = OpLabel
|
|
%116 = OpPhi %bool %false %81 %115 %98
|
|
OpStore %ok %116
|
|
%120 = OpAccessChain %_ptr_Function_v2float %m1 %int_1
|
|
%121 = OpLoad %v2float %120
|
|
%122 = OpCompositeExtract %float %121 1
|
|
%124 = OpCompositeConstruct %v2float %122 %float_0
|
|
%125 = OpCompositeConstruct %v2float %float_0 %122
|
|
%123 = OpCompositeConstruct %mat2v2float %124 %125
|
|
OpStore %m5 %123
|
|
%126 = OpLoad %bool %ok
|
|
OpSelectionMerge %128 None
|
|
OpBranchConditional %126 %127 %128
|
|
%127 = OpLabel
|
|
%129 = OpLoad %mat2v2float %m5
|
|
%132 = OpCompositeConstruct %mat2v2float %130 %131
|
|
%133 = OpCompositeExtract %v2float %129 0
|
|
%134 = OpCompositeExtract %v2float %132 0
|
|
%135 = OpFOrdEqual %v2bool %133 %134
|
|
%136 = OpAll %bool %135
|
|
%137 = OpCompositeExtract %v2float %129 1
|
|
%138 = OpCompositeExtract %v2float %132 1
|
|
%139 = OpFOrdEqual %v2bool %137 %138
|
|
%140 = OpAll %bool %139
|
|
%141 = OpLogicalAnd %bool %136 %140
|
|
OpBranch %128
|
|
%128 = OpLabel
|
|
%142 = OpPhi %bool %false %99 %141 %127
|
|
OpStore %ok %142
|
|
%143 = OpLoad %mat2v2float %m1
|
|
%144 = OpLoad %mat2v2float %m5
|
|
%145 = OpCompositeExtract %v2float %143 0
|
|
%146 = OpCompositeExtract %v2float %144 0
|
|
%147 = OpFAdd %v2float %145 %146
|
|
%148 = OpCompositeExtract %v2float %143 1
|
|
%149 = OpCompositeExtract %v2float %144 1
|
|
%150 = OpFAdd %v2float %148 %149
|
|
%151 = OpCompositeConstruct %mat2v2float %147 %150
|
|
OpStore %m1 %151
|
|
%152 = OpLoad %bool %ok
|
|
OpSelectionMerge %154 None
|
|
OpBranchConditional %152 %153 %154
|
|
%153 = OpLabel
|
|
%155 = OpLoad %mat2v2float %m1
|
|
%160 = OpCompositeConstruct %mat2v2float %158 %159
|
|
%161 = OpCompositeExtract %v2float %155 0
|
|
%162 = OpCompositeExtract %v2float %160 0
|
|
%163 = OpFOrdEqual %v2bool %161 %162
|
|
%164 = OpAll %bool %163
|
|
%165 = OpCompositeExtract %v2float %155 1
|
|
%166 = OpCompositeExtract %v2float %160 1
|
|
%167 = OpFOrdEqual %v2bool %165 %166
|
|
%168 = OpAll %bool %167
|
|
%169 = OpLogicalAnd %bool %164 %168
|
|
OpBranch %154
|
|
%154 = OpLabel
|
|
%170 = OpPhi %bool %false %128 %169 %153
|
|
OpStore %ok %170
|
|
%175 = OpCompositeConstruct %mat2v2float %173 %174
|
|
OpStore %m7 %175
|
|
%176 = OpLoad %bool %ok
|
|
OpSelectionMerge %178 None
|
|
OpBranchConditional %176 %177 %178
|
|
%177 = OpLabel
|
|
%179 = OpLoad %mat2v2float %m7
|
|
%180 = OpCompositeConstruct %mat2v2float %173 %174
|
|
%181 = OpCompositeExtract %v2float %179 0
|
|
%182 = OpCompositeExtract %v2float %180 0
|
|
%183 = OpFOrdEqual %v2bool %181 %182
|
|
%184 = OpAll %bool %183
|
|
%185 = OpCompositeExtract %v2float %179 1
|
|
%186 = OpCompositeExtract %v2float %180 1
|
|
%187 = OpFOrdEqual %v2bool %185 %186
|
|
%188 = OpAll %bool %187
|
|
%189 = OpLogicalAnd %bool %184 %188
|
|
OpBranch %178
|
|
%178 = OpLabel
|
|
%190 = OpPhi %bool %false %154 %189 %177
|
|
OpStore %ok %190
|
|
%196 = OpCompositeConstruct %mat3v3float %197 %198 %199
|
|
OpStore %m9 %196
|
|
%200 = OpLoad %bool %ok
|
|
OpSelectionMerge %202 None
|
|
OpBranchConditional %200 %201 %202
|
|
%201 = OpLabel
|
|
%203 = OpLoad %mat3v3float %m9
|
|
%204 = OpCompositeConstruct %mat3v3float %197 %198 %199
|
|
%206 = OpCompositeExtract %v3float %203 0
|
|
%207 = OpCompositeExtract %v3float %204 0
|
|
%208 = OpFOrdEqual %v3bool %206 %207
|
|
%209 = OpAll %bool %208
|
|
%210 = OpCompositeExtract %v3float %203 1
|
|
%211 = OpCompositeExtract %v3float %204 1
|
|
%212 = OpFOrdEqual %v3bool %210 %211
|
|
%213 = OpAll %bool %212
|
|
%214 = OpLogicalAnd %bool %209 %213
|
|
%215 = OpCompositeExtract %v3float %203 2
|
|
%216 = OpCompositeExtract %v3float %204 2
|
|
%217 = OpFOrdEqual %v3bool %215 %216
|
|
%218 = OpAll %bool %217
|
|
%219 = OpLogicalAnd %bool %214 %218
|
|
OpBranch %202
|
|
%202 = OpLabel
|
|
%220 = OpPhi %bool %false %178 %219 %201
|
|
OpStore %ok %220
|
|
%225 = OpCompositeConstruct %mat4v4float %226 %227 %228 %229
|
|
OpStore %m10 %225
|
|
%230 = OpLoad %bool %ok
|
|
OpSelectionMerge %232 None
|
|
OpBranchConditional %230 %231 %232
|
|
%231 = OpLabel
|
|
%233 = OpLoad %mat4v4float %m10
|
|
%234 = OpCompositeConstruct %mat4v4float %226 %227 %228 %229
|
|
%236 = OpCompositeExtract %v4float %233 0
|
|
%237 = OpCompositeExtract %v4float %234 0
|
|
%238 = OpFOrdEqual %v4bool %236 %237
|
|
%239 = OpAll %bool %238
|
|
%240 = OpCompositeExtract %v4float %233 1
|
|
%241 = OpCompositeExtract %v4float %234 1
|
|
%242 = OpFOrdEqual %v4bool %240 %241
|
|
%243 = OpAll %bool %242
|
|
%244 = OpLogicalAnd %bool %239 %243
|
|
%245 = OpCompositeExtract %v4float %233 2
|
|
%246 = OpCompositeExtract %v4float %234 2
|
|
%247 = OpFOrdEqual %v4bool %245 %246
|
|
%248 = OpAll %bool %247
|
|
%249 = OpLogicalAnd %bool %244 %248
|
|
%250 = OpCompositeExtract %v4float %233 3
|
|
%251 = OpCompositeExtract %v4float %234 3
|
|
%252 = OpFOrdEqual %v4bool %250 %251
|
|
%253 = OpAll %bool %252
|
|
%254 = OpLogicalAnd %bool %249 %253
|
|
OpBranch %232
|
|
%232 = OpLabel
|
|
%255 = OpPhi %bool %false %202 %254 %231
|
|
OpStore %ok %255
|
|
%259 = OpCompositeConstruct %mat4v4float %258 %258 %258 %258
|
|
OpStore %m11 %259
|
|
%260 = OpLoad %mat4v4float %m11
|
|
%261 = OpLoad %mat4v4float %m10
|
|
%262 = OpCompositeExtract %v4float %260 0
|
|
%263 = OpCompositeExtract %v4float %261 0
|
|
%264 = OpFSub %v4float %262 %263
|
|
%265 = OpCompositeExtract %v4float %260 1
|
|
%266 = OpCompositeExtract %v4float %261 1
|
|
%267 = OpFSub %v4float %265 %266
|
|
%268 = OpCompositeExtract %v4float %260 2
|
|
%269 = OpCompositeExtract %v4float %261 2
|
|
%270 = OpFSub %v4float %268 %269
|
|
%271 = OpCompositeExtract %v4float %260 3
|
|
%272 = OpCompositeExtract %v4float %261 3
|
|
%273 = OpFSub %v4float %271 %272
|
|
%274 = OpCompositeConstruct %mat4v4float %264 %267 %270 %273
|
|
OpStore %m11 %274
|
|
%275 = OpLoad %bool %ok
|
|
OpSelectionMerge %277 None
|
|
OpBranchConditional %275 %276 %277
|
|
%276 = OpLabel
|
|
%278 = OpLoad %mat4v4float %m11
|
|
%283 = OpCompositeConstruct %mat4v4float %279 %280 %281 %282
|
|
%284 = OpCompositeExtract %v4float %278 0
|
|
%285 = OpCompositeExtract %v4float %283 0
|
|
%286 = OpFOrdEqual %v4bool %284 %285
|
|
%287 = OpAll %bool %286
|
|
%288 = OpCompositeExtract %v4float %278 1
|
|
%289 = OpCompositeExtract %v4float %283 1
|
|
%290 = OpFOrdEqual %v4bool %288 %289
|
|
%291 = OpAll %bool %290
|
|
%292 = OpLogicalAnd %bool %287 %291
|
|
%293 = OpCompositeExtract %v4float %278 2
|
|
%294 = OpCompositeExtract %v4float %283 2
|
|
%295 = OpFOrdEqual %v4bool %293 %294
|
|
%296 = OpAll %bool %295
|
|
%297 = OpLogicalAnd %bool %292 %296
|
|
%298 = OpCompositeExtract %v4float %278 3
|
|
%299 = OpCompositeExtract %v4float %283 3
|
|
%300 = OpFOrdEqual %v4bool %298 %299
|
|
%301 = OpAll %bool %300
|
|
%302 = OpLogicalAnd %bool %297 %301
|
|
OpBranch %277
|
|
%277 = OpLabel
|
|
%303 = OpPhi %bool %false %232 %302 %276
|
|
OpStore %ok %303
|
|
%304 = OpLoad %bool %ok
|
|
OpReturnValue %304
|
|
OpFunctionEnd
|
|
%test_comma_b = OpFunction %bool None %25
|
|
%305 = OpLabel
|
|
%x = OpVariable %_ptr_Function_mat2v2float Function
|
|
%y = OpVariable %_ptr_Function_mat2v2float Function
|
|
%308 = OpCompositeConstruct %mat2v2float %37 %38
|
|
OpStore %x %308
|
|
%309 = OpCompositeConstruct %mat2v2float %37 %38
|
|
OpStore %y %309
|
|
%310 = OpLoad %mat2v2float %x
|
|
%311 = OpLoad %mat2v2float %y
|
|
%312 = OpCompositeExtract %v2float %310 0
|
|
%313 = OpCompositeExtract %v2float %311 0
|
|
%314 = OpFOrdEqual %v2bool %312 %313
|
|
%315 = OpAll %bool %314
|
|
%316 = OpCompositeExtract %v2float %310 1
|
|
%317 = OpCompositeExtract %v2float %311 1
|
|
%318 = OpFOrdEqual %v2bool %316 %317
|
|
%319 = OpAll %bool %318
|
|
%320 = OpLogicalAnd %bool %315 %319
|
|
OpReturnValue %320
|
|
OpFunctionEnd
|
|
%main = OpFunction %v4float None %321
|
|
%322 = OpFunctionParameter %_ptr_Function_v2float
|
|
%323 = OpLabel
|
|
%_0_ok = OpVariable %_ptr_Function_bool Function
|
|
%_1_m1 = OpVariable %_ptr_Function_mat2v2float Function
|
|
%_2_m3 = OpVariable %_ptr_Function_mat2v2float Function
|
|
%_3_m4 = OpVariable %_ptr_Function_mat2v2float Function
|
|
%_4_m5 = OpVariable %_ptr_Function_mat2v2float Function
|
|
%_5_m7 = OpVariable %_ptr_Function_mat2v2float Function
|
|
%_6_m9 = OpVariable %_ptr_Function_mat3v3float Function
|
|
%_7_m10 = OpVariable %_ptr_Function_mat4v4float Function
|
|
%_8_m11 = OpVariable %_ptr_Function_mat4v4float Function
|
|
%557 = OpVariable %_ptr_Function_v4float Function
|
|
OpStore %_0_ok %true
|
|
%326 = OpCompositeConstruct %mat2v2float %37 %38
|
|
OpStore %_1_m1 %326
|
|
%327 = OpLoad %bool %_0_ok
|
|
OpSelectionMerge %329 None
|
|
OpBranchConditional %327 %328 %329
|
|
%328 = OpLabel
|
|
%330 = OpLoad %mat2v2float %_1_m1
|
|
%331 = OpCompositeConstruct %mat2v2float %37 %38
|
|
%332 = OpCompositeExtract %v2float %330 0
|
|
%333 = OpCompositeExtract %v2float %331 0
|
|
%334 = OpFOrdEqual %v2bool %332 %333
|
|
%335 = OpAll %bool %334
|
|
%336 = OpCompositeExtract %v2float %330 1
|
|
%337 = OpCompositeExtract %v2float %331 1
|
|
%338 = OpFOrdEqual %v2bool %336 %337
|
|
%339 = OpAll %bool %338
|
|
%340 = OpLogicalAnd %bool %335 %339
|
|
OpBranch %329
|
|
%329 = OpLabel
|
|
%341 = OpPhi %bool %false %323 %340 %328
|
|
OpStore %_0_ok %341
|
|
%343 = OpLoad %mat2v2float %_1_m1
|
|
OpStore %_2_m3 %343
|
|
%344 = OpLoad %bool %_0_ok
|
|
OpSelectionMerge %346 None
|
|
OpBranchConditional %344 %345 %346
|
|
%345 = OpLabel
|
|
%347 = OpLoad %mat2v2float %_2_m3
|
|
%348 = OpCompositeConstruct %mat2v2float %37 %38
|
|
%349 = OpCompositeExtract %v2float %347 0
|
|
%350 = OpCompositeExtract %v2float %348 0
|
|
%351 = OpFOrdEqual %v2bool %349 %350
|
|
%352 = OpAll %bool %351
|
|
%353 = OpCompositeExtract %v2float %347 1
|
|
%354 = OpCompositeExtract %v2float %348 1
|
|
%355 = OpFOrdEqual %v2bool %353 %354
|
|
%356 = OpAll %bool %355
|
|
%357 = OpLogicalAnd %bool %352 %356
|
|
OpBranch %346
|
|
%346 = OpLabel
|
|
%358 = OpPhi %bool %false %329 %357 %345
|
|
OpStore %_0_ok %358
|
|
%360 = OpCompositeConstruct %mat2v2float %77 %78
|
|
OpStore %_3_m4 %360
|
|
%361 = OpLoad %bool %_0_ok
|
|
OpSelectionMerge %363 None
|
|
OpBranchConditional %361 %362 %363
|
|
%362 = OpLabel
|
|
%364 = OpLoad %mat2v2float %_3_m4
|
|
%365 = OpCompositeConstruct %mat2v2float %77 %78
|
|
%366 = OpCompositeExtract %v2float %364 0
|
|
%367 = OpCompositeExtract %v2float %365 0
|
|
%368 = OpFOrdEqual %v2bool %366 %367
|
|
%369 = OpAll %bool %368
|
|
%370 = OpCompositeExtract %v2float %364 1
|
|
%371 = OpCompositeExtract %v2float %365 1
|
|
%372 = OpFOrdEqual %v2bool %370 %371
|
|
%373 = OpAll %bool %372
|
|
%374 = OpLogicalAnd %bool %369 %373
|
|
OpBranch %363
|
|
%363 = OpLabel
|
|
%375 = OpPhi %bool %false %346 %374 %362
|
|
OpStore %_0_ok %375
|
|
%376 = OpLoad %mat2v2float %_2_m3
|
|
%377 = OpLoad %mat2v2float %_3_m4
|
|
%378 = OpMatrixTimesMatrix %mat2v2float %376 %377
|
|
OpStore %_2_m3 %378
|
|
%379 = OpLoad %bool %_0_ok
|
|
OpSelectionMerge %381 None
|
|
OpBranchConditional %379 %380 %381
|
|
%380 = OpLabel
|
|
%382 = OpLoad %mat2v2float %_2_m3
|
|
%383 = OpCompositeConstruct %mat2v2float %104 %105
|
|
%384 = OpCompositeExtract %v2float %382 0
|
|
%385 = OpCompositeExtract %v2float %383 0
|
|
%386 = OpFOrdEqual %v2bool %384 %385
|
|
%387 = OpAll %bool %386
|
|
%388 = OpCompositeExtract %v2float %382 1
|
|
%389 = OpCompositeExtract %v2float %383 1
|
|
%390 = OpFOrdEqual %v2bool %388 %389
|
|
%391 = OpAll %bool %390
|
|
%392 = OpLogicalAnd %bool %387 %391
|
|
OpBranch %381
|
|
%381 = OpLabel
|
|
%393 = OpPhi %bool %false %363 %392 %380
|
|
OpStore %_0_ok %393
|
|
%395 = OpAccessChain %_ptr_Function_v2float %_1_m1 %int_1
|
|
%396 = OpLoad %v2float %395
|
|
%397 = OpCompositeExtract %float %396 1
|
|
%399 = OpCompositeConstruct %v2float %397 %float_0
|
|
%400 = OpCompositeConstruct %v2float %float_0 %397
|
|
%398 = OpCompositeConstruct %mat2v2float %399 %400
|
|
OpStore %_4_m5 %398
|
|
%401 = OpLoad %bool %_0_ok
|
|
OpSelectionMerge %403 None
|
|
OpBranchConditional %401 %402 %403
|
|
%402 = OpLabel
|
|
%404 = OpLoad %mat2v2float %_4_m5
|
|
%405 = OpCompositeConstruct %mat2v2float %130 %131
|
|
%406 = OpCompositeExtract %v2float %404 0
|
|
%407 = OpCompositeExtract %v2float %405 0
|
|
%408 = OpFOrdEqual %v2bool %406 %407
|
|
%409 = OpAll %bool %408
|
|
%410 = OpCompositeExtract %v2float %404 1
|
|
%411 = OpCompositeExtract %v2float %405 1
|
|
%412 = OpFOrdEqual %v2bool %410 %411
|
|
%413 = OpAll %bool %412
|
|
%414 = OpLogicalAnd %bool %409 %413
|
|
OpBranch %403
|
|
%403 = OpLabel
|
|
%415 = OpPhi %bool %false %381 %414 %402
|
|
OpStore %_0_ok %415
|
|
%416 = OpLoad %mat2v2float %_1_m1
|
|
%417 = OpLoad %mat2v2float %_4_m5
|
|
%418 = OpCompositeExtract %v2float %416 0
|
|
%419 = OpCompositeExtract %v2float %417 0
|
|
%420 = OpFAdd %v2float %418 %419
|
|
%421 = OpCompositeExtract %v2float %416 1
|
|
%422 = OpCompositeExtract %v2float %417 1
|
|
%423 = OpFAdd %v2float %421 %422
|
|
%424 = OpCompositeConstruct %mat2v2float %420 %423
|
|
OpStore %_1_m1 %424
|
|
%425 = OpLoad %bool %_0_ok
|
|
OpSelectionMerge %427 None
|
|
OpBranchConditional %425 %426 %427
|
|
%426 = OpLabel
|
|
%428 = OpLoad %mat2v2float %_1_m1
|
|
%429 = OpCompositeConstruct %mat2v2float %158 %159
|
|
%430 = OpCompositeExtract %v2float %428 0
|
|
%431 = OpCompositeExtract %v2float %429 0
|
|
%432 = OpFOrdEqual %v2bool %430 %431
|
|
%433 = OpAll %bool %432
|
|
%434 = OpCompositeExtract %v2float %428 1
|
|
%435 = OpCompositeExtract %v2float %429 1
|
|
%436 = OpFOrdEqual %v2bool %434 %435
|
|
%437 = OpAll %bool %436
|
|
%438 = OpLogicalAnd %bool %433 %437
|
|
OpBranch %427
|
|
%427 = OpLabel
|
|
%439 = OpPhi %bool %false %403 %438 %426
|
|
OpStore %_0_ok %439
|
|
%441 = OpCompositeConstruct %mat2v2float %173 %174
|
|
OpStore %_5_m7 %441
|
|
%442 = OpLoad %bool %_0_ok
|
|
OpSelectionMerge %444 None
|
|
OpBranchConditional %442 %443 %444
|
|
%443 = OpLabel
|
|
%445 = OpLoad %mat2v2float %_5_m7
|
|
%446 = OpCompositeConstruct %mat2v2float %173 %174
|
|
%447 = OpCompositeExtract %v2float %445 0
|
|
%448 = OpCompositeExtract %v2float %446 0
|
|
%449 = OpFOrdEqual %v2bool %447 %448
|
|
%450 = OpAll %bool %449
|
|
%451 = OpCompositeExtract %v2float %445 1
|
|
%452 = OpCompositeExtract %v2float %446 1
|
|
%453 = OpFOrdEqual %v2bool %451 %452
|
|
%454 = OpAll %bool %453
|
|
%455 = OpLogicalAnd %bool %450 %454
|
|
OpBranch %444
|
|
%444 = OpLabel
|
|
%456 = OpPhi %bool %false %427 %455 %443
|
|
OpStore %_0_ok %456
|
|
%458 = OpCompositeConstruct %mat3v3float %197 %198 %199
|
|
OpStore %_6_m9 %458
|
|
%459 = OpLoad %bool %_0_ok
|
|
OpSelectionMerge %461 None
|
|
OpBranchConditional %459 %460 %461
|
|
%460 = OpLabel
|
|
%462 = OpLoad %mat3v3float %_6_m9
|
|
%463 = OpCompositeConstruct %mat3v3float %197 %198 %199
|
|
%464 = OpCompositeExtract %v3float %462 0
|
|
%465 = OpCompositeExtract %v3float %463 0
|
|
%466 = OpFOrdEqual %v3bool %464 %465
|
|
%467 = OpAll %bool %466
|
|
%468 = OpCompositeExtract %v3float %462 1
|
|
%469 = OpCompositeExtract %v3float %463 1
|
|
%470 = OpFOrdEqual %v3bool %468 %469
|
|
%471 = OpAll %bool %470
|
|
%472 = OpLogicalAnd %bool %467 %471
|
|
%473 = OpCompositeExtract %v3float %462 2
|
|
%474 = OpCompositeExtract %v3float %463 2
|
|
%475 = OpFOrdEqual %v3bool %473 %474
|
|
%476 = OpAll %bool %475
|
|
%477 = OpLogicalAnd %bool %472 %476
|
|
OpBranch %461
|
|
%461 = OpLabel
|
|
%478 = OpPhi %bool %false %444 %477 %460
|
|
OpStore %_0_ok %478
|
|
%480 = OpCompositeConstruct %mat4v4float %226 %227 %228 %229
|
|
OpStore %_7_m10 %480
|
|
%481 = OpLoad %bool %_0_ok
|
|
OpSelectionMerge %483 None
|
|
OpBranchConditional %481 %482 %483
|
|
%482 = OpLabel
|
|
%484 = OpLoad %mat4v4float %_7_m10
|
|
%485 = OpCompositeConstruct %mat4v4float %226 %227 %228 %229
|
|
%486 = OpCompositeExtract %v4float %484 0
|
|
%487 = OpCompositeExtract %v4float %485 0
|
|
%488 = OpFOrdEqual %v4bool %486 %487
|
|
%489 = OpAll %bool %488
|
|
%490 = OpCompositeExtract %v4float %484 1
|
|
%491 = OpCompositeExtract %v4float %485 1
|
|
%492 = OpFOrdEqual %v4bool %490 %491
|
|
%493 = OpAll %bool %492
|
|
%494 = OpLogicalAnd %bool %489 %493
|
|
%495 = OpCompositeExtract %v4float %484 2
|
|
%496 = OpCompositeExtract %v4float %485 2
|
|
%497 = OpFOrdEqual %v4bool %495 %496
|
|
%498 = OpAll %bool %497
|
|
%499 = OpLogicalAnd %bool %494 %498
|
|
%500 = OpCompositeExtract %v4float %484 3
|
|
%501 = OpCompositeExtract %v4float %485 3
|
|
%502 = OpFOrdEqual %v4bool %500 %501
|
|
%503 = OpAll %bool %502
|
|
%504 = OpLogicalAnd %bool %499 %503
|
|
OpBranch %483
|
|
%483 = OpLabel
|
|
%505 = OpPhi %bool %false %461 %504 %482
|
|
OpStore %_0_ok %505
|
|
%507 = OpCompositeConstruct %mat4v4float %258 %258 %258 %258
|
|
OpStore %_8_m11 %507
|
|
%508 = OpLoad %mat4v4float %_8_m11
|
|
%509 = OpLoad %mat4v4float %_7_m10
|
|
%510 = OpCompositeExtract %v4float %508 0
|
|
%511 = OpCompositeExtract %v4float %509 0
|
|
%512 = OpFSub %v4float %510 %511
|
|
%513 = OpCompositeExtract %v4float %508 1
|
|
%514 = OpCompositeExtract %v4float %509 1
|
|
%515 = OpFSub %v4float %513 %514
|
|
%516 = OpCompositeExtract %v4float %508 2
|
|
%517 = OpCompositeExtract %v4float %509 2
|
|
%518 = OpFSub %v4float %516 %517
|
|
%519 = OpCompositeExtract %v4float %508 3
|
|
%520 = OpCompositeExtract %v4float %509 3
|
|
%521 = OpFSub %v4float %519 %520
|
|
%522 = OpCompositeConstruct %mat4v4float %512 %515 %518 %521
|
|
OpStore %_8_m11 %522
|
|
%523 = OpLoad %bool %_0_ok
|
|
OpSelectionMerge %525 None
|
|
OpBranchConditional %523 %524 %525
|
|
%524 = OpLabel
|
|
%526 = OpLoad %mat4v4float %_8_m11
|
|
%527 = OpCompositeConstruct %mat4v4float %279 %280 %281 %282
|
|
%528 = OpCompositeExtract %v4float %526 0
|
|
%529 = OpCompositeExtract %v4float %527 0
|
|
%530 = OpFOrdEqual %v4bool %528 %529
|
|
%531 = OpAll %bool %530
|
|
%532 = OpCompositeExtract %v4float %526 1
|
|
%533 = OpCompositeExtract %v4float %527 1
|
|
%534 = OpFOrdEqual %v4bool %532 %533
|
|
%535 = OpAll %bool %534
|
|
%536 = OpLogicalAnd %bool %531 %535
|
|
%537 = OpCompositeExtract %v4float %526 2
|
|
%538 = OpCompositeExtract %v4float %527 2
|
|
%539 = OpFOrdEqual %v4bool %537 %538
|
|
%540 = OpAll %bool %539
|
|
%541 = OpLogicalAnd %bool %536 %540
|
|
%542 = OpCompositeExtract %v4float %526 3
|
|
%543 = OpCompositeExtract %v4float %527 3
|
|
%544 = OpFOrdEqual %v4bool %542 %543
|
|
%545 = OpAll %bool %544
|
|
%546 = OpLogicalAnd %bool %541 %545
|
|
OpBranch %525
|
|
%525 = OpLabel
|
|
%547 = OpPhi %bool %false %483 %546 %524
|
|
OpStore %_0_ok %547
|
|
%548 = OpLoad %bool %_0_ok
|
|
OpSelectionMerge %550 None
|
|
OpBranchConditional %548 %549 %550
|
|
%549 = OpLabel
|
|
%551 = OpFunctionCall %bool %test_half_b
|
|
OpBranch %550
|
|
%550 = OpLabel
|
|
%552 = OpPhi %bool %false %525 %551 %549
|
|
OpSelectionMerge %554 None
|
|
OpBranchConditional %552 %553 %554
|
|
%553 = OpLabel
|
|
%555 = OpFunctionCall %bool %test_comma_b
|
|
OpBranch %554
|
|
%554 = OpLabel
|
|
%556 = OpPhi %bool %false %550 %555 %553
|
|
OpSelectionMerge %561 None
|
|
OpBranchConditional %556 %559 %560
|
|
%559 = OpLabel
|
|
%562 = OpAccessChain %_ptr_Uniform_v4float %12 %int_0
|
|
%565 = OpLoad %v4float %562
|
|
OpStore %557 %565
|
|
OpBranch %561
|
|
%560 = OpLabel
|
|
%566 = OpAccessChain %_ptr_Uniform_v4float %12 %int_1
|
|
%567 = OpLoad %v4float %566
|
|
OpStore %557 %567
|
|
OpBranch %561
|
|
%561 = OpLabel
|
|
%568 = OpLoad %v4float %557
|
|
OpReturnValue %568
|
|
OpFunctionEnd
|