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 "testInput" 10OpMemberName %_UniformBuffer 1 "testMatrix2x2" 11OpMemberName %_UniformBuffer 2 "colorGreen" 12OpMemberName %_UniformBuffer 3 "colorRed" 13OpName %_entrypoint_v "_entrypoint_v" 14OpName %main "main" 15OpName %inputVal "inputVal" 16OpName %expectedB "expectedB" 17OpDecorate %sk_FragColor RelaxedPrecision 18OpDecorate %sk_FragColor Location 0 19OpDecorate %sk_FragColor Index 0 20OpDecorate %sk_Clockwise BuiltIn FrontFacing 21OpMemberDecorate %_UniformBuffer 0 Offset 0 22OpMemberDecorate %_UniformBuffer 1 Offset 16 23OpMemberDecorate %_UniformBuffer 1 ColMajor 24OpMemberDecorate %_UniformBuffer 1 MatrixStride 16 25OpMemberDecorate %_UniformBuffer 2 Offset 48 26OpMemberDecorate %_UniformBuffer 2 RelaxedPrecision 27OpMemberDecorate %_UniformBuffer 3 Offset 64 28OpMemberDecorate %_UniformBuffer 3 RelaxedPrecision 29OpDecorate %_UniformBuffer Block 30OpDecorate %10 Binding 0 31OpDecorate %10 DescriptorSet 0 32OpDecorate %99 RelaxedPrecision 33OpDecorate %102 RelaxedPrecision 34OpDecorate %103 RelaxedPrecision 35%float = OpTypeFloat 32 36%v4float = OpTypeVector %float 4 37%_ptr_Output_v4float = OpTypePointer Output %v4float 38%sk_FragColor = OpVariable %_ptr_Output_v4float Output 39%bool = OpTypeBool 40%_ptr_Input_bool = OpTypePointer Input %bool 41%sk_Clockwise = OpVariable %_ptr_Input_bool Input 42%v2float = OpTypeVector %float 2 43%mat2v2float = OpTypeMatrix %v2float 2 44%_UniformBuffer = OpTypeStruct %float %mat2v2float %v4float %v4float 45%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer 46%10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform 47%void = OpTypeVoid 48%17 = OpTypeFunction %void 49%float_0 = OpConstant %float 0 50%20 = OpConstantComposite %v2float %float_0 %float_0 51%_ptr_Function_v2float = OpTypePointer Function %v2float 52%24 = OpTypeFunction %v4float %_ptr_Function_v2float 53%_ptr_Function_v4float = OpTypePointer Function %v4float 54%_ptr_Uniform_mat2v2float = OpTypePointer Uniform %mat2v2float 55%int = OpTypeInt 32 1 56%int_1 = OpConstant %int 1 57%float_1 = OpConstant %float 1 58%float_n1 = OpConstant %float -1 59%41 = OpConstantComposite %v4float %float_1 %float_1 %float_n1 %float_n1 60%v4int = OpTypeVector %int 4 61%_ptr_Function_v4int = OpTypePointer Function %v4int 62%int_1065353216 = OpConstant %int 1065353216 63%int_1073741824 = OpConstant %int 1073741824 64%int_n1069547520 = OpConstant %int -1069547520 65%int_n1065353216 = OpConstant %int -1065353216 66%50 = OpConstantComposite %v4int %int_1065353216 %int_1073741824 %int_n1069547520 %int_n1065353216 67%false = OpConstantFalse %bool 68%v2int = OpTypeVector %int 2 69%v2bool = OpTypeVector %bool 2 70%v3float = OpTypeVector %float 3 71%v3int = OpTypeVector %int 3 72%v3bool = OpTypeVector %bool 3 73%v4bool = OpTypeVector %bool 4 74%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float 75%int_2 = OpConstant %int 2 76%int_3 = OpConstant %int 3 77%_entrypoint_v = OpFunction %void None %17 78%18 = OpLabel 79%21 = OpVariable %_ptr_Function_v2float Function 80OpStore %21 %20 81%23 = OpFunctionCall %v4float %main %21 82OpStore %sk_FragColor %23 83OpReturn 84OpFunctionEnd 85%main = OpFunction %v4float None %24 86%25 = OpFunctionParameter %_ptr_Function_v2float 87%26 = OpLabel 88%inputVal = OpVariable %_ptr_Function_v4float Function 89%expectedB = OpVariable %_ptr_Function_v4int Function 90%92 = OpVariable %_ptr_Function_v4float Function 91%29 = OpAccessChain %_ptr_Uniform_mat2v2float %10 %int_1 92%33 = OpLoad %mat2v2float %29 93%34 = OpCompositeExtract %float %33 0 0 94%35 = OpCompositeExtract %float %33 0 1 95%36 = OpCompositeExtract %float %33 1 0 96%37 = OpCompositeExtract %float %33 1 1 97%38 = OpCompositeConstruct %v4float %34 %35 %36 %37 98%42 = OpFMul %v4float %38 %41 99OpStore %inputVal %42 100OpStore %expectedB %50 101%52 = OpLoad %v4float %inputVal 102%53 = OpCompositeExtract %float %52 0 103%55 = OpLoad %v4int %expectedB 104%56 = OpCompositeExtract %int %55 0 105%54 = OpBitcast %float %56 106%57 = OpFOrdEqual %bool %53 %54 107OpSelectionMerge %59 None 108OpBranchConditional %57 %58 %59 109%58 = OpLabel 110%60 = OpLoad %v4float %inputVal 111%61 = OpVectorShuffle %v2float %60 %60 0 1 112%63 = OpLoad %v4int %expectedB 113%64 = OpVectorShuffle %v2int %63 %63 0 1 114%62 = OpBitcast %v2float %64 115%66 = OpFOrdEqual %v2bool %61 %62 116%68 = OpAll %bool %66 117OpBranch %59 118%59 = OpLabel 119%69 = OpPhi %bool %false %26 %68 %58 120OpSelectionMerge %71 None 121OpBranchConditional %69 %70 %71 122%70 = OpLabel 123%72 = OpLoad %v4float %inputVal 124%73 = OpVectorShuffle %v3float %72 %72 0 1 2 125%76 = OpLoad %v4int %expectedB 126%77 = OpVectorShuffle %v3int %76 %76 0 1 2 127%75 = OpBitcast %v3float %77 128%79 = OpFOrdEqual %v3bool %73 %75 129%81 = OpAll %bool %79 130OpBranch %71 131%71 = OpLabel 132%82 = OpPhi %bool %false %59 %81 %70 133OpSelectionMerge %84 None 134OpBranchConditional %82 %83 %84 135%83 = OpLabel 136%85 = OpLoad %v4float %inputVal 137%87 = OpLoad %v4int %expectedB 138%86 = OpBitcast %v4float %87 139%88 = OpFOrdEqual %v4bool %85 %86 140%90 = OpAll %bool %88 141OpBranch %84 142%84 = OpLabel 143%91 = OpPhi %bool %false %71 %90 %83 144OpSelectionMerge %95 None 145OpBranchConditional %91 %93 %94 146%93 = OpLabel 147%96 = OpAccessChain %_ptr_Uniform_v4float %10 %int_2 148%99 = OpLoad %v4float %96 149OpStore %92 %99 150OpBranch %95 151%94 = OpLabel 152%100 = OpAccessChain %_ptr_Uniform_v4float %10 %int_3 153%102 = OpLoad %v4float %100 154OpStore %92 %102 155OpBranch %95 156%95 = OpLabel 157%103 = OpLoad %v4float %92 158OpReturnValue %103 159OpFunctionEnd 160