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 %input "input" 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 %68 RelaxedPrecision 45OpDecorate %71 RelaxedPrecision 46OpDecorate %79 RelaxedPrecision 47OpDecorate %80 RelaxedPrecision 48OpDecorate %88 RelaxedPrecision 49OpDecorate %96 RelaxedPrecision 50OpDecorate %104 RelaxedPrecision 51OpDecorate %115 RelaxedPrecision 52OpDecorate %118 RelaxedPrecision 53OpDecorate %119 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%true = OpConstantTrue %bool 81%87 = OpConstantComposite %v2bool %false %true 82%95 = OpConstantComposite %v3bool %false %true %false 83%103 = OpConstantComposite %v4bool %false %true %false %true 84%_ptr_Function_v4float = OpTypePointer Function %v4float 85%int_2 = OpConstant %int 2 86%int_3 = OpConstant %int 3 87%_entrypoint_v = OpFunction %void None %15 88%16 = OpLabel 89%20 = OpVariable %_ptr_Function_v2float Function 90OpStore %20 %19 91%22 = OpFunctionCall %v4float %main %20 92OpStore %sk_FragColor %22 93OpReturn 94OpFunctionEnd 95%main = OpFunction %v4float None %23 96%24 = OpFunctionParameter %_ptr_Function_v2float 97%25 = OpLabel 98%input = OpVariable %_ptr_Function_v4bool Function 99%expected = OpVariable %_ptr_Function_v4bool Function 100%108 = OpVariable %_ptr_Function_v4float Function 101%29 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 102%33 = OpLoad %v4float %29 103%34 = OpCompositeExtract %float %33 0 104%35 = OpFUnordNotEqual %bool %34 %float_0 105%36 = OpCompositeExtract %float %33 1 106%37 = OpFUnordNotEqual %bool %36 %float_0 107%38 = OpCompositeExtract %float %33 2 108%39 = OpFUnordNotEqual %bool %38 %float_0 109%40 = OpCompositeExtract %float %33 3 110%41 = OpFUnordNotEqual %bool %40 %float_0 111%42 = OpCompositeConstruct %v4bool %35 %37 %39 %41 112OpStore %input %42 113%44 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1 114%46 = OpLoad %v4float %44 115%47 = OpCompositeExtract %float %46 0 116%48 = OpFUnordNotEqual %bool %47 %float_0 117%49 = OpCompositeExtract %float %46 1 118%50 = OpFUnordNotEqual %bool %49 %float_0 119%51 = OpCompositeExtract %float %46 2 120%52 = OpFUnordNotEqual %bool %51 %float_0 121%53 = OpCompositeExtract %float %46 3 122%54 = OpFUnordNotEqual %bool %53 %float_0 123%55 = OpCompositeConstruct %v4bool %48 %50 %52 %54 124OpStore %expected %55 125%58 = OpLoad %v4bool %input 126%59 = OpVectorShuffle %v2bool %58 %58 0 1 127%57 = OpLogicalNot %v2bool %59 128%61 = OpLoad %v4bool %expected 129%62 = OpVectorShuffle %v2bool %61 %61 0 1 130%63 = OpLogicalEqual %v2bool %57 %62 131%64 = OpAll %bool %63 132OpSelectionMerge %66 None 133OpBranchConditional %64 %65 %66 134%65 = OpLabel 135%68 = OpLoad %v4bool %input 136%69 = OpVectorShuffle %v3bool %68 %68 0 1 2 137%67 = OpLogicalNot %v3bool %69 138%71 = OpLoad %v4bool %expected 139%72 = OpVectorShuffle %v3bool %71 %71 0 1 2 140%73 = OpLogicalEqual %v3bool %67 %72 141%74 = OpAll %bool %73 142OpBranch %66 143%66 = OpLabel 144%75 = OpPhi %bool %false %25 %74 %65 145OpSelectionMerge %77 None 146OpBranchConditional %75 %76 %77 147%76 = OpLabel 148%79 = OpLoad %v4bool %input 149%78 = OpLogicalNot %v4bool %79 150%80 = OpLoad %v4bool %expected 151%81 = OpLogicalEqual %v4bool %78 %80 152%82 = OpAll %bool %81 153OpBranch %77 154%77 = OpLabel 155%83 = OpPhi %bool %false %66 %82 %76 156OpSelectionMerge %85 None 157OpBranchConditional %83 %84 %85 158%84 = OpLabel 159%88 = OpLoad %v4bool %expected 160%89 = OpVectorShuffle %v2bool %88 %88 0 1 161%90 = OpLogicalEqual %v2bool %87 %89 162%91 = OpAll %bool %90 163OpBranch %85 164%85 = OpLabel 165%92 = OpPhi %bool %false %77 %91 %84 166OpSelectionMerge %94 None 167OpBranchConditional %92 %93 %94 168%93 = OpLabel 169%96 = OpLoad %v4bool %expected 170%97 = OpVectorShuffle %v3bool %96 %96 0 1 2 171%98 = OpLogicalEqual %v3bool %95 %97 172%99 = OpAll %bool %98 173OpBranch %94 174%94 = OpLabel 175%100 = OpPhi %bool %false %85 %99 %93 176OpSelectionMerge %102 None 177OpBranchConditional %100 %101 %102 178%101 = OpLabel 179%104 = OpLoad %v4bool %expected 180%105 = OpLogicalEqual %v4bool %103 %104 181%106 = OpAll %bool %105 182OpBranch %102 183%102 = OpLabel 184%107 = OpPhi %bool %false %94 %106 %101 185OpSelectionMerge %112 None 186OpBranchConditional %107 %110 %111 187%110 = OpLabel 188%113 = OpAccessChain %_ptr_Uniform_v4float %10 %int_2 189%115 = OpLoad %v4float %113 190OpStore %108 %115 191OpBranch %112 192%111 = OpLabel 193%116 = OpAccessChain %_ptr_Uniform_v4float %10 %int_3 194%118 = OpLoad %v4float %116 195OpStore %108 %118 196OpBranch %112 197%112 = OpLabel 198%119 = OpLoad %v4float %108 199OpReturnValue %119 200OpFunctionEnd 201