1; SPIR-V 2; Version: 1.0 3; Generator: Khronos Glslang Reference Front End; 8 4; Bound: 193 5; Schema: 0 6 OpCapability Shader 7 %1 = OpExtInstImport "GLSL.std.450" 8 OpMemoryModel Logical GLSL450 9 OpEntryPoint Fragment %main "main" %x %BaseColor %Count %bigColor %outColor %v4 %f_0 10 OpExecutionMode %main OriginUpperLeft 11 OpSource ESSL 310 12 OpName %main "main" 13 OpName %c "c" 14 OpName %f "f" 15 OpName %x "x" 16 OpName %d "d" 17 OpName %color "color" 18 OpName %BaseColor "BaseColor" 19 OpName %i "i" 20 OpName %Count "Count" 21 OpName %bigColor "bigColor" 22 OpName %outColor "outColor" 23 OpName %sum "sum" 24 OpName %i_0 "i" 25 OpName %v4 "v4" 26 OpName %i_1 "i" 27 OpName %tv4 "tv4" 28 OpName %r "r" 29 OpName %i_2 "i" 30 OpName %i_3 "i" 31 OpName %i_4 "i" 32 OpName %A "A" 33 OpName %B "B" 34 OpName %C "C" 35 OpName %D "D" 36 OpName %f_0 "f" 37 OpDecorate %f RelaxedPrecision 38 OpDecorate %x Location 0 39 OpDecorate %color RelaxedPrecision 40 OpDecorate %BaseColor RelaxedPrecision 41 OpDecorate %BaseColor Location 2 42 OpDecorate %47 RelaxedPrecision 43 OpDecorate %Count Flat 44 OpDecorate %Count Location 4 45 OpDecorate %bigColor RelaxedPrecision 46 OpDecorate %bigColor Location 1 47 OpDecorate %63 RelaxedPrecision 48 OpDecorate %64 RelaxedPrecision 49 OpDecorate %65 RelaxedPrecision 50 OpDecorate %outColor RelaxedPrecision 51 OpDecorate %outColor Location 0 52 OpDecorate %71 RelaxedPrecision 53 OpDecorate %sum RelaxedPrecision 54 OpDecorate %v4 Flat 55 OpDecorate %v4 Location 5 56 OpDecorate %91 RelaxedPrecision 57 OpDecorate %92 RelaxedPrecision 58 OpDecorate %93 RelaxedPrecision 59 OpDecorate %tv4 RelaxedPrecision 60 OpDecorate %111 RelaxedPrecision 61 OpDecorate %115 RelaxedPrecision 62 OpDecorate %116 RelaxedPrecision 63 OpDecorate %117 RelaxedPrecision 64 OpDecorate %118 RelaxedPrecision 65 OpDecorate %119 RelaxedPrecision 66 OpDecorate %120 RelaxedPrecision 67 OpDecorate %r RelaxedPrecision 68 OpDecorate %123 RelaxedPrecision 69 OpDecorate %124 RelaxedPrecision 70 OpDecorate %136 RelaxedPrecision 71 OpDecorate %141 RelaxedPrecision 72 OpDecorate %142 RelaxedPrecision 73 OpDecorate %143 RelaxedPrecision 74 OpDecorate %144 RelaxedPrecision 75 OpDecorate %145 RelaxedPrecision 76 OpDecorate %157 RelaxedPrecision 77 OpDecorate %158 RelaxedPrecision 78 OpDecorate %159 RelaxedPrecision 79 OpDecorate %f_0 RelaxedPrecision 80 OpDecorate %f_0 Location 3 81 %void = OpTypeVoid 82 %3 = OpTypeFunction %void 83 %int = OpTypeInt 32 1 84%_ptr_Private_int = OpTypePointer Private %int 85 %c = OpVariable %_ptr_Private_int Private 86 %float = OpTypeFloat 32 87%_ptr_Function_float = OpTypePointer Function %float 88%_ptr_Input_float = OpTypePointer Input %float 89 %x = OpVariable %_ptr_Input_float Input 90 %d = OpVariable %_ptr_Private_int Private 91 %v4float = OpTypeVector %float 4 92%_ptr_Function_v4float = OpTypePointer Function %v4float 93%_ptr_Input_v4float = OpTypePointer Input %v4float 94 %BaseColor = OpVariable %_ptr_Input_v4float Input 95%_ptr_Function_int = OpTypePointer Function %int 96 %int_0 = OpConstant %int 0 97%_ptr_Input_int = OpTypePointer Input %int 98 %Count = OpVariable %_ptr_Input_int Input 99 %bool = OpTypeBool 100 %bigColor = OpVariable %_ptr_Input_v4float Input 101 %int_1 = OpConstant %int 1 102%_ptr_Output_v4float = OpTypePointer Output %v4float 103 %outColor = OpVariable %_ptr_Output_v4float Output 104 %float_0 = OpConstant %float 0 105 %int_4 = OpConstant %int 4 106 %uint = OpTypeInt 32 0 107 %v4uint = OpTypeVector %uint 4 108%_ptr_Input_v4uint = OpTypePointer Input %v4uint 109 %v4 = OpVariable %_ptr_Input_v4uint Input 110%_ptr_Input_uint = OpTypePointer Input %uint 111 %uint_4 = OpConstant %uint 4 112 %v3float = OpTypeVector %float 3 113 %uint_3 = OpConstant %uint 3 114 %int_16 = OpConstant %int 16 115 %int_10 = OpConstant %int 10 116 %int_2 = OpConstant %int 2 117 %int_5 = OpConstant %int 5 118 %int_3 = OpConstant %int 3 119 %f_0 = OpVariable %_ptr_Input_float Input 120 %main = OpFunction %void None %3 121 %5 = OpLabel 122 %f = OpVariable %_ptr_Function_float Function 123 %color = OpVariable %_ptr_Function_v4float Function 124 %i = OpVariable %_ptr_Function_int Function 125 %sum = OpVariable %_ptr_Function_float Function 126 %i_0 = OpVariable %_ptr_Function_int Function 127 %i_1 = OpVariable %_ptr_Function_int Function 128 %tv4 = OpVariable %_ptr_Function_v4float Function 129 %r = OpVariable %_ptr_Function_v4float Function 130 %i_2 = OpVariable %_ptr_Function_int Function 131 %i_3 = OpVariable %_ptr_Function_int Function 132 %i_4 = OpVariable %_ptr_Function_int Function 133 %A = OpVariable %_ptr_Function_int Function 134 %B = OpVariable %_ptr_Function_int Function 135 %C = OpVariable %_ptr_Function_int Function 136 %D = OpVariable %_ptr_Function_int Function 137 %9 = OpLoad %int %c 138 OpSelectionMerge %13 None 139 OpSwitch %9 %12 1 %10 2 %11 140 %12 = OpLabel 141 %39 = OpLoad %float %x 142 %40 = OpExtInst %float %1 Tan %39 143 OpStore %f %40 144 OpBranch %13 145 %10 = OpLabel 146 %19 = OpLoad %float %x 147 %20 = OpExtInst %float %1 Sin %19 148 OpStore %f %20 149 OpBranch %13 150 %11 = OpLabel 151 %23 = OpLoad %int %d 152 OpSelectionMerge %26 None 153 OpSwitch %23 %26 1 %24 2 %25 154 %24 = OpLabel 155 %27 = OpLoad %float %x 156 %28 = OpLoad %float %x 157 %29 = OpFMul %float %27 %28 158 %30 = OpLoad %float %x 159 %31 = OpFMul %float %29 %30 160 OpStore %f %31 161 OpBranch %26 162 %25 = OpLabel 163 %33 = OpLoad %float %x 164 %34 = OpLoad %float %x 165 %35 = OpFMul %float %33 %34 166 OpStore %f %35 167 OpBranch %26 168 %26 = OpLabel 169 OpBranch %13 170 %13 = OpLabel 171 %47 = OpLoad %v4float %BaseColor 172 OpStore %color %47 173 OpStore %i %int_0 174 OpBranch %51 175 %51 = OpLabel 176 OpLoopMerge %53 %54 None 177 OpBranch %55 178 %55 = OpLabel 179 %56 = OpLoad %int %i 180 %59 = OpLoad %int %Count 181 %61 = OpSLessThan %bool %56 %59 182 OpBranchConditional %61 %52 %53 183 %52 = OpLabel 184 %63 = OpLoad %v4float %bigColor 185 %64 = OpLoad %v4float %color 186 %65 = OpFAdd %v4float %64 %63 187 OpStore %color %65 188 OpBranch %54 189 %54 = OpLabel 190 %66 = OpLoad %int %i 191 %68 = OpIAdd %int %66 %int_1 192 OpStore %i %68 193 OpBranch %51 194 %53 = OpLabel 195 %71 = OpLoad %v4float %color 196 OpStore %outColor %71 197 OpStore %sum %float_0 198 OpStore %i_0 %int_0 199 OpBranch %75 200 %75 = OpLabel 201 OpLoopMerge %77 %78 None 202 OpBranch %79 203 %79 = OpLabel 204 %80 = OpLoad %int %i_0 205 %82 = OpSLessThan %bool %80 %int_4 206 OpBranchConditional %82 %76 %77 207 %76 = OpLabel 208 %87 = OpLoad %int %i_0 209 %89 = OpAccessChain %_ptr_Input_uint %v4 %87 210 %90 = OpLoad %uint %89 211 %91 = OpConvertUToF %float %90 212 %92 = OpLoad %float %sum 213 %93 = OpFAdd %float %92 %91 214 OpStore %sum %93 215 OpBranch %78 216 %78 = OpLabel 217 %94 = OpLoad %int %i_0 218 %95 = OpIAdd %int %94 %int_1 219 OpStore %i_0 %95 220 OpBranch %75 221 %77 = OpLabel 222 OpStore %i_1 %int_0 223 OpBranch %97 224 %97 = OpLabel 225 OpLoopMerge %99 %100 None 226 OpBranch %101 227 %101 = OpLabel 228 %102 = OpLoad %int %i_1 229 %103 = OpSLessThan %bool %102 %int_4 230 OpBranchConditional %103 %98 %99 231 %98 = OpLabel 232 %105 = OpLoad %int %i_1 233 %106 = OpLoad %int %i_1 234 %107 = OpAccessChain %_ptr_Input_uint %v4 %106 235 %108 = OpLoad %uint %107 236 %110 = OpIMul %uint %108 %uint_4 237 %111 = OpConvertUToF %float %110 238 %112 = OpAccessChain %_ptr_Function_float %tv4 %105 239 OpStore %112 %111 240 OpBranch %100 241 %100 = OpLabel 242 %113 = OpLoad %int %i_1 243 %114 = OpIAdd %int %113 %int_1 244 OpStore %i_1 %114 245 OpBranch %97 246 %99 = OpLabel 247 %115 = OpLoad %float %sum 248 %116 = OpCompositeConstruct %v4float %115 %115 %115 %115 249 %117 = OpLoad %v4float %tv4 250 %118 = OpFAdd %v4float %116 %117 251 %119 = OpLoad %v4float %outColor 252 %120 = OpFAdd %v4float %119 %118 253 OpStore %outColor %120 254 %123 = OpLoad %v4float %BaseColor 255 %124 = OpVectorShuffle %v3float %123 %123 0 1 2 256 %125 = OpLoad %v4float %r 257 %126 = OpVectorShuffle %v4float %125 %124 4 5 6 3 258 OpStore %r %126 259 OpStore %i_2 %int_0 260 OpBranch %128 261 %128 = OpLabel 262 OpLoopMerge %130 %131 None 263 OpBranch %132 264 %132 = OpLabel 265 %133 = OpLoad %int %i_2 266 %134 = OpLoad %int %Count 267 %135 = OpSLessThan %bool %133 %134 268 OpBranchConditional %135 %129 %130 269 %129 = OpLabel 270 %136 = OpLoad %float %f 271 %138 = OpAccessChain %_ptr_Function_float %r %uint_3 272 OpStore %138 %136 273 OpBranch %131 274 %131 = OpLabel 275 %139 = OpLoad %int %i_2 276 %140 = OpIAdd %int %139 %int_1 277 OpStore %i_2 %140 278 OpBranch %128 279 %130 = OpLabel 280 %141 = OpLoad %v4float %r 281 %142 = OpVectorShuffle %v3float %141 %141 0 1 2 282 %143 = OpLoad %v4float %outColor 283 %144 = OpVectorShuffle %v3float %143 %143 0 1 2 284 %145 = OpFAdd %v3float %144 %142 285 %146 = OpLoad %v4float %outColor 286 %147 = OpVectorShuffle %v4float %146 %145 4 5 6 3 287 OpStore %outColor %147 288 OpStore %i_3 %int_0 289 OpBranch %149 290 %149 = OpLabel 291 OpLoopMerge %151 %152 None 292 OpBranch %153 293 %153 = OpLabel 294 %154 = OpLoad %int %i_3 295 %156 = OpSLessThan %bool %154 %int_16 296 OpBranchConditional %156 %150 %151 297 %150 = OpLabel 298 %157 = OpLoad %float %f 299 %158 = OpLoad %v4float %outColor 300 %159 = OpVectorTimesScalar %v4float %158 %157 301 OpStore %outColor %159 302 OpBranch %152 303 %152 = OpLabel 304 %160 = OpLoad %int %i_3 305 %161 = OpIAdd %int %160 %int_4 306 OpStore %i_3 %161 307 OpBranch %149 308 %151 = OpLabel 309 OpStore %i_4 %int_0 310 OpBranch %163 311 %163 = OpLabel 312 OpLoopMerge %165 %166 None 313 OpBranch %167 314 %167 = OpLabel 315 %168 = OpLoad %int %i_4 316 %170 = OpSLessThan %bool %168 %int_10 317 OpBranchConditional %170 %164 %165 318 %164 = OpLabel 319 OpStore %A %int_1 320 %172 = OpLoad %int %i_4 321 %174 = OpSMod %int %172 %int_2 322 %175 = OpIEqual %bool %174 %int_0 323 OpSelectionMerge %177 None 324 OpBranchConditional %175 %176 %177 325 %176 = OpLabel 326 OpStore %B %int_2 327 OpBranch %166 328 %177 = OpLabel 329 %181 = OpLoad %int %i_4 330 %183 = OpSMod %int %181 %int_5 331 %184 = OpIEqual %bool %183 %int_0 332 OpSelectionMerge %186 None 333 OpBranchConditional %184 %185 %186 334 %185 = OpLabel 335 OpStore %B %int_2 336 OpBranch %165 337 %186 = OpLabel 338 %188 = OpLoad %int %i_4 339 %189 = OpIAdd %int %188 %int_1 340 OpStore %i_4 %189 341 OpBranch %166 342 %166 = OpLabel 343 OpBranch %163 344 %165 = OpLabel 345 OpStore %D %int_3 346 OpReturn 347 OpFunctionEnd 348