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