1 OpCapability Shader 2 %1 = OpExtInstImport "GLSL.std.450" 3 OpMemoryModel Logical GLSL450 4 OpEntryPoint GLCompute %4 "main" %15 5 OpExecutionMode %4 LocalSize 1 1 1 6 OpSource ESSL 310 7 OpName %4 "main" 8 OpName %6 "f1(" 9 OpName %8 "f2(" 10 OpName %12 "x" 11 OpName %15 "gl_LocalInvocationID" 12 OpName %20 "y" 13 OpName %27 "image" 14 OpName %44 "sum" 15 OpName %46 "i" 16 OpName %56 "j" 17 OpName %80 "BufferOut" 18 OpMemberName %80 0 "o_uv4" 19 OpMemberName %80 1 "o_v3" 20 OpMemberName %80 2 "o_i" 21 OpName %82 "" 22 OpName %88 "BufferIn" 23 OpMemberName %88 0 "i_u" 24 OpMemberName %88 1 "i_v4" 25 OpMemberName %88 2 "i_f" 26 OpName %90 "" 27 OpName %101 "i" 28 OpName %128 "image2" 29 OpDecorate %15 BuiltIn LocalInvocationId 30 OpDecorate %27 DescriptorSet 0 31 OpDecorate %27 Binding 2 32 OpMemberDecorate %80 0 Offset 0 33 OpMemberDecorate %80 1 Offset 16 34 OpMemberDecorate %80 2 Offset 28 35 OpDecorate %80 BufferBlock 36 OpDecorate %82 DescriptorSet 0 37 OpDecorate %82 Binding 1 38 OpMemberDecorate %88 0 Offset 0 39 OpMemberDecorate %88 1 RowMajor 40 OpMemberDecorate %88 1 Offset 16 41 OpMemberDecorate %88 1 MatrixStride 16 42 OpMemberDecorate %88 2 Offset 80 43 OpDecorate %88 Block 44 OpDecorate %90 DescriptorSet 0 45 OpDecorate %90 Binding 0 46 OpDecorate %128 DescriptorSet 0 47 OpDecorate %128 Binding 3 48 %2 = OpTypeVoid 49 %3 = OpTypeFunction %2 50 %10 = OpTypeInt 32 0 51 %11 = OpTypePointer Function %10 52 %13 = OpTypeVector %10 3 53 %14 = OpTypePointer Input %13 54 %15 = OpVariable %14 Input 55 %16 = OpConstant %10 0 56 %17 = OpTypePointer Input %10 57 %21 = OpConstant %10 1 58 %24 = OpTypeInt 32 1 59 %25 = OpTypeImage %24 2D 0 0 0 2 R32i 60 %26 = OpTypePointer UniformConstant %25 61 %27 = OpVariable %26 UniformConstant 62 %29 = OpTypeVector %10 2 63 %32 = OpTypeVector %24 2 64 %38 = OpTypeVector %24 4 65 %40 = OpConstant %10 2 66 %41 = OpConstant %10 3400 67 %42 = OpConstant %10 264 68 %43 = OpTypePointer Function %24 69 %45 = OpConstant %24 0 70 %53 = OpConstant %24 2 71 %54 = OpTypeBool 72 %73 = OpConstant %24 1 73 %77 = OpTypeVector %10 4 74 %78 = OpTypeFloat 32 75 %79 = OpTypeVector %78 3 76 %80 = OpTypeStruct %77 %79 %24 77 %81 = OpTypePointer Uniform %80 78 %82 = OpVariable %81 Uniform 79 %84 = OpTypePointer Uniform %24 80 %86 = OpTypeVector %78 4 81 %87 = OpTypeMatrix %86 4 82 %88 = OpTypeStruct %10 %87 %78 83 %89 = OpTypePointer Uniform %88 84 %90 = OpVariable %89 Uniform 85 %91 = OpTypePointer Uniform %87 86 %94 = OpTypePointer Uniform %77 87 %108 = OpConstant %24 3 88 %110 = OpTypePointer Uniform %79 89 %113 = OpTypePointer Uniform %78 90 %128 = OpVariable %26 UniformConstant 91 %130 = OpConstantComposite %32 %45 %45 92 %4 = OpFunction %2 None %3 93 %5 = OpLabel 94 %136 = OpFunctionCall %2 %6 95 %137 = OpFunctionCall %2 %8 96 OpReturn 97 OpFunctionEnd 98 %6 = OpFunction %2 None %3 99 %7 = OpLabel 100 %12 = OpVariable %11 Function 101 %20 = OpVariable %11 Function 102 %44 = OpVariable %43 Function 103 %46 = OpVariable %43 Function 104 %56 = OpVariable %43 Function 105 %18 = OpAccessChain %17 %15 %16 106 %19 = OpLoad %10 %18 107 OpStore %12 %19 108 %22 = OpAccessChain %17 %15 %21 109 %23 = OpLoad %10 %22 110 OpStore %20 %23 111 %28 = OpLoad %25 %27 112 %30 = OpLoad %13 %15 113 %31 = OpVectorShuffle %29 %30 %30 0 1 114 %33 = OpBitcast %32 %31 115 %34 = OpLoad %10 %12 116 %35 = OpLoad %10 %20 117 %36 = OpIAdd %10 %34 %35 118 %37 = OpBitcast %24 %36 119 %39 = OpCompositeConstruct %38 %37 %37 %37 %37 120 OpImageWrite %28 %33 %39 121 OpMemoryBarrier %40 %41 122 OpControlBarrier %40 %40 %42 123 OpStore %44 %45 124 OpStore %46 %45 125 OpBranch %47 126 %47 = OpLabel 127 OpLoopMerge %49 %50 None 128 OpBranch %51 129 %51 = OpLabel 130 %52 = OpLoad %24 %46 131 %55 = OpSLessThan %54 %52 %53 132 OpBranchConditional %55 %48 %49 133 %48 = OpLabel 134 OpStore %56 %45 135 OpBranch %57 136 %57 = OpLabel 137 OpLoopMerge %59 %60 None 138 OpBranch %61 139 %61 = OpLabel 140 %62 = OpLoad %24 %56 141 %63 = OpSLessThan %54 %62 %53 142 OpBranchConditional %63 %58 %59 143 %58 = OpLabel 144 %64 = OpLoad %25 %27 145 %65 = OpLoad %24 %46 146 %66 = OpLoad %24 %56 147 %67 = OpCompositeConstruct %32 %65 %66 148 %68 = OpImageRead %38 %64 %67 149 %69 = OpCompositeExtract %24 %68 0 150 %70 = OpLoad %24 %44 151 %71 = OpIMul %24 %70 %69 152 OpStore %44 %71 153 OpBranch %60 154 %60 = OpLabel 155 %72 = OpLoad %24 %56 156 %74 = OpIAdd %24 %72 %73 157 OpStore %56 %74 158 OpBranch %57 159 %59 = OpLabel 160 OpBranch %50 161 %50 = OpLabel 162 %75 = OpLoad %24 %46 163 %76 = OpIAdd %24 %75 %73 164 OpStore %46 %76 165 OpBranch %47 166 %49 = OpLabel 167 OpMemoryBarrier %40 %41 168 OpControlBarrier %40 %40 %42 169 %83 = OpLoad %24 %44 170 %85 = OpAccessChain %84 %82 %53 171 OpStore %85 %83 172 OpReturn 173 OpFunctionEnd 174 %8 = OpFunction %2 None %3 175 %9 = OpLabel 176 %101 = OpVariable %43 Function 177 %92 = OpAccessChain %91 %90 %73 178 %93 = OpLoad %87 %92 179 %95 = OpAccessChain %94 %82 %45 180 %96 = OpLoad %77 %95 181 %97 = OpConvertUToF %86 %96 182 %98 = OpMatrixTimesVector %86 %93 %97 183 %99 = OpConvertFToU %77 %98 184 %100 = OpAccessChain %94 %82 %45 185 OpStore %100 %99 186 OpStore %101 %45 187 OpBranch %102 188 %102 = OpLabel 189 OpLoopMerge %104 %105 None 190 OpBranch %106 191 %106 = OpLabel 192 %107 = OpLoad %24 %101 193 %109 = OpSLessThan %54 %107 %108 194 OpBranchConditional %109 %103 %104 195 %103 = OpLabel 196 %111 = OpAccessChain %110 %82 %73 197 %112 = OpLoad %79 %111 198 %114 = OpAccessChain %113 %90 %53 199 %115 = OpLoad %78 %114 200 %116 = OpVectorTimesScalar %79 %112 %115 201 %117 = OpConvertFToU %13 %116 202 %118 = OpCompositeExtract %10 %117 0 203 %119 = OpCompositeExtract %10 %117 1 204 %120 = OpCompositeExtract %10 %117 2 205 %121 = OpCompositeConstruct %77 %118 %119 %120 %16 206 %122 = OpAccessChain %94 %82 %45 207 %123 = OpLoad %77 %122 208 %124 = OpIAdd %77 %123 %121 209 %125 = OpAccessChain %94 %82 %45 210 OpStore %125 %124 211 OpBranch %105 212 %105 = OpLabel 213 %126 = OpLoad %24 %101 214 %127 = OpIAdd %24 %126 %73 215 OpStore %101 %127 216 OpBranch %102 217 %104 = OpLabel 218 OpMemoryBarrier %40 %41 219 OpControlBarrier %40 %40 %42 220 %129 = OpLoad %25 %128 221 %131 = OpImageRead %38 %129 %130 222 %132 = OpCompositeExtract %24 %131 0 223 %133 = OpConvertSToF %78 %132 224 %134 = OpCompositeConstruct %79 %133 %133 %133 225 %135 = OpAccessChain %110 %82 %73 226 OpStore %135 %134 227 OpReturn 228 OpFunctionEnd 229 230