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