1OpCapability Shader 2%1 = OpExtInstImport "GLSL.std.450" 3OpMemoryModel Logical GLSL450 4OpEntryPoint Fragment %_entrypoint_v "_entrypoint" %sk_FragColor %sk_Clockwise 5OpExecutionMode %_entrypoint_v OriginUpperLeft 6OpName %sk_FragColor "sk_FragColor" 7OpName %sk_Clockwise "sk_Clockwise" 8OpName %_UniformBuffer "_UniformBuffer" 9OpMemberName %_UniformBuffer 0 "colorGreen" 10OpMemberName %_UniformBuffer 1 "colorRed" 11OpMemberName %_UniformBuffer 2 "testMatrix2x2" 12OpMemberName %_UniformBuffer 3 "testMatrix3x3" 13OpName %_entrypoint_v "_entrypoint_v" 14OpName %main "main" 15OpName %_0_ok "_0_ok" 16OpDecorate %sk_FragColor RelaxedPrecision 17OpDecorate %sk_FragColor Location 0 18OpDecorate %sk_FragColor Index 0 19OpDecorate %sk_Clockwise BuiltIn FrontFacing 20OpMemberDecorate %_UniformBuffer 0 Offset 0 21OpMemberDecorate %_UniformBuffer 0 RelaxedPrecision 22OpMemberDecorate %_UniformBuffer 1 Offset 16 23OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision 24OpMemberDecorate %_UniformBuffer 2 Offset 32 25OpMemberDecorate %_UniformBuffer 2 ColMajor 26OpMemberDecorate %_UniformBuffer 2 MatrixStride 16 27OpMemberDecorate %_UniformBuffer 2 RelaxedPrecision 28OpMemberDecorate %_UniformBuffer 3 Offset 64 29OpMemberDecorate %_UniformBuffer 3 ColMajor 30OpMemberDecorate %_UniformBuffer 3 MatrixStride 16 31OpMemberDecorate %_UniformBuffer 3 RelaxedPrecision 32OpDecorate %_UniformBuffer Block 33OpDecorate %10 Binding 0 34OpDecorate %10 DescriptorSet 0 35OpDecorate %33 RelaxedPrecision 36OpDecorate %40 RelaxedPrecision 37OpDecorate %45 RelaxedPrecision 38OpDecorate %46 RelaxedPrecision 39OpDecorate %47 RelaxedPrecision 40OpDecorate %59 RelaxedPrecision 41OpDecorate %65 RelaxedPrecision 42OpDecorate %71 RelaxedPrecision 43OpDecorate %72 RelaxedPrecision 44OpDecorate %73 RelaxedPrecision 45OpDecorate %74 RelaxedPrecision 46OpDecorate %91 RelaxedPrecision 47OpDecorate %95 RelaxedPrecision 48OpDecorate %97 RelaxedPrecision 49OpDecorate %98 RelaxedPrecision 50OpDecorate %99 RelaxedPrecision 51OpDecorate %110 RelaxedPrecision 52OpDecorate %114 RelaxedPrecision 53OpDecorate %115 RelaxedPrecision 54OpDecorate %116 RelaxedPrecision 55OpDecorate %117 RelaxedPrecision 56OpDecorate %118 RelaxedPrecision 57OpDecorate %134 RelaxedPrecision 58OpDecorate %143 RelaxedPrecision 59OpDecorate %146 RelaxedPrecision 60OpDecorate %147 RelaxedPrecision 61%float = OpTypeFloat 32 62%v4float = OpTypeVector %float 4 63%_ptr_Output_v4float = OpTypePointer Output %v4float 64%sk_FragColor = OpVariable %_ptr_Output_v4float Output 65%bool = OpTypeBool 66%_ptr_Input_bool = OpTypePointer Input %bool 67%sk_Clockwise = OpVariable %_ptr_Input_bool Input 68%v2float = OpTypeVector %float 2 69%mat2v2float = OpTypeMatrix %v2float 2 70%v3float = OpTypeVector %float 3 71%mat3v3float = OpTypeMatrix %v3float 3 72%_UniformBuffer = OpTypeStruct %v4float %v4float %mat2v2float %mat3v3float 73%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer 74%10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform 75%void = OpTypeVoid 76%19 = OpTypeFunction %void 77%float_0 = OpConstant %float 0 78%22 = OpConstantComposite %v2float %float_0 %float_0 79%_ptr_Function_v2float = OpTypePointer Function %v2float 80%26 = OpTypeFunction %v4float %_ptr_Function_v2float 81%_ptr_Function_bool = OpTypePointer Function %bool 82%true = OpConstantTrue %bool 83%false = OpConstantFalse %bool 84%_ptr_Uniform_mat2v2float = OpTypePointer Uniform %mat2v2float 85%int = OpTypeInt 32 1 86%int_2 = OpConstant %int 2 87%float_1 = OpConstant %float 1 88%float_2 = OpConstant %float 2 89%float_3 = OpConstant %float 3 90%float_4 = OpConstant %float 4 91%v2bool = OpTypeVector %bool 2 92%_ptr_Uniform_mat3v3float = OpTypePointer Uniform %mat3v3float 93%int_3 = OpConstant %int 3 94%float_5 = OpConstant %float 5 95%float_6 = OpConstant %float 6 96%float_7 = OpConstant %float 7 97%float_8 = OpConstant %float 8 98%float_9 = OpConstant %float 9 99%v3bool = OpTypeVector %bool 3 100%float_100 = OpConstant %float 100 101%_ptr_Function_v4float = OpTypePointer Function %v4float 102%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float 103%int_0 = OpConstant %int 0 104%int_1 = OpConstant %int 1 105%_entrypoint_v = OpFunction %void None %19 106%20 = OpLabel 107%23 = OpVariable %_ptr_Function_v2float Function 108OpStore %23 %22 109%25 = OpFunctionCall %v4float %main %23 110OpStore %sk_FragColor %25 111OpReturn 112OpFunctionEnd 113%main = OpFunction %v4float None %26 114%27 = OpFunctionParameter %_ptr_Function_v2float 115%28 = OpLabel 116%_0_ok = OpVariable %_ptr_Function_bool Function 117%135 = OpVariable %_ptr_Function_v4float Function 118OpStore %_0_ok %true 119%33 = OpLoad %bool %_0_ok 120OpSelectionMerge %35 None 121OpBranchConditional %33 %34 %35 122%34 = OpLabel 123%36 = OpAccessChain %_ptr_Uniform_mat2v2float %10 %int_2 124%40 = OpLoad %mat2v2float %36 125%45 = OpCompositeConstruct %v2float %float_1 %float_2 126%46 = OpCompositeConstruct %v2float %float_3 %float_4 127%47 = OpCompositeConstruct %mat2v2float %45 %46 128%49 = OpCompositeExtract %v2float %40 0 129%50 = OpCompositeExtract %v2float %47 0 130%51 = OpFOrdEqual %v2bool %49 %50 131%52 = OpAll %bool %51 132%53 = OpCompositeExtract %v2float %40 1 133%54 = OpCompositeExtract %v2float %47 1 134%55 = OpFOrdEqual %v2bool %53 %54 135%56 = OpAll %bool %55 136%57 = OpLogicalAnd %bool %52 %56 137OpBranch %35 138%35 = OpLabel 139%58 = OpPhi %bool %false %28 %57 %34 140OpStore %_0_ok %58 141%59 = OpLoad %bool %_0_ok 142OpSelectionMerge %61 None 143OpBranchConditional %59 %60 %61 144%60 = OpLabel 145%62 = OpAccessChain %_ptr_Uniform_mat3v3float %10 %int_3 146%65 = OpLoad %mat3v3float %62 147%71 = OpCompositeConstruct %v3float %float_1 %float_2 %float_3 148%72 = OpCompositeConstruct %v3float %float_4 %float_5 %float_6 149%73 = OpCompositeConstruct %v3float %float_7 %float_8 %float_9 150%74 = OpCompositeConstruct %mat3v3float %71 %72 %73 151%76 = OpCompositeExtract %v3float %65 0 152%77 = OpCompositeExtract %v3float %74 0 153%78 = OpFOrdEqual %v3bool %76 %77 154%79 = OpAll %bool %78 155%80 = OpCompositeExtract %v3float %65 1 156%81 = OpCompositeExtract %v3float %74 1 157%82 = OpFOrdEqual %v3bool %80 %81 158%83 = OpAll %bool %82 159%84 = OpLogicalAnd %bool %79 %83 160%85 = OpCompositeExtract %v3float %65 2 161%86 = OpCompositeExtract %v3float %74 2 162%87 = OpFOrdEqual %v3bool %85 %86 163%88 = OpAll %bool %87 164%89 = OpLogicalAnd %bool %84 %88 165OpBranch %61 166%61 = OpLabel 167%90 = OpPhi %bool %false %35 %89 %60 168OpStore %_0_ok %90 169%91 = OpLoad %bool %_0_ok 170OpSelectionMerge %93 None 171OpBranchConditional %91 %92 %93 172%92 = OpLabel 173%94 = OpAccessChain %_ptr_Uniform_mat2v2float %10 %int_2 174%95 = OpLoad %mat2v2float %94 175%98 = OpCompositeConstruct %v2float %float_100 %float_0 176%99 = OpCompositeConstruct %v2float %float_0 %float_100 177%97 = OpCompositeConstruct %mat2v2float %98 %99 178%100 = OpCompositeExtract %v2float %95 0 179%101 = OpCompositeExtract %v2float %97 0 180%102 = OpFOrdNotEqual %v2bool %100 %101 181%103 = OpAny %bool %102 182%104 = OpCompositeExtract %v2float %95 1 183%105 = OpCompositeExtract %v2float %97 1 184%106 = OpFOrdNotEqual %v2bool %104 %105 185%107 = OpAny %bool %106 186%108 = OpLogicalOr %bool %103 %107 187OpBranch %93 188%93 = OpLabel 189%109 = OpPhi %bool %false %61 %108 %92 190OpStore %_0_ok %109 191%110 = OpLoad %bool %_0_ok 192OpSelectionMerge %112 None 193OpBranchConditional %110 %111 %112 194%111 = OpLabel 195%113 = OpAccessChain %_ptr_Uniform_mat3v3float %10 %int_3 196%114 = OpLoad %mat3v3float %113 197%115 = OpCompositeConstruct %v3float %float_9 %float_8 %float_7 198%116 = OpCompositeConstruct %v3float %float_6 %float_5 %float_4 199%117 = OpCompositeConstruct %v3float %float_3 %float_2 %float_1 200%118 = OpCompositeConstruct %mat3v3float %115 %116 %117 201%119 = OpCompositeExtract %v3float %114 0 202%120 = OpCompositeExtract %v3float %118 0 203%121 = OpFOrdNotEqual %v3bool %119 %120 204%122 = OpAny %bool %121 205%123 = OpCompositeExtract %v3float %114 1 206%124 = OpCompositeExtract %v3float %118 1 207%125 = OpFOrdNotEqual %v3bool %123 %124 208%126 = OpAny %bool %125 209%127 = OpLogicalOr %bool %122 %126 210%128 = OpCompositeExtract %v3float %114 2 211%129 = OpCompositeExtract %v3float %118 2 212%130 = OpFOrdNotEqual %v3bool %128 %129 213%131 = OpAny %bool %130 214%132 = OpLogicalOr %bool %127 %131 215OpBranch %112 216%112 = OpLabel 217%133 = OpPhi %bool %false %93 %132 %111 218OpStore %_0_ok %133 219%134 = OpLoad %bool %_0_ok 220OpSelectionMerge %139 None 221OpBranchConditional %134 %137 %138 222%137 = OpLabel 223%140 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 224%143 = OpLoad %v4float %140 225OpStore %135 %143 226OpBranch %139 227%138 = OpLabel 228%144 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1 229%146 = OpLoad %v4float %144 230OpStore %135 %146 231OpBranch %139 232%139 = OpLabel 233%147 = OpLoad %v4float %135 234OpReturnValue %147 235OpFunctionEnd 236