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