; SPIR-V ; Version: 1.0 ; Generator: Khronos Glslang Reference Front End; 8 ; Bound: 193 ; Schema: 0 OpCapability Shader %1 = OpExtInstImport "GLSL.std.450" OpMemoryModel Logical GLSL450 OpEntryPoint Fragment %main "main" %x %BaseColor %Count %bigColor %outColor %v4 %f_0 OpExecutionMode %main OriginUpperLeft OpSource ESSL 310 OpName %main "main" OpName %c "c" OpName %f "f" OpName %x "x" OpName %d "d" OpName %color "color" OpName %BaseColor "BaseColor" OpName %i "i" OpName %Count "Count" OpName %bigColor "bigColor" OpName %outColor "outColor" OpName %sum "sum" OpName %i_0 "i" OpName %v4 "v4" OpName %i_1 "i" OpName %tv4 "tv4" OpName %r "r" OpName %i_2 "i" OpName %i_3 "i" OpName %i_4 "i" OpName %A "A" OpName %B "B" OpName %C "C" OpName %D "D" OpName %f_0 "f" OpDecorate %f RelaxedPrecision OpDecorate %x Location 0 OpDecorate %color RelaxedPrecision OpDecorate %BaseColor RelaxedPrecision OpDecorate %BaseColor Location 2 OpDecorate %47 RelaxedPrecision OpDecorate %Count Flat OpDecorate %Count Location 4 OpDecorate %bigColor RelaxedPrecision OpDecorate %bigColor Location 1 OpDecorate %63 RelaxedPrecision OpDecorate %64 RelaxedPrecision OpDecorate %65 RelaxedPrecision OpDecorate %outColor RelaxedPrecision OpDecorate %outColor Location 0 OpDecorate %71 RelaxedPrecision OpDecorate %sum RelaxedPrecision OpDecorate %v4 Flat OpDecorate %v4 Location 5 OpDecorate %91 RelaxedPrecision OpDecorate %92 RelaxedPrecision OpDecorate %93 RelaxedPrecision OpDecorate %tv4 RelaxedPrecision OpDecorate %111 RelaxedPrecision OpDecorate %115 RelaxedPrecision OpDecorate %116 RelaxedPrecision OpDecorate %117 RelaxedPrecision OpDecorate %118 RelaxedPrecision OpDecorate %119 RelaxedPrecision OpDecorate %120 RelaxedPrecision OpDecorate %r RelaxedPrecision OpDecorate %123 RelaxedPrecision OpDecorate %124 RelaxedPrecision OpDecorate %136 RelaxedPrecision OpDecorate %141 RelaxedPrecision OpDecorate %142 RelaxedPrecision OpDecorate %143 RelaxedPrecision OpDecorate %144 RelaxedPrecision OpDecorate %145 RelaxedPrecision OpDecorate %157 RelaxedPrecision OpDecorate %158 RelaxedPrecision OpDecorate %159 RelaxedPrecision OpDecorate %f_0 RelaxedPrecision OpDecorate %f_0 Location 3 %void = OpTypeVoid %3 = OpTypeFunction %void %int = OpTypeInt 32 1 %_ptr_Private_int = OpTypePointer Private %int %c = OpVariable %_ptr_Private_int Private %float = OpTypeFloat 32 %_ptr_Function_float = OpTypePointer Function %float %_ptr_Input_float = OpTypePointer Input %float %x = OpVariable %_ptr_Input_float Input %d = OpVariable %_ptr_Private_int Private %v4float = OpTypeVector %float 4 %_ptr_Function_v4float = OpTypePointer Function %v4float %_ptr_Input_v4float = OpTypePointer Input %v4float %BaseColor = OpVariable %_ptr_Input_v4float Input %_ptr_Function_int = OpTypePointer Function %int %int_0 = OpConstant %int 0 %_ptr_Input_int = OpTypePointer Input %int %Count = OpVariable %_ptr_Input_int Input %bool = OpTypeBool %bigColor = OpVariable %_ptr_Input_v4float Input %int_1 = OpConstant %int 1 %_ptr_Output_v4float = OpTypePointer Output %v4float %outColor = OpVariable %_ptr_Output_v4float Output %float_0 = OpConstant %float 0 %int_4 = OpConstant %int 4 %uint = OpTypeInt 32 0 %v4uint = OpTypeVector %uint 4 %_ptr_Input_v4uint = OpTypePointer Input %v4uint %v4 = OpVariable %_ptr_Input_v4uint Input %_ptr_Input_uint = OpTypePointer Input %uint %uint_4 = OpConstant %uint 4 %v3float = OpTypeVector %float 3 %uint_3 = OpConstant %uint 3 %int_16 = OpConstant %int 16 %int_10 = OpConstant %int 10 %int_2 = OpConstant %int 2 %int_5 = OpConstant %int 5 %int_3 = OpConstant %int 3 %f_0 = OpVariable %_ptr_Input_float Input %main = OpFunction %void None %3 %5 = OpLabel %f = OpVariable %_ptr_Function_float Function %color = OpVariable %_ptr_Function_v4float Function %i = OpVariable %_ptr_Function_int Function %sum = OpVariable %_ptr_Function_float Function %i_0 = OpVariable %_ptr_Function_int Function %i_1 = OpVariable %_ptr_Function_int Function %tv4 = OpVariable %_ptr_Function_v4float Function %r = OpVariable %_ptr_Function_v4float Function %i_2 = OpVariable %_ptr_Function_int Function %i_3 = OpVariable %_ptr_Function_int Function %i_4 = OpVariable %_ptr_Function_int Function %A = OpVariable %_ptr_Function_int Function %B = OpVariable %_ptr_Function_int Function %C = OpVariable %_ptr_Function_int Function %D = OpVariable %_ptr_Function_int Function %9 = OpLoad %int %c OpSelectionMerge %13 None OpSwitch %9 %12 1 %10 2 %11 %12 = OpLabel %39 = OpLoad %float %x %40 = OpExtInst %float %1 Tan %39 OpStore %f %40 OpBranch %13 %10 = OpLabel %19 = OpLoad %float %x %20 = OpExtInst %float %1 Sin %19 OpStore %f %20 OpBranch %13 %11 = OpLabel %23 = OpLoad %int %d OpSelectionMerge %26 None OpSwitch %23 %26 1 %24 2 %25 %24 = OpLabel %27 = OpLoad %float %x %28 = OpLoad %float %x %29 = OpFMul %float %27 %28 %30 = OpLoad %float %x %31 = OpFMul %float %29 %30 OpStore %f %31 OpBranch %26 %25 = OpLabel %33 = OpLoad %float %x %34 = OpLoad %float %x %35 = OpFMul %float %33 %34 OpStore %f %35 OpBranch %26 %26 = OpLabel OpBranch %13 %13 = OpLabel %47 = OpLoad %v4float %BaseColor OpStore %color %47 OpStore %i %int_0 OpBranch %51 %51 = OpLabel OpLoopMerge %53 %54 None OpBranch %55 %55 = OpLabel %56 = OpLoad %int %i %59 = OpLoad %int %Count %61 = OpSLessThan %bool %56 %59 OpBranchConditional %61 %52 %53 %52 = OpLabel %63 = OpLoad %v4float %bigColor %64 = OpLoad %v4float %color %65 = OpFAdd %v4float %64 %63 OpStore %color %65 OpBranch %54 %54 = OpLabel %66 = OpLoad %int %i %68 = OpIAdd %int %66 %int_1 OpStore %i %68 OpBranch %51 %53 = OpLabel %71 = OpLoad %v4float %color OpStore %outColor %71 OpStore %sum %float_0 OpStore %i_0 %int_0 OpBranch %75 %75 = OpLabel OpLoopMerge %77 %78 None OpBranch %79 %79 = OpLabel %80 = OpLoad %int %i_0 %82 = OpSLessThan %bool %80 %int_4 OpBranchConditional %82 %76 %77 %76 = OpLabel %87 = OpLoad %int %i_0 %89 = OpAccessChain %_ptr_Input_uint %v4 %87 %90 = OpLoad %uint %89 %91 = OpConvertUToF %float %90 %92 = OpLoad %float %sum %93 = OpFAdd %float %92 %91 OpStore %sum %93 OpBranch %78 %78 = OpLabel %94 = OpLoad %int %i_0 %95 = OpIAdd %int %94 %int_1 OpStore %i_0 %95 OpBranch %75 %77 = OpLabel OpStore %i_1 %int_0 OpBranch %97 %97 = OpLabel OpLoopMerge %99 %100 None OpBranch %101 %101 = OpLabel %102 = OpLoad %int %i_1 %103 = OpSLessThan %bool %102 %int_4 OpBranchConditional %103 %98 %99 %98 = OpLabel %105 = OpLoad %int %i_1 %106 = OpLoad %int %i_1 %107 = OpAccessChain %_ptr_Input_uint %v4 %106 %108 = OpLoad %uint %107 %110 = OpIMul %uint %108 %uint_4 %111 = OpConvertUToF %float %110 %112 = OpAccessChain %_ptr_Function_float %tv4 %105 OpStore %112 %111 OpBranch %100 %100 = OpLabel %113 = OpLoad %int %i_1 %114 = OpIAdd %int %113 %int_1 OpStore %i_1 %114 OpBranch %97 %99 = OpLabel %115 = OpLoad %float %sum %116 = OpCompositeConstruct %v4float %115 %115 %115 %115 %117 = OpLoad %v4float %tv4 %118 = OpFAdd %v4float %116 %117 %119 = OpLoad %v4float %outColor %120 = OpFAdd %v4float %119 %118 OpStore %outColor %120 %123 = OpLoad %v4float %BaseColor %124 = OpVectorShuffle %v3float %123 %123 0 1 2 %125 = OpLoad %v4float %r %126 = OpVectorShuffle %v4float %125 %124 4 5 6 3 OpStore %r %126 OpStore %i_2 %int_0 OpBranch %128 %128 = OpLabel OpLoopMerge %130 %131 None OpBranch %132 %132 = OpLabel %133 = OpLoad %int %i_2 %134 = OpLoad %int %Count %135 = OpSLessThan %bool %133 %134 OpBranchConditional %135 %129 %130 %129 = OpLabel %136 = OpLoad %float %f %138 = OpAccessChain %_ptr_Function_float %r %uint_3 OpStore %138 %136 OpBranch %131 %131 = OpLabel %139 = OpLoad %int %i_2 %140 = OpIAdd %int %139 %int_1 OpStore %i_2 %140 OpBranch %128 %130 = OpLabel %141 = OpLoad %v4float %r %142 = OpVectorShuffle %v3float %141 %141 0 1 2 %143 = OpLoad %v4float %outColor %144 = OpVectorShuffle %v3float %143 %143 0 1 2 %145 = OpFAdd %v3float %144 %142 %146 = OpLoad %v4float %outColor %147 = OpVectorShuffle %v4float %146 %145 4 5 6 3 OpStore %outColor %147 OpStore %i_3 %int_0 OpBranch %149 %149 = OpLabel OpLoopMerge %151 %152 None OpBranch %153 %153 = OpLabel %154 = OpLoad %int %i_3 %156 = OpSLessThan %bool %154 %int_16 OpBranchConditional %156 %150 %151 %150 = OpLabel %157 = OpLoad %float %f %158 = OpLoad %v4float %outColor %159 = OpVectorTimesScalar %v4float %158 %157 OpStore %outColor %159 OpBranch %152 %152 = OpLabel %160 = OpLoad %int %i_3 %161 = OpIAdd %int %160 %int_4 OpStore %i_3 %161 OpBranch %149 %151 = OpLabel OpStore %i_4 %int_0 OpBranch %163 %163 = OpLabel OpLoopMerge %165 %166 None OpBranch %167 %167 = OpLabel %168 = OpLoad %int %i_4 %170 = OpSLessThan %bool %168 %int_10 OpBranchConditional %170 %164 %165 %164 = OpLabel OpStore %A %int_1 %172 = OpLoad %int %i_4 %174 = OpSMod %int %172 %int_2 %175 = OpIEqual %bool %174 %int_0 OpSelectionMerge %177 None OpBranchConditional %175 %176 %177 %176 = OpLabel OpStore %B %int_2 OpBranch %166 %177 = OpLabel %181 = OpLoad %int %i_4 %183 = OpSMod %int %181 %int_5 %184 = OpIEqual %bool %183 %int_0 OpSelectionMerge %186 None OpBranchConditional %184 %185 %186 %185 = OpLabel OpStore %B %int_2 OpBranch %165 %186 = OpLabel %188 = OpLoad %int %i_4 %189 = OpIAdd %int %188 %int_1 OpStore %i_4 %189 OpBranch %166 %166 = OpLabel OpBranch %163 %165 = OpLabel OpStore %D %int_3 OpReturn OpFunctionEnd