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