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" 11OpName %_entrypoint_v "_entrypoint_v" 12OpName %test_half_b "test_half_b" 13OpName %m1 "m1" 14OpName %m3 "m3" 15OpName %m4 "m4" 16OpName %m5 "m5" 17OpName %m6 "m6" 18OpName %m10 "m10" 19OpName %m11 "m11" 20OpName %main "main" 21OpName %_2_m1 "_2_m1" 22OpName %_4_m3 "_4_m3" 23OpName %_5_m4 "_5_m4" 24OpName %_6_m5 "_6_m5" 25OpName %_7_m6 "_7_m6" 26OpName %_10_m10 "_10_m10" 27OpName %_11_m11 "_11_m11" 28OpDecorate %sk_FragColor RelaxedPrecision 29OpDecorate %sk_FragColor Location 0 30OpDecorate %sk_FragColor Index 0 31OpDecorate %sk_Clockwise BuiltIn FrontFacing 32OpMemberDecorate %_UniformBuffer 0 Offset 0 33OpMemberDecorate %_UniformBuffer 0 RelaxedPrecision 34OpMemberDecorate %_UniformBuffer 1 Offset 16 35OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision 36OpDecorate %_UniformBuffer Block 37OpDecorate %11 Binding 0 38OpDecorate %11 DescriptorSet 0 39OpDecorate %m1 RelaxedPrecision 40OpDecorate %33 RelaxedPrecision 41OpDecorate %34 RelaxedPrecision 42OpDecorate %35 RelaxedPrecision 43OpDecorate %m3 RelaxedPrecision 44OpDecorate %37 RelaxedPrecision 45OpDecorate %m4 RelaxedPrecision 46OpDecorate %39 RelaxedPrecision 47OpDecorate %40 RelaxedPrecision 48OpDecorate %41 RelaxedPrecision 49OpDecorate %42 RelaxedPrecision 50OpDecorate %43 RelaxedPrecision 51OpDecorate %44 RelaxedPrecision 52OpDecorate %m5 RelaxedPrecision 53OpDecorate %49 RelaxedPrecision 54OpDecorate %50 RelaxedPrecision 55OpDecorate %51 RelaxedPrecision 56OpDecorate %52 RelaxedPrecision 57OpDecorate %53 RelaxedPrecision 58OpDecorate %m6 RelaxedPrecision 59OpDecorate %55 RelaxedPrecision 60OpDecorate %56 RelaxedPrecision 61OpDecorate %57 RelaxedPrecision 62OpDecorate %58 RelaxedPrecision 63OpDecorate %59 RelaxedPrecision 64OpDecorate %60 RelaxedPrecision 65OpDecorate %61 RelaxedPrecision 66OpDecorate %62 RelaxedPrecision 67OpDecorate %63 RelaxedPrecision 68OpDecorate %64 RelaxedPrecision 69OpDecorate %65 RelaxedPrecision 70OpDecorate %66 RelaxedPrecision 71OpDecorate %m10 RelaxedPrecision 72OpDecorate %70 RelaxedPrecision 73OpDecorate %71 RelaxedPrecision 74OpDecorate %72 RelaxedPrecision 75OpDecorate %73 RelaxedPrecision 76OpDecorate %74 RelaxedPrecision 77OpDecorate %m11 RelaxedPrecision 78OpDecorate %76 RelaxedPrecision 79OpDecorate %77 RelaxedPrecision 80OpDecorate %78 RelaxedPrecision 81OpDecorate %79 RelaxedPrecision 82OpDecorate %80 RelaxedPrecision 83OpDecorate %81 RelaxedPrecision 84OpDecorate %82 RelaxedPrecision 85OpDecorate %83 RelaxedPrecision 86OpDecorate %84 RelaxedPrecision 87OpDecorate %85 RelaxedPrecision 88OpDecorate %86 RelaxedPrecision 89OpDecorate %87 RelaxedPrecision 90OpDecorate %88 RelaxedPrecision 91OpDecorate %89 RelaxedPrecision 92OpDecorate %90 RelaxedPrecision 93OpDecorate %91 RelaxedPrecision 94OpDecorate %92 RelaxedPrecision 95OpDecorate %93 RelaxedPrecision 96OpDecorate %94 RelaxedPrecision 97OpDecorate %95 RelaxedPrecision 98OpDecorate %172 RelaxedPrecision 99OpDecorate %175 RelaxedPrecision 100OpDecorate %176 RelaxedPrecision 101%float = OpTypeFloat 32 102%v4float = OpTypeVector %float 4 103%_ptr_Output_v4float = OpTypePointer Output %v4float 104%sk_FragColor = OpVariable %_ptr_Output_v4float Output 105%bool = OpTypeBool 106%_ptr_Input_bool = OpTypePointer Input %bool 107%sk_Clockwise = OpVariable %_ptr_Input_bool Input 108%_UniformBuffer = OpTypeStruct %v4float %v4float 109%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer 110%11 = OpVariable %_ptr_Uniform__UniformBuffer Uniform 111%void = OpTypeVoid 112%16 = OpTypeFunction %void 113%v2float = OpTypeVector %float 2 114%float_0 = OpConstant %float 0 115%20 = OpConstantComposite %v2float %float_0 %float_0 116%_ptr_Function_v2float = OpTypePointer Function %v2float 117%24 = OpTypeFunction %bool 118%mat2v2float = OpTypeMatrix %v2float 2 119%_ptr_Function_mat2v2float = OpTypePointer Function %mat2v2float 120%float_1 = OpConstant %float 1 121%float_2 = OpConstant %float 2 122%float_3 = OpConstant %float 3 123%float_4 = OpConstant %float 4 124%int = OpTypeInt 32 1 125%int_0 = OpConstant %int 0 126%mat4v4float = OpTypeMatrix %v4float 4 127%_ptr_Function_mat4v4float = OpTypePointer Function %mat4v4float 128%true = OpConstantTrue %bool 129%97 = OpTypeFunction %v4float %_ptr_Function_v2float 130%false = OpConstantFalse %bool 131%_ptr_Function_v4float = OpTypePointer Function %v4float 132%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float 133%int_1 = OpConstant %int 1 134%_entrypoint_v = OpFunction %void None %16 135%17 = OpLabel 136%21 = OpVariable %_ptr_Function_v2float Function 137OpStore %21 %20 138%23 = OpFunctionCall %v4float %main %21 139OpStore %sk_FragColor %23 140OpReturn 141OpFunctionEnd 142%test_half_b = OpFunction %bool None %24 143%25 = OpLabel 144%m1 = OpVariable %_ptr_Function_mat2v2float Function 145%m3 = OpVariable %_ptr_Function_mat2v2float Function 146%m4 = OpVariable %_ptr_Function_mat2v2float Function 147%m5 = OpVariable %_ptr_Function_mat2v2float Function 148%m6 = OpVariable %_ptr_Function_mat2v2float Function 149%m10 = OpVariable %_ptr_Function_mat4v4float Function 150%m11 = OpVariable %_ptr_Function_mat4v4float Function 151%34 = OpCompositeConstruct %v2float %float_1 %float_2 152%35 = OpCompositeConstruct %v2float %float_3 %float_4 153%33 = OpCompositeConstruct %mat2v2float %34 %35 154OpStore %m1 %33 155%37 = OpLoad %mat2v2float %m1 156OpStore %m3 %37 157%40 = OpCompositeConstruct %v2float %float_1 %float_0 158%41 = OpCompositeConstruct %v2float %float_0 %float_1 159%39 = OpCompositeConstruct %mat2v2float %40 %41 160OpStore %m4 %39 161%42 = OpLoad %mat2v2float %m3 162%43 = OpLoad %mat2v2float %m4 163%44 = OpMatrixTimesMatrix %mat2v2float %42 %43 164OpStore %m3 %44 165%48 = OpAccessChain %_ptr_Function_v2float %m1 %int_0 166%49 = OpLoad %v2float %48 167%50 = OpCompositeExtract %float %49 0 168%52 = OpCompositeConstruct %v2float %50 %float_0 169%53 = OpCompositeConstruct %v2float %float_0 %50 170%51 = OpCompositeConstruct %mat2v2float %52 %53 171OpStore %m5 %51 172%56 = OpCompositeConstruct %v2float %float_1 %float_2 173%57 = OpCompositeConstruct %v2float %float_3 %float_4 174%55 = OpCompositeConstruct %mat2v2float %56 %57 175OpStore %m6 %55 176%58 = OpLoad %mat2v2float %m6 177%59 = OpLoad %mat2v2float %m5 178%60 = OpCompositeExtract %v2float %58 0 179%61 = OpCompositeExtract %v2float %59 0 180%62 = OpFAdd %v2float %60 %61 181%63 = OpCompositeExtract %v2float %58 1 182%64 = OpCompositeExtract %v2float %59 1 183%65 = OpFAdd %v2float %63 %64 184%66 = OpCompositeConstruct %mat2v2float %62 %65 185OpStore %m6 %66 186%71 = OpCompositeConstruct %v4float %float_1 %float_0 %float_0 %float_0 187%72 = OpCompositeConstruct %v4float %float_0 %float_1 %float_0 %float_0 188%73 = OpCompositeConstruct %v4float %float_0 %float_0 %float_1 %float_0 189%74 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %float_1 190%70 = OpCompositeConstruct %mat4v4float %71 %72 %73 %74 191OpStore %m10 %70 192%77 = OpCompositeConstruct %v4float %float_2 %float_0 %float_0 %float_0 193%78 = OpCompositeConstruct %v4float %float_0 %float_2 %float_0 %float_0 194%79 = OpCompositeConstruct %v4float %float_0 %float_0 %float_2 %float_0 195%80 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %float_2 196%76 = OpCompositeConstruct %mat4v4float %77 %78 %79 %80 197OpStore %m11 %76 198%81 = OpLoad %mat4v4float %m11 199%82 = OpLoad %mat4v4float %m10 200%83 = OpCompositeExtract %v4float %81 0 201%84 = OpCompositeExtract %v4float %82 0 202%85 = OpFSub %v4float %83 %84 203%86 = OpCompositeExtract %v4float %81 1 204%87 = OpCompositeExtract %v4float %82 1 205%88 = OpFSub %v4float %86 %87 206%89 = OpCompositeExtract %v4float %81 2 207%90 = OpCompositeExtract %v4float %82 2 208%91 = OpFSub %v4float %89 %90 209%92 = OpCompositeExtract %v4float %81 3 210%93 = OpCompositeExtract %v4float %82 3 211%94 = OpFSub %v4float %92 %93 212%95 = OpCompositeConstruct %mat4v4float %85 %88 %91 %94 213OpStore %m11 %95 214OpReturnValue %true 215OpFunctionEnd 216%main = OpFunction %v4float None %97 217%98 = OpFunctionParameter %_ptr_Function_v2float 218%99 = OpLabel 219%_2_m1 = OpVariable %_ptr_Function_mat2v2float Function 220%_4_m3 = OpVariable %_ptr_Function_mat2v2float Function 221%_5_m4 = OpVariable %_ptr_Function_mat2v2float Function 222%_6_m5 = OpVariable %_ptr_Function_mat2v2float Function 223%_7_m6 = OpVariable %_ptr_Function_mat2v2float Function 224%_10_m10 = OpVariable %_ptr_Function_mat4v4float Function 225%_11_m11 = OpVariable %_ptr_Function_mat4v4float Function 226%165 = OpVariable %_ptr_Function_v4float Function 227%102 = OpCompositeConstruct %v2float %float_1 %float_2 228%103 = OpCompositeConstruct %v2float %float_3 %float_4 229%101 = OpCompositeConstruct %mat2v2float %102 %103 230OpStore %_2_m1 %101 231%105 = OpLoad %mat2v2float %_2_m1 232OpStore %_4_m3 %105 233%108 = OpCompositeConstruct %v2float %float_1 %float_0 234%109 = OpCompositeConstruct %v2float %float_0 %float_1 235%107 = OpCompositeConstruct %mat2v2float %108 %109 236OpStore %_5_m4 %107 237%110 = OpLoad %mat2v2float %_4_m3 238%111 = OpLoad %mat2v2float %_5_m4 239%112 = OpMatrixTimesMatrix %mat2v2float %110 %111 240OpStore %_4_m3 %112 241%114 = OpAccessChain %_ptr_Function_v2float %_2_m1 %int_0 242%115 = OpLoad %v2float %114 243%116 = OpCompositeExtract %float %115 0 244%118 = OpCompositeConstruct %v2float %116 %float_0 245%119 = OpCompositeConstruct %v2float %float_0 %116 246%117 = OpCompositeConstruct %mat2v2float %118 %119 247OpStore %_6_m5 %117 248%122 = OpCompositeConstruct %v2float %float_1 %float_2 249%123 = OpCompositeConstruct %v2float %float_3 %float_4 250%121 = OpCompositeConstruct %mat2v2float %122 %123 251OpStore %_7_m6 %121 252%124 = OpLoad %mat2v2float %_7_m6 253%125 = OpLoad %mat2v2float %_6_m5 254%126 = OpCompositeExtract %v2float %124 0 255%127 = OpCompositeExtract %v2float %125 0 256%128 = OpFAdd %v2float %126 %127 257%129 = OpCompositeExtract %v2float %124 1 258%130 = OpCompositeExtract %v2float %125 1 259%131 = OpFAdd %v2float %129 %130 260%132 = OpCompositeConstruct %mat2v2float %128 %131 261OpStore %_7_m6 %132 262%135 = OpCompositeConstruct %v4float %float_1 %float_0 %float_0 %float_0 263%136 = OpCompositeConstruct %v4float %float_0 %float_1 %float_0 %float_0 264%137 = OpCompositeConstruct %v4float %float_0 %float_0 %float_1 %float_0 265%138 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %float_1 266%134 = OpCompositeConstruct %mat4v4float %135 %136 %137 %138 267OpStore %_10_m10 %134 268%141 = OpCompositeConstruct %v4float %float_2 %float_0 %float_0 %float_0 269%142 = OpCompositeConstruct %v4float %float_0 %float_2 %float_0 %float_0 270%143 = OpCompositeConstruct %v4float %float_0 %float_0 %float_2 %float_0 271%144 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %float_2 272%140 = OpCompositeConstruct %mat4v4float %141 %142 %143 %144 273OpStore %_11_m11 %140 274%145 = OpLoad %mat4v4float %_11_m11 275%146 = OpLoad %mat4v4float %_10_m10 276%147 = OpCompositeExtract %v4float %145 0 277%148 = OpCompositeExtract %v4float %146 0 278%149 = OpFSub %v4float %147 %148 279%150 = OpCompositeExtract %v4float %145 1 280%151 = OpCompositeExtract %v4float %146 1 281%152 = OpFSub %v4float %150 %151 282%153 = OpCompositeExtract %v4float %145 2 283%154 = OpCompositeExtract %v4float %146 2 284%155 = OpFSub %v4float %153 %154 285%156 = OpCompositeExtract %v4float %145 3 286%157 = OpCompositeExtract %v4float %146 3 287%158 = OpFSub %v4float %156 %157 288%159 = OpCompositeConstruct %mat4v4float %149 %152 %155 %158 289OpStore %_11_m11 %159 290OpSelectionMerge %162 None 291OpBranchConditional %true %161 %162 292%161 = OpLabel 293%163 = OpFunctionCall %bool %test_half_b 294OpBranch %162 295%162 = OpLabel 296%164 = OpPhi %bool %false %99 %163 %161 297OpSelectionMerge %169 None 298OpBranchConditional %164 %167 %168 299%167 = OpLabel 300%170 = OpAccessChain %_ptr_Uniform_v4float %11 %int_0 301%172 = OpLoad %v4float %170 302OpStore %165 %172 303OpBranch %169 304%168 = OpLabel 305%173 = OpAccessChain %_ptr_Uniform_v4float %11 %int_1 306%175 = OpLoad %v4float %173 307OpStore %165 %175 308OpBranch %169 309%169 = OpLabel 310%176 = OpLoad %v4float %165 311OpReturnValue %176 312OpFunctionEnd 313