1; SPIR-V 2; Version: 1.3 3; Generator: Khronos SPIR-V Tools Assembler; 0 4; Bound: 139 5; Schema: 0 6 OpCapability Shader 7 %1 = OpExtInstImport "GLSL.std.450" 8 OpMemoryModel Logical GLSL450 9 OpEntryPoint GLCompute %main "main" 10 OpExecutionMode %main LocalSize 1 1 1 11 OpSource GLSL 450 12 OpName %main "main" 13 OpName %SSBO "SSBO" 14 OpMemberName %SSBO 0 "a1" 15 OpMemberName %SSBO 1 "a2" 16 OpMemberName %SSBO 2 "a3" 17 OpMemberName %SSBO 3 "a4" 18 OpMemberName %SSBO 4 "b1" 19 OpMemberName %SSBO 5 "b2" 20 OpMemberName %SSBO 6 "b3" 21 OpMemberName %SSBO 7 "b4" 22 OpMemberName %SSBO 8 "c1" 23 OpMemberName %SSBO 9 "c2" 24 OpMemberName %SSBO 10 "c3" 25 OpMemberName %SSBO 11 "c4" 26 OpName %_ "" 27 OpName %i "i" 28 OpMemberDecorate %SSBO 0 Offset 0 29 OpMemberDecorate %SSBO 1 Offset 8 30 OpMemberDecorate %SSBO 2 Offset 16 31 OpMemberDecorate %SSBO 3 Offset 32 32 OpMemberDecorate %SSBO 4 Offset 48 33 OpMemberDecorate %SSBO 5 Offset 56 34 OpMemberDecorate %SSBO 6 Offset 64 35 OpMemberDecorate %SSBO 7 Offset 80 36 OpMemberDecorate %SSBO 8 Offset 96 37 OpMemberDecorate %SSBO 9 Offset 104 38 OpMemberDecorate %SSBO 10 Offset 112 39 OpMemberDecorate %SSBO 11 Offset 128 40 OpDecorate %SSBO BufferBlock 41 OpDecorate %_ DescriptorSet 0 42 OpDecorate %_ Binding 0 43 %void = OpTypeVoid 44 %7 = OpTypeFunction %void 45 %float = OpTypeFloat 32 46 %v2float = OpTypeVector %float 2 47 %v3float = OpTypeVector %float 3 48 %v4float = OpTypeVector %float 4 49 %SSBO = OpTypeStruct %float %v2float %v3float %v4float %float %v2float %v3float %v4float %float %v2float %v3float %v4float 50%_ptr_Uniform_SSBO = OpTypePointer Uniform %SSBO 51 %_ = OpVariable %_ptr_Uniform_SSBO Uniform 52 %int = OpTypeInt 32 1 53 %int_0 = OpConstant %int 0 54 %int_4 = OpConstant %int 4 55%_ptr_Uniform_float = OpTypePointer Uniform %float 56 %int_8 = OpConstant %int 8 57 %int_1 = OpConstant %int 1 58 %int_5 = OpConstant %int 5 59%_ptr_Uniform_v2float = OpTypePointer Uniform %v2float 60 %int_9 = OpConstant %int 9 61 %int_2 = OpConstant %int 2 62 %int_6 = OpConstant %int 6 63%_ptr_Uniform_v3float = OpTypePointer Uniform %v3float 64 %int_10 = OpConstant %int 10 65 %int_3 = OpConstant %int 3 66 %int_7 = OpConstant %int 7 67%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float 68 %int_11 = OpConstant %int 11 69%_ptr_Function_int = OpTypePointer Function %int 70 %bool = OpTypeBool 71 %uint = OpTypeInt 32 0 72 %uint_0 = OpConstant %uint 0 73 %uint_1 = OpConstant %uint 1 74 %main = OpFunction %void None %7 75 %35 = OpLabel 76 %i = OpVariable %_ptr_Function_int Function 77 %36 = OpAccessChain %_ptr_Uniform_float %_ %int_4 78 %37 = OpLoad %float %36 79 %38 = OpAccessChain %_ptr_Uniform_float %_ %int_8 80 %39 = OpLoad %float %38 81 %40 = OpExtInst %float %1 NMin %37 %39 82 %41 = OpAccessChain %_ptr_Uniform_float %_ %int_0 83 OpStore %41 %40 84 %42 = OpAccessChain %_ptr_Uniform_v2float %_ %int_5 85 %43 = OpLoad %v2float %42 86 %44 = OpAccessChain %_ptr_Uniform_v2float %_ %int_9 87 %45 = OpLoad %v2float %44 88 %46 = OpExtInst %v2float %1 NMin %43 %45 89 %47 = OpAccessChain %_ptr_Uniform_v2float %_ %int_1 90 OpStore %47 %46 91 %48 = OpAccessChain %_ptr_Uniform_v3float %_ %int_6 92 %49 = OpLoad %v3float %48 93 %50 = OpAccessChain %_ptr_Uniform_v3float %_ %int_10 94 %51 = OpLoad %v3float %50 95 %52 = OpExtInst %v3float %1 NMin %49 %51 96 %53 = OpAccessChain %_ptr_Uniform_v3float %_ %int_2 97 OpStore %53 %52 98 %54 = OpAccessChain %_ptr_Uniform_v4float %_ %int_7 99 %55 = OpLoad %v4float %54 100 %56 = OpAccessChain %_ptr_Uniform_v4float %_ %int_11 101 %57 = OpLoad %v4float %56 102 %58 = OpExtInst %v4float %1 NMin %55 %57 103 %59 = OpAccessChain %_ptr_Uniform_v4float %_ %int_3 104 OpStore %59 %58 105 %60 = OpAccessChain %_ptr_Uniform_float %_ %int_4 106 %61 = OpLoad %float %60 107 %62 = OpAccessChain %_ptr_Uniform_float %_ %int_8 108 %63 = OpLoad %float %62 109 %64 = OpExtInst %float %1 NMax %61 %63 110 %65 = OpAccessChain %_ptr_Uniform_float %_ %int_0 111 OpStore %65 %64 112 %66 = OpAccessChain %_ptr_Uniform_v2float %_ %int_5 113 %67 = OpLoad %v2float %66 114 %68 = OpAccessChain %_ptr_Uniform_v2float %_ %int_9 115 %69 = OpLoad %v2float %68 116 %70 = OpExtInst %v2float %1 NMax %67 %69 117 %71 = OpAccessChain %_ptr_Uniform_v2float %_ %int_1 118 OpStore %71 %70 119 %72 = OpAccessChain %_ptr_Uniform_v3float %_ %int_6 120 %73 = OpLoad %v3float %72 121 %74 = OpAccessChain %_ptr_Uniform_v3float %_ %int_10 122 %75 = OpLoad %v3float %74 123 %76 = OpExtInst %v3float %1 NMax %73 %75 124 %77 = OpAccessChain %_ptr_Uniform_v3float %_ %int_2 125 OpStore %77 %76 126 %78 = OpAccessChain %_ptr_Uniform_v4float %_ %int_7 127 %79 = OpLoad %v4float %78 128 %80 = OpAccessChain %_ptr_Uniform_v4float %_ %int_11 129 %81 = OpLoad %v4float %80 130 %82 = OpExtInst %v4float %1 NMax %79 %81 131 %83 = OpAccessChain %_ptr_Uniform_v4float %_ %int_3 132 OpStore %83 %82 133 %84 = OpAccessChain %_ptr_Uniform_float %_ %int_0 134 %85 = OpLoad %float %84 135 %86 = OpAccessChain %_ptr_Uniform_float %_ %int_4 136 %87 = OpLoad %float %86 137 %88 = OpAccessChain %_ptr_Uniform_float %_ %int_8 138 %89 = OpLoad %float %88 139 %90 = OpExtInst %float %1 NClamp %85 %87 %89 140 %91 = OpAccessChain %_ptr_Uniform_float %_ %int_0 141 OpStore %91 %90 142 %92 = OpAccessChain %_ptr_Uniform_v2float %_ %int_1 143 %93 = OpLoad %v2float %92 144 %94 = OpAccessChain %_ptr_Uniform_v2float %_ %int_5 145 %95 = OpLoad %v2float %94 146 %96 = OpAccessChain %_ptr_Uniform_v2float %_ %int_9 147 %97 = OpLoad %v2float %96 148 %98 = OpExtInst %v2float %1 NClamp %93 %95 %97 149 %99 = OpAccessChain %_ptr_Uniform_v2float %_ %int_1 150 OpStore %99 %98 151 %100 = OpAccessChain %_ptr_Uniform_v3float %_ %int_2 152 %101 = OpLoad %v3float %100 153 %102 = OpAccessChain %_ptr_Uniform_v3float %_ %int_6 154 %103 = OpLoad %v3float %102 155 %104 = OpAccessChain %_ptr_Uniform_v3float %_ %int_10 156 %105 = OpLoad %v3float %104 157 %106 = OpExtInst %v3float %1 NClamp %101 %103 %105 158 %107 = OpAccessChain %_ptr_Uniform_v3float %_ %int_2 159 OpStore %107 %106 160 %108 = OpAccessChain %_ptr_Uniform_v4float %_ %int_3 161 %109 = OpLoad %v4float %108 162 %110 = OpAccessChain %_ptr_Uniform_v4float %_ %int_7 163 %111 = OpLoad %v4float %110 164 %112 = OpAccessChain %_ptr_Uniform_v4float %_ %int_11 165 %113 = OpLoad %v4float %112 166 %114 = OpExtInst %v4float %1 NClamp %109 %111 %113 167 %115 = OpAccessChain %_ptr_Uniform_v4float %_ %int_3 168 OpStore %115 %114 169 OpStore %i %int_0 170 OpBranch %116 171 %116 = OpLabel 172 OpLoopMerge %117 %118 None 173 OpBranch %119 174 %119 = OpLabel 175 %120 = OpLoad %int %i 176 %121 = OpSLessThan %bool %120 %int_2 177 OpBranchConditional %121 %122 %117 178 %122 = OpLabel 179 %123 = OpAccessChain %_ptr_Uniform_v2float %_ %int_5 180 %124 = OpLoad %v2float %123 181 %125 = OpAccessChain %_ptr_Uniform_v2float %_ %int_9 182 %126 = OpLoad %v2float %125 183 %127 = OpExtInst %v2float %1 NMin %124 %126 184 %128 = OpAccessChain %_ptr_Uniform_v2float %_ %int_1 185 OpStore %128 %127 186 OpBranch %118 187 %118 = OpLabel 188 %129 = OpLoad %int %i 189 %130 = OpIAdd %int %129 %int_1 190 OpStore %i %130 191 %131 = OpAccessChain %_ptr_Uniform_float %_ %int_0 192 %132 = OpLoad %float %131 193 %133 = OpAccessChain %_ptr_Uniform_float %_ %int_5 %uint_0 194 %134 = OpLoad %float %133 195 %135 = OpAccessChain %_ptr_Uniform_float %_ %int_5 %uint_1 196 %136 = OpLoad %float %135 197 %137 = OpExtInst %float %1 NClamp %132 %134 %136 198 %138 = OpAccessChain %_ptr_Uniform_float %_ %int_0 199 OpStore %138 %137 200 OpBranch %116 201 %117 = OpLabel 202 OpReturn 203 OpFunctionEnd 204