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