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