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