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 "colorGreen" 9 OpMemberName %_UniformBuffer 1 "colorRed" 10 OpName %_entrypoint_v "_entrypoint_v" 11 OpName %main "main" 12 OpName %InnerLUT "InnerLUT" 13 OpMemberName %InnerLUT 0 "values" 14 OpName %OuterLUT "OuterLUT" 15 OpMemberName %OuterLUT 0 "inner" 16 OpName %Root "Root" 17 OpMemberName %Root 0 "outer" 18 OpName %data "data" 19 OpName %expected "expected" 20 OpName %i "i" 21 OpName %j "j" 22 OpName %k "k" 23 OpDecorate %sk_FragColor RelaxedPrecision 24 OpDecorate %sk_FragColor Location 0 25 OpDecorate %sk_FragColor Index 0 26 OpMemberDecorate %_UniformBuffer 0 Offset 0 27 OpMemberDecorate %_UniformBuffer 0 RelaxedPrecision 28 OpMemberDecorate %_UniformBuffer 1 Offset 16 29 OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision 30 OpDecorate %_UniformBuffer Block 31 OpDecorate %7 Binding 0 32 OpDecorate %7 DescriptorSet 0 33 OpMemberDecorate %InnerLUT 0 Offset 0 34 OpDecorate %_arr_InnerLUT_int_3 ArrayStride 16 35 OpMemberDecorate %OuterLUT 0 Offset 0 36 OpMemberDecorate %OuterLUT 0 RelaxedPrecision 37 OpDecorate %_arr_OuterLUT_int_3 ArrayStride 48 38 OpMemberDecorate %Root 0 Offset 0 39 OpMemberDecorate %Root 0 RelaxedPrecision 40 OpDecorate %115 RelaxedPrecision 41 OpDecorate %137 RelaxedPrecision 42 OpDecorate %145 RelaxedPrecision 43 %float = OpTypeFloat 32 44 %v4float = OpTypeVector %float 4 45%_ptr_Output_v4float = OpTypePointer Output %v4float 46%sk_FragColor = OpVariable %_ptr_Output_v4float Output 47%_UniformBuffer = OpTypeStruct %v4float %v4float 48%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer 49 %7 = OpVariable %_ptr_Uniform__UniformBuffer Uniform 50 %void = OpTypeVoid 51 %12 = OpTypeFunction %void 52 %float_0 = OpConstant %float 0 53 %v2float = OpTypeVector %float 2 54 %16 = OpConstantComposite %v2float %float_0 %float_0 55%_ptr_Function_v2float = OpTypePointer Function %v2float 56 %20 = OpTypeFunction %v4float %_ptr_Function_v2float 57 %v3float = OpTypeVector %float 3 58 %InnerLUT = OpTypeStruct %v3float 59 %int = OpTypeInt 32 1 60 %int_3 = OpConstant %int 3 61%_arr_InnerLUT_int_3 = OpTypeArray %InnerLUT %int_3 62 %OuterLUT = OpTypeStruct %_arr_InnerLUT_int_3 63%_arr_OuterLUT_int_3 = OpTypeArray %OuterLUT %int_3 64 %Root = OpTypeStruct %_arr_OuterLUT_int_3 65%_ptr_Function_Root = OpTypePointer Function %Root 66 %float_1 = OpConstant %float 1 67 %float_10 = OpConstant %float 10 68 %float_100 = OpConstant %float 100 69 %36 = OpConstantComposite %v3float %float_1 %float_10 %float_100 70 %int_0 = OpConstant %int 0 71%_ptr_Function_v3float = OpTypePointer Function %v3float 72 %float_2 = OpConstant %float 2 73 %float_20 = OpConstant %float 20 74 %float_200 = OpConstant %float 200 75 %43 = OpConstantComposite %v3float %float_2 %float_20 %float_200 76 %int_1 = OpConstant %int 1 77 %float_3 = OpConstant %float 3 78 %float_30 = OpConstant %float 30 79 %float_300 = OpConstant %float 300 80 %49 = OpConstantComposite %v3float %float_3 %float_30 %float_300 81 %int_2 = OpConstant %int 2 82 %float_4 = OpConstant %float 4 83 %float_40 = OpConstant %float 40 84 %float_400 = OpConstant %float 400 85 %55 = OpConstantComposite %v3float %float_4 %float_40 %float_400 86 %float_5 = OpConstant %float 5 87 %float_50 = OpConstant %float 50 88 %float_500 = OpConstant %float 500 89 %60 = OpConstantComposite %v3float %float_5 %float_50 %float_500 90 %float_6 = OpConstant %float 6 91 %float_60 = OpConstant %float 60 92 %float_600 = OpConstant %float 600 93 %65 = OpConstantComposite %v3float %float_6 %float_60 %float_600 94 %float_7 = OpConstant %float 7 95 %float_70 = OpConstant %float 70 96 %float_700 = OpConstant %float 700 97 %70 = OpConstantComposite %v3float %float_7 %float_70 %float_700 98 %float_8 = OpConstant %float 8 99 %float_80 = OpConstant %float 80 100 %float_800 = OpConstant %float 800 101 %75 = OpConstantComposite %v3float %float_8 %float_80 %float_800 102 %float_9 = OpConstant %float 9 103 %float_90 = OpConstant %float 90 104 %float_900 = OpConstant %float 900 105 %80 = OpConstantComposite %v3float %float_9 %float_90 %float_900 106 %83 = OpConstantComposite %v3float %float_0 %float_0 %float_0 107%_ptr_Function_int = OpTypePointer Function %int 108 %bool = OpTypeBool 109 %v3bool = OpTypeVector %bool 3 110%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float 111%_entrypoint_v = OpFunction %void None %12 112 %13 = OpLabel 113 %17 = OpVariable %_ptr_Function_v2float Function 114 OpStore %17 %16 115 %19 = OpFunctionCall %v4float %main %17 116 OpStore %sk_FragColor %19 117 OpReturn 118 OpFunctionEnd 119 %main = OpFunction %v4float None %20 120 %21 = OpFunctionParameter %_ptr_Function_v2float 121 %22 = OpLabel 122 %data = OpVariable %_ptr_Function_Root Function 123 %expected = OpVariable %_ptr_Function_v3float Function 124 %i = OpVariable %_ptr_Function_int Function 125 %j = OpVariable %_ptr_Function_int Function 126 %k = OpVariable %_ptr_Function_int Function 127 %38 = OpAccessChain %_ptr_Function_v3float %data %int_0 %int_0 %int_0 %int_0 %int_0 128 OpStore %38 %36 129 %45 = OpAccessChain %_ptr_Function_v3float %data %int_0 %int_0 %int_0 %int_1 %int_0 130 OpStore %45 %43 131 %51 = OpAccessChain %_ptr_Function_v3float %data %int_0 %int_0 %int_0 %int_2 %int_0 132 OpStore %51 %49 133 %56 = OpAccessChain %_ptr_Function_v3float %data %int_0 %int_1 %int_0 %int_0 %int_0 134 OpStore %56 %55 135 %61 = OpAccessChain %_ptr_Function_v3float %data %int_0 %int_1 %int_0 %int_1 %int_0 136 OpStore %61 %60 137 %66 = OpAccessChain %_ptr_Function_v3float %data %int_0 %int_1 %int_0 %int_2 %int_0 138 OpStore %66 %65 139 %71 = OpAccessChain %_ptr_Function_v3float %data %int_0 %int_2 %int_0 %int_0 %int_0 140 OpStore %71 %70 141 %76 = OpAccessChain %_ptr_Function_v3float %data %int_0 %int_2 %int_0 %int_1 %int_0 142 OpStore %76 %75 143 %81 = OpAccessChain %_ptr_Function_v3float %data %int_0 %int_2 %int_0 %int_2 %int_0 144 OpStore %81 %80 145 OpStore %expected %83 146 OpStore %i %int_0 147 OpBranch %86 148 %86 = OpLabel 149 OpLoopMerge %90 %89 None 150 OpBranch %87 151 %87 = OpLabel 152 %91 = OpLoad %int %i 153 %92 = OpSLessThan %bool %91 %int_3 154 OpBranchConditional %92 %88 %90 155 %88 = OpLabel 156 OpStore %j %int_0 157 OpBranch %95 158 %95 = OpLabel 159 OpLoopMerge %99 %98 None 160 OpBranch %96 161 %96 = OpLabel 162 %100 = OpLoad %int %j 163 %101 = OpSLessThan %bool %100 %int_3 164 OpBranchConditional %101 %97 %99 165 %97 = OpLabel 166 %102 = OpLoad %v3float %expected 167 %103 = OpFAdd %v3float %102 %36 168 OpStore %expected %103 169 %104 = OpLoad %int %i 170 %105 = OpLoad %int %j 171 %106 = OpAccessChain %_ptr_Function_v3float %data %int_0 %104 %int_0 %105 %int_0 172 %107 = OpLoad %v3float %106 173 %108 = OpFUnordNotEqual %v3bool %107 %103 174 %110 = OpAny %bool %108 175 OpSelectionMerge %112 None 176 OpBranchConditional %110 %111 %112 177 %111 = OpLabel 178 %113 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1 179 %115 = OpLoad %v4float %113 180 OpReturnValue %115 181 %112 = OpLabel 182 OpStore %k %int_0 183 OpBranch %117 184 %117 = OpLabel 185 OpLoopMerge %121 %120 None 186 OpBranch %118 187 %118 = OpLabel 188 %122 = OpLoad %int %k 189 %123 = OpSLessThan %bool %122 %int_3 190 OpBranchConditional %123 %119 %121 191 %119 = OpLabel 192 %124 = OpLoad %int %i 193 %125 = OpLoad %int %j 194 %126 = OpAccessChain %_ptr_Function_v3float %data %int_0 %124 %int_0 %125 %int_0 195 %127 = OpLoad %v3float %126 196 %128 = OpLoad %int %k 197 %129 = OpVectorExtractDynamic %float %127 %128 198 %130 = OpLoad %v3float %expected 199 %131 = OpLoad %int %k 200 %132 = OpVectorExtractDynamic %float %130 %131 201 %133 = OpFUnordNotEqual %bool %129 %132 202 OpSelectionMerge %135 None 203 OpBranchConditional %133 %134 %135 204 %134 = OpLabel 205 %136 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1 206 %137 = OpLoad %v4float %136 207 OpReturnValue %137 208 %135 = OpLabel 209 OpBranch %120 210 %120 = OpLabel 211 %138 = OpLoad %int %k 212 %139 = OpIAdd %int %138 %int_1 213 OpStore %k %139 214 OpBranch %117 215 %121 = OpLabel 216 OpBranch %98 217 %98 = OpLabel 218 %140 = OpLoad %int %j 219 %141 = OpIAdd %int %140 %int_1 220 OpStore %j %141 221 OpBranch %95 222 %99 = OpLabel 223 OpBranch %89 224 %89 = OpLabel 225 %142 = OpLoad %int %i 226 %143 = OpIAdd %int %142 %int_1 227 OpStore %i %143 228 OpBranch %86 229 %90 = OpLabel 230 %144 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0 231 %145 = OpLoad %v4float %144 232 OpReturnValue %145 233 OpFunctionEnd 234