1; SPIR-V 2; Version: 1.0 3; Generator: Khronos Glslang Reference Front End; 6 4; Bound: 111 5; Schema: 0 6 OpCapability Shader 7 %1 = OpExtInstImport "GLSL.std.450" 8 OpMemoryModel Logical GLSL450 9 OpEntryPoint Fragment %main "main" %FragColor %index 10 OpExecutionMode %main OriginUpperLeft 11 OpSource ESSL 310 12 OpName %main "main" 13 OpName %FragColor "FragColor" 14 OpName %index "index" 15 OpName %indexable "indexable" 16 OpName %indexable_0 "indexable" 17 OpName %indexable_1 "indexable" 18 OpName %foo "foo" 19 OpName %foobar "foobar" 20 OpName %baz "baz" 21 OpDecorate %FragColor RelaxedPrecision 22 OpDecorate %FragColor Location 0 23 OpDecorate %index RelaxedPrecision 24 OpDecorate %index Flat 25 OpDecorate %index Location 0 26 OpDecorate %20 RelaxedPrecision 27 OpDecorate %25 RelaxedPrecision 28 OpDecorate %26 RelaxedPrecision 29 OpDecorate %32 RelaxedPrecision 30 OpDecorate %34 RelaxedPrecision 31 OpDecorate %37 RelaxedPrecision 32 OpDecorate %38 RelaxedPrecision 33 OpDecorate %39 RelaxedPrecision 34 OpDecorate %41 RelaxedPrecision 35 OpDecorate %42 RelaxedPrecision 36 OpDecorate %45 RelaxedPrecision 37 OpDecorate %46 RelaxedPrecision 38 OpDecorate %47 RelaxedPrecision 39 OpDecorate %foo RelaxedPrecision 40 OpDecorate %61 RelaxedPrecision 41 OpDecorate %66 RelaxedPrecision 42 OpDecorate %68 RelaxedPrecision 43 OpDecorate %71 RelaxedPrecision 44 OpDecorate %72 RelaxedPrecision 45 OpDecorate %73 RelaxedPrecision 46 OpDecorate %75 RelaxedPrecision 47 OpDecorate %76 RelaxedPrecision 48 OpDecorate %79 RelaxedPrecision 49 OpDecorate %80 RelaxedPrecision 50 OpDecorate %81 RelaxedPrecision 51 OpDecorate %foobar RelaxedPrecision 52 OpDecorate %83 RelaxedPrecision 53 OpDecorate %90 RelaxedPrecision 54 OpDecorate %91 RelaxedPrecision 55 OpDecorate %93 RelaxedPrecision 56 OpDecorate %94 RelaxedPrecision 57 OpDecorate %95 RelaxedPrecision 58 OpDecorate %baz RelaxedPrecision 59 OpDecorate %105 RelaxedPrecision 60 OpDecorate %106 RelaxedPrecision 61 OpDecorate %108 RelaxedPrecision 62 OpDecorate %109 RelaxedPrecision 63 OpDecorate %110 RelaxedPrecision 64 OpDecorate %16 RelaxedPrecision 65 %void = OpTypeVoid 66 %3 = OpTypeFunction %void 67 %float = OpTypeFloat 32 68%_ptr_Output_float = OpTypePointer Output %float 69 %FragColor = OpVariable %_ptr_Output_float Output 70 %uint = OpTypeInt 32 0 71 %uint_16 = OpConstant %uint 16 72%_arr_float_uint_16 = OpTypeArray %float %uint_16 73 %float_1 = OpConstant %float 1 74 %float_2 = OpConstant %float 2 75 %float_3 = OpConstant %float 3 76 %float_4 = OpConstant %float 4 77 %16 = OpConstantComposite %_arr_float_uint_16 %float_1 %float_2 %float_3 %float_4 %float_1 %float_2 %float_3 %float_4 %float_1 %float_2 %float_3 %float_4 %float_1 %float_2 %float_3 %float_4 78 %int = OpTypeInt 32 1 79%_ptr_Input_int = OpTypePointer Input %int 80 %index = OpVariable %_ptr_Input_int Input 81%_ptr_Function__arr_float_uint_16 = OpTypePointer Function %_arr_float_uint_16 82%_ptr_Function_float = OpTypePointer Function %float 83 %int_10 = OpConstant %int 10 84 %bool = OpTypeBool 85 %int_1 = OpConstant %int 1 86 %v4float = OpTypeVector %float 4 87 %uint_4 = OpConstant %uint 4 88%_arr_v4float_uint_4 = OpTypeArray %v4float %uint_4 89%_ptr_Function__arr_v4float_uint_4 = OpTypePointer Function %_arr_v4float_uint_4 90 %float_0 = OpConstant %float 0 91 %54 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0 92 %55 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 93 %float_8 = OpConstant %float 8 94 %57 = OpConstantComposite %v4float %float_8 %float_8 %float_8 %float_8 95 %float_5 = OpConstant %float 5 96 %59 = OpConstantComposite %v4float %float_5 %float_5 %float_5 %float_5 97 %60 = OpConstantComposite %_arr_v4float_uint_4 %54 %55 %57 %59 98 %int_30 = OpConstant %int 30 99 %int_3 = OpConstant %int 3 100 %uint_1 = OpConstant %uint 1 101 %uint_0 = OpConstant %uint 0 102 %float_20 = OpConstant %float 20 103 %uint_2 = OpConstant %uint 2 104 %97 = OpConstantComposite %v4float %float_20 %float_20 %float_20 %float_20 105 %float_30 = OpConstant %float 30 106 %99 = OpConstantComposite %v4float %float_30 %float_30 %float_30 %float_30 107 %float_50 = OpConstant %float 50 108 %101 = OpConstantComposite %v4float %float_50 %float_50 %float_50 %float_50 109 %float_60 = OpConstant %float 60 110 %103 = OpConstantComposite %v4float %float_60 %float_60 %float_60 %float_60 111 %104 = OpConstantComposite %_arr_v4float_uint_4 %97 %99 %101 %103 112 %main = OpFunction %void None %3 113 %5 = OpLabel 114 %indexable = OpVariable %_ptr_Function__arr_float_uint_16 Function %16 115%indexable_0 = OpVariable %_ptr_Function__arr_float_uint_16 Function %16 116%indexable_1 = OpVariable %_ptr_Function__arr_float_uint_16 Function %16 117 %foo = OpVariable %_ptr_Function__arr_v4float_uint_4 Function %60 118 %foobar = OpVariable %_ptr_Function__arr_v4float_uint_4 Function %60 119 %baz = OpVariable %_ptr_Function__arr_v4float_uint_4 Function %60 120 %20 = OpLoad %int %index 121 %24 = OpAccessChain %_ptr_Function_float %indexable %20 122 %25 = OpLoad %float %24 123 OpStore %FragColor %25 124 %26 = OpLoad %int %index 125 %29 = OpSLessThan %bool %26 %int_10 126 OpSelectionMerge %31 None 127 OpBranchConditional %29 %30 %40 128 %30 = OpLabel 129 %32 = OpLoad %int %index 130 %34 = OpBitwiseXor %int %32 %int_1 131 %36 = OpAccessChain %_ptr_Function_float %indexable_0 %34 132 %37 = OpLoad %float %36 133 %38 = OpLoad %float %FragColor 134 %39 = OpFAdd %float %38 %37 135 OpStore %FragColor %39 136 OpBranch %31 137 %40 = OpLabel 138 %41 = OpLoad %int %index 139 %42 = OpBitwiseAnd %int %41 %int_1 140 %44 = OpAccessChain %_ptr_Function_float %indexable_1 %42 141 %45 = OpLoad %float %44 142 %46 = OpLoad %float %FragColor 143 %47 = OpFAdd %float %46 %45 144 OpStore %FragColor %47 145 OpBranch %31 146 %31 = OpLabel 147 %61 = OpLoad %int %index 148 %63 = OpSGreaterThan %bool %61 %int_30 149 OpSelectionMerge %65 None 150 OpBranchConditional %63 %64 %74 151 %64 = OpLabel 152 %66 = OpLoad %int %index 153 %68 = OpBitwiseAnd %int %66 %int_3 154 %70 = OpAccessChain %_ptr_Function_float %foo %68 %uint_1 155 %71 = OpLoad %float %70 156 %72 = OpLoad %float %FragColor 157 %73 = OpFAdd %float %72 %71 158 OpStore %FragColor %73 159 OpBranch %65 160 %74 = OpLabel 161 %75 = OpLoad %int %index 162 %76 = OpBitwiseAnd %int %75 %int_1 163 %78 = OpAccessChain %_ptr_Function_float %foo %76 %uint_0 164 %79 = OpLoad %float %78 165 %80 = OpLoad %float %FragColor 166 %81 = OpFAdd %float %80 %79 167 OpStore %FragColor %81 168 OpBranch %65 169 %65 = OpLabel 170 %83 = OpLoad %int %index 171 %84 = OpSGreaterThan %bool %83 %int_30 172 OpSelectionMerge %86 None 173 OpBranchConditional %84 %85 %86 174 %85 = OpLabel 175 %89 = OpAccessChain %_ptr_Function_float %foobar %int_1 %uint_2 176 OpStore %89 %float_20 177 OpBranch %86 178 %86 = OpLabel 179 %90 = OpLoad %int %index 180 %91 = OpBitwiseAnd %int %90 %int_3 181 %92 = OpAccessChain %_ptr_Function_float %foobar %91 %uint_2 182 %93 = OpLoad %float %92 183 %94 = OpLoad %float %FragColor 184 %95 = OpFAdd %float %94 %93 185 OpStore %FragColor %95 186 OpStore %baz %104 187 %105 = OpLoad %int %index 188 %106 = OpBitwiseAnd %int %105 %int_3 189 %107 = OpAccessChain %_ptr_Function_float %baz %106 %uint_2 190 %108 = OpLoad %float %107 191 %109 = OpLoad %float %FragColor 192 %110 = OpFAdd %float %109 %108 193 OpStore %FragColor %110 194 OpReturn 195 OpFunctionEnd 196