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