1 OpCapability Shader 2 %1 = OpExtInstImport "GLSL.std.450" 3 OpMemoryModel Logical GLSL450 4 OpEntryPoint Fragment %_entrypoint_v "_entrypoint" %sk_FragColor 5 OpExecutionMode %_entrypoint_v OriginUpperLeft 6 OpName %sk_FragColor "sk_FragColor" 7 OpName %_UniformBuffer "_UniformBuffer" 8 OpMemberName %_UniformBuffer 0 "testInputs" 9 OpMemberName %_UniformBuffer 1 "colorGreen" 10 OpMemberName %_UniformBuffer 2 "colorRed" 11 OpName %_entrypoint_v "_entrypoint_v" 12 OpName %main "main" 13 OpName %expected "expected" 14 OpDecorate %sk_FragColor RelaxedPrecision 15 OpDecorate %sk_FragColor Location 0 16 OpDecorate %sk_FragColor Index 0 17 OpMemberDecorate %_UniformBuffer 0 Offset 0 18 OpMemberDecorate %_UniformBuffer 0 RelaxedPrecision 19 OpMemberDecorate %_UniformBuffer 1 Offset 16 20 OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision 21 OpMemberDecorate %_UniformBuffer 2 Offset 32 22 OpMemberDecorate %_UniformBuffer 2 RelaxedPrecision 23 OpDecorate %_UniformBuffer Block 24 OpDecorate %7 Binding 0 25 OpDecorate %7 DescriptorSet 0 26 OpDecorate %expected RelaxedPrecision 27 OpDecorate %31 RelaxedPrecision 28 OpDecorate %36 RelaxedPrecision 29 OpDecorate %37 RelaxedPrecision 30 OpDecorate %41 RelaxedPrecision 31 OpDecorate %43 RelaxedPrecision 32 OpDecorate %44 RelaxedPrecision 33 OpDecorate %45 RelaxedPrecision 34 OpDecorate %52 RelaxedPrecision 35 OpDecorate %54 RelaxedPrecision 36 OpDecorate %55 RelaxedPrecision 37 OpDecorate %57 RelaxedPrecision 38 OpDecorate %64 RelaxedPrecision 39 OpDecorate %66 RelaxedPrecision 40 OpDecorate %78 RelaxedPrecision 41 OpDecorate %85 RelaxedPrecision 42 OpDecorate %98 RelaxedPrecision 43 OpDecorate %101 RelaxedPrecision 44 OpDecorate %102 RelaxedPrecision 45 %float = OpTypeFloat 32 46 %v4float = OpTypeVector %float 4 47%_ptr_Output_v4float = OpTypePointer Output %v4float 48%sk_FragColor = OpVariable %_ptr_Output_v4float Output 49%_UniformBuffer = OpTypeStruct %v4float %v4float %v4float 50%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer 51 %7 = OpVariable %_ptr_Uniform__UniformBuffer Uniform 52 %void = OpTypeVoid 53 %12 = OpTypeFunction %void 54 %float_0 = OpConstant %float 0 55 %v2float = OpTypeVector %float 2 56 %16 = OpConstantComposite %v2float %float_0 %float_0 57%_ptr_Function_v2float = OpTypePointer Function %v2float 58 %20 = OpTypeFunction %v4float %_ptr_Function_v2float 59%_ptr_Function_v4float = OpTypePointer Function %v4float 60 %float_n1 = OpConstant %float -1 61 %float_1 = OpConstant %float 1 62 %float_3 = OpConstant %float 3 63 %28 = OpConstantComposite %v4float %float_n1 %float_0 %float_1 %float_3 64 %bool = OpTypeBool 65 %false = OpConstantFalse %bool 66%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float 67 %int = OpTypeInt 32 1 68 %int_0 = OpConstant %int 0 69 %v2bool = OpTypeVector %bool 2 70 %v3float = OpTypeVector %float 3 71 %v3bool = OpTypeVector %bool 3 72 %v4bool = OpTypeVector %bool 4 73 %true = OpConstantTrue %bool 74 %77 = OpConstantComposite %v2float %float_n1 %float_0 75 %84 = OpConstantComposite %v3float %float_n1 %float_0 %float_1 76 %int_1 = OpConstant %int 1 77 %int_2 = OpConstant %int 2 78%_entrypoint_v = OpFunction %void None %12 79 %13 = OpLabel 80 %17 = OpVariable %_ptr_Function_v2float Function 81 OpStore %17 %16 82 %19 = OpFunctionCall %v4float %main %17 83 OpStore %sk_FragColor %19 84 OpReturn 85 OpFunctionEnd 86 %main = OpFunction %v4float None %20 87 %21 = OpFunctionParameter %_ptr_Function_v2float 88 %22 = OpLabel 89 %expected = OpVariable %_ptr_Function_v4float Function 90 %92 = OpVariable %_ptr_Function_v4float Function 91 OpStore %expected %28 92 %32 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0 93 %36 = OpLoad %v4float %32 94 %37 = OpCompositeExtract %float %36 0 95 %31 = OpExtInst %float %1 Ceil %37 96 %38 = OpFOrdEqual %bool %31 %float_n1 97 OpSelectionMerge %40 None 98 OpBranchConditional %38 %39 %40 99 %39 = OpLabel 100 %42 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0 101 %43 = OpLoad %v4float %42 102 %44 = OpVectorShuffle %v2float %43 %43 0 1 103 %41 = OpExtInst %v2float %1 Ceil %44 104 %45 = OpVectorShuffle %v2float %28 %28 0 1 105 %46 = OpFOrdEqual %v2bool %41 %45 106 %48 = OpAll %bool %46 107 OpBranch %40 108 %40 = OpLabel 109 %49 = OpPhi %bool %false %22 %48 %39 110 OpSelectionMerge %51 None 111 OpBranchConditional %49 %50 %51 112 %50 = OpLabel 113 %53 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0 114 %54 = OpLoad %v4float %53 115 %55 = OpVectorShuffle %v3float %54 %54 0 1 2 116 %52 = OpExtInst %v3float %1 Ceil %55 117 %57 = OpVectorShuffle %v3float %28 %28 0 1 2 118 %58 = OpFOrdEqual %v3bool %52 %57 119 %60 = OpAll %bool %58 120 OpBranch %51 121 %51 = OpLabel 122 %61 = OpPhi %bool %false %40 %60 %50 123 OpSelectionMerge %63 None 124 OpBranchConditional %61 %62 %63 125 %62 = OpLabel 126 %65 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0 127 %66 = OpLoad %v4float %65 128 %64 = OpExtInst %v4float %1 Ceil %66 129 %67 = OpFOrdEqual %v4bool %64 %28 130 %69 = OpAll %bool %67 131 OpBranch %63 132 %63 = OpLabel 133 %70 = OpPhi %bool %false %51 %69 %62 134 OpSelectionMerge %72 None 135 OpBranchConditional %70 %71 %72 136 %71 = OpLabel 137 OpBranch %72 138 %72 = OpLabel 139 %74 = OpPhi %bool %false %63 %true %71 140 OpSelectionMerge %76 None 141 OpBranchConditional %74 %75 %76 142 %75 = OpLabel 143 %78 = OpVectorShuffle %v2float %28 %28 0 1 144 %79 = OpFOrdEqual %v2bool %77 %78 145 %80 = OpAll %bool %79 146 OpBranch %76 147 %76 = OpLabel 148 %81 = OpPhi %bool %false %72 %80 %75 149 OpSelectionMerge %83 None 150 OpBranchConditional %81 %82 %83 151 %82 = OpLabel 152 %85 = OpVectorShuffle %v3float %28 %28 0 1 2 153 %86 = OpFOrdEqual %v3bool %84 %85 154 %87 = OpAll %bool %86 155 OpBranch %83 156 %83 = OpLabel 157 %88 = OpPhi %bool %false %76 %87 %82 158 OpSelectionMerge %90 None 159 OpBranchConditional %88 %89 %90 160 %89 = OpLabel 161 OpBranch %90 162 %90 = OpLabel 163 %91 = OpPhi %bool %false %83 %true %89 164 OpSelectionMerge %95 None 165 OpBranchConditional %91 %93 %94 166 %93 = OpLabel 167 %96 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1 168 %98 = OpLoad %v4float %96 169 OpStore %92 %98 170 OpBranch %95 171 %94 = OpLabel 172 %99 = OpAccessChain %_ptr_Uniform_v4float %7 %int_2 173 %101 = OpLoad %v4float %99 174 OpStore %92 %101 175 OpBranch %95 176 %95 = OpLabel 177 %102 = OpLoad %v4float %92 178 OpReturnValue %102 179 OpFunctionEnd 180