; SPIR-V
; Version: 1.1
; Generator: rspirv
; Bound: 242
OpCapability Shader
%1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint GLCompute %15 "main"
OpExecutionMode %15 LocalSize 1 1 1
%2 = OpTypeVoid
%3 = OpTypeInt 32 1
%4 = OpTypeVector %3 2
%5 = OpTypeVector %3 3
%6 = OpTypeVector %3 4
%7 = OpTypeInt 32 0
%8 = OpTypeVector %7 2
%9 = OpTypeVector %7 3
%10 = OpTypeVector %7 4
%12 = OpTypeFloat 32
%11 = OpTypeVector %12 2
%13 = OpTypeVector %12 4
%16 = OpTypeFunction %2
%17 = OpConstant  %3  0
%18 = OpConstantComposite  %4  %17 %17
%19 = OpConstantComposite  %5  %17 %17 %17
%20 = OpConstantComposite  %6  %17 %17 %17 %17
%21 = OpConstant  %7  0
%22 = OpConstantComposite  %8  %21 %21
%23 = OpConstantComposite  %9  %21 %21 %21
%24 = OpConstantComposite  %10  %21 %21 %21 %21
%25 = OpConstant  %12  0.0
%26 = OpConstantComposite  %11  %25 %25
%27 = OpConstantComposite  %13  %25 %25 %25 %25
%28 = OpConstant  %7  5
%29 = OpConstant  %7  10
%31 = OpTypePointer Function %3
%33 = OpTypePointer Function %4
%35 = OpTypePointer Function %5
%37 = OpTypePointer Function %6
%39 = OpTypePointer Function %7
%41 = OpTypePointer Function %8
%43 = OpTypePointer Function %9
%45 = OpTypePointer Function %10
%47 = OpTypePointer Function %11
%49 = OpTypePointer Function %13
%63 = OpConstant  %7  8
%70 = OpConstant  %7  16
%74 = OpConstant  %7  24
%112 = OpConstant  %7  32
%15 = OpFunction  %2  None %16
%14 = OpLabel
%48 = OpVariable  %49  Function %27
%42 = OpVariable  %43  Function %23
%36 = OpVariable  %37  Function %20
%30 = OpVariable  %31  Function %17
%44 = OpVariable  %45  Function %24
%38 = OpVariable  %39  Function %21
%32 = OpVariable  %33  Function %18
%46 = OpVariable  %47  Function %26
%40 = OpVariable  %41  Function %22
%34 = OpVariable  %35  Function %19
OpBranch %50
%50 = OpLabel
%51 = OpLoad  %13  %48
%52 = OpExtInst  %7  %1 PackSnorm4x8 %51
OpStore %38 %52
%53 = OpLoad  %13  %48
%54 = OpExtInst  %7  %1 PackUnorm4x8 %53
OpStore %38 %54
%55 = OpLoad  %11  %46
%56 = OpExtInst  %7  %1 PackSnorm2x16 %55
OpStore %38 %56
%57 = OpLoad  %11  %46
%58 = OpExtInst  %7  %1 PackUnorm2x16 %57
OpStore %38 %58
%59 = OpLoad  %11  %46
%60 = OpExtInst  %7  %1 PackHalf2x16 %59
OpStore %38 %60
%61 = OpLoad  %6  %36
%64 = OpCompositeExtract  %3  %61 0
%65 = OpBitcast  %7  %64
%66 = OpBitFieldInsert  %7  %21 %65 %21 %63
%67 = OpCompositeExtract  %3  %61 1
%68 = OpBitcast  %7  %67
%69 = OpBitFieldInsert  %7  %66 %68 %63 %63
%71 = OpCompositeExtract  %3  %61 2
%72 = OpBitcast  %7  %71
%73 = OpBitFieldInsert  %7  %69 %72 %70 %63
%75 = OpCompositeExtract  %3  %61 3
%76 = OpBitcast  %7  %75
%62 = OpBitFieldInsert  %7  %73 %76 %74 %63
OpStore %38 %62
%77 = OpLoad  %10  %44
%79 = OpCompositeExtract  %7  %77 0
%80 = OpBitFieldInsert  %7  %21 %79 %21 %63
%81 = OpCompositeExtract  %7  %77 1
%82 = OpBitFieldInsert  %7  %80 %81 %63 %63
%83 = OpCompositeExtract  %7  %77 2
%84 = OpBitFieldInsert  %7  %82 %83 %70 %63
%85 = OpCompositeExtract  %7  %77 3
%78 = OpBitFieldInsert  %7  %84 %85 %74 %63
OpStore %38 %78
%86 = OpLoad  %7  %38
%87 = OpExtInst  %13  %1 UnpackSnorm4x8 %86
OpStore %48 %87
%88 = OpLoad  %7  %38
%89 = OpExtInst  %13  %1 UnpackUnorm4x8 %88
OpStore %48 %89
%90 = OpLoad  %7  %38
%91 = OpExtInst  %11  %1 UnpackSnorm2x16 %90
OpStore %46 %91
%92 = OpLoad  %7  %38
%93 = OpExtInst  %11  %1 UnpackUnorm2x16 %92
OpStore %46 %93
%94 = OpLoad  %7  %38
%95 = OpExtInst  %11  %1 UnpackHalf2x16 %94
OpStore %46 %95
%96 = OpLoad  %7  %38
%98 = OpBitcast  %3  %96
%99 = OpBitFieldSExtract  %3  %98 %21 %63
%100 = OpBitFieldSExtract  %3  %98 %63 %63
%101 = OpBitFieldSExtract  %3  %98 %70 %63
%102 = OpBitFieldSExtract  %3  %98 %74 %63
%97 = OpCompositeConstruct  %6  %99 %100 %101 %102
OpStore %36 %97
%103 = OpLoad  %7  %38
%105 = OpBitFieldUExtract  %7  %103 %21 %63
%106 = OpBitFieldUExtract  %7  %103 %63 %63
%107 = OpBitFieldUExtract  %7  %103 %70 %63
%108 = OpBitFieldUExtract  %7  %103 %74 %63
%104 = OpCompositeConstruct  %10  %105 %106 %107 %108
OpStore %44 %104
%109 = OpLoad  %3  %30
%110 = OpLoad  %3  %30
%113 = OpExtInst  %7  %1 UMin %28 %112
%114 = OpISub  %7  %112 %113
%115 = OpExtInst  %7  %1 UMin %29 %114
%111 = OpBitFieldInsert  %3  %109 %110 %113 %115
OpStore %30 %111
%116 = OpLoad  %4  %32
%117 = OpLoad  %4  %32
%119 = OpExtInst  %7  %1 UMin %28 %112
%120 = OpISub  %7  %112 %119
%121 = OpExtInst  %7  %1 UMin %29 %120
%118 = OpBitFieldInsert  %4  %116 %117 %119 %121
OpStore %32 %118
%122 = OpLoad  %5  %34
%123 = OpLoad  %5  %34
%125 = OpExtInst  %7  %1 UMin %28 %112
%126 = OpISub  %7  %112 %125
%127 = OpExtInst  %7  %1 UMin %29 %126
%124 = OpBitFieldInsert  %5  %122 %123 %125 %127
OpStore %34 %124
%128 = OpLoad  %6  %36
%129 = OpLoad  %6  %36
%131 = OpExtInst  %7  %1 UMin %28 %112
%132 = OpISub  %7  %112 %131
%133 = OpExtInst  %7  %1 UMin %29 %132
%130 = OpBitFieldInsert  %6  %128 %129 %131 %133
OpStore %36 %130
%134 = OpLoad  %7  %38
%135 = OpLoad  %7  %38
%137 = OpExtInst  %7  %1 UMin %28 %112
%138 = OpISub  %7  %112 %137
%139 = OpExtInst  %7  %1 UMin %29 %138
%136 = OpBitFieldInsert  %7  %134 %135 %137 %139
OpStore %38 %136
%140 = OpLoad  %8  %40
%141 = OpLoad  %8  %40
%143 = OpExtInst  %7  %1 UMin %28 %112
%144 = OpISub  %7  %112 %143
%145 = OpExtInst  %7  %1 UMin %29 %144
%142 = OpBitFieldInsert  %8  %140 %141 %143 %145
OpStore %40 %142
%146 = OpLoad  %9  %42
%147 = OpLoad  %9  %42
%149 = OpExtInst  %7  %1 UMin %28 %112
%150 = OpISub  %7  %112 %149
%151 = OpExtInst  %7  %1 UMin %29 %150
%148 = OpBitFieldInsert  %9  %146 %147 %149 %151
OpStore %42 %148
%152 = OpLoad  %10  %44
%153 = OpLoad  %10  %44
%155 = OpExtInst  %7  %1 UMin %28 %112
%156 = OpISub  %7  %112 %155
%157 = OpExtInst  %7  %1 UMin %29 %156
%154 = OpBitFieldInsert  %10  %152 %153 %155 %157
OpStore %44 %154
%158 = OpLoad  %3  %30
%160 = OpExtInst  %7  %1 UMin %28 %112
%161 = OpISub  %7  %112 %160
%162 = OpExtInst  %7  %1 UMin %29 %161
%159 = OpBitFieldSExtract  %3  %158 %160 %162
OpStore %30 %159
%163 = OpLoad  %4  %32
%165 = OpExtInst  %7  %1 UMin %28 %112
%166 = OpISub  %7  %112 %165
%167 = OpExtInst  %7  %1 UMin %29 %166
%164 = OpBitFieldSExtract  %4  %163 %165 %167
OpStore %32 %164
%168 = OpLoad  %5  %34
%170 = OpExtInst  %7  %1 UMin %28 %112
%171 = OpISub  %7  %112 %170
%172 = OpExtInst  %7  %1 UMin %29 %171
%169 = OpBitFieldSExtract  %5  %168 %170 %172
OpStore %34 %169
%173 = OpLoad  %6  %36
%175 = OpExtInst  %7  %1 UMin %28 %112
%176 = OpISub  %7  %112 %175
%177 = OpExtInst  %7  %1 UMin %29 %176
%174 = OpBitFieldSExtract  %6  %173 %175 %177
OpStore %36 %174
%178 = OpLoad  %7  %38
%180 = OpExtInst  %7  %1 UMin %28 %112
%181 = OpISub  %7  %112 %180
%182 = OpExtInst  %7  %1 UMin %29 %181
%179 = OpBitFieldUExtract  %7  %178 %180 %182
OpStore %38 %179
%183 = OpLoad  %8  %40
%185 = OpExtInst  %7  %1 UMin %28 %112
%186 = OpISub  %7  %112 %185
%187 = OpExtInst  %7  %1 UMin %29 %186
%184 = OpBitFieldUExtract  %8  %183 %185 %187
OpStore %40 %184
%188 = OpLoad  %9  %42
%190 = OpExtInst  %7  %1 UMin %28 %112
%191 = OpISub  %7  %112 %190
%192 = OpExtInst  %7  %1 UMin %29 %191
%189 = OpBitFieldUExtract  %9  %188 %190 %192
OpStore %42 %189
%193 = OpLoad  %10  %44
%195 = OpExtInst  %7  %1 UMin %28 %112
%196 = OpISub  %7  %112 %195
%197 = OpExtInst  %7  %1 UMin %29 %196
%194 = OpBitFieldUExtract  %10  %193 %195 %197
OpStore %44 %194
%198 = OpLoad  %3  %30
%199 = OpExtInst  %3  %1 FindILsb %198
OpStore %30 %199
%200 = OpLoad  %8  %40
%201 = OpExtInst  %8  %1 FindILsb %200
OpStore %40 %201
%202 = OpLoad  %5  %34
%203 = OpExtInst  %5  %1 FindSMsb %202
OpStore %34 %203
%204 = OpLoad  %9  %42
%205 = OpExtInst  %9  %1 FindUMsb %204
OpStore %42 %205
%206 = OpLoad  %3  %30
%207 = OpExtInst  %3  %1 FindSMsb %206
OpStore %30 %207
%208 = OpLoad  %7  %38
%209 = OpExtInst  %7  %1 FindUMsb %208
OpStore %38 %209
%210 = OpLoad  %3  %30
%211 = OpBitCount  %3  %210
OpStore %30 %211
%212 = OpLoad  %4  %32
%213 = OpBitCount  %4  %212
OpStore %32 %213
%214 = OpLoad  %5  %34
%215 = OpBitCount  %5  %214
OpStore %34 %215
%216 = OpLoad  %6  %36
%217 = OpBitCount  %6  %216
OpStore %36 %217
%218 = OpLoad  %7  %38
%219 = OpBitCount  %7  %218
OpStore %38 %219
%220 = OpLoad  %8  %40
%221 = OpBitCount  %8  %220
OpStore %40 %221
%222 = OpLoad  %9  %42
%223 = OpBitCount  %9  %222
OpStore %42 %223
%224 = OpLoad  %10  %44
%225 = OpBitCount  %10  %224
OpStore %44 %225
%226 = OpLoad  %3  %30
%227 = OpBitReverse  %3  %226
OpStore %30 %227
%228 = OpLoad  %4  %32
%229 = OpBitReverse  %4  %228
OpStore %32 %229
%230 = OpLoad  %5  %34
%231 = OpBitReverse  %5  %230
OpStore %34 %231
%232 = OpLoad  %6  %36
%233 = OpBitReverse  %6  %232
OpStore %36 %233
%234 = OpLoad  %7  %38
%235 = OpBitReverse  %7  %234
OpStore %38 %235
%236 = OpLoad  %8  %40
%237 = OpBitReverse  %8  %236
OpStore %40 %237
%238 = OpLoad  %9  %42
%239 = OpBitReverse  %9  %238
OpStore %42 %239
%240 = OpLoad  %10  %44
%241 = OpBitReverse  %10  %240
OpStore %44 %241
OpReturn
OpFunctionEnd