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_ivec_b "test_ivec_b" 13OpName %one "one" 14OpName %two "two" 15OpName %ok "ok" 16OpName %test_mat_b "test_mat_b" 17OpName %ok_0 "ok" 18OpName %main "main" 19OpName %_0_one "_0_one" 20OpName %_1_two "_1_two" 21OpName %_4_ok "_4_ok" 22OpDecorate %sk_FragColor RelaxedPrecision 23OpDecorate %sk_FragColor Location 0 24OpDecorate %sk_FragColor Index 0 25OpDecorate %sk_Clockwise BuiltIn FrontFacing 26OpMemberDecorate %_UniformBuffer 0 Offset 0 27OpMemberDecorate %_UniformBuffer 0 RelaxedPrecision 28OpMemberDecorate %_UniformBuffer 1 Offset 16 29OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision 30OpDecorate %_UniformBuffer Block 31OpDecorate %12 Binding 0 32OpDecorate %12 DescriptorSet 0 33OpDecorate %37 RelaxedPrecision 34OpDecorate %57 RelaxedPrecision 35OpDecorate %60 RelaxedPrecision 36OpDecorate %70 RelaxedPrecision 37OpDecorate %73 RelaxedPrecision 38OpDecorate %75 RelaxedPrecision 39OpDecorate %80 RelaxedPrecision 40OpDecorate %82 RelaxedPrecision 41OpDecorate %83 RelaxedPrecision 42OpDecorate %84 RelaxedPrecision 43OpDecorate %85 RelaxedPrecision 44OpDecorate %90 RelaxedPrecision 45OpDecorate %94 RelaxedPrecision 46OpDecorate %95 RelaxedPrecision 47OpDecorate %100 RelaxedPrecision 48OpDecorate %104 RelaxedPrecision 49OpDecorate %121 RelaxedPrecision 50OpDecorate %123 RelaxedPrecision 51OpDecorate %124 RelaxedPrecision 52%float = OpTypeFloat 32 53%v4float = OpTypeVector %float 4 54%_ptr_Output_v4float = OpTypePointer Output %v4float 55%sk_FragColor = OpVariable %_ptr_Output_v4float Output 56%bool = OpTypeBool 57%_ptr_Input_bool = OpTypePointer Input %bool 58%sk_Clockwise = OpVariable %_ptr_Input_bool Input 59%_UniformBuffer = OpTypeStruct %v4float %v4float 60%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer 61%12 = OpVariable %_ptr_Uniform__UniformBuffer Uniform 62%void = OpTypeVoid 63%17 = OpTypeFunction %void 64%v2float = OpTypeVector %float 2 65%float_0 = OpConstant %float 0 66%21 = OpConstantComposite %v2float %float_0 %float_0 67%_ptr_Function_v2float = OpTypePointer Function %v2float 68%25 = OpTypeFunction %bool 69%int = OpTypeInt 32 1 70%_ptr_Function_int = OpTypePointer Function %int 71%int_1 = OpConstant %int 1 72%int_2 = OpConstant %int 2 73%_ptr_Function_bool = OpTypePointer Function %bool 74%true = OpConstantTrue %bool 75%false = OpConstantFalse %bool 76%v2int = OpTypeVector %int 2 77%v2bool = OpTypeVector %bool 2 78%61 = OpTypeFunction %v4float %_ptr_Function_v2float 79%_ptr_Function_float = OpTypePointer Function %float 80%float_1 = OpConstant %float 1 81%float_2 = OpConstant %float 2 82%v3float = OpTypeVector %float 3 83%v4bool = OpTypeVector %bool 4 84%float_n2 = OpConstant %float -2 85%94 = OpConstantComposite %v2float %float_1 %float_n2 86%_ptr_Function_v4float = OpTypePointer Function %v4float 87%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float 88%int_0 = OpConstant %int 0 89%_entrypoint_v = OpFunction %void None %17 90%18 = OpLabel 91%22 = OpVariable %_ptr_Function_v2float Function 92OpStore %22 %21 93%24 = OpFunctionCall %v4float %main %22 94OpStore %sk_FragColor %24 95OpReturn 96OpFunctionEnd 97%test_ivec_b = OpFunction %bool None %25 98%26 = OpLabel 99%one = OpVariable %_ptr_Function_int Function 100%two = OpVariable %_ptr_Function_int Function 101%ok = OpVariable %_ptr_Function_bool Function 102OpStore %one %int_1 103OpStore %two %int_2 104OpStore %ok %true 105%37 = OpLoad %bool %ok 106OpSelectionMerge %39 None 107OpBranchConditional %37 %38 %39 108%38 = OpLabel 109%43 = OpLoad %int %one 110%42 = OpSNegate %int %43 111%44 = OpLoad %int %one 112%45 = OpLoad %int %one 113%46 = OpIAdd %int %44 %45 114%47 = OpCompositeConstruct %v2int %42 %46 115%40 = OpSNegate %v2int %47 116%49 = OpLoad %int %one 117%50 = OpLoad %int %two 118%51 = OpISub %int %49 %50 119%52 = OpCompositeConstruct %v2int %51 %int_2 120%48 = OpSNegate %v2int %52 121%53 = OpIEqual %v2bool %40 %48 122%55 = OpAll %bool %53 123OpBranch %39 124%39 = OpLabel 125%56 = OpPhi %bool %false %26 %55 %38 126OpStore %ok %56 127%57 = OpLoad %bool %ok 128OpReturnValue %57 129OpFunctionEnd 130%test_mat_b = OpFunction %bool None %25 131%58 = OpLabel 132%ok_0 = OpVariable %_ptr_Function_bool Function 133OpStore %ok_0 %true 134%60 = OpLoad %bool %ok_0 135OpReturnValue %60 136OpFunctionEnd 137%main = OpFunction %v4float None %61 138%62 = OpFunctionParameter %_ptr_Function_v2float 139%63 = OpLabel 140%_0_one = OpVariable %_ptr_Function_float Function 141%_1_two = OpVariable %_ptr_Function_float Function 142%_4_ok = OpVariable %_ptr_Function_bool Function 143%113 = OpVariable %_ptr_Function_v4float Function 144OpStore %_0_one %float_1 145OpStore %_1_two %float_2 146OpStore %_4_ok %true 147%70 = OpLoad %bool %_4_ok 148OpSelectionMerge %72 None 149OpBranchConditional %70 %71 %72 150%71 = OpLabel 151%74 = OpLoad %float %_1_two 152%75 = OpCompositeConstruct %v4float %74 %74 %74 %74 153%73 = OpFNegate %v4float %75 154%77 = OpLoad %float %_1_two 155%76 = OpFNegate %float %77 156%79 = OpLoad %float %_1_two 157%78 = OpFNegate %float %79 158%80 = OpCompositeConstruct %v3float %78 %78 %78 159%82 = OpCompositeExtract %float %80 0 160%83 = OpCompositeExtract %float %80 1 161%84 = OpCompositeExtract %float %80 2 162%85 = OpCompositeConstruct %v4float %76 %82 %83 %84 163%86 = OpFOrdEqual %v4bool %73 %85 164%88 = OpAll %bool %86 165OpBranch %72 166%72 = OpLabel 167%89 = OpPhi %bool %false %63 %88 %71 168OpStore %_4_ok %89 169%90 = OpLoad %bool %_4_ok 170OpSelectionMerge %92 None 171OpBranchConditional %90 %91 %92 172%91 = OpLabel 173%96 = OpLoad %float %_0_one 174%97 = OpLoad %float %_1_two 175%98 = OpFSub %float %96 %97 176%99 = OpLoad %float %_1_two 177%100 = OpCompositeConstruct %v2float %98 %99 178%95 = OpFNegate %v2float %100 179%101 = OpFOrdEqual %v2bool %94 %95 180%102 = OpAll %bool %101 181OpBranch %92 182%92 = OpLabel 183%103 = OpPhi %bool %false %72 %102 %91 184OpStore %_4_ok %103 185%104 = OpLoad %bool %_4_ok 186OpSelectionMerge %106 None 187OpBranchConditional %104 %105 %106 188%105 = OpLabel 189%107 = OpFunctionCall %bool %test_ivec_b 190OpBranch %106 191%106 = OpLabel 192%108 = OpPhi %bool %false %92 %107 %105 193OpSelectionMerge %110 None 194OpBranchConditional %108 %109 %110 195%109 = OpLabel 196%111 = OpFunctionCall %bool %test_mat_b 197OpBranch %110 198%110 = OpLabel 199%112 = OpPhi %bool %false %106 %111 %109 200OpSelectionMerge %117 None 201OpBranchConditional %112 %115 %116 202%115 = OpLabel 203%118 = OpAccessChain %_ptr_Uniform_v4float %12 %int_0 204%121 = OpLoad %v4float %118 205OpStore %113 %121 206OpBranch %117 207%116 = OpLabel 208%122 = OpAccessChain %_ptr_Uniform_v4float %12 %int_1 209%123 = OpLoad %v4float %122 210OpStore %113 %123 211OpBranch %117 212%117 = OpLabel 213%124 = OpLoad %v4float %113 214OpReturnValue %124 215OpFunctionEnd 216