diff --git a/Test/baseResults/spv.shaderBallotAMD.comp.out b/Test/baseResults/spv.shaderBallotAMD.comp.out
index 14a627eae0ac2098d7400e95e5223a8a483e8ccb..9aba3c59e3d2e5258d566abb4239f21bf79c9fb7 100644
--- a/Test/baseResults/spv.shaderBallotAMD.comp.out
+++ b/Test/baseResults/spv.shaderBallotAMD.comp.out
@@ -1,16 +1,18 @@
 spv.shaderBallotAMD.comp
 // Module Version 10000
 // Generated by (magic number): 80006
-// Id's are bound by 1048
+// Id's are bound by 1343
 
                               Capability Shader
                               Capability Float16
                               Capability Float64
                               Capability Int64
                               Capability Groups
+                              Capability Int16
                               Capability StorageUniformBufferBlock16
                               Capability StorageUniform16
                               Extension  "SPV_AMD_gpu_shader_half_float"
+                              Extension  "SPV_AMD_gpu_shader_int16"
                               Extension  "SPV_AMD_shader_ballot"
                               Extension  "SPV_KHR_16bit_storage"
                1:             ExtInstImport  "GLSL.std.450"
@@ -19,29 +21,34 @@ spv.shaderBallotAMD.comp
                               ExecutionMode 4 LocalSize 8 8 1
                               Source GLSL 450
                               SourceExtension  "GL_AMD_gpu_shader_half_float"
+                              SourceExtension  "GL_AMD_gpu_shader_int16"
                               SourceExtension  "GL_AMD_shader_ballot"
                               SourceExtension  "GL_ARB_gpu_shader_int64"
                               Name 4  "main"
-                              Name 18  "Buffers"
-                              MemberName 18(Buffers) 0  "i"
-                              MemberName 18(Buffers) 1  "uv"
-                              MemberName 18(Buffers) 2  "fv"
-                              MemberName 18(Buffers) 3  "dv"
-                              MemberName 18(Buffers) 4  "i64"
-                              MemberName 18(Buffers) 5  "u64v"
-                              MemberName 18(Buffers) 6  "f16v"
-                              Name 20  ""
-                              MemberDecorate 18(Buffers) 0 Offset 0
-                              MemberDecorate 18(Buffers) 1 Offset 8
-                              MemberDecorate 18(Buffers) 2 Offset 16
-                              MemberDecorate 18(Buffers) 3 Offset 32
-                              MemberDecorate 18(Buffers) 4 Offset 64
-                              MemberDecorate 18(Buffers) 5 Offset 80
-                              MemberDecorate 18(Buffers) 6 Offset 96
-                              Decorate 18(Buffers) BufferBlock
-                              Decorate 20 DescriptorSet 0
-                              Decorate 20 Binding 0
-                              Decorate 1047 BuiltIn WorkgroupSize
+                              Name 21  "Buffers"
+                              MemberName 21(Buffers) 0  "i"
+                              MemberName 21(Buffers) 1  "uv"
+                              MemberName 21(Buffers) 2  "fv"
+                              MemberName 21(Buffers) 3  "dv"
+                              MemberName 21(Buffers) 4  "i64"
+                              MemberName 21(Buffers) 5  "u64v"
+                              MemberName 21(Buffers) 6  "f16v"
+                              MemberName 21(Buffers) 7  "i16v"
+                              MemberName 21(Buffers) 8  "u16"
+                              Name 23  ""
+                              MemberDecorate 21(Buffers) 0 Offset 0
+                              MemberDecorate 21(Buffers) 1 Offset 8
+                              MemberDecorate 21(Buffers) 2 Offset 16
+                              MemberDecorate 21(Buffers) 3 Offset 32
+                              MemberDecorate 21(Buffers) 4 Offset 64
+                              MemberDecorate 21(Buffers) 5 Offset 80
+                              MemberDecorate 21(Buffers) 6 Offset 96
+                              MemberDecorate 21(Buffers) 7 Offset 104
+                              MemberDecorate 21(Buffers) 8 Offset 112
+                              Decorate 21(Buffers) BufferBlock
+                              Decorate 23 DescriptorSet 0
+                              Decorate 23 Binding 0
+                              Decorate 1342 BuiltIn WorkgroupSize
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeInt 32 1
@@ -56,1163 +63,1494 @@ spv.shaderBallotAMD.comp
               15:             TypeVector 14(int) 2
               16:             TypeFloat 16
               17:             TypeVector 16(float) 3
-     18(Buffers):             TypeStruct 6(int) 8(ivec2) 10(fvec3) 12(fvec4) 13(int) 15(ivec2) 17(fvec3)
-              19:             TypePointer Uniform 18(Buffers)
-              20:     19(ptr) Variable Uniform
-              21:      6(int) Constant 0
-              22:             TypePointer Uniform 6(int)
-              25:      7(int) Constant 3
-              28:      6(int) Constant 1
-              29:             TypePointer Uniform 8(ivec2)
-              38:      6(int) Constant 2
-              39:             TypePointer Uniform 10(fvec3)
-              50:      6(int) Constant 3
-              51:             TypePointer Uniform 12(fvec4)
-              64:      6(int) Constant 4
-              65:             TypePointer Uniform 13(int)
-              70:      6(int) Constant 5
-              71:             TypePointer Uniform 15(ivec2)
-              80:      6(int) Constant 6
-              81:             TypePointer Uniform 17(fvec3)
-            1044:             TypeVector 7(int) 3
-            1045:      7(int) Constant 8
-            1046:      7(int) Constant 1
-            1047: 1044(ivec3) ConstantComposite 1045 1045 1046
+              18:             TypeInt 16 1
+              19:             TypeVector 18(int) 4
+              20:             TypeInt 16 0
+     21(Buffers):             TypeStruct 6(int) 8(ivec2) 10(fvec3) 12(fvec4) 13(int) 15(ivec2) 17(fvec3) 19(ivec4) 20(int)
+              22:             TypePointer Uniform 21(Buffers)
+              23:     22(ptr) Variable Uniform
+              24:      6(int) Constant 0
+              25:             TypePointer Uniform 6(int)
+              28:      7(int) Constant 3
+              31:      6(int) Constant 1
+              32:             TypePointer Uniform 8(ivec2)
+              41:      6(int) Constant 2
+              42:             TypePointer Uniform 10(fvec3)
+              53:      6(int) Constant 3
+              54:             TypePointer Uniform 12(fvec4)
+              67:      6(int) Constant 4
+              68:             TypePointer Uniform 13(int)
+              73:      6(int) Constant 5
+              74:             TypePointer Uniform 15(ivec2)
+              83:      6(int) Constant 6
+              84:             TypePointer Uniform 17(fvec3)
+              95:      6(int) Constant 7
+              96:             TypePointer Uniform 19(ivec4)
+             109:      6(int) Constant 8
+             110:             TypePointer Uniform 20(int)
+            1339:             TypeVector 7(int) 3
+            1340:      7(int) Constant 8
+            1341:      7(int) Constant 1
+            1342: 1339(ivec3) ConstantComposite 1340 1340 1341
          4(main):           2 Function None 3
                5:             Label
-              23:     22(ptr) AccessChain 20 21
-              24:      6(int) Load 23
-              26:      6(int) GroupSMin 25 Reduce 24
-              27:     22(ptr) AccessChain 20 21
-                              Store 27 26
-              30:     29(ptr) AccessChain 20 28
-              31:    8(ivec2) Load 30
-              32:      7(int) CompositeExtract 31 0
-              33:      7(int) GroupUMin 25 Reduce 32
-              34:      7(int) CompositeExtract 31 1
-              35:      7(int) GroupUMin 25 Reduce 34
-              36:    8(ivec2) CompositeConstruct 33 35
-              37:     29(ptr) AccessChain 20 28
-                              Store 37 36
-              40:     39(ptr) AccessChain 20 38
-              41:   10(fvec3) Load 40
-              42:    9(float) CompositeExtract 41 0
-              43:    9(float) GroupFMin 25 Reduce 42
-              44:    9(float) CompositeExtract 41 1
-              45:    9(float) GroupFMin 25 Reduce 44
-              46:    9(float) CompositeExtract 41 2
-              47:    9(float) GroupFMin 25 Reduce 46
-              48:   10(fvec3) CompositeConstruct 43 45 47
-              49:     39(ptr) AccessChain 20 38
-                              Store 49 48
-              52:     51(ptr) AccessChain 20 50
-              53:   12(fvec4) Load 52
-              54:   11(float) CompositeExtract 53 0
-              55:   11(float) GroupFMin 25 Reduce 54
-              56:   11(float) CompositeExtract 53 1
-              57:   11(float) GroupFMin 25 Reduce 56
-              58:   11(float) CompositeExtract 53 2
-              59:   11(float) GroupFMin 25 Reduce 58
-              60:   11(float) CompositeExtract 53 3
-              61:   11(float) GroupFMin 25 Reduce 60
-              62:   12(fvec4) CompositeConstruct 55 57 59 61
-              63:     51(ptr) AccessChain 20 50
-                              Store 63 62
-              66:     65(ptr) AccessChain 20 64
-              67:     13(int) Load 66
-              68:     13(int) GroupSMin 25 Reduce 67
-              69:     65(ptr) AccessChain 20 64
-                              Store 69 68
-              72:     71(ptr) AccessChain 20 70
-              73:   15(ivec2) Load 72
-              74:     14(int) CompositeExtract 73 0
-              75:     14(int) GroupUMin 25 Reduce 74
-              76:     14(int) CompositeExtract 73 1
-              77:     14(int) GroupUMin 25 Reduce 76
-              78:   15(ivec2) CompositeConstruct 75 77
-              79:     71(ptr) AccessChain 20 70
-                              Store 79 78
-              82:     81(ptr) AccessChain 20 80
-              83:   17(fvec3) Load 82
-              84:   16(float) CompositeExtract 83 0
-              85:   16(float) GroupFMin 25 Reduce 84
-              86:   16(float) CompositeExtract 83 1
-              87:   16(float) GroupFMin 25 Reduce 86
-              88:   16(float) CompositeExtract 83 2
-              89:   16(float) GroupFMin 25 Reduce 88
-              90:   17(fvec3) CompositeConstruct 85 87 89
-              91:     81(ptr) AccessChain 20 80
-                              Store 91 90
-              92:     22(ptr) AccessChain 20 21
-              93:      6(int) Load 92
-              94:      6(int) GroupSMax 25 Reduce 93
-              95:     22(ptr) AccessChain 20 21
-                              Store 95 94
-              96:     29(ptr) AccessChain 20 28
-              97:    8(ivec2) Load 96
-              98:      7(int) CompositeExtract 97 0
-              99:      7(int) GroupUMax 25 Reduce 98
-             100:      7(int) CompositeExtract 97 1
-             101:      7(int) GroupUMax 25 Reduce 100
-             102:    8(ivec2) CompositeConstruct 99 101
-             103:     29(ptr) AccessChain 20 28
-                              Store 103 102
-             104:     39(ptr) AccessChain 20 38
-             105:   10(fvec3) Load 104
-             106:    9(float) CompositeExtract 105 0
-             107:    9(float) GroupFMax 25 Reduce 106
-             108:    9(float) CompositeExtract 105 1
-             109:    9(float) GroupFMax 25 Reduce 108
-             110:    9(float) CompositeExtract 105 2
-             111:    9(float) GroupFMax 25 Reduce 110
-             112:   10(fvec3) CompositeConstruct 107 109 111
-             113:     39(ptr) AccessChain 20 38
-                              Store 113 112
-             114:     51(ptr) AccessChain 20 50
-             115:   12(fvec4) Load 114
-             116:   11(float) CompositeExtract 115 0
-             117:   11(float) GroupFMax 25 Reduce 116
-             118:   11(float) CompositeExtract 115 1
-             119:   11(float) GroupFMax 25 Reduce 118
-             120:   11(float) CompositeExtract 115 2
-             121:   11(float) GroupFMax 25 Reduce 120
-             122:   11(float) CompositeExtract 115 3
-             123:   11(float) GroupFMax 25 Reduce 122
-             124:   12(fvec4) CompositeConstruct 117 119 121 123
-             125:     51(ptr) AccessChain 20 50
-                              Store 125 124
-             126:     65(ptr) AccessChain 20 64
-             127:     13(int) Load 126
-             128:     13(int) GroupSMax 25 Reduce 127
-             129:     65(ptr) AccessChain 20 64
-                              Store 129 128
-             130:     71(ptr) AccessChain 20 70
-             131:   15(ivec2) Load 130
-             132:     14(int) CompositeExtract 131 0
-             133:     14(int) GroupUMax 25 Reduce 132
-             134:     14(int) CompositeExtract 131 1
-             135:     14(int) GroupUMax 25 Reduce 134
-             136:   15(ivec2) CompositeConstruct 133 135
-             137:     71(ptr) AccessChain 20 70
-                              Store 137 136
-             138:     81(ptr) AccessChain 20 80
-             139:   17(fvec3) Load 138
-             140:   16(float) CompositeExtract 139 0
-             141:   16(float) GroupFMax 25 Reduce 140
-             142:   16(float) CompositeExtract 139 1
-             143:   16(float) GroupFMax 25 Reduce 142
-             144:   16(float) CompositeExtract 139 2
-             145:   16(float) GroupFMax 25 Reduce 144
-             146:   17(fvec3) CompositeConstruct 141 143 145
-             147:     81(ptr) AccessChain 20 80
-                              Store 147 146
-             148:     22(ptr) AccessChain 20 21
-             149:      6(int) Load 148
-             150:      6(int) GroupIAdd 25 Reduce 149
-             151:     22(ptr) AccessChain 20 21
-                              Store 151 150
-             152:     29(ptr) AccessChain 20 28
-             153:    8(ivec2) Load 152
-             154:      7(int) CompositeExtract 153 0
-             155:      7(int) GroupIAdd 25 Reduce 154
-             156:      7(int) CompositeExtract 153 1
-             157:      7(int) GroupIAdd 25 Reduce 156
-             158:    8(ivec2) CompositeConstruct 155 157
-             159:     29(ptr) AccessChain 20 28
-                              Store 159 158
-             160:     39(ptr) AccessChain 20 38
-             161:   10(fvec3) Load 160
-             162:    9(float) CompositeExtract 161 0
-             163:    9(float) GroupFAdd 25 Reduce 162
-             164:    9(float) CompositeExtract 161 1
-             165:    9(float) GroupFAdd 25 Reduce 164
-             166:    9(float) CompositeExtract 161 2
-             167:    9(float) GroupFAdd 25 Reduce 166
-             168:   10(fvec3) CompositeConstruct 163 165 167
-             169:     39(ptr) AccessChain 20 38
-                              Store 169 168
-             170:     51(ptr) AccessChain 20 50
-             171:   12(fvec4) Load 170
-             172:   11(float) CompositeExtract 171 0
-             173:   11(float) GroupFAdd 25 Reduce 172
-             174:   11(float) CompositeExtract 171 1
-             175:   11(float) GroupFAdd 25 Reduce 174
-             176:   11(float) CompositeExtract 171 2
-             177:   11(float) GroupFAdd 25 Reduce 176
-             178:   11(float) CompositeExtract 171 3
-             179:   11(float) GroupFAdd 25 Reduce 178
-             180:   12(fvec4) CompositeConstruct 173 175 177 179
-             181:     51(ptr) AccessChain 20 50
-                              Store 181 180
-             182:     65(ptr) AccessChain 20 64
-             183:     13(int) Load 182
-             184:     13(int) GroupIAdd 25 Reduce 183
-             185:     65(ptr) AccessChain 20 64
-                              Store 185 184
-             186:     71(ptr) AccessChain 20 70
-             187:   15(ivec2) Load 186
-             188:     14(int) CompositeExtract 187 0
-             189:     14(int) GroupIAdd 25 Reduce 188
-             190:     14(int) CompositeExtract 187 1
-             191:     14(int) GroupIAdd 25 Reduce 190
-             192:   15(ivec2) CompositeConstruct 189 191
-             193:     71(ptr) AccessChain 20 70
-                              Store 193 192
-             194:     81(ptr) AccessChain 20 80
-             195:   17(fvec3) Load 194
-             196:   16(float) CompositeExtract 195 0
-             197:   16(float) GroupFAdd 25 Reduce 196
-             198:   16(float) CompositeExtract 195 1
-             199:   16(float) GroupFAdd 25 Reduce 198
-             200:   16(float) CompositeExtract 195 2
-             201:   16(float) GroupFAdd 25 Reduce 200
-             202:   17(fvec3) CompositeConstruct 197 199 201
-             203:     81(ptr) AccessChain 20 80
-                              Store 203 202
-             204:     22(ptr) AccessChain 20 21
-             205:      6(int) Load 204
-             206:      6(int) GroupSMinNonUniformAMD 25 Reduce 205
-             207:     22(ptr) AccessChain 20 21
-                              Store 207 206
-             208:     29(ptr) AccessChain 20 28
-             209:    8(ivec2) Load 208
-             210:      7(int) CompositeExtract 209 0
-             211:      7(int) GroupUMinNonUniformAMD 25 Reduce 210
-             212:      7(int) CompositeExtract 209 1
-             213:      7(int) GroupUMinNonUniformAMD 25 Reduce 212
-             214:    8(ivec2) CompositeConstruct 211 213
-             215:     29(ptr) AccessChain 20 28
-                              Store 215 214
-             216:     39(ptr) AccessChain 20 38
-             217:   10(fvec3) Load 216
-             218:    9(float) CompositeExtract 217 0
-             219:    9(float) GroupFMinNonUniformAMD 25 Reduce 218
-             220:    9(float) CompositeExtract 217 1
-             221:    9(float) GroupFMinNonUniformAMD 25 Reduce 220
-             222:    9(float) CompositeExtract 217 2
-             223:    9(float) GroupFMinNonUniformAMD 25 Reduce 222
-             224:   10(fvec3) CompositeConstruct 219 221 223
-             225:     39(ptr) AccessChain 20 38
-                              Store 225 224
-             226:     51(ptr) AccessChain 20 50
-             227:   12(fvec4) Load 226
-             228:   11(float) CompositeExtract 227 0
-             229:   11(float) GroupFMinNonUniformAMD 25 Reduce 228
-             230:   11(float) CompositeExtract 227 1
-             231:   11(float) GroupFMinNonUniformAMD 25 Reduce 230
-             232:   11(float) CompositeExtract 227 2
-             233:   11(float) GroupFMinNonUniformAMD 25 Reduce 232
-             234:   11(float) CompositeExtract 227 3
-             235:   11(float) GroupFMinNonUniformAMD 25 Reduce 234
-             236:   12(fvec4) CompositeConstruct 229 231 233 235
-             237:     51(ptr) AccessChain 20 50
-                              Store 237 236
-             238:     65(ptr) AccessChain 20 64
-             239:     13(int) Load 238
-             240:     13(int) GroupSMinNonUniformAMD 25 Reduce 239
-             241:     65(ptr) AccessChain 20 64
-                              Store 241 240
-             242:     71(ptr) AccessChain 20 70
-             243:   15(ivec2) Load 242
-             244:     14(int) CompositeExtract 243 0
-             245:     14(int) GroupUMinNonUniformAMD 25 Reduce 244
-             246:     14(int) CompositeExtract 243 1
-             247:     14(int) GroupUMinNonUniformAMD 25 Reduce 246
-             248:   15(ivec2) CompositeConstruct 245 247
-             249:     71(ptr) AccessChain 20 70
-                              Store 249 248
-             250:     81(ptr) AccessChain 20 80
-             251:   17(fvec3) Load 250
-             252:   16(float) CompositeExtract 251 0
-             253:   16(float) GroupFMinNonUniformAMD 25 Reduce 252
-             254:   16(float) CompositeExtract 251 1
-             255:   16(float) GroupFMinNonUniformAMD 25 Reduce 254
-             256:   16(float) CompositeExtract 251 2
-             257:   16(float) GroupFMinNonUniformAMD 25 Reduce 256
-             258:   17(fvec3) CompositeConstruct 253 255 257
-             259:     81(ptr) AccessChain 20 80
-                              Store 259 258
-             260:     22(ptr) AccessChain 20 21
-             261:      6(int) Load 260
-             262:      6(int) GroupSMaxNonUniformAMD 25 Reduce 261
-             263:     22(ptr) AccessChain 20 21
-                              Store 263 262
-             264:     29(ptr) AccessChain 20 28
-             265:    8(ivec2) Load 264
-             266:      7(int) CompositeExtract 265 0
-             267:      7(int) GroupUMaxNonUniformAMD 25 Reduce 266
-             268:      7(int) CompositeExtract 265 1
-             269:      7(int) GroupUMaxNonUniformAMD 25 Reduce 268
-             270:    8(ivec2) CompositeConstruct 267 269
-             271:     29(ptr) AccessChain 20 28
-                              Store 271 270
-             272:     39(ptr) AccessChain 20 38
-             273:   10(fvec3) Load 272
-             274:    9(float) CompositeExtract 273 0
-             275:    9(float) GroupFMaxNonUniformAMD 25 Reduce 274
-             276:    9(float) CompositeExtract 273 1
-             277:    9(float) GroupFMaxNonUniformAMD 25 Reduce 276
-             278:    9(float) CompositeExtract 273 2
-             279:    9(float) GroupFMaxNonUniformAMD 25 Reduce 278
-             280:   10(fvec3) CompositeConstruct 275 277 279
-             281:     39(ptr) AccessChain 20 38
-                              Store 281 280
-             282:     51(ptr) AccessChain 20 50
-             283:   12(fvec4) Load 282
-             284:   11(float) CompositeExtract 283 0
-             285:   11(float) GroupFMaxNonUniformAMD 25 Reduce 284
-             286:   11(float) CompositeExtract 283 1
-             287:   11(float) GroupFMaxNonUniformAMD 25 Reduce 286
-             288:   11(float) CompositeExtract 283 2
-             289:   11(float) GroupFMaxNonUniformAMD 25 Reduce 288
-             290:   11(float) CompositeExtract 283 3
-             291:   11(float) GroupFMaxNonUniformAMD 25 Reduce 290
-             292:   12(fvec4) CompositeConstruct 285 287 289 291
-             293:     51(ptr) AccessChain 20 50
-                              Store 293 292
-             294:     65(ptr) AccessChain 20 64
-             295:     13(int) Load 294
-             296:     13(int) GroupSMaxNonUniformAMD 25 Reduce 295
-             297:     65(ptr) AccessChain 20 64
-                              Store 297 296
-             298:     71(ptr) AccessChain 20 70
-             299:   15(ivec2) Load 298
-             300:     14(int) CompositeExtract 299 0
-             301:     14(int) GroupUMaxNonUniformAMD 25 Reduce 300
-             302:     14(int) CompositeExtract 299 1
-             303:     14(int) GroupUMaxNonUniformAMD 25 Reduce 302
-             304:   15(ivec2) CompositeConstruct 301 303
-             305:     71(ptr) AccessChain 20 70
-                              Store 305 304
-             306:     81(ptr) AccessChain 20 80
-             307:   17(fvec3) Load 306
-             308:   16(float) CompositeExtract 307 0
-             309:   16(float) GroupFMaxNonUniformAMD 25 Reduce 308
-             310:   16(float) CompositeExtract 307 1
-             311:   16(float) GroupFMaxNonUniformAMD 25 Reduce 310
-             312:   16(float) CompositeExtract 307 2
-             313:   16(float) GroupFMaxNonUniformAMD 25 Reduce 312
-             314:   17(fvec3) CompositeConstruct 309 311 313
-             315:     81(ptr) AccessChain 20 80
-                              Store 315 314
-             316:     22(ptr) AccessChain 20 21
-             317:      6(int) Load 316
-             318:      6(int) GroupIAddNonUniformAMD 25 Reduce 317
-             319:     22(ptr) AccessChain 20 21
-                              Store 319 318
-             320:     29(ptr) AccessChain 20 28
-             321:    8(ivec2) Load 320
-             322:      7(int) CompositeExtract 321 0
-             323:      7(int) GroupIAddNonUniformAMD 25 Reduce 322
-             324:      7(int) CompositeExtract 321 1
-             325:      7(int) GroupIAddNonUniformAMD 25 Reduce 324
-             326:    8(ivec2) CompositeConstruct 323 325
-             327:     29(ptr) AccessChain 20 28
-                              Store 327 326
-             328:     39(ptr) AccessChain 20 38
-             329:   10(fvec3) Load 328
-             330:    9(float) CompositeExtract 329 0
-             331:    9(float) GroupFAddNonUniformAMD 25 Reduce 330
-             332:    9(float) CompositeExtract 329 1
-             333:    9(float) GroupFAddNonUniformAMD 25 Reduce 332
-             334:    9(float) CompositeExtract 329 2
-             335:    9(float) GroupFAddNonUniformAMD 25 Reduce 334
-             336:   10(fvec3) CompositeConstruct 331 333 335
-             337:     39(ptr) AccessChain 20 38
-                              Store 337 336
-             338:     51(ptr) AccessChain 20 50
-             339:   12(fvec4) Load 338
-             340:   11(float) CompositeExtract 339 0
-             341:   11(float) GroupFAddNonUniformAMD 25 Reduce 340
-             342:   11(float) CompositeExtract 339 1
-             343:   11(float) GroupFAddNonUniformAMD 25 Reduce 342
-             344:   11(float) CompositeExtract 339 2
-             345:   11(float) GroupFAddNonUniformAMD 25 Reduce 344
-             346:   11(float) CompositeExtract 339 3
-             347:   11(float) GroupFAddNonUniformAMD 25 Reduce 346
-             348:   12(fvec4) CompositeConstruct 341 343 345 347
-             349:     51(ptr) AccessChain 20 50
-                              Store 349 348
-             350:     65(ptr) AccessChain 20 64
-             351:     13(int) Load 350
-             352:     13(int) GroupIAddNonUniformAMD 25 Reduce 351
-             353:     65(ptr) AccessChain 20 64
-                              Store 353 352
-             354:     71(ptr) AccessChain 20 70
-             355:   15(ivec2) Load 354
-             356:     14(int) CompositeExtract 355 0
-             357:     14(int) GroupIAddNonUniformAMD 25 Reduce 356
-             358:     14(int) CompositeExtract 355 1
-             359:     14(int) GroupIAddNonUniformAMD 25 Reduce 358
-             360:   15(ivec2) CompositeConstruct 357 359
-             361:     71(ptr) AccessChain 20 70
-                              Store 361 360
-             362:     81(ptr) AccessChain 20 80
-             363:   17(fvec3) Load 362
-             364:   16(float) CompositeExtract 363 0
-             365:   16(float) GroupFAddNonUniformAMD 25 Reduce 364
-             366:   16(float) CompositeExtract 363 1
-             367:   16(float) GroupFAddNonUniformAMD 25 Reduce 366
-             368:   16(float) CompositeExtract 363 2
-             369:   16(float) GroupFAddNonUniformAMD 25 Reduce 368
-             370:   17(fvec3) CompositeConstruct 365 367 369
-             371:     81(ptr) AccessChain 20 80
-                              Store 371 370
-             372:     22(ptr) AccessChain 20 21
-             373:      6(int) Load 372
-             374:      6(int) GroupSMin 25 InclusiveScan 373
-             375:     22(ptr) AccessChain 20 21
-                              Store 375 374
-             376:     29(ptr) AccessChain 20 28
-             377:    8(ivec2) Load 376
-             378:      7(int) CompositeExtract 377 0
-             379:      7(int) GroupUMin 25 InclusiveScan 378
-             380:      7(int) CompositeExtract 377 1
-             381:      7(int) GroupUMin 25 InclusiveScan 380
-             382:    8(ivec2) CompositeConstruct 379 381
-             383:     29(ptr) AccessChain 20 28
-                              Store 383 382
-             384:     39(ptr) AccessChain 20 38
-             385:   10(fvec3) Load 384
-             386:    9(float) CompositeExtract 385 0
-             387:    9(float) GroupFMin 25 InclusiveScan 386
-             388:    9(float) CompositeExtract 385 1
-             389:    9(float) GroupFMin 25 InclusiveScan 388
-             390:    9(float) CompositeExtract 385 2
-             391:    9(float) GroupFMin 25 InclusiveScan 390
-             392:   10(fvec3) CompositeConstruct 387 389 391
-             393:     39(ptr) AccessChain 20 38
-                              Store 393 392
-             394:     51(ptr) AccessChain 20 50
-             395:   12(fvec4) Load 394
-             396:   11(float) CompositeExtract 395 0
-             397:   11(float) GroupFMin 25 InclusiveScan 396
-             398:   11(float) CompositeExtract 395 1
-             399:   11(float) GroupFMin 25 InclusiveScan 398
-             400:   11(float) CompositeExtract 395 2
-             401:   11(float) GroupFMin 25 InclusiveScan 400
-             402:   11(float) CompositeExtract 395 3
-             403:   11(float) GroupFMin 25 InclusiveScan 402
-             404:   12(fvec4) CompositeConstruct 397 399 401 403
-             405:     51(ptr) AccessChain 20 50
-                              Store 405 404
-             406:     65(ptr) AccessChain 20 64
-             407:     13(int) Load 406
-             408:     13(int) GroupSMin 25 InclusiveScan 407
-             409:     65(ptr) AccessChain 20 64
-                              Store 409 408
-             410:     71(ptr) AccessChain 20 70
-             411:   15(ivec2) Load 410
-             412:     14(int) CompositeExtract 411 0
-             413:     14(int) GroupUMin 25 InclusiveScan 412
-             414:     14(int) CompositeExtract 411 1
-             415:     14(int) GroupUMin 25 InclusiveScan 414
-             416:   15(ivec2) CompositeConstruct 413 415
-             417:     71(ptr) AccessChain 20 70
-                              Store 417 416
-             418:     81(ptr) AccessChain 20 80
-             419:   17(fvec3) Load 418
-             420:   16(float) CompositeExtract 419 0
-             421:   16(float) GroupFMin 25 InclusiveScan 420
-             422:   16(float) CompositeExtract 419 1
-             423:   16(float) GroupFMin 25 InclusiveScan 422
-             424:   16(float) CompositeExtract 419 2
-             425:   16(float) GroupFMin 25 InclusiveScan 424
-             426:   17(fvec3) CompositeConstruct 421 423 425
-             427:     81(ptr) AccessChain 20 80
-                              Store 427 426
-             428:     22(ptr) AccessChain 20 21
-             429:      6(int) Load 428
-             430:      6(int) GroupSMax 25 InclusiveScan 429
-             431:     22(ptr) AccessChain 20 21
-                              Store 431 430
-             432:     29(ptr) AccessChain 20 28
-             433:    8(ivec2) Load 432
-             434:      7(int) CompositeExtract 433 0
-             435:      7(int) GroupUMax 25 InclusiveScan 434
-             436:      7(int) CompositeExtract 433 1
-             437:      7(int) GroupUMax 25 InclusiveScan 436
-             438:    8(ivec2) CompositeConstruct 435 437
-             439:     29(ptr) AccessChain 20 28
-                              Store 439 438
-             440:     39(ptr) AccessChain 20 38
-             441:   10(fvec3) Load 440
-             442:    9(float) CompositeExtract 441 0
-             443:    9(float) GroupFMax 25 InclusiveScan 442
-             444:    9(float) CompositeExtract 441 1
-             445:    9(float) GroupFMax 25 InclusiveScan 444
-             446:    9(float) CompositeExtract 441 2
-             447:    9(float) GroupFMax 25 InclusiveScan 446
-             448:   10(fvec3) CompositeConstruct 443 445 447
-             449:     39(ptr) AccessChain 20 38
-                              Store 449 448
-             450:     51(ptr) AccessChain 20 50
-             451:   12(fvec4) Load 450
-             452:   11(float) CompositeExtract 451 0
-             453:   11(float) GroupFMax 25 InclusiveScan 452
-             454:   11(float) CompositeExtract 451 1
-             455:   11(float) GroupFMax 25 InclusiveScan 454
-             456:   11(float) CompositeExtract 451 2
-             457:   11(float) GroupFMax 25 InclusiveScan 456
-             458:   11(float) CompositeExtract 451 3
-             459:   11(float) GroupFMax 25 InclusiveScan 458
-             460:   12(fvec4) CompositeConstruct 453 455 457 459
-             461:     51(ptr) AccessChain 20 50
-                              Store 461 460
-             462:     65(ptr) AccessChain 20 64
-             463:     13(int) Load 462
-             464:     13(int) GroupSMax 25 InclusiveScan 463
-             465:     65(ptr) AccessChain 20 64
-                              Store 465 464
-             466:     71(ptr) AccessChain 20 70
-             467:   15(ivec2) Load 466
-             468:     14(int) CompositeExtract 467 0
-             469:     14(int) GroupUMax 25 InclusiveScan 468
-             470:     14(int) CompositeExtract 467 1
-             471:     14(int) GroupUMax 25 InclusiveScan 470
-             472:   15(ivec2) CompositeConstruct 469 471
-             473:     71(ptr) AccessChain 20 70
-                              Store 473 472
-             474:     81(ptr) AccessChain 20 80
-             475:   17(fvec3) Load 474
-             476:   16(float) CompositeExtract 475 0
-             477:   16(float) GroupFMax 25 InclusiveScan 476
-             478:   16(float) CompositeExtract 475 1
-             479:   16(float) GroupFMax 25 InclusiveScan 478
-             480:   16(float) CompositeExtract 475 2
-             481:   16(float) GroupFMax 25 InclusiveScan 480
-             482:   17(fvec3) CompositeConstruct 477 479 481
-             483:     81(ptr) AccessChain 20 80
-                              Store 483 482
-             484:     22(ptr) AccessChain 20 21
-             485:      6(int) Load 484
-             486:      6(int) GroupIAdd 25 InclusiveScan 485
-             487:     22(ptr) AccessChain 20 21
-                              Store 487 486
-             488:     29(ptr) AccessChain 20 28
-             489:    8(ivec2) Load 488
-             490:      7(int) CompositeExtract 489 0
-             491:      7(int) GroupIAdd 25 InclusiveScan 490
-             492:      7(int) CompositeExtract 489 1
-             493:      7(int) GroupIAdd 25 InclusiveScan 492
-             494:    8(ivec2) CompositeConstruct 491 493
-             495:     29(ptr) AccessChain 20 28
-                              Store 495 494
-             496:     39(ptr) AccessChain 20 38
-             497:   10(fvec3) Load 496
-             498:    9(float) CompositeExtract 497 0
-             499:    9(float) GroupFAdd 25 InclusiveScan 498
-             500:    9(float) CompositeExtract 497 1
-             501:    9(float) GroupFAdd 25 InclusiveScan 500
-             502:    9(float) CompositeExtract 497 2
-             503:    9(float) GroupFAdd 25 InclusiveScan 502
-             504:   10(fvec3) CompositeConstruct 499 501 503
-             505:     39(ptr) AccessChain 20 38
-                              Store 505 504
-             506:     51(ptr) AccessChain 20 50
-             507:   12(fvec4) Load 506
-             508:   11(float) CompositeExtract 507 0
-             509:   11(float) GroupFAdd 25 InclusiveScan 508
-             510:   11(float) CompositeExtract 507 1
-             511:   11(float) GroupFAdd 25 InclusiveScan 510
-             512:   11(float) CompositeExtract 507 2
-             513:   11(float) GroupFAdd 25 InclusiveScan 512
-             514:   11(float) CompositeExtract 507 3
-             515:   11(float) GroupFAdd 25 InclusiveScan 514
-             516:   12(fvec4) CompositeConstruct 509 511 513 515
-             517:     51(ptr) AccessChain 20 50
-                              Store 517 516
-             518:     65(ptr) AccessChain 20 64
-             519:     13(int) Load 518
-             520:     13(int) GroupIAdd 25 InclusiveScan 519
-             521:     65(ptr) AccessChain 20 64
-                              Store 521 520
-             522:     71(ptr) AccessChain 20 70
-             523:   15(ivec2) Load 522
-             524:     14(int) CompositeExtract 523 0
-             525:     14(int) GroupIAdd 25 InclusiveScan 524
-             526:     14(int) CompositeExtract 523 1
-             527:     14(int) GroupIAdd 25 InclusiveScan 526
-             528:   15(ivec2) CompositeConstruct 525 527
-             529:     71(ptr) AccessChain 20 70
-                              Store 529 528
-             530:     81(ptr) AccessChain 20 80
-             531:   17(fvec3) Load 530
-             532:   16(float) CompositeExtract 531 0
-             533:   16(float) GroupFAdd 25 InclusiveScan 532
-             534:   16(float) CompositeExtract 531 1
-             535:   16(float) GroupFAdd 25 InclusiveScan 534
-             536:   16(float) CompositeExtract 531 2
-             537:   16(float) GroupFAdd 25 InclusiveScan 536
-             538:   17(fvec3) CompositeConstruct 533 535 537
-             539:     81(ptr) AccessChain 20 80
-                              Store 539 538
-             540:     22(ptr) AccessChain 20 21
-             541:      6(int) Load 540
-             542:      6(int) GroupSMin 25 ExclusiveScan 541
-             543:     22(ptr) AccessChain 20 21
-                              Store 543 542
-             544:     29(ptr) AccessChain 20 28
-             545:    8(ivec2) Load 544
-             546:      7(int) CompositeExtract 545 0
-             547:      7(int) GroupUMin 25 ExclusiveScan 546
-             548:      7(int) CompositeExtract 545 1
-             549:      7(int) GroupUMin 25 ExclusiveScan 548
-             550:    8(ivec2) CompositeConstruct 547 549
-             551:     29(ptr) AccessChain 20 28
-                              Store 551 550
-             552:     39(ptr) AccessChain 20 38
-             553:   10(fvec3) Load 552
-             554:    9(float) CompositeExtract 553 0
-             555:    9(float) GroupFMin 25 ExclusiveScan 554
-             556:    9(float) CompositeExtract 553 1
-             557:    9(float) GroupFMin 25 ExclusiveScan 556
-             558:    9(float) CompositeExtract 553 2
-             559:    9(float) GroupFMin 25 ExclusiveScan 558
-             560:   10(fvec3) CompositeConstruct 555 557 559
-             561:     39(ptr) AccessChain 20 38
-                              Store 561 560
-             562:     51(ptr) AccessChain 20 50
-             563:   12(fvec4) Load 562
-             564:   11(float) CompositeExtract 563 0
-             565:   11(float) GroupFMin 25 ExclusiveScan 564
-             566:   11(float) CompositeExtract 563 1
-             567:   11(float) GroupFMin 25 ExclusiveScan 566
-             568:   11(float) CompositeExtract 563 2
-             569:   11(float) GroupFMin 25 ExclusiveScan 568
-             570:   11(float) CompositeExtract 563 3
-             571:   11(float) GroupFMin 25 ExclusiveScan 570
-             572:   12(fvec4) CompositeConstruct 565 567 569 571
-             573:     51(ptr) AccessChain 20 50
-                              Store 573 572
-             574:     65(ptr) AccessChain 20 64
-             575:     13(int) Load 574
-             576:     13(int) GroupSMin 25 ExclusiveScan 575
-             577:     65(ptr) AccessChain 20 64
-                              Store 577 576
-             578:     71(ptr) AccessChain 20 70
-             579:   15(ivec2) Load 578
-             580:     14(int) CompositeExtract 579 0
-             581:     14(int) GroupUMin 25 ExclusiveScan 580
-             582:     14(int) CompositeExtract 579 1
-             583:     14(int) GroupUMin 25 ExclusiveScan 582
-             584:   15(ivec2) CompositeConstruct 581 583
-             585:     71(ptr) AccessChain 20 70
-                              Store 585 584
-             586:     81(ptr) AccessChain 20 80
-             587:   17(fvec3) Load 586
-             588:   16(float) CompositeExtract 587 0
-             589:   16(float) GroupFMin 25 ExclusiveScan 588
-             590:   16(float) CompositeExtract 587 1
-             591:   16(float) GroupFMin 25 ExclusiveScan 590
-             592:   16(float) CompositeExtract 587 2
-             593:   16(float) GroupFMin 25 ExclusiveScan 592
-             594:   17(fvec3) CompositeConstruct 589 591 593
-             595:     81(ptr) AccessChain 20 80
-                              Store 595 594
-             596:     22(ptr) AccessChain 20 21
-             597:      6(int) Load 596
-             598:      6(int) GroupSMax 25 ExclusiveScan 597
-             599:     22(ptr) AccessChain 20 21
-                              Store 599 598
-             600:     29(ptr) AccessChain 20 28
-             601:    8(ivec2) Load 600
-             602:      7(int) CompositeExtract 601 0
-             603:      7(int) GroupUMax 25 ExclusiveScan 602
-             604:      7(int) CompositeExtract 601 1
-             605:      7(int) GroupUMax 25 ExclusiveScan 604
-             606:    8(ivec2) CompositeConstruct 603 605
-             607:     29(ptr) AccessChain 20 28
-                              Store 607 606
-             608:     39(ptr) AccessChain 20 38
-             609:   10(fvec3) Load 608
-             610:    9(float) CompositeExtract 609 0
-             611:    9(float) GroupFMax 25 ExclusiveScan 610
-             612:    9(float) CompositeExtract 609 1
-             613:    9(float) GroupFMax 25 ExclusiveScan 612
-             614:    9(float) CompositeExtract 609 2
-             615:    9(float) GroupFMax 25 ExclusiveScan 614
-             616:   10(fvec3) CompositeConstruct 611 613 615
-             617:     39(ptr) AccessChain 20 38
-                              Store 617 616
-             618:     51(ptr) AccessChain 20 50
-             619:   12(fvec4) Load 618
-             620:   11(float) CompositeExtract 619 0
-             621:   11(float) GroupFMax 25 ExclusiveScan 620
-             622:   11(float) CompositeExtract 619 1
-             623:   11(float) GroupFMax 25 ExclusiveScan 622
-             624:   11(float) CompositeExtract 619 2
-             625:   11(float) GroupFMax 25 ExclusiveScan 624
-             626:   11(float) CompositeExtract 619 3
-             627:   11(float) GroupFMax 25 ExclusiveScan 626
-             628:   12(fvec4) CompositeConstruct 621 623 625 627
-             629:     51(ptr) AccessChain 20 50
-                              Store 629 628
-             630:     65(ptr) AccessChain 20 64
-             631:     13(int) Load 630
-             632:     13(int) GroupSMax 25 ExclusiveScan 631
-             633:     65(ptr) AccessChain 20 64
-                              Store 633 632
-             634:     71(ptr) AccessChain 20 70
-             635:   15(ivec2) Load 634
-             636:     14(int) CompositeExtract 635 0
-             637:     14(int) GroupUMax 25 ExclusiveScan 636
-             638:     14(int) CompositeExtract 635 1
-             639:     14(int) GroupUMax 25 ExclusiveScan 638
-             640:   15(ivec2) CompositeConstruct 637 639
-             641:     71(ptr) AccessChain 20 70
-                              Store 641 640
-             642:     81(ptr) AccessChain 20 80
-             643:   17(fvec3) Load 642
-             644:   16(float) CompositeExtract 643 0
-             645:   16(float) GroupFMax 25 ExclusiveScan 644
-             646:   16(float) CompositeExtract 643 1
-             647:   16(float) GroupFMax 25 ExclusiveScan 646
-             648:   16(float) CompositeExtract 643 2
-             649:   16(float) GroupFMax 25 ExclusiveScan 648
-             650:   17(fvec3) CompositeConstruct 645 647 649
-             651:     81(ptr) AccessChain 20 80
-                              Store 651 650
-             652:     22(ptr) AccessChain 20 21
-             653:      6(int) Load 652
-             654:      6(int) GroupIAdd 25 ExclusiveScan 653
-             655:     22(ptr) AccessChain 20 21
-                              Store 655 654
-             656:     29(ptr) AccessChain 20 28
-             657:    8(ivec2) Load 656
-             658:      7(int) CompositeExtract 657 0
-             659:      7(int) GroupIAdd 25 ExclusiveScan 658
-             660:      7(int) CompositeExtract 657 1
-             661:      7(int) GroupIAdd 25 ExclusiveScan 660
-             662:    8(ivec2) CompositeConstruct 659 661
-             663:     29(ptr) AccessChain 20 28
-                              Store 663 662
-             664:     39(ptr) AccessChain 20 38
-             665:   10(fvec3) Load 664
-             666:    9(float) CompositeExtract 665 0
-             667:    9(float) GroupFAdd 25 ExclusiveScan 666
-             668:    9(float) CompositeExtract 665 1
-             669:    9(float) GroupFAdd 25 ExclusiveScan 668
-             670:    9(float) CompositeExtract 665 2
-             671:    9(float) GroupFAdd 25 ExclusiveScan 670
-             672:   10(fvec3) CompositeConstruct 667 669 671
-             673:     39(ptr) AccessChain 20 38
-                              Store 673 672
-             674:     51(ptr) AccessChain 20 50
-             675:   12(fvec4) Load 674
-             676:   11(float) CompositeExtract 675 0
-             677:   11(float) GroupFAdd 25 ExclusiveScan 676
-             678:   11(float) CompositeExtract 675 1
-             679:   11(float) GroupFAdd 25 ExclusiveScan 678
-             680:   11(float) CompositeExtract 675 2
-             681:   11(float) GroupFAdd 25 ExclusiveScan 680
-             682:   11(float) CompositeExtract 675 3
-             683:   11(float) GroupFAdd 25 ExclusiveScan 682
-             684:   12(fvec4) CompositeConstruct 677 679 681 683
-             685:     51(ptr) AccessChain 20 50
-                              Store 685 684
-             686:     65(ptr) AccessChain 20 64
-             687:     13(int) Load 686
-             688:     13(int) GroupIAdd 25 ExclusiveScan 687
-             689:     65(ptr) AccessChain 20 64
-                              Store 689 688
-             690:     71(ptr) AccessChain 20 70
-             691:   15(ivec2) Load 690
-             692:     14(int) CompositeExtract 691 0
-             693:     14(int) GroupIAdd 25 ExclusiveScan 692
-             694:     14(int) CompositeExtract 691 1
-             695:     14(int) GroupIAdd 25 ExclusiveScan 694
-             696:   15(ivec2) CompositeConstruct 693 695
-             697:     71(ptr) AccessChain 20 70
-                              Store 697 696
-             698:     81(ptr) AccessChain 20 80
-             699:   17(fvec3) Load 698
-             700:   16(float) CompositeExtract 699 0
-             701:   16(float) GroupFAdd 25 ExclusiveScan 700
-             702:   16(float) CompositeExtract 699 1
-             703:   16(float) GroupFAdd 25 ExclusiveScan 702
-             704:   16(float) CompositeExtract 699 2
-             705:   16(float) GroupFAdd 25 ExclusiveScan 704
-             706:   17(fvec3) CompositeConstruct 701 703 705
-             707:     81(ptr) AccessChain 20 80
-                              Store 707 706
-             708:     22(ptr) AccessChain 20 21
-             709:      6(int) Load 708
-             710:      6(int) GroupSMinNonUniformAMD 25 InclusiveScan 709
-             711:     22(ptr) AccessChain 20 21
-                              Store 711 710
-             712:     29(ptr) AccessChain 20 28
-             713:    8(ivec2) Load 712
-             714:      7(int) CompositeExtract 713 0
-             715:      7(int) GroupUMinNonUniformAMD 25 InclusiveScan 714
-             716:      7(int) CompositeExtract 713 1
-             717:      7(int) GroupUMinNonUniformAMD 25 InclusiveScan 716
-             718:    8(ivec2) CompositeConstruct 715 717
-             719:     29(ptr) AccessChain 20 28
-                              Store 719 718
-             720:     39(ptr) AccessChain 20 38
-             721:   10(fvec3) Load 720
-             722:    9(float) CompositeExtract 721 0
-             723:    9(float) GroupFMinNonUniformAMD 25 InclusiveScan 722
-             724:    9(float) CompositeExtract 721 1
-             725:    9(float) GroupFMinNonUniformAMD 25 InclusiveScan 724
-             726:    9(float) CompositeExtract 721 2
-             727:    9(float) GroupFMinNonUniformAMD 25 InclusiveScan 726
-             728:   10(fvec3) CompositeConstruct 723 725 727
-             729:     39(ptr) AccessChain 20 38
-                              Store 729 728
-             730:     51(ptr) AccessChain 20 50
-             731:   12(fvec4) Load 730
-             732:   11(float) CompositeExtract 731 0
-             733:   11(float) GroupFMinNonUniformAMD 25 InclusiveScan 732
-             734:   11(float) CompositeExtract 731 1
-             735:   11(float) GroupFMinNonUniformAMD 25 InclusiveScan 734
-             736:   11(float) CompositeExtract 731 2
-             737:   11(float) GroupFMinNonUniformAMD 25 InclusiveScan 736
-             738:   11(float) CompositeExtract 731 3
-             739:   11(float) GroupFMinNonUniformAMD 25 InclusiveScan 738
-             740:   12(fvec4) CompositeConstruct 733 735 737 739
-             741:     51(ptr) AccessChain 20 50
-                              Store 741 740
-             742:     65(ptr) AccessChain 20 64
-             743:     13(int) Load 742
-             744:     13(int) GroupSMinNonUniformAMD 25 InclusiveScan 743
-             745:     65(ptr) AccessChain 20 64
-                              Store 745 744
-             746:     71(ptr) AccessChain 20 70
-             747:   15(ivec2) Load 746
-             748:     14(int) CompositeExtract 747 0
-             749:     14(int) GroupUMinNonUniformAMD 25 InclusiveScan 748
-             750:     14(int) CompositeExtract 747 1
-             751:     14(int) GroupUMinNonUniformAMD 25 InclusiveScan 750
-             752:   15(ivec2) CompositeConstruct 749 751
-             753:     71(ptr) AccessChain 20 70
-                              Store 753 752
-             754:     81(ptr) AccessChain 20 80
-             755:   17(fvec3) Load 754
-             756:   16(float) CompositeExtract 755 0
-             757:   16(float) GroupFMinNonUniformAMD 25 InclusiveScan 756
-             758:   16(float) CompositeExtract 755 1
-             759:   16(float) GroupFMinNonUniformAMD 25 InclusiveScan 758
-             760:   16(float) CompositeExtract 755 2
-             761:   16(float) GroupFMinNonUniformAMD 25 InclusiveScan 760
-             762:   17(fvec3) CompositeConstruct 757 759 761
-             763:     81(ptr) AccessChain 20 80
-                              Store 763 762
-             764:     22(ptr) AccessChain 20 21
-             765:      6(int) Load 764
-             766:      6(int) GroupSMaxNonUniformAMD 25 InclusiveScan 765
-             767:     22(ptr) AccessChain 20 21
-                              Store 767 766
-             768:     29(ptr) AccessChain 20 28
-             769:    8(ivec2) Load 768
-             770:      7(int) CompositeExtract 769 0
-             771:      7(int) GroupUMaxNonUniformAMD 25 InclusiveScan 770
-             772:      7(int) CompositeExtract 769 1
-             773:      7(int) GroupUMaxNonUniformAMD 25 InclusiveScan 772
-             774:    8(ivec2) CompositeConstruct 771 773
-             775:     29(ptr) AccessChain 20 28
-                              Store 775 774
-             776:     39(ptr) AccessChain 20 38
-             777:   10(fvec3) Load 776
-             778:    9(float) CompositeExtract 777 0
-             779:    9(float) GroupFMaxNonUniformAMD 25 InclusiveScan 778
-             780:    9(float) CompositeExtract 777 1
-             781:    9(float) GroupFMaxNonUniformAMD 25 InclusiveScan 780
-             782:    9(float) CompositeExtract 777 2
-             783:    9(float) GroupFMaxNonUniformAMD 25 InclusiveScan 782
-             784:   10(fvec3) CompositeConstruct 779 781 783
-             785:     39(ptr) AccessChain 20 38
-                              Store 785 784
-             786:     51(ptr) AccessChain 20 50
-             787:   12(fvec4) Load 786
-             788:   11(float) CompositeExtract 787 0
-             789:   11(float) GroupFMaxNonUniformAMD 25 InclusiveScan 788
-             790:   11(float) CompositeExtract 787 1
-             791:   11(float) GroupFMaxNonUniformAMD 25 InclusiveScan 790
-             792:   11(float) CompositeExtract 787 2
-             793:   11(float) GroupFMaxNonUniformAMD 25 InclusiveScan 792
-             794:   11(float) CompositeExtract 787 3
-             795:   11(float) GroupFMaxNonUniformAMD 25 InclusiveScan 794
-             796:   12(fvec4) CompositeConstruct 789 791 793 795
-             797:     51(ptr) AccessChain 20 50
-                              Store 797 796
-             798:     65(ptr) AccessChain 20 64
-             799:     13(int) Load 798
-             800:     13(int) GroupSMaxNonUniformAMD 25 InclusiveScan 799
-             801:     65(ptr) AccessChain 20 64
-                              Store 801 800
-             802:     71(ptr) AccessChain 20 70
-             803:   15(ivec2) Load 802
-             804:     14(int) CompositeExtract 803 0
-             805:     14(int) GroupUMaxNonUniformAMD 25 InclusiveScan 804
-             806:     14(int) CompositeExtract 803 1
-             807:     14(int) GroupUMaxNonUniformAMD 25 InclusiveScan 806
-             808:   15(ivec2) CompositeConstruct 805 807
-             809:     71(ptr) AccessChain 20 70
-                              Store 809 808
-             810:     81(ptr) AccessChain 20 80
-             811:   17(fvec3) Load 810
-             812:   16(float) CompositeExtract 811 0
-             813:   16(float) GroupFMaxNonUniformAMD 25 InclusiveScan 812
-             814:   16(float) CompositeExtract 811 1
-             815:   16(float) GroupFMaxNonUniformAMD 25 InclusiveScan 814
-             816:   16(float) CompositeExtract 811 2
-             817:   16(float) GroupFMaxNonUniformAMD 25 InclusiveScan 816
-             818:   17(fvec3) CompositeConstruct 813 815 817
-             819:     81(ptr) AccessChain 20 80
-                              Store 819 818
-             820:     22(ptr) AccessChain 20 21
-             821:      6(int) Load 820
-             822:      6(int) GroupIAddNonUniformAMD 25 InclusiveScan 821
-             823:     22(ptr) AccessChain 20 21
-                              Store 823 822
-             824:     29(ptr) AccessChain 20 28
-             825:    8(ivec2) Load 824
-             826:      7(int) CompositeExtract 825 0
-             827:      7(int) GroupIAddNonUniformAMD 25 InclusiveScan 826
-             828:      7(int) CompositeExtract 825 1
-             829:      7(int) GroupIAddNonUniformAMD 25 InclusiveScan 828
-             830:    8(ivec2) CompositeConstruct 827 829
-             831:     29(ptr) AccessChain 20 28
-                              Store 831 830
-             832:     39(ptr) AccessChain 20 38
-             833:   10(fvec3) Load 832
-             834:    9(float) CompositeExtract 833 0
-             835:    9(float) GroupFAddNonUniformAMD 25 InclusiveScan 834
-             836:    9(float) CompositeExtract 833 1
-             837:    9(float) GroupFAddNonUniformAMD 25 InclusiveScan 836
-             838:    9(float) CompositeExtract 833 2
-             839:    9(float) GroupFAddNonUniformAMD 25 InclusiveScan 838
-             840:   10(fvec3) CompositeConstruct 835 837 839
-             841:     39(ptr) AccessChain 20 38
-                              Store 841 840
-             842:     51(ptr) AccessChain 20 50
-             843:   12(fvec4) Load 842
-             844:   11(float) CompositeExtract 843 0
-             845:   11(float) GroupFAddNonUniformAMD 25 InclusiveScan 844
-             846:   11(float) CompositeExtract 843 1
-             847:   11(float) GroupFAddNonUniformAMD 25 InclusiveScan 846
-             848:   11(float) CompositeExtract 843 2
-             849:   11(float) GroupFAddNonUniformAMD 25 InclusiveScan 848
-             850:   11(float) CompositeExtract 843 3
-             851:   11(float) GroupFAddNonUniformAMD 25 InclusiveScan 850
-             852:   12(fvec4) CompositeConstruct 845 847 849 851
-             853:     51(ptr) AccessChain 20 50
-                              Store 853 852
-             854:     65(ptr) AccessChain 20 64
-             855:     13(int) Load 854
-             856:     13(int) GroupIAddNonUniformAMD 25 InclusiveScan 855
-             857:     65(ptr) AccessChain 20 64
-                              Store 857 856
-             858:     71(ptr) AccessChain 20 70
-             859:   15(ivec2) Load 858
-             860:     14(int) CompositeExtract 859 0
-             861:     14(int) GroupIAddNonUniformAMD 25 InclusiveScan 860
-             862:     14(int) CompositeExtract 859 1
-             863:     14(int) GroupIAddNonUniformAMD 25 InclusiveScan 862
-             864:   15(ivec2) CompositeConstruct 861 863
-             865:     71(ptr) AccessChain 20 70
-                              Store 865 864
-             866:     81(ptr) AccessChain 20 80
-             867:   17(fvec3) Load 866
-             868:   16(float) CompositeExtract 867 0
-             869:   16(float) GroupFAddNonUniformAMD 25 InclusiveScan 868
-             870:   16(float) CompositeExtract 867 1
-             871:   16(float) GroupFAddNonUniformAMD 25 InclusiveScan 870
-             872:   16(float) CompositeExtract 867 2
-             873:   16(float) GroupFAddNonUniformAMD 25 InclusiveScan 872
-             874:   17(fvec3) CompositeConstruct 869 871 873
-             875:     81(ptr) AccessChain 20 80
-                              Store 875 874
-             876:     22(ptr) AccessChain 20 21
-             877:      6(int) Load 876
-             878:      6(int) GroupSMinNonUniformAMD 25 ExclusiveScan 877
-             879:     22(ptr) AccessChain 20 21
-                              Store 879 878
-             880:     29(ptr) AccessChain 20 28
-             881:    8(ivec2) Load 880
-             882:      7(int) CompositeExtract 881 0
-             883:      7(int) GroupUMinNonUniformAMD 25 ExclusiveScan 882
-             884:      7(int) CompositeExtract 881 1
-             885:      7(int) GroupUMinNonUniformAMD 25 ExclusiveScan 884
-             886:    8(ivec2) CompositeConstruct 883 885
-             887:     29(ptr) AccessChain 20 28
-                              Store 887 886
-             888:     39(ptr) AccessChain 20 38
-             889:   10(fvec3) Load 888
-             890:    9(float) CompositeExtract 889 0
-             891:    9(float) GroupFMinNonUniformAMD 25 ExclusiveScan 890
-             892:    9(float) CompositeExtract 889 1
-             893:    9(float) GroupFMinNonUniformAMD 25 ExclusiveScan 892
-             894:    9(float) CompositeExtract 889 2
-             895:    9(float) GroupFMinNonUniformAMD 25 ExclusiveScan 894
-             896:   10(fvec3) CompositeConstruct 891 893 895
-             897:     39(ptr) AccessChain 20 38
-                              Store 897 896
-             898:     51(ptr) AccessChain 20 50
-             899:   12(fvec4) Load 898
-             900:   11(float) CompositeExtract 899 0
-             901:   11(float) GroupFMinNonUniformAMD 25 ExclusiveScan 900
-             902:   11(float) CompositeExtract 899 1
-             903:   11(float) GroupFMinNonUniformAMD 25 ExclusiveScan 902
-             904:   11(float) CompositeExtract 899 2
-             905:   11(float) GroupFMinNonUniformAMD 25 ExclusiveScan 904
-             906:   11(float) CompositeExtract 899 3
-             907:   11(float) GroupFMinNonUniformAMD 25 ExclusiveScan 906
-             908:   12(fvec4) CompositeConstruct 901 903 905 907
-             909:     51(ptr) AccessChain 20 50
-                              Store 909 908
-             910:     65(ptr) AccessChain 20 64
-             911:     13(int) Load 910
-             912:     13(int) GroupSMinNonUniformAMD 25 ExclusiveScan 911
-             913:     65(ptr) AccessChain 20 64
-                              Store 913 912
-             914:     71(ptr) AccessChain 20 70
-             915:   15(ivec2) Load 914
-             916:     14(int) CompositeExtract 915 0
-             917:     14(int) GroupUMinNonUniformAMD 25 ExclusiveScan 916
-             918:     14(int) CompositeExtract 915 1
-             919:     14(int) GroupUMinNonUniformAMD 25 ExclusiveScan 918
-             920:   15(ivec2) CompositeConstruct 917 919
-             921:     71(ptr) AccessChain 20 70
-                              Store 921 920
-             922:     81(ptr) AccessChain 20 80
-             923:   17(fvec3) Load 922
-             924:   16(float) CompositeExtract 923 0
-             925:   16(float) GroupFMinNonUniformAMD 25 ExclusiveScan 924
-             926:   16(float) CompositeExtract 923 1
-             927:   16(float) GroupFMinNonUniformAMD 25 ExclusiveScan 926
-             928:   16(float) CompositeExtract 923 2
-             929:   16(float) GroupFMinNonUniformAMD 25 ExclusiveScan 928
-             930:   17(fvec3) CompositeConstruct 925 927 929
-             931:     81(ptr) AccessChain 20 80
-                              Store 931 930
-             932:     22(ptr) AccessChain 20 21
-             933:      6(int) Load 932
-             934:      6(int) GroupSMaxNonUniformAMD 25 ExclusiveScan 933
-             935:     22(ptr) AccessChain 20 21
-                              Store 935 934
-             936:     29(ptr) AccessChain 20 28
-             937:    8(ivec2) Load 936
-             938:      7(int) CompositeExtract 937 0
-             939:      7(int) GroupUMaxNonUniformAMD 25 ExclusiveScan 938
-             940:      7(int) CompositeExtract 937 1
-             941:      7(int) GroupUMaxNonUniformAMD 25 ExclusiveScan 940
-             942:    8(ivec2) CompositeConstruct 939 941
-             943:     29(ptr) AccessChain 20 28
-                              Store 943 942
-             944:     39(ptr) AccessChain 20 38
-             945:   10(fvec3) Load 944
-             946:    9(float) CompositeExtract 945 0
-             947:    9(float) GroupFMaxNonUniformAMD 25 ExclusiveScan 946
-             948:    9(float) CompositeExtract 945 1
-             949:    9(float) GroupFMaxNonUniformAMD 25 ExclusiveScan 948
-             950:    9(float) CompositeExtract 945 2
-             951:    9(float) GroupFMaxNonUniformAMD 25 ExclusiveScan 950
-             952:   10(fvec3) CompositeConstruct 947 949 951
-             953:     39(ptr) AccessChain 20 38
-                              Store 953 952
-             954:     51(ptr) AccessChain 20 50
-             955:   12(fvec4) Load 954
-             956:   11(float) CompositeExtract 955 0
-             957:   11(float) GroupFMaxNonUniformAMD 25 ExclusiveScan 956
-             958:   11(float) CompositeExtract 955 1
-             959:   11(float) GroupFMaxNonUniformAMD 25 ExclusiveScan 958
-             960:   11(float) CompositeExtract 955 2
-             961:   11(float) GroupFMaxNonUniformAMD 25 ExclusiveScan 960
-             962:   11(float) CompositeExtract 955 3
-             963:   11(float) GroupFMaxNonUniformAMD 25 ExclusiveScan 962
-             964:   12(fvec4) CompositeConstruct 957 959 961 963
-             965:     51(ptr) AccessChain 20 50
-                              Store 965 964
-             966:     65(ptr) AccessChain 20 64
-             967:     13(int) Load 966
-             968:     13(int) GroupSMaxNonUniformAMD 25 ExclusiveScan 967
-             969:     65(ptr) AccessChain 20 64
-                              Store 969 968
-             970:     71(ptr) AccessChain 20 70
-             971:   15(ivec2) Load 970
-             972:     14(int) CompositeExtract 971 0
-             973:     14(int) GroupUMaxNonUniformAMD 25 ExclusiveScan 972
-             974:     14(int) CompositeExtract 971 1
-             975:     14(int) GroupUMaxNonUniformAMD 25 ExclusiveScan 974
-             976:   15(ivec2) CompositeConstruct 973 975
-             977:     71(ptr) AccessChain 20 70
-                              Store 977 976
-             978:     81(ptr) AccessChain 20 80
-             979:   17(fvec3) Load 978
-             980:   16(float) CompositeExtract 979 0
-             981:   16(float) GroupFMaxNonUniformAMD 25 ExclusiveScan 980
-             982:   16(float) CompositeExtract 979 1
-             983:   16(float) GroupFMaxNonUniformAMD 25 ExclusiveScan 982
-             984:   16(float) CompositeExtract 979 2
-             985:   16(float) GroupFMaxNonUniformAMD 25 ExclusiveScan 984
-             986:   17(fvec3) CompositeConstruct 981 983 985
-             987:     81(ptr) AccessChain 20 80
-                              Store 987 986
-             988:     22(ptr) AccessChain 20 21
-             989:      6(int) Load 988
-             990:      6(int) GroupIAddNonUniformAMD 25 ExclusiveScan 989
-             991:     22(ptr) AccessChain 20 21
-                              Store 991 990
-             992:     29(ptr) AccessChain 20 28
-             993:    8(ivec2) Load 992
-             994:      7(int) CompositeExtract 993 0
-             995:      7(int) GroupIAddNonUniformAMD 25 ExclusiveScan 994
-             996:      7(int) CompositeExtract 993 1
-             997:      7(int) GroupIAddNonUniformAMD 25 ExclusiveScan 996
-             998:    8(ivec2) CompositeConstruct 995 997
-             999:     29(ptr) AccessChain 20 28
-                              Store 999 998
-            1000:     39(ptr) AccessChain 20 38
-            1001:   10(fvec3) Load 1000
-            1002:    9(float) CompositeExtract 1001 0
-            1003:    9(float) GroupFAddNonUniformAMD 25 ExclusiveScan 1002
-            1004:    9(float) CompositeExtract 1001 1
-            1005:    9(float) GroupFAddNonUniformAMD 25 ExclusiveScan 1004
-            1006:    9(float) CompositeExtract 1001 2
-            1007:    9(float) GroupFAddNonUniformAMD 25 ExclusiveScan 1006
-            1008:   10(fvec3) CompositeConstruct 1003 1005 1007
-            1009:     39(ptr) AccessChain 20 38
-                              Store 1009 1008
-            1010:     51(ptr) AccessChain 20 50
-            1011:   12(fvec4) Load 1010
-            1012:   11(float) CompositeExtract 1011 0
-            1013:   11(float) GroupFAddNonUniformAMD 25 ExclusiveScan 1012
-            1014:   11(float) CompositeExtract 1011 1
-            1015:   11(float) GroupFAddNonUniformAMD 25 ExclusiveScan 1014
-            1016:   11(float) CompositeExtract 1011 2
-            1017:   11(float) GroupFAddNonUniformAMD 25 ExclusiveScan 1016
-            1018:   11(float) CompositeExtract 1011 3
-            1019:   11(float) GroupFAddNonUniformAMD 25 ExclusiveScan 1018
-            1020:   12(fvec4) CompositeConstruct 1013 1015 1017 1019
-            1021:     51(ptr) AccessChain 20 50
-                              Store 1021 1020
-            1022:     65(ptr) AccessChain 20 64
-            1023:     13(int) Load 1022
-            1024:     13(int) GroupIAddNonUniformAMD 25 ExclusiveScan 1023
-            1025:     65(ptr) AccessChain 20 64
-                              Store 1025 1024
-            1026:     71(ptr) AccessChain 20 70
-            1027:   15(ivec2) Load 1026
-            1028:     14(int) CompositeExtract 1027 0
-            1029:     14(int) GroupIAddNonUniformAMD 25 ExclusiveScan 1028
-            1030:     14(int) CompositeExtract 1027 1
-            1031:     14(int) GroupIAddNonUniformAMD 25 ExclusiveScan 1030
-            1032:   15(ivec2) CompositeConstruct 1029 1031
-            1033:     71(ptr) AccessChain 20 70
-                              Store 1033 1032
-            1034:     81(ptr) AccessChain 20 80
-            1035:   17(fvec3) Load 1034
-            1036:   16(float) CompositeExtract 1035 0
-            1037:   16(float) GroupFAddNonUniformAMD 25 ExclusiveScan 1036
-            1038:   16(float) CompositeExtract 1035 1
-            1039:   16(float) GroupFAddNonUniformAMD 25 ExclusiveScan 1038
-            1040:   16(float) CompositeExtract 1035 2
-            1041:   16(float) GroupFAddNonUniformAMD 25 ExclusiveScan 1040
-            1042:   17(fvec3) CompositeConstruct 1037 1039 1041
-            1043:     81(ptr) AccessChain 20 80
-                              Store 1043 1042
+              26:     25(ptr) AccessChain 23 24
+              27:      6(int) Load 26
+              29:      6(int) GroupSMin 28 Reduce 27
+              30:     25(ptr) AccessChain 23 24
+                              Store 30 29
+              33:     32(ptr) AccessChain 23 31
+              34:    8(ivec2) Load 33
+              35:      7(int) CompositeExtract 34 0
+              36:      7(int) GroupUMin 28 Reduce 35
+              37:      7(int) CompositeExtract 34 1
+              38:      7(int) GroupUMin 28 Reduce 37
+              39:    8(ivec2) CompositeConstruct 36 38
+              40:     32(ptr) AccessChain 23 31
+                              Store 40 39
+              43:     42(ptr) AccessChain 23 41
+              44:   10(fvec3) Load 43
+              45:    9(float) CompositeExtract 44 0
+              46:    9(float) GroupFMin 28 Reduce 45
+              47:    9(float) CompositeExtract 44 1
+              48:    9(float) GroupFMin 28 Reduce 47
+              49:    9(float) CompositeExtract 44 2
+              50:    9(float) GroupFMin 28 Reduce 49
+              51:   10(fvec3) CompositeConstruct 46 48 50
+              52:     42(ptr) AccessChain 23 41
+                              Store 52 51
+              55:     54(ptr) AccessChain 23 53
+              56:   12(fvec4) Load 55
+              57:   11(float) CompositeExtract 56 0
+              58:   11(float) GroupFMin 28 Reduce 57
+              59:   11(float) CompositeExtract 56 1
+              60:   11(float) GroupFMin 28 Reduce 59
+              61:   11(float) CompositeExtract 56 2
+              62:   11(float) GroupFMin 28 Reduce 61
+              63:   11(float) CompositeExtract 56 3
+              64:   11(float) GroupFMin 28 Reduce 63
+              65:   12(fvec4) CompositeConstruct 58 60 62 64
+              66:     54(ptr) AccessChain 23 53
+                              Store 66 65
+              69:     68(ptr) AccessChain 23 67
+              70:     13(int) Load 69
+              71:     13(int) GroupSMin 28 Reduce 70
+              72:     68(ptr) AccessChain 23 67
+                              Store 72 71
+              75:     74(ptr) AccessChain 23 73
+              76:   15(ivec2) Load 75
+              77:     14(int) CompositeExtract 76 0
+              78:     14(int) GroupUMin 28 Reduce 77
+              79:     14(int) CompositeExtract 76 1
+              80:     14(int) GroupUMin 28 Reduce 79
+              81:   15(ivec2) CompositeConstruct 78 80
+              82:     74(ptr) AccessChain 23 73
+                              Store 82 81
+              85:     84(ptr) AccessChain 23 83
+              86:   17(fvec3) Load 85
+              87:   16(float) CompositeExtract 86 0
+              88:   16(float) GroupFMin 28 Reduce 87
+              89:   16(float) CompositeExtract 86 1
+              90:   16(float) GroupFMin 28 Reduce 89
+              91:   16(float) CompositeExtract 86 2
+              92:   16(float) GroupFMin 28 Reduce 91
+              93:   17(fvec3) CompositeConstruct 88 90 92
+              94:     84(ptr) AccessChain 23 83
+                              Store 94 93
+              97:     96(ptr) AccessChain 23 95
+              98:   19(ivec4) Load 97
+              99:     18(int) CompositeExtract 98 0
+             100:     18(int) GroupSMin 28 Reduce 99
+             101:     18(int) CompositeExtract 98 1
+             102:     18(int) GroupSMin 28 Reduce 101
+             103:     18(int) CompositeExtract 98 2
+             104:     18(int) GroupSMin 28 Reduce 103
+             105:     18(int) CompositeExtract 98 3
+             106:     18(int) GroupSMin 28 Reduce 105
+             107:   19(ivec4) CompositeConstruct 100 102 104 106
+             108:     96(ptr) AccessChain 23 95
+                              Store 108 107
+             111:    110(ptr) AccessChain 23 109
+             112:     20(int) Load 111
+             113:     20(int) GroupUMin 28 Reduce 112
+             114:    110(ptr) AccessChain 23 109
+                              Store 114 113
+             115:     25(ptr) AccessChain 23 24
+             116:      6(int) Load 115
+             117:      6(int) GroupSMax 28 Reduce 116
+             118:     25(ptr) AccessChain 23 24
+                              Store 118 117
+             119:     32(ptr) AccessChain 23 31
+             120:    8(ivec2) Load 119
+             121:      7(int) CompositeExtract 120 0
+             122:      7(int) GroupUMax 28 Reduce 121
+             123:      7(int) CompositeExtract 120 1
+             124:      7(int) GroupUMax 28 Reduce 123
+             125:    8(ivec2) CompositeConstruct 122 124
+             126:     32(ptr) AccessChain 23 31
+                              Store 126 125
+             127:     42(ptr) AccessChain 23 41
+             128:   10(fvec3) Load 127
+             129:    9(float) CompositeExtract 128 0
+             130:    9(float) GroupFMax 28 Reduce 129
+             131:    9(float) CompositeExtract 128 1
+             132:    9(float) GroupFMax 28 Reduce 131
+             133:    9(float) CompositeExtract 128 2
+             134:    9(float) GroupFMax 28 Reduce 133
+             135:   10(fvec3) CompositeConstruct 130 132 134
+             136:     42(ptr) AccessChain 23 41
+                              Store 136 135
+             137:     54(ptr) AccessChain 23 53
+             138:   12(fvec4) Load 137
+             139:   11(float) CompositeExtract 138 0
+             140:   11(float) GroupFMax 28 Reduce 139
+             141:   11(float) CompositeExtract 138 1
+             142:   11(float) GroupFMax 28 Reduce 141
+             143:   11(float) CompositeExtract 138 2
+             144:   11(float) GroupFMax 28 Reduce 143
+             145:   11(float) CompositeExtract 138 3
+             146:   11(float) GroupFMax 28 Reduce 145
+             147:   12(fvec4) CompositeConstruct 140 142 144 146
+             148:     54(ptr) AccessChain 23 53
+                              Store 148 147
+             149:     68(ptr) AccessChain 23 67
+             150:     13(int) Load 149
+             151:     13(int) GroupSMax 28 Reduce 150
+             152:     68(ptr) AccessChain 23 67
+                              Store 152 151
+             153:     74(ptr) AccessChain 23 73
+             154:   15(ivec2) Load 153
+             155:     14(int) CompositeExtract 154 0
+             156:     14(int) GroupUMax 28 Reduce 155
+             157:     14(int) CompositeExtract 154 1
+             158:     14(int) GroupUMax 28 Reduce 157
+             159:   15(ivec2) CompositeConstruct 156 158
+             160:     74(ptr) AccessChain 23 73
+                              Store 160 159
+             161:     84(ptr) AccessChain 23 83
+             162:   17(fvec3) Load 161
+             163:   16(float) CompositeExtract 162 0
+             164:   16(float) GroupFMax 28 Reduce 163
+             165:   16(float) CompositeExtract 162 1
+             166:   16(float) GroupFMax 28 Reduce 165
+             167:   16(float) CompositeExtract 162 2
+             168:   16(float) GroupFMax 28 Reduce 167
+             169:   17(fvec3) CompositeConstruct 164 166 168
+             170:     84(ptr) AccessChain 23 83
+                              Store 170 169
+             171:     96(ptr) AccessChain 23 95
+             172:   19(ivec4) Load 171
+             173:     18(int) CompositeExtract 172 0
+             174:     18(int) GroupSMax 28 Reduce 173
+             175:     18(int) CompositeExtract 172 1
+             176:     18(int) GroupSMax 28 Reduce 175
+             177:     18(int) CompositeExtract 172 2
+             178:     18(int) GroupSMax 28 Reduce 177
+             179:     18(int) CompositeExtract 172 3
+             180:     18(int) GroupSMax 28 Reduce 179
+             181:   19(ivec4) CompositeConstruct 174 176 178 180
+             182:     96(ptr) AccessChain 23 95
+                              Store 182 181
+             183:    110(ptr) AccessChain 23 109
+             184:     20(int) Load 183
+             185:     20(int) GroupUMax 28 Reduce 184
+             186:    110(ptr) AccessChain 23 109
+                              Store 186 185
+             187:     25(ptr) AccessChain 23 24
+             188:      6(int) Load 187
+             189:      6(int) GroupIAdd 28 Reduce 188
+             190:     25(ptr) AccessChain 23 24
+                              Store 190 189
+             191:     32(ptr) AccessChain 23 31
+             192:    8(ivec2) Load 191
+             193:      7(int) CompositeExtract 192 0
+             194:      7(int) GroupIAdd 28 Reduce 193
+             195:      7(int) CompositeExtract 192 1
+             196:      7(int) GroupIAdd 28 Reduce 195
+             197:    8(ivec2) CompositeConstruct 194 196
+             198:     32(ptr) AccessChain 23 31
+                              Store 198 197
+             199:     42(ptr) AccessChain 23 41
+             200:   10(fvec3) Load 199
+             201:    9(float) CompositeExtract 200 0
+             202:    9(float) GroupFAdd 28 Reduce 201
+             203:    9(float) CompositeExtract 200 1
+             204:    9(float) GroupFAdd 28 Reduce 203
+             205:    9(float) CompositeExtract 200 2
+             206:    9(float) GroupFAdd 28 Reduce 205
+             207:   10(fvec3) CompositeConstruct 202 204 206
+             208:     42(ptr) AccessChain 23 41
+                              Store 208 207
+             209:     54(ptr) AccessChain 23 53
+             210:   12(fvec4) Load 209
+             211:   11(float) CompositeExtract 210 0
+             212:   11(float) GroupFAdd 28 Reduce 211
+             213:   11(float) CompositeExtract 210 1
+             214:   11(float) GroupFAdd 28 Reduce 213
+             215:   11(float) CompositeExtract 210 2
+             216:   11(float) GroupFAdd 28 Reduce 215
+             217:   11(float) CompositeExtract 210 3
+             218:   11(float) GroupFAdd 28 Reduce 217
+             219:   12(fvec4) CompositeConstruct 212 214 216 218
+             220:     54(ptr) AccessChain 23 53
+                              Store 220 219
+             221:     68(ptr) AccessChain 23 67
+             222:     13(int) Load 221
+             223:     13(int) GroupIAdd 28 Reduce 222
+             224:     68(ptr) AccessChain 23 67
+                              Store 224 223
+             225:     74(ptr) AccessChain 23 73
+             226:   15(ivec2) Load 225
+             227:     14(int) CompositeExtract 226 0
+             228:     14(int) GroupIAdd 28 Reduce 227
+             229:     14(int) CompositeExtract 226 1
+             230:     14(int) GroupIAdd 28 Reduce 229
+             231:   15(ivec2) CompositeConstruct 228 230
+             232:     74(ptr) AccessChain 23 73
+                              Store 232 231
+             233:     84(ptr) AccessChain 23 83
+             234:   17(fvec3) Load 233
+             235:   16(float) CompositeExtract 234 0
+             236:   16(float) GroupFAdd 28 Reduce 235
+             237:   16(float) CompositeExtract 234 1
+             238:   16(float) GroupFAdd 28 Reduce 237
+             239:   16(float) CompositeExtract 234 2
+             240:   16(float) GroupFAdd 28 Reduce 239
+             241:   17(fvec3) CompositeConstruct 236 238 240
+             242:     84(ptr) AccessChain 23 83
+                              Store 242 241
+             243:     96(ptr) AccessChain 23 95
+             244:   19(ivec4) Load 243
+             245:     18(int) CompositeExtract 244 0
+             246:     18(int) GroupIAdd 28 Reduce 245
+             247:     18(int) CompositeExtract 244 1
+             248:     18(int) GroupIAdd 28 Reduce 247
+             249:     18(int) CompositeExtract 244 2
+             250:     18(int) GroupIAdd 28 Reduce 249
+             251:     18(int) CompositeExtract 244 3
+             252:     18(int) GroupIAdd 28 Reduce 251
+             253:   19(ivec4) CompositeConstruct 246 248 250 252
+             254:     96(ptr) AccessChain 23 95
+                              Store 254 253
+             255:    110(ptr) AccessChain 23 109
+             256:     20(int) Load 255
+             257:     20(int) GroupIAdd 28 Reduce 256
+             258:    110(ptr) AccessChain 23 109
+                              Store 258 257
+             259:     25(ptr) AccessChain 23 24
+             260:      6(int) Load 259
+             261:      6(int) GroupSMinNonUniformAMD 28 Reduce 260
+             262:     25(ptr) AccessChain 23 24
+                              Store 262 261
+             263:     32(ptr) AccessChain 23 31
+             264:    8(ivec2) Load 263
+             265:      7(int) CompositeExtract 264 0
+             266:      7(int) GroupUMinNonUniformAMD 28 Reduce 265
+             267:      7(int) CompositeExtract 264 1
+             268:      7(int) GroupUMinNonUniformAMD 28 Reduce 267
+             269:    8(ivec2) CompositeConstruct 266 268
+             270:     32(ptr) AccessChain 23 31
+                              Store 270 269
+             271:     42(ptr) AccessChain 23 41
+             272:   10(fvec3) Load 271
+             273:    9(float) CompositeExtract 272 0
+             274:    9(float) GroupFMinNonUniformAMD 28 Reduce 273
+             275:    9(float) CompositeExtract 272 1
+             276:    9(float) GroupFMinNonUniformAMD 28 Reduce 275
+             277:    9(float) CompositeExtract 272 2
+             278:    9(float) GroupFMinNonUniformAMD 28 Reduce 277
+             279:   10(fvec3) CompositeConstruct 274 276 278
+             280:     42(ptr) AccessChain 23 41
+                              Store 280 279
+             281:     54(ptr) AccessChain 23 53
+             282:   12(fvec4) Load 281
+             283:   11(float) CompositeExtract 282 0
+             284:   11(float) GroupFMinNonUniformAMD 28 Reduce 283
+             285:   11(float) CompositeExtract 282 1
+             286:   11(float) GroupFMinNonUniformAMD 28 Reduce 285
+             287:   11(float) CompositeExtract 282 2
+             288:   11(float) GroupFMinNonUniformAMD 28 Reduce 287
+             289:   11(float) CompositeExtract 282 3
+             290:   11(float) GroupFMinNonUniformAMD 28 Reduce 289
+             291:   12(fvec4) CompositeConstruct 284 286 288 290
+             292:     54(ptr) AccessChain 23 53
+                              Store 292 291
+             293:     68(ptr) AccessChain 23 67
+             294:     13(int) Load 293
+             295:     13(int) GroupSMinNonUniformAMD 28 Reduce 294
+             296:     68(ptr) AccessChain 23 67
+                              Store 296 295
+             297:     74(ptr) AccessChain 23 73
+             298:   15(ivec2) Load 297
+             299:     14(int) CompositeExtract 298 0
+             300:     14(int) GroupUMinNonUniformAMD 28 Reduce 299
+             301:     14(int) CompositeExtract 298 1
+             302:     14(int) GroupUMinNonUniformAMD 28 Reduce 301
+             303:   15(ivec2) CompositeConstruct 300 302
+             304:     74(ptr) AccessChain 23 73
+                              Store 304 303
+             305:     84(ptr) AccessChain 23 83
+             306:   17(fvec3) Load 305
+             307:   16(float) CompositeExtract 306 0
+             308:   16(float) GroupFMinNonUniformAMD 28 Reduce 307
+             309:   16(float) CompositeExtract 306 1
+             310:   16(float) GroupFMinNonUniformAMD 28 Reduce 309
+             311:   16(float) CompositeExtract 306 2
+             312:   16(float) GroupFMinNonUniformAMD 28 Reduce 311
+             313:   17(fvec3) CompositeConstruct 308 310 312
+             314:     84(ptr) AccessChain 23 83
+                              Store 314 313
+             315:     96(ptr) AccessChain 23 95
+             316:   19(ivec4) Load 315
+             317:     18(int) CompositeExtract 316 0
+             318:     18(int) GroupSMinNonUniformAMD 28 Reduce 317
+             319:     18(int) CompositeExtract 316 1
+             320:     18(int) GroupSMinNonUniformAMD 28 Reduce 319
+             321:     18(int) CompositeExtract 316 2
+             322:     18(int) GroupSMinNonUniformAMD 28 Reduce 321
+             323:     18(int) CompositeExtract 316 3
+             324:     18(int) GroupSMinNonUniformAMD 28 Reduce 323
+             325:   19(ivec4) CompositeConstruct 318 320 322 324
+             326:     96(ptr) AccessChain 23 95
+                              Store 326 325
+             327:    110(ptr) AccessChain 23 109
+             328:     20(int) Load 327
+             329:     20(int) GroupUMinNonUniformAMD 28 Reduce 328
+             330:    110(ptr) AccessChain 23 109
+                              Store 330 329
+             331:     25(ptr) AccessChain 23 24
+             332:      6(int) Load 331
+             333:      6(int) GroupSMaxNonUniformAMD 28 Reduce 332
+             334:     25(ptr) AccessChain 23 24
+                              Store 334 333
+             335:     32(ptr) AccessChain 23 31
+             336:    8(ivec2) Load 335
+             337:      7(int) CompositeExtract 336 0
+             338:      7(int) GroupUMaxNonUniformAMD 28 Reduce 337
+             339:      7(int) CompositeExtract 336 1
+             340:      7(int) GroupUMaxNonUniformAMD 28 Reduce 339
+             341:    8(ivec2) CompositeConstruct 338 340
+             342:     32(ptr) AccessChain 23 31
+                              Store 342 341
+             343:     42(ptr) AccessChain 23 41
+             344:   10(fvec3) Load 343
+             345:    9(float) CompositeExtract 344 0
+             346:    9(float) GroupFMaxNonUniformAMD 28 Reduce 345
+             347:    9(float) CompositeExtract 344 1
+             348:    9(float) GroupFMaxNonUniformAMD 28 Reduce 347
+             349:    9(float) CompositeExtract 344 2
+             350:    9(float) GroupFMaxNonUniformAMD 28 Reduce 349
+             351:   10(fvec3) CompositeConstruct 346 348 350
+             352:     42(ptr) AccessChain 23 41
+                              Store 352 351
+             353:     54(ptr) AccessChain 23 53
+             354:   12(fvec4) Load 353
+             355:   11(float) CompositeExtract 354 0
+             356:   11(float) GroupFMaxNonUniformAMD 28 Reduce 355
+             357:   11(float) CompositeExtract 354 1
+             358:   11(float) GroupFMaxNonUniformAMD 28 Reduce 357
+             359:   11(float) CompositeExtract 354 2
+             360:   11(float) GroupFMaxNonUniformAMD 28 Reduce 359
+             361:   11(float) CompositeExtract 354 3
+             362:   11(float) GroupFMaxNonUniformAMD 28 Reduce 361
+             363:   12(fvec4) CompositeConstruct 356 358 360 362
+             364:     54(ptr) AccessChain 23 53
+                              Store 364 363
+             365:     68(ptr) AccessChain 23 67
+             366:     13(int) Load 365
+             367:     13(int) GroupSMaxNonUniformAMD 28 Reduce 366
+             368:     68(ptr) AccessChain 23 67
+                              Store 368 367
+             369:     74(ptr) AccessChain 23 73
+             370:   15(ivec2) Load 369
+             371:     14(int) CompositeExtract 370 0
+             372:     14(int) GroupUMaxNonUniformAMD 28 Reduce 371
+             373:     14(int) CompositeExtract 370 1
+             374:     14(int) GroupUMaxNonUniformAMD 28 Reduce 373
+             375:   15(ivec2) CompositeConstruct 372 374
+             376:     74(ptr) AccessChain 23 73
+                              Store 376 375
+             377:     84(ptr) AccessChain 23 83
+             378:   17(fvec3) Load 377
+             379:   16(float) CompositeExtract 378 0
+             380:   16(float) GroupFMaxNonUniformAMD 28 Reduce 379
+             381:   16(float) CompositeExtract 378 1
+             382:   16(float) GroupFMaxNonUniformAMD 28 Reduce 381
+             383:   16(float) CompositeExtract 378 2
+             384:   16(float) GroupFMaxNonUniformAMD 28 Reduce 383
+             385:   17(fvec3) CompositeConstruct 380 382 384
+             386:     84(ptr) AccessChain 23 83
+                              Store 386 385
+             387:     96(ptr) AccessChain 23 95
+             388:   19(ivec4) Load 387
+             389:     18(int) CompositeExtract 388 0
+             390:     18(int) GroupSMaxNonUniformAMD 28 Reduce 389
+             391:     18(int) CompositeExtract 388 1
+             392:     18(int) GroupSMaxNonUniformAMD 28 Reduce 391
+             393:     18(int) CompositeExtract 388 2
+             394:     18(int) GroupSMaxNonUniformAMD 28 Reduce 393
+             395:     18(int) CompositeExtract 388 3
+             396:     18(int) GroupSMaxNonUniformAMD 28 Reduce 395
+             397:   19(ivec4) CompositeConstruct 390 392 394 396
+             398:     96(ptr) AccessChain 23 95
+                              Store 398 397
+             399:    110(ptr) AccessChain 23 109
+             400:     20(int) Load 399
+             401:     20(int) GroupUMaxNonUniformAMD 28 Reduce 400
+             402:    110(ptr) AccessChain 23 109
+                              Store 402 401
+             403:     25(ptr) AccessChain 23 24
+             404:      6(int) Load 403
+             405:      6(int) GroupIAddNonUniformAMD 28 Reduce 404
+             406:     25(ptr) AccessChain 23 24
+                              Store 406 405
+             407:     32(ptr) AccessChain 23 31
+             408:    8(ivec2) Load 407
+             409:      7(int) CompositeExtract 408 0
+             410:      7(int) GroupIAddNonUniformAMD 28 Reduce 409
+             411:      7(int) CompositeExtract 408 1
+             412:      7(int) GroupIAddNonUniformAMD 28 Reduce 411
+             413:    8(ivec2) CompositeConstruct 410 412
+             414:     32(ptr) AccessChain 23 31
+                              Store 414 413
+             415:     42(ptr) AccessChain 23 41
+             416:   10(fvec3) Load 415
+             417:    9(float) CompositeExtract 416 0
+             418:    9(float) GroupFAddNonUniformAMD 28 Reduce 417
+             419:    9(float) CompositeExtract 416 1
+             420:    9(float) GroupFAddNonUniformAMD 28 Reduce 419
+             421:    9(float) CompositeExtract 416 2
+             422:    9(float) GroupFAddNonUniformAMD 28 Reduce 421
+             423:   10(fvec3) CompositeConstruct 418 420 422
+             424:     42(ptr) AccessChain 23 41
+                              Store 424 423
+             425:     54(ptr) AccessChain 23 53
+             426:   12(fvec4) Load 425
+             427:   11(float) CompositeExtract 426 0
+             428:   11(float) GroupFAddNonUniformAMD 28 Reduce 427
+             429:   11(float) CompositeExtract 426 1
+             430:   11(float) GroupFAddNonUniformAMD 28 Reduce 429
+             431:   11(float) CompositeExtract 426 2
+             432:   11(float) GroupFAddNonUniformAMD 28 Reduce 431
+             433:   11(float) CompositeExtract 426 3
+             434:   11(float) GroupFAddNonUniformAMD 28 Reduce 433
+             435:   12(fvec4) CompositeConstruct 428 430 432 434
+             436:     54(ptr) AccessChain 23 53
+                              Store 436 435
+             437:     68(ptr) AccessChain 23 67
+             438:     13(int) Load 437
+             439:     13(int) GroupIAddNonUniformAMD 28 Reduce 438
+             440:     68(ptr) AccessChain 23 67
+                              Store 440 439
+             441:     74(ptr) AccessChain 23 73
+             442:   15(ivec2) Load 441
+             443:     14(int) CompositeExtract 442 0
+             444:     14(int) GroupIAddNonUniformAMD 28 Reduce 443
+             445:     14(int) CompositeExtract 442 1
+             446:     14(int) GroupIAddNonUniformAMD 28 Reduce 445
+             447:   15(ivec2) CompositeConstruct 444 446
+             448:     74(ptr) AccessChain 23 73
+                              Store 448 447
+             449:     84(ptr) AccessChain 23 83
+             450:   17(fvec3) Load 449
+             451:   16(float) CompositeExtract 450 0
+             452:   16(float) GroupFAddNonUniformAMD 28 Reduce 451
+             453:   16(float) CompositeExtract 450 1
+             454:   16(float) GroupFAddNonUniformAMD 28 Reduce 453
+             455:   16(float) CompositeExtract 450 2
+             456:   16(float) GroupFAddNonUniformAMD 28 Reduce 455
+             457:   17(fvec3) CompositeConstruct 452 454 456
+             458:     84(ptr) AccessChain 23 83
+                              Store 458 457
+             459:     96(ptr) AccessChain 23 95
+             460:   19(ivec4) Load 459
+             461:     18(int) CompositeExtract 460 0
+             462:     18(int) GroupIAddNonUniformAMD 28 Reduce 461
+             463:     18(int) CompositeExtract 460 1
+             464:     18(int) GroupIAddNonUniformAMD 28 Reduce 463
+             465:     18(int) CompositeExtract 460 2
+             466:     18(int) GroupIAddNonUniformAMD 28 Reduce 465
+             467:     18(int) CompositeExtract 460 3
+             468:     18(int) GroupIAddNonUniformAMD 28 Reduce 467
+             469:   19(ivec4) CompositeConstruct 462 464 466 468
+             470:     96(ptr) AccessChain 23 95
+                              Store 470 469
+             471:    110(ptr) AccessChain 23 109
+             472:     20(int) Load 471
+             473:     20(int) GroupIAddNonUniformAMD 28 Reduce 472
+             474:    110(ptr) AccessChain 23 109
+                              Store 474 473
+             475:     25(ptr) AccessChain 23 24
+             476:      6(int) Load 475
+             477:      6(int) GroupSMin 28 InclusiveScan 476
+             478:     25(ptr) AccessChain 23 24
+                              Store 478 477
+             479:     32(ptr) AccessChain 23 31
+             480:    8(ivec2) Load 479
+             481:      7(int) CompositeExtract 480 0
+             482:      7(int) GroupUMin 28 InclusiveScan 481
+             483:      7(int) CompositeExtract 480 1
+             484:      7(int) GroupUMin 28 InclusiveScan 483
+             485:    8(ivec2) CompositeConstruct 482 484
+             486:     32(ptr) AccessChain 23 31
+                              Store 486 485
+             487:     42(ptr) AccessChain 23 41
+             488:   10(fvec3) Load 487
+             489:    9(float) CompositeExtract 488 0
+             490:    9(float) GroupFMin 28 InclusiveScan 489
+             491:    9(float) CompositeExtract 488 1
+             492:    9(float) GroupFMin 28 InclusiveScan 491
+             493:    9(float) CompositeExtract 488 2
+             494:    9(float) GroupFMin 28 InclusiveScan 493
+             495:   10(fvec3) CompositeConstruct 490 492 494
+             496:     42(ptr) AccessChain 23 41
+                              Store 496 495
+             497:     54(ptr) AccessChain 23 53
+             498:   12(fvec4) Load 497
+             499:   11(float) CompositeExtract 498 0
+             500:   11(float) GroupFMin 28 InclusiveScan 499
+             501:   11(float) CompositeExtract 498 1
+             502:   11(float) GroupFMin 28 InclusiveScan 501
+             503:   11(float) CompositeExtract 498 2
+             504:   11(float) GroupFMin 28 InclusiveScan 503
+             505:   11(float) CompositeExtract 498 3
+             506:   11(float) GroupFMin 28 InclusiveScan 505
+             507:   12(fvec4) CompositeConstruct 500 502 504 506
+             508:     54(ptr) AccessChain 23 53
+                              Store 508 507
+             509:     68(ptr) AccessChain 23 67
+             510:     13(int) Load 509
+             511:     13(int) GroupSMin 28 InclusiveScan 510
+             512:     68(ptr) AccessChain 23 67
+                              Store 512 511
+             513:     74(ptr) AccessChain 23 73
+             514:   15(ivec2) Load 513
+             515:     14(int) CompositeExtract 514 0
+             516:     14(int) GroupUMin 28 InclusiveScan 515
+             517:     14(int) CompositeExtract 514 1
+             518:     14(int) GroupUMin 28 InclusiveScan 517
+             519:   15(ivec2) CompositeConstruct 516 518
+             520:     74(ptr) AccessChain 23 73
+                              Store 520 519
+             521:     84(ptr) AccessChain 23 83
+             522:   17(fvec3) Load 521
+             523:   16(float) CompositeExtract 522 0
+             524:   16(float) GroupFMin 28 InclusiveScan 523
+             525:   16(float) CompositeExtract 522 1
+             526:   16(float) GroupFMin 28 InclusiveScan 525
+             527:   16(float) CompositeExtract 522 2
+             528:   16(float) GroupFMin 28 InclusiveScan 527
+             529:   17(fvec3) CompositeConstruct 524 526 528
+             530:     84(ptr) AccessChain 23 83
+                              Store 530 529
+             531:     96(ptr) AccessChain 23 95
+             532:   19(ivec4) Load 531
+             533:     18(int) CompositeExtract 532 0
+             534:     18(int) GroupSMin 28 InclusiveScan 533
+             535:     18(int) CompositeExtract 532 1
+             536:     18(int) GroupSMin 28 InclusiveScan 535
+             537:     18(int) CompositeExtract 532 2
+             538:     18(int) GroupSMin 28 InclusiveScan 537
+             539:     18(int) CompositeExtract 532 3
+             540:     18(int) GroupSMin 28 InclusiveScan 539
+             541:   19(ivec4) CompositeConstruct 534 536 538 540
+             542:     96(ptr) AccessChain 23 95
+                              Store 542 541
+             543:    110(ptr) AccessChain 23 109
+             544:     20(int) Load 543
+             545:     20(int) GroupUMin 28 InclusiveScan 544
+             546:    110(ptr) AccessChain 23 109
+                              Store 546 545
+             547:     25(ptr) AccessChain 23 24
+             548:      6(int) Load 547
+             549:      6(int) GroupSMax 28 InclusiveScan 548
+             550:     25(ptr) AccessChain 23 24
+                              Store 550 549
+             551:     32(ptr) AccessChain 23 31
+             552:    8(ivec2) Load 551
+             553:      7(int) CompositeExtract 552 0
+             554:      7(int) GroupUMax 28 InclusiveScan 553
+             555:      7(int) CompositeExtract 552 1
+             556:      7(int) GroupUMax 28 InclusiveScan 555
+             557:    8(ivec2) CompositeConstruct 554 556
+             558:     32(ptr) AccessChain 23 31
+                              Store 558 557
+             559:     42(ptr) AccessChain 23 41
+             560:   10(fvec3) Load 559
+             561:    9(float) CompositeExtract 560 0
+             562:    9(float) GroupFMax 28 InclusiveScan 561
+             563:    9(float) CompositeExtract 560 1
+             564:    9(float) GroupFMax 28 InclusiveScan 563
+             565:    9(float) CompositeExtract 560 2
+             566:    9(float) GroupFMax 28 InclusiveScan 565
+             567:   10(fvec3) CompositeConstruct 562 564 566
+             568:     42(ptr) AccessChain 23 41
+                              Store 568 567
+             569:     54(ptr) AccessChain 23 53
+             570:   12(fvec4) Load 569
+             571:   11(float) CompositeExtract 570 0
+             572:   11(float) GroupFMax 28 InclusiveScan 571
+             573:   11(float) CompositeExtract 570 1
+             574:   11(float) GroupFMax 28 InclusiveScan 573
+             575:   11(float) CompositeExtract 570 2
+             576:   11(float) GroupFMax 28 InclusiveScan 575
+             577:   11(float) CompositeExtract 570 3
+             578:   11(float) GroupFMax 28 InclusiveScan 577
+             579:   12(fvec4) CompositeConstruct 572 574 576 578
+             580:     54(ptr) AccessChain 23 53
+                              Store 580 579
+             581:     68(ptr) AccessChain 23 67
+             582:     13(int) Load 581
+             583:     13(int) GroupSMax 28 InclusiveScan 582
+             584:     68(ptr) AccessChain 23 67
+                              Store 584 583
+             585:     74(ptr) AccessChain 23 73
+             586:   15(ivec2) Load 585
+             587:     14(int) CompositeExtract 586 0
+             588:     14(int) GroupUMax 28 InclusiveScan 587
+             589:     14(int) CompositeExtract 586 1
+             590:     14(int) GroupUMax 28 InclusiveScan 589
+             591:   15(ivec2) CompositeConstruct 588 590
+             592:     74(ptr) AccessChain 23 73
+                              Store 592 591
+             593:     84(ptr) AccessChain 23 83
+             594:   17(fvec3) Load 593
+             595:   16(float) CompositeExtract 594 0
+             596:   16(float) GroupFMax 28 InclusiveScan 595
+             597:   16(float) CompositeExtract 594 1
+             598:   16(float) GroupFMax 28 InclusiveScan 597
+             599:   16(float) CompositeExtract 594 2
+             600:   16(float) GroupFMax 28 InclusiveScan 599
+             601:   17(fvec3) CompositeConstruct 596 598 600
+             602:     84(ptr) AccessChain 23 83
+                              Store 602 601
+             603:     96(ptr) AccessChain 23 95
+             604:   19(ivec4) Load 603
+             605:     18(int) CompositeExtract 604 0
+             606:     18(int) GroupSMax 28 InclusiveScan 605
+             607:     18(int) CompositeExtract 604 1
+             608:     18(int) GroupSMax 28 InclusiveScan 607
+             609:     18(int) CompositeExtract 604 2
+             610:     18(int) GroupSMax 28 InclusiveScan 609
+             611:     18(int) CompositeExtract 604 3
+             612:     18(int) GroupSMax 28 InclusiveScan 611
+             613:   19(ivec4) CompositeConstruct 606 608 610 612
+             614:     96(ptr) AccessChain 23 95
+                              Store 614 613
+             615:    110(ptr) AccessChain 23 109
+             616:     20(int) Load 615
+             617:     20(int) GroupUMax 28 InclusiveScan 616
+             618:    110(ptr) AccessChain 23 109
+                              Store 618 617
+             619:     25(ptr) AccessChain 23 24
+             620:      6(int) Load 619
+             621:      6(int) GroupIAdd 28 InclusiveScan 620
+             622:     25(ptr) AccessChain 23 24
+                              Store 622 621
+             623:     32(ptr) AccessChain 23 31
+             624:    8(ivec2) Load 623
+             625:      7(int) CompositeExtract 624 0
+             626:      7(int) GroupIAdd 28 InclusiveScan 625
+             627:      7(int) CompositeExtract 624 1
+             628:      7(int) GroupIAdd 28 InclusiveScan 627
+             629:    8(ivec2) CompositeConstruct 626 628
+             630:     32(ptr) AccessChain 23 31
+                              Store 630 629
+             631:     42(ptr) AccessChain 23 41
+             632:   10(fvec3) Load 631
+             633:    9(float) CompositeExtract 632 0
+             634:    9(float) GroupFAdd 28 InclusiveScan 633
+             635:    9(float) CompositeExtract 632 1
+             636:    9(float) GroupFAdd 28 InclusiveScan 635
+             637:    9(float) CompositeExtract 632 2
+             638:    9(float) GroupFAdd 28 InclusiveScan 637
+             639:   10(fvec3) CompositeConstruct 634 636 638
+             640:     42(ptr) AccessChain 23 41
+                              Store 640 639
+             641:     54(ptr) AccessChain 23 53
+             642:   12(fvec4) Load 641
+             643:   11(float) CompositeExtract 642 0
+             644:   11(float) GroupFAdd 28 InclusiveScan 643
+             645:   11(float) CompositeExtract 642 1
+             646:   11(float) GroupFAdd 28 InclusiveScan 645
+             647:   11(float) CompositeExtract 642 2
+             648:   11(float) GroupFAdd 28 InclusiveScan 647
+             649:   11(float) CompositeExtract 642 3
+             650:   11(float) GroupFAdd 28 InclusiveScan 649
+             651:   12(fvec4) CompositeConstruct 644 646 648 650
+             652:     54(ptr) AccessChain 23 53
+                              Store 652 651
+             653:     68(ptr) AccessChain 23 67
+             654:     13(int) Load 653
+             655:     13(int) GroupIAdd 28 InclusiveScan 654
+             656:     68(ptr) AccessChain 23 67
+                              Store 656 655
+             657:     74(ptr) AccessChain 23 73
+             658:   15(ivec2) Load 657
+             659:     14(int) CompositeExtract 658 0
+             660:     14(int) GroupIAdd 28 InclusiveScan 659
+             661:     14(int) CompositeExtract 658 1
+             662:     14(int) GroupIAdd 28 InclusiveScan 661
+             663:   15(ivec2) CompositeConstruct 660 662
+             664:     74(ptr) AccessChain 23 73
+                              Store 664 663
+             665:     84(ptr) AccessChain 23 83
+             666:   17(fvec3) Load 665
+             667:   16(float) CompositeExtract 666 0
+             668:   16(float) GroupFAdd 28 InclusiveScan 667
+             669:   16(float) CompositeExtract 666 1
+             670:   16(float) GroupFAdd 28 InclusiveScan 669
+             671:   16(float) CompositeExtract 666 2
+             672:   16(float) GroupFAdd 28 InclusiveScan 671
+             673:   17(fvec3) CompositeConstruct 668 670 672
+             674:     84(ptr) AccessChain 23 83
+                              Store 674 673
+             675:     96(ptr) AccessChain 23 95
+             676:   19(ivec4) Load 675
+             677:     18(int) CompositeExtract 676 0
+             678:     18(int) GroupIAdd 28 InclusiveScan 677
+             679:     18(int) CompositeExtract 676 1
+             680:     18(int) GroupIAdd 28 InclusiveScan 679
+             681:     18(int) CompositeExtract 676 2
+             682:     18(int) GroupIAdd 28 InclusiveScan 681
+             683:     18(int) CompositeExtract 676 3
+             684:     18(int) GroupIAdd 28 InclusiveScan 683
+             685:   19(ivec4) CompositeConstruct 678 680 682 684
+             686:     96(ptr) AccessChain 23 95
+                              Store 686 685
+             687:    110(ptr) AccessChain 23 109
+             688:     20(int) Load 687
+             689:     20(int) GroupIAdd 28 InclusiveScan 688
+             690:    110(ptr) AccessChain 23 109
+                              Store 690 689
+             691:     25(ptr) AccessChain 23 24
+             692:      6(int) Load 691
+             693:      6(int) GroupSMin 28 ExclusiveScan 692
+             694:     25(ptr) AccessChain 23 24
+                              Store 694 693
+             695:     32(ptr) AccessChain 23 31
+             696:    8(ivec2) Load 695
+             697:      7(int) CompositeExtract 696 0
+             698:      7(int) GroupUMin 28 ExclusiveScan 697
+             699:      7(int) CompositeExtract 696 1
+             700:      7(int) GroupUMin 28 ExclusiveScan 699
+             701:    8(ivec2) CompositeConstruct 698 700
+             702:     32(ptr) AccessChain 23 31
+                              Store 702 701
+             703:     42(ptr) AccessChain 23 41
+             704:   10(fvec3) Load 703
+             705:    9(float) CompositeExtract 704 0
+             706:    9(float) GroupFMin 28 ExclusiveScan 705
+             707:    9(float) CompositeExtract 704 1
+             708:    9(float) GroupFMin 28 ExclusiveScan 707
+             709:    9(float) CompositeExtract 704 2
+             710:    9(float) GroupFMin 28 ExclusiveScan 709
+             711:   10(fvec3) CompositeConstruct 706 708 710
+             712:     42(ptr) AccessChain 23 41
+                              Store 712 711
+             713:     54(ptr) AccessChain 23 53
+             714:   12(fvec4) Load 713
+             715:   11(float) CompositeExtract 714 0
+             716:   11(float) GroupFMin 28 ExclusiveScan 715
+             717:   11(float) CompositeExtract 714 1
+             718:   11(float) GroupFMin 28 ExclusiveScan 717
+             719:   11(float) CompositeExtract 714 2
+             720:   11(float) GroupFMin 28 ExclusiveScan 719
+             721:   11(float) CompositeExtract 714 3
+             722:   11(float) GroupFMin 28 ExclusiveScan 721
+             723:   12(fvec4) CompositeConstruct 716 718 720 722
+             724:     54(ptr) AccessChain 23 53
+                              Store 724 723
+             725:     68(ptr) AccessChain 23 67
+             726:     13(int) Load 725
+             727:     13(int) GroupSMin 28 ExclusiveScan 726
+             728:     68(ptr) AccessChain 23 67
+                              Store 728 727
+             729:     74(ptr) AccessChain 23 73
+             730:   15(ivec2) Load 729
+             731:     14(int) CompositeExtract 730 0
+             732:     14(int) GroupUMin 28 ExclusiveScan 731
+             733:     14(int) CompositeExtract 730 1
+             734:     14(int) GroupUMin 28 ExclusiveScan 733
+             735:   15(ivec2) CompositeConstruct 732 734
+             736:     74(ptr) AccessChain 23 73
+                              Store 736 735
+             737:     84(ptr) AccessChain 23 83
+             738:   17(fvec3) Load 737
+             739:   16(float) CompositeExtract 738 0
+             740:   16(float) GroupFMin 28 ExclusiveScan 739
+             741:   16(float) CompositeExtract 738 1
+             742:   16(float) GroupFMin 28 ExclusiveScan 741
+             743:   16(float) CompositeExtract 738 2
+             744:   16(float) GroupFMin 28 ExclusiveScan 743
+             745:   17(fvec3) CompositeConstruct 740 742 744
+             746:     84(ptr) AccessChain 23 83
+                              Store 746 745
+             747:     96(ptr) AccessChain 23 95
+             748:   19(ivec4) Load 747
+             749:     18(int) CompositeExtract 748 0
+             750:     18(int) GroupSMin 28 ExclusiveScan 749
+             751:     18(int) CompositeExtract 748 1
+             752:     18(int) GroupSMin 28 ExclusiveScan 751
+             753:     18(int) CompositeExtract 748 2
+             754:     18(int) GroupSMin 28 ExclusiveScan 753
+             755:     18(int) CompositeExtract 748 3
+             756:     18(int) GroupSMin 28 ExclusiveScan 755
+             757:   19(ivec4) CompositeConstruct 750 752 754 756
+             758:     96(ptr) AccessChain 23 95
+                              Store 758 757
+             759:    110(ptr) AccessChain 23 109
+             760:     20(int) Load 759
+             761:     20(int) GroupUMin 28 ExclusiveScan 760
+             762:    110(ptr) AccessChain 23 109
+                              Store 762 761
+             763:     25(ptr) AccessChain 23 24
+             764:      6(int) Load 763
+             765:      6(int) GroupSMax 28 ExclusiveScan 764
+             766:     25(ptr) AccessChain 23 24
+                              Store 766 765
+             767:     32(ptr) AccessChain 23 31
+             768:    8(ivec2) Load 767
+             769:      7(int) CompositeExtract 768 0
+             770:      7(int) GroupUMax 28 ExclusiveScan 769
+             771:      7(int) CompositeExtract 768 1
+             772:      7(int) GroupUMax 28 ExclusiveScan 771
+             773:    8(ivec2) CompositeConstruct 770 772
+             774:     32(ptr) AccessChain 23 31
+                              Store 774 773
+             775:     42(ptr) AccessChain 23 41
+             776:   10(fvec3) Load 775
+             777:    9(float) CompositeExtract 776 0
+             778:    9(float) GroupFMax 28 ExclusiveScan 777
+             779:    9(float) CompositeExtract 776 1
+             780:    9(float) GroupFMax 28 ExclusiveScan 779
+             781:    9(float) CompositeExtract 776 2
+             782:    9(float) GroupFMax 28 ExclusiveScan 781
+             783:   10(fvec3) CompositeConstruct 778 780 782
+             784:     42(ptr) AccessChain 23 41
+                              Store 784 783
+             785:     54(ptr) AccessChain 23 53
+             786:   12(fvec4) Load 785
+             787:   11(float) CompositeExtract 786 0
+             788:   11(float) GroupFMax 28 ExclusiveScan 787
+             789:   11(float) CompositeExtract 786 1
+             790:   11(float) GroupFMax 28 ExclusiveScan 789
+             791:   11(float) CompositeExtract 786 2
+             792:   11(float) GroupFMax 28 ExclusiveScan 791
+             793:   11(float) CompositeExtract 786 3
+             794:   11(float) GroupFMax 28 ExclusiveScan 793
+             795:   12(fvec4) CompositeConstruct 788 790 792 794
+             796:     54(ptr) AccessChain 23 53
+                              Store 796 795
+             797:     68(ptr) AccessChain 23 67
+             798:     13(int) Load 797
+             799:     13(int) GroupSMax 28 ExclusiveScan 798
+             800:     68(ptr) AccessChain 23 67
+                              Store 800 799
+             801:     74(ptr) AccessChain 23 73
+             802:   15(ivec2) Load 801
+             803:     14(int) CompositeExtract 802 0
+             804:     14(int) GroupUMax 28 ExclusiveScan 803
+             805:     14(int) CompositeExtract 802 1
+             806:     14(int) GroupUMax 28 ExclusiveScan 805
+             807:   15(ivec2) CompositeConstruct 804 806
+             808:     74(ptr) AccessChain 23 73
+                              Store 808 807
+             809:     84(ptr) AccessChain 23 83
+             810:   17(fvec3) Load 809
+             811:   16(float) CompositeExtract 810 0
+             812:   16(float) GroupFMax 28 ExclusiveScan 811
+             813:   16(float) CompositeExtract 810 1
+             814:   16(float) GroupFMax 28 ExclusiveScan 813
+             815:   16(float) CompositeExtract 810 2
+             816:   16(float) GroupFMax 28 ExclusiveScan 815
+             817:   17(fvec3) CompositeConstruct 812 814 816
+             818:     84(ptr) AccessChain 23 83
+                              Store 818 817
+             819:     96(ptr) AccessChain 23 95
+             820:   19(ivec4) Load 819
+             821:     18(int) CompositeExtract 820 0
+             822:     18(int) GroupSMax 28 ExclusiveScan 821
+             823:     18(int) CompositeExtract 820 1
+             824:     18(int) GroupSMax 28 ExclusiveScan 823
+             825:     18(int) CompositeExtract 820 2
+             826:     18(int) GroupSMax 28 ExclusiveScan 825
+             827:     18(int) CompositeExtract 820 3
+             828:     18(int) GroupSMax 28 ExclusiveScan 827
+             829:   19(ivec4) CompositeConstruct 822 824 826 828
+             830:     96(ptr) AccessChain 23 95
+                              Store 830 829
+             831:    110(ptr) AccessChain 23 109
+             832:     20(int) Load 831
+             833:     20(int) GroupUMax 28 ExclusiveScan 832
+             834:    110(ptr) AccessChain 23 109
+                              Store 834 833
+             835:     25(ptr) AccessChain 23 24
+             836:      6(int) Load 835
+             837:      6(int) GroupIAdd 28 ExclusiveScan 836
+             838:     25(ptr) AccessChain 23 24
+                              Store 838 837
+             839:     32(ptr) AccessChain 23 31
+             840:    8(ivec2) Load 839
+             841:      7(int) CompositeExtract 840 0
+             842:      7(int) GroupIAdd 28 ExclusiveScan 841
+             843:      7(int) CompositeExtract 840 1
+             844:      7(int) GroupIAdd 28 ExclusiveScan 843
+             845:    8(ivec2) CompositeConstruct 842 844
+             846:     32(ptr) AccessChain 23 31
+                              Store 846 845
+             847:     42(ptr) AccessChain 23 41
+             848:   10(fvec3) Load 847
+             849:    9(float) CompositeExtract 848 0
+             850:    9(float) GroupFAdd 28 ExclusiveScan 849
+             851:    9(float) CompositeExtract 848 1
+             852:    9(float) GroupFAdd 28 ExclusiveScan 851
+             853:    9(float) CompositeExtract 848 2
+             854:    9(float) GroupFAdd 28 ExclusiveScan 853
+             855:   10(fvec3) CompositeConstruct 850 852 854
+             856:     42(ptr) AccessChain 23 41
+                              Store 856 855
+             857:     54(ptr) AccessChain 23 53
+             858:   12(fvec4) Load 857
+             859:   11(float) CompositeExtract 858 0
+             860:   11(float) GroupFAdd 28 ExclusiveScan 859
+             861:   11(float) CompositeExtract 858 1
+             862:   11(float) GroupFAdd 28 ExclusiveScan 861
+             863:   11(float) CompositeExtract 858 2
+             864:   11(float) GroupFAdd 28 ExclusiveScan 863
+             865:   11(float) CompositeExtract 858 3
+             866:   11(float) GroupFAdd 28 ExclusiveScan 865
+             867:   12(fvec4) CompositeConstruct 860 862 864 866
+             868:     54(ptr) AccessChain 23 53
+                              Store 868 867
+             869:     68(ptr) AccessChain 23 67
+             870:     13(int) Load 869
+             871:     13(int) GroupIAdd 28 ExclusiveScan 870
+             872:     68(ptr) AccessChain 23 67
+                              Store 872 871
+             873:     74(ptr) AccessChain 23 73
+             874:   15(ivec2) Load 873
+             875:     14(int) CompositeExtract 874 0
+             876:     14(int) GroupIAdd 28 ExclusiveScan 875
+             877:     14(int) CompositeExtract 874 1
+             878:     14(int) GroupIAdd 28 ExclusiveScan 877
+             879:   15(ivec2) CompositeConstruct 876 878
+             880:     74(ptr) AccessChain 23 73
+                              Store 880 879
+             881:     84(ptr) AccessChain 23 83
+             882:   17(fvec3) Load 881
+             883:   16(float) CompositeExtract 882 0
+             884:   16(float) GroupFAdd 28 ExclusiveScan 883
+             885:   16(float) CompositeExtract 882 1
+             886:   16(float) GroupFAdd 28 ExclusiveScan 885
+             887:   16(float) CompositeExtract 882 2
+             888:   16(float) GroupFAdd 28 ExclusiveScan 887
+             889:   17(fvec3) CompositeConstruct 884 886 888
+             890:     84(ptr) AccessChain 23 83
+                              Store 890 889
+             891:     96(ptr) AccessChain 23 95
+             892:   19(ivec4) Load 891
+             893:     18(int) CompositeExtract 892 0
+             894:     18(int) GroupIAdd 28 ExclusiveScan 893
+             895:     18(int) CompositeExtract 892 1
+             896:     18(int) GroupIAdd 28 ExclusiveScan 895
+             897:     18(int) CompositeExtract 892 2
+             898:     18(int) GroupIAdd 28 ExclusiveScan 897
+             899:     18(int) CompositeExtract 892 3
+             900:     18(int) GroupIAdd 28 ExclusiveScan 899
+             901:   19(ivec4) CompositeConstruct 894 896 898 900
+             902:     96(ptr) AccessChain 23 95
+                              Store 902 901
+             903:    110(ptr) AccessChain 23 109
+             904:     20(int) Load 903
+             905:     20(int) GroupIAdd 28 ExclusiveScan 904
+             906:    110(ptr) AccessChain 23 109
+                              Store 906 905
+             907:     25(ptr) AccessChain 23 24
+             908:      6(int) Load 907
+             909:      6(int) GroupSMinNonUniformAMD 28 InclusiveScan 908
+             910:     25(ptr) AccessChain 23 24
+                              Store 910 909
+             911:     32(ptr) AccessChain 23 31
+             912:    8(ivec2) Load 911
+             913:      7(int) CompositeExtract 912 0
+             914:      7(int) GroupUMinNonUniformAMD 28 InclusiveScan 913
+             915:      7(int) CompositeExtract 912 1
+             916:      7(int) GroupUMinNonUniformAMD 28 InclusiveScan 915
+             917:    8(ivec2) CompositeConstruct 914 916
+             918:     32(ptr) AccessChain 23 31
+                              Store 918 917
+             919:     42(ptr) AccessChain 23 41
+             920:   10(fvec3) Load 919
+             921:    9(float) CompositeExtract 920 0
+             922:    9(float) GroupFMinNonUniformAMD 28 InclusiveScan 921
+             923:    9(float) CompositeExtract 920 1
+             924:    9(float) GroupFMinNonUniformAMD 28 InclusiveScan 923
+             925:    9(float) CompositeExtract 920 2
+             926:    9(float) GroupFMinNonUniformAMD 28 InclusiveScan 925
+             927:   10(fvec3) CompositeConstruct 922 924 926
+             928:     42(ptr) AccessChain 23 41
+                              Store 928 927
+             929:     54(ptr) AccessChain 23 53
+             930:   12(fvec4) Load 929
+             931:   11(float) CompositeExtract 930 0
+             932:   11(float) GroupFMinNonUniformAMD 28 InclusiveScan 931
+             933:   11(float) CompositeExtract 930 1
+             934:   11(float) GroupFMinNonUniformAMD 28 InclusiveScan 933
+             935:   11(float) CompositeExtract 930 2
+             936:   11(float) GroupFMinNonUniformAMD 28 InclusiveScan 935
+             937:   11(float) CompositeExtract 930 3
+             938:   11(float) GroupFMinNonUniformAMD 28 InclusiveScan 937
+             939:   12(fvec4) CompositeConstruct 932 934 936 938
+             940:     54(ptr) AccessChain 23 53
+                              Store 940 939
+             941:     68(ptr) AccessChain 23 67
+             942:     13(int) Load 941
+             943:     13(int) GroupSMinNonUniformAMD 28 InclusiveScan 942
+             944:     68(ptr) AccessChain 23 67
+                              Store 944 943
+             945:     74(ptr) AccessChain 23 73
+             946:   15(ivec2) Load 945
+             947:     14(int) CompositeExtract 946 0
+             948:     14(int) GroupUMinNonUniformAMD 28 InclusiveScan 947
+             949:     14(int) CompositeExtract 946 1
+             950:     14(int) GroupUMinNonUniformAMD 28 InclusiveScan 949
+             951:   15(ivec2) CompositeConstruct 948 950
+             952:     74(ptr) AccessChain 23 73
+                              Store 952 951
+             953:     84(ptr) AccessChain 23 83
+             954:   17(fvec3) Load 953
+             955:   16(float) CompositeExtract 954 0
+             956:   16(float) GroupFMinNonUniformAMD 28 InclusiveScan 955
+             957:   16(float) CompositeExtract 954 1
+             958:   16(float) GroupFMinNonUniformAMD 28 InclusiveScan 957
+             959:   16(float) CompositeExtract 954 2
+             960:   16(float) GroupFMinNonUniformAMD 28 InclusiveScan 959
+             961:   17(fvec3) CompositeConstruct 956 958 960
+             962:     84(ptr) AccessChain 23 83
+                              Store 962 961
+             963:     96(ptr) AccessChain 23 95
+             964:   19(ivec4) Load 963
+             965:     18(int) CompositeExtract 964 0
+             966:     18(int) GroupSMinNonUniformAMD 28 InclusiveScan 965
+             967:     18(int) CompositeExtract 964 1
+             968:     18(int) GroupSMinNonUniformAMD 28 InclusiveScan 967
+             969:     18(int) CompositeExtract 964 2
+             970:     18(int) GroupSMinNonUniformAMD 28 InclusiveScan 969
+             971:     18(int) CompositeExtract 964 3
+             972:     18(int) GroupSMinNonUniformAMD 28 InclusiveScan 971
+             973:   19(ivec4) CompositeConstruct 966 968 970 972
+             974:     96(ptr) AccessChain 23 95
+                              Store 974 973
+             975:    110(ptr) AccessChain 23 109
+             976:     20(int) Load 975
+             977:     20(int) GroupUMinNonUniformAMD 28 InclusiveScan 976
+             978:    110(ptr) AccessChain 23 109
+                              Store 978 977
+             979:     25(ptr) AccessChain 23 24
+             980:      6(int) Load 979
+             981:      6(int) GroupSMaxNonUniformAMD 28 InclusiveScan 980
+             982:     25(ptr) AccessChain 23 24
+                              Store 982 981
+             983:     32(ptr) AccessChain 23 31
+             984:    8(ivec2) Load 983
+             985:      7(int) CompositeExtract 984 0
+             986:      7(int) GroupUMaxNonUniformAMD 28 InclusiveScan 985
+             987:      7(int) CompositeExtract 984 1
+             988:      7(int) GroupUMaxNonUniformAMD 28 InclusiveScan 987
+             989:    8(ivec2) CompositeConstruct 986 988
+             990:     32(ptr) AccessChain 23 31
+                              Store 990 989
+             991:     42(ptr) AccessChain 23 41
+             992:   10(fvec3) Load 991
+             993:    9(float) CompositeExtract 992 0
+             994:    9(float) GroupFMaxNonUniformAMD 28 InclusiveScan 993
+             995:    9(float) CompositeExtract 992 1
+             996:    9(float) GroupFMaxNonUniformAMD 28 InclusiveScan 995
+             997:    9(float) CompositeExtract 992 2
+             998:    9(float) GroupFMaxNonUniformAMD 28 InclusiveScan 997
+             999:   10(fvec3) CompositeConstruct 994 996 998
+            1000:     42(ptr) AccessChain 23 41
+                              Store 1000 999
+            1001:     54(ptr) AccessChain 23 53
+            1002:   12(fvec4) Load 1001
+            1003:   11(float) CompositeExtract 1002 0
+            1004:   11(float) GroupFMaxNonUniformAMD 28 InclusiveScan 1003
+            1005:   11(float) CompositeExtract 1002 1
+            1006:   11(float) GroupFMaxNonUniformAMD 28 InclusiveScan 1005
+            1007:   11(float) CompositeExtract 1002 2
+            1008:   11(float) GroupFMaxNonUniformAMD 28 InclusiveScan 1007
+            1009:   11(float) CompositeExtract 1002 3
+            1010:   11(float) GroupFMaxNonUniformAMD 28 InclusiveScan 1009
+            1011:   12(fvec4) CompositeConstruct 1004 1006 1008 1010
+            1012:     54(ptr) AccessChain 23 53
+                              Store 1012 1011
+            1013:     68(ptr) AccessChain 23 67
+            1014:     13(int) Load 1013
+            1015:     13(int) GroupSMaxNonUniformAMD 28 InclusiveScan 1014
+            1016:     68(ptr) AccessChain 23 67
+                              Store 1016 1015
+            1017:     74(ptr) AccessChain 23 73
+            1018:   15(ivec2) Load 1017
+            1019:     14(int) CompositeExtract 1018 0
+            1020:     14(int) GroupUMaxNonUniformAMD 28 InclusiveScan 1019
+            1021:     14(int) CompositeExtract 1018 1
+            1022:     14(int) GroupUMaxNonUniformAMD 28 InclusiveScan 1021
+            1023:   15(ivec2) CompositeConstruct 1020 1022
+            1024:     74(ptr) AccessChain 23 73
+                              Store 1024 1023
+            1025:     84(ptr) AccessChain 23 83
+            1026:   17(fvec3) Load 1025
+            1027:   16(float) CompositeExtract 1026 0
+            1028:   16(float) GroupFMaxNonUniformAMD 28 InclusiveScan 1027
+            1029:   16(float) CompositeExtract 1026 1
+            1030:   16(float) GroupFMaxNonUniformAMD 28 InclusiveScan 1029
+            1031:   16(float) CompositeExtract 1026 2
+            1032:   16(float) GroupFMaxNonUniformAMD 28 InclusiveScan 1031
+            1033:   17(fvec3) CompositeConstruct 1028 1030 1032
+            1034:     84(ptr) AccessChain 23 83
+                              Store 1034 1033
+            1035:     96(ptr) AccessChain 23 95
+            1036:   19(ivec4) Load 1035
+            1037:     18(int) CompositeExtract 1036 0
+            1038:     18(int) GroupSMaxNonUniformAMD 28 InclusiveScan 1037
+            1039:     18(int) CompositeExtract 1036 1
+            1040:     18(int) GroupSMaxNonUniformAMD 28 InclusiveScan 1039
+            1041:     18(int) CompositeExtract 1036 2
+            1042:     18(int) GroupSMaxNonUniformAMD 28 InclusiveScan 1041
+            1043:     18(int) CompositeExtract 1036 3
+            1044:     18(int) GroupSMaxNonUniformAMD 28 InclusiveScan 1043
+            1045:   19(ivec4) CompositeConstruct 1038 1040 1042 1044
+            1046:     96(ptr) AccessChain 23 95
+                              Store 1046 1045
+            1047:    110(ptr) AccessChain 23 109
+            1048:     20(int) Load 1047
+            1049:     20(int) GroupUMaxNonUniformAMD 28 InclusiveScan 1048
+            1050:    110(ptr) AccessChain 23 109
+                              Store 1050 1049
+            1051:     25(ptr) AccessChain 23 24
+            1052:      6(int) Load 1051
+            1053:      6(int) GroupIAddNonUniformAMD 28 InclusiveScan 1052
+            1054:     25(ptr) AccessChain 23 24
+                              Store 1054 1053
+            1055:     32(ptr) AccessChain 23 31
+            1056:    8(ivec2) Load 1055
+            1057:      7(int) CompositeExtract 1056 0
+            1058:      7(int) GroupIAddNonUniformAMD 28 InclusiveScan 1057
+            1059:      7(int) CompositeExtract 1056 1
+            1060:      7(int) GroupIAddNonUniformAMD 28 InclusiveScan 1059
+            1061:    8(ivec2) CompositeConstruct 1058 1060
+            1062:     32(ptr) AccessChain 23 31
+                              Store 1062 1061
+            1063:     42(ptr) AccessChain 23 41
+            1064:   10(fvec3) Load 1063
+            1065:    9(float) CompositeExtract 1064 0
+            1066:    9(float) GroupFAddNonUniformAMD 28 InclusiveScan 1065
+            1067:    9(float) CompositeExtract 1064 1
+            1068:    9(float) GroupFAddNonUniformAMD 28 InclusiveScan 1067
+            1069:    9(float) CompositeExtract 1064 2
+            1070:    9(float) GroupFAddNonUniformAMD 28 InclusiveScan 1069
+            1071:   10(fvec3) CompositeConstruct 1066 1068 1070
+            1072:     42(ptr) AccessChain 23 41
+                              Store 1072 1071
+            1073:     54(ptr) AccessChain 23 53
+            1074:   12(fvec4) Load 1073
+            1075:   11(float) CompositeExtract 1074 0
+            1076:   11(float) GroupFAddNonUniformAMD 28 InclusiveScan 1075
+            1077:   11(float) CompositeExtract 1074 1
+            1078:   11(float) GroupFAddNonUniformAMD 28 InclusiveScan 1077
+            1079:   11(float) CompositeExtract 1074 2
+            1080:   11(float) GroupFAddNonUniformAMD 28 InclusiveScan 1079
+            1081:   11(float) CompositeExtract 1074 3
+            1082:   11(float) GroupFAddNonUniformAMD 28 InclusiveScan 1081
+            1083:   12(fvec4) CompositeConstruct 1076 1078 1080 1082
+            1084:     54(ptr) AccessChain 23 53
+                              Store 1084 1083
+            1085:     68(ptr) AccessChain 23 67
+            1086:     13(int) Load 1085
+            1087:     13(int) GroupIAddNonUniformAMD 28 InclusiveScan 1086
+            1088:     68(ptr) AccessChain 23 67
+                              Store 1088 1087
+            1089:     74(ptr) AccessChain 23 73
+            1090:   15(ivec2) Load 1089
+            1091:     14(int) CompositeExtract 1090 0
+            1092:     14(int) GroupIAddNonUniformAMD 28 InclusiveScan 1091
+            1093:     14(int) CompositeExtract 1090 1
+            1094:     14(int) GroupIAddNonUniformAMD 28 InclusiveScan 1093
+            1095:   15(ivec2) CompositeConstruct 1092 1094
+            1096:     74(ptr) AccessChain 23 73
+                              Store 1096 1095
+            1097:     84(ptr) AccessChain 23 83
+            1098:   17(fvec3) Load 1097
+            1099:   16(float) CompositeExtract 1098 0
+            1100:   16(float) GroupFAddNonUniformAMD 28 InclusiveScan 1099
+            1101:   16(float) CompositeExtract 1098 1
+            1102:   16(float) GroupFAddNonUniformAMD 28 InclusiveScan 1101
+            1103:   16(float) CompositeExtract 1098 2
+            1104:   16(float) GroupFAddNonUniformAMD 28 InclusiveScan 1103
+            1105:   17(fvec3) CompositeConstruct 1100 1102 1104
+            1106:     84(ptr) AccessChain 23 83
+                              Store 1106 1105
+            1107:     96(ptr) AccessChain 23 95
+            1108:   19(ivec4) Load 1107
+            1109:     18(int) CompositeExtract 1108 0
+            1110:     18(int) GroupIAddNonUniformAMD 28 InclusiveScan 1109
+            1111:     18(int) CompositeExtract 1108 1
+            1112:     18(int) GroupIAddNonUniformAMD 28 InclusiveScan 1111
+            1113:     18(int) CompositeExtract 1108 2
+            1114:     18(int) GroupIAddNonUniformAMD 28 InclusiveScan 1113
+            1115:     18(int) CompositeExtract 1108 3
+            1116:     18(int) GroupIAddNonUniformAMD 28 InclusiveScan 1115
+            1117:   19(ivec4) CompositeConstruct 1110 1112 1114 1116
+            1118:     96(ptr) AccessChain 23 95
+                              Store 1118 1117
+            1119:    110(ptr) AccessChain 23 109
+            1120:     20(int) Load 1119
+            1121:     20(int) GroupIAddNonUniformAMD 28 InclusiveScan 1120
+            1122:    110(ptr) AccessChain 23 109
+                              Store 1122 1121
+            1123:     25(ptr) AccessChain 23 24
+            1124:      6(int) Load 1123
+            1125:      6(int) GroupSMinNonUniformAMD 28 ExclusiveScan 1124
+            1126:     25(ptr) AccessChain 23 24
+                              Store 1126 1125
+            1127:     32(ptr) AccessChain 23 31
+            1128:    8(ivec2) Load 1127
+            1129:      7(int) CompositeExtract 1128 0
+            1130:      7(int) GroupUMinNonUniformAMD 28 ExclusiveScan 1129
+            1131:      7(int) CompositeExtract 1128 1
+            1132:      7(int) GroupUMinNonUniformAMD 28 ExclusiveScan 1131
+            1133:    8(ivec2) CompositeConstruct 1130 1132
+            1134:     32(ptr) AccessChain 23 31
+                              Store 1134 1133
+            1135:     42(ptr) AccessChain 23 41
+            1136:   10(fvec3) Load 1135
+            1137:    9(float) CompositeExtract 1136 0
+            1138:    9(float) GroupFMinNonUniformAMD 28 ExclusiveScan 1137
+            1139:    9(float) CompositeExtract 1136 1
+            1140:    9(float) GroupFMinNonUniformAMD 28 ExclusiveScan 1139
+            1141:    9(float) CompositeExtract 1136 2
+            1142:    9(float) GroupFMinNonUniformAMD 28 ExclusiveScan 1141
+            1143:   10(fvec3) CompositeConstruct 1138 1140 1142
+            1144:     42(ptr) AccessChain 23 41
+                              Store 1144 1143
+            1145:     54(ptr) AccessChain 23 53
+            1146:   12(fvec4) Load 1145
+            1147:   11(float) CompositeExtract 1146 0
+            1148:   11(float) GroupFMinNonUniformAMD 28 ExclusiveScan 1147
+            1149:   11(float) CompositeExtract 1146 1
+            1150:   11(float) GroupFMinNonUniformAMD 28 ExclusiveScan 1149
+            1151:   11(float) CompositeExtract 1146 2
+            1152:   11(float) GroupFMinNonUniformAMD 28 ExclusiveScan 1151
+            1153:   11(float) CompositeExtract 1146 3
+            1154:   11(float) GroupFMinNonUniformAMD 28 ExclusiveScan 1153
+            1155:   12(fvec4) CompositeConstruct 1148 1150 1152 1154
+            1156:     54(ptr) AccessChain 23 53
+                              Store 1156 1155
+            1157:     68(ptr) AccessChain 23 67
+            1158:     13(int) Load 1157
+            1159:     13(int) GroupSMinNonUniformAMD 28 ExclusiveScan 1158
+            1160:     68(ptr) AccessChain 23 67
+                              Store 1160 1159
+            1161:     74(ptr) AccessChain 23 73
+            1162:   15(ivec2) Load 1161
+            1163:     14(int) CompositeExtract 1162 0
+            1164:     14(int) GroupUMinNonUniformAMD 28 ExclusiveScan 1163
+            1165:     14(int) CompositeExtract 1162 1
+            1166:     14(int) GroupUMinNonUniformAMD 28 ExclusiveScan 1165
+            1167:   15(ivec2) CompositeConstruct 1164 1166
+            1168:     74(ptr) AccessChain 23 73
+                              Store 1168 1167
+            1169:     84(ptr) AccessChain 23 83
+            1170:   17(fvec3) Load 1169
+            1171:   16(float) CompositeExtract 1170 0
+            1172:   16(float) GroupFMinNonUniformAMD 28 ExclusiveScan 1171
+            1173:   16(float) CompositeExtract 1170 1
+            1174:   16(float) GroupFMinNonUniformAMD 28 ExclusiveScan 1173
+            1175:   16(float) CompositeExtract 1170 2
+            1176:   16(float) GroupFMinNonUniformAMD 28 ExclusiveScan 1175
+            1177:   17(fvec3) CompositeConstruct 1172 1174 1176
+            1178:     84(ptr) AccessChain 23 83
+                              Store 1178 1177
+            1179:     96(ptr) AccessChain 23 95
+            1180:   19(ivec4) Load 1179
+            1181:     18(int) CompositeExtract 1180 0
+            1182:     18(int) GroupSMinNonUniformAMD 28 ExclusiveScan 1181
+            1183:     18(int) CompositeExtract 1180 1
+            1184:     18(int) GroupSMinNonUniformAMD 28 ExclusiveScan 1183
+            1185:     18(int) CompositeExtract 1180 2
+            1186:     18(int) GroupSMinNonUniformAMD 28 ExclusiveScan 1185
+            1187:     18(int) CompositeExtract 1180 3
+            1188:     18(int) GroupSMinNonUniformAMD 28 ExclusiveScan 1187
+            1189:   19(ivec4) CompositeConstruct 1182 1184 1186 1188
+            1190:     96(ptr) AccessChain 23 95
+                              Store 1190 1189
+            1191:    110(ptr) AccessChain 23 109
+            1192:     20(int) Load 1191
+            1193:     20(int) GroupUMinNonUniformAMD 28 ExclusiveScan 1192
+            1194:    110(ptr) AccessChain 23 109
+                              Store 1194 1193
+            1195:     25(ptr) AccessChain 23 24
+            1196:      6(int) Load 1195
+            1197:      6(int) GroupSMaxNonUniformAMD 28 ExclusiveScan 1196
+            1198:     25(ptr) AccessChain 23 24
+                              Store 1198 1197
+            1199:     32(ptr) AccessChain 23 31
+            1200:    8(ivec2) Load 1199
+            1201:      7(int) CompositeExtract 1200 0
+            1202:      7(int) GroupUMaxNonUniformAMD 28 ExclusiveScan 1201
+            1203:      7(int) CompositeExtract 1200 1
+            1204:      7(int) GroupUMaxNonUniformAMD 28 ExclusiveScan 1203
+            1205:    8(ivec2) CompositeConstruct 1202 1204
+            1206:     32(ptr) AccessChain 23 31
+                              Store 1206 1205
+            1207:     42(ptr) AccessChain 23 41
+            1208:   10(fvec3) Load 1207
+            1209:    9(float) CompositeExtract 1208 0
+            1210:    9(float) GroupFMaxNonUniformAMD 28 ExclusiveScan 1209
+            1211:    9(float) CompositeExtract 1208 1
+            1212:    9(float) GroupFMaxNonUniformAMD 28 ExclusiveScan 1211
+            1213:    9(float) CompositeExtract 1208 2
+            1214:    9(float) GroupFMaxNonUniformAMD 28 ExclusiveScan 1213
+            1215:   10(fvec3) CompositeConstruct 1210 1212 1214
+            1216:     42(ptr) AccessChain 23 41
+                              Store 1216 1215
+            1217:     54(ptr) AccessChain 23 53
+            1218:   12(fvec4) Load 1217
+            1219:   11(float) CompositeExtract 1218 0
+            1220:   11(float) GroupFMaxNonUniformAMD 28 ExclusiveScan 1219
+            1221:   11(float) CompositeExtract 1218 1
+            1222:   11(float) GroupFMaxNonUniformAMD 28 ExclusiveScan 1221
+            1223:   11(float) CompositeExtract 1218 2
+            1224:   11(float) GroupFMaxNonUniformAMD 28 ExclusiveScan 1223
+            1225:   11(float) CompositeExtract 1218 3
+            1226:   11(float) GroupFMaxNonUniformAMD 28 ExclusiveScan 1225
+            1227:   12(fvec4) CompositeConstruct 1220 1222 1224 1226
+            1228:     54(ptr) AccessChain 23 53
+                              Store 1228 1227
+            1229:     68(ptr) AccessChain 23 67
+            1230:     13(int) Load 1229
+            1231:     13(int) GroupSMaxNonUniformAMD 28 ExclusiveScan 1230
+            1232:     68(ptr) AccessChain 23 67
+                              Store 1232 1231
+            1233:     74(ptr) AccessChain 23 73
+            1234:   15(ivec2) Load 1233
+            1235:     14(int) CompositeExtract 1234 0
+            1236:     14(int) GroupUMaxNonUniformAMD 28 ExclusiveScan 1235
+            1237:     14(int) CompositeExtract 1234 1
+            1238:     14(int) GroupUMaxNonUniformAMD 28 ExclusiveScan 1237
+            1239:   15(ivec2) CompositeConstruct 1236 1238
+            1240:     74(ptr) AccessChain 23 73
+                              Store 1240 1239
+            1241:     84(ptr) AccessChain 23 83
+            1242:   17(fvec3) Load 1241
+            1243:   16(float) CompositeExtract 1242 0
+            1244:   16(float) GroupFMaxNonUniformAMD 28 ExclusiveScan 1243
+            1245:   16(float) CompositeExtract 1242 1
+            1246:   16(float) GroupFMaxNonUniformAMD 28 ExclusiveScan 1245
+            1247:   16(float) CompositeExtract 1242 2
+            1248:   16(float) GroupFMaxNonUniformAMD 28 ExclusiveScan 1247
+            1249:   17(fvec3) CompositeConstruct 1244 1246 1248
+            1250:     84(ptr) AccessChain 23 83
+                              Store 1250 1249
+            1251:     96(ptr) AccessChain 23 95
+            1252:   19(ivec4) Load 1251
+            1253:     18(int) CompositeExtract 1252 0
+            1254:     18(int) GroupSMaxNonUniformAMD 28 ExclusiveScan 1253
+            1255:     18(int) CompositeExtract 1252 1
+            1256:     18(int) GroupSMaxNonUniformAMD 28 ExclusiveScan 1255
+            1257:     18(int) CompositeExtract 1252 2
+            1258:     18(int) GroupSMaxNonUniformAMD 28 ExclusiveScan 1257
+            1259:     18(int) CompositeExtract 1252 3
+            1260:     18(int) GroupSMaxNonUniformAMD 28 ExclusiveScan 1259
+            1261:   19(ivec4) CompositeConstruct 1254 1256 1258 1260
+            1262:     96(ptr) AccessChain 23 95
+                              Store 1262 1261
+            1263:    110(ptr) AccessChain 23 109
+            1264:     20(int) Load 1263
+            1265:     20(int) GroupUMaxNonUniformAMD 28 ExclusiveScan 1264
+            1266:    110(ptr) AccessChain 23 109
+                              Store 1266 1265
+            1267:     25(ptr) AccessChain 23 24
+            1268:      6(int) Load 1267
+            1269:      6(int) GroupIAddNonUniformAMD 28 ExclusiveScan 1268
+            1270:     25(ptr) AccessChain 23 24
+                              Store 1270 1269
+            1271:     32(ptr) AccessChain 23 31
+            1272:    8(ivec2) Load 1271
+            1273:      7(int) CompositeExtract 1272 0
+            1274:      7(int) GroupIAddNonUniformAMD 28 ExclusiveScan 1273
+            1275:      7(int) CompositeExtract 1272 1
+            1276:      7(int) GroupIAddNonUniformAMD 28 ExclusiveScan 1275
+            1277:    8(ivec2) CompositeConstruct 1274 1276
+            1278:     32(ptr) AccessChain 23 31
+                              Store 1278 1277
+            1279:     42(ptr) AccessChain 23 41
+            1280:   10(fvec3) Load 1279
+            1281:    9(float) CompositeExtract 1280 0
+            1282:    9(float) GroupFAddNonUniformAMD 28 ExclusiveScan 1281
+            1283:    9(float) CompositeExtract 1280 1
+            1284:    9(float) GroupFAddNonUniformAMD 28 ExclusiveScan 1283
+            1285:    9(float) CompositeExtract 1280 2
+            1286:    9(float) GroupFAddNonUniformAMD 28 ExclusiveScan 1285
+            1287:   10(fvec3) CompositeConstruct 1282 1284 1286
+            1288:     42(ptr) AccessChain 23 41
+                              Store 1288 1287
+            1289:     54(ptr) AccessChain 23 53
+            1290:   12(fvec4) Load 1289
+            1291:   11(float) CompositeExtract 1290 0
+            1292:   11(float) GroupFAddNonUniformAMD 28 ExclusiveScan 1291
+            1293:   11(float) CompositeExtract 1290 1
+            1294:   11(float) GroupFAddNonUniformAMD 28 ExclusiveScan 1293
+            1295:   11(float) CompositeExtract 1290 2
+            1296:   11(float) GroupFAddNonUniformAMD 28 ExclusiveScan 1295
+            1297:   11(float) CompositeExtract 1290 3
+            1298:   11(float) GroupFAddNonUniformAMD 28 ExclusiveScan 1297
+            1299:   12(fvec4) CompositeConstruct 1292 1294 1296 1298
+            1300:     54(ptr) AccessChain 23 53
+                              Store 1300 1299
+            1301:     68(ptr) AccessChain 23 67
+            1302:     13(int) Load 1301
+            1303:     13(int) GroupIAddNonUniformAMD 28 ExclusiveScan 1302
+            1304:     68(ptr) AccessChain 23 67
+                              Store 1304 1303
+            1305:     74(ptr) AccessChain 23 73
+            1306:   15(ivec2) Load 1305
+            1307:     14(int) CompositeExtract 1306 0
+            1308:     14(int) GroupIAddNonUniformAMD 28 ExclusiveScan 1307
+            1309:     14(int) CompositeExtract 1306 1
+            1310:     14(int) GroupIAddNonUniformAMD 28 ExclusiveScan 1309
+            1311:   15(ivec2) CompositeConstruct 1308 1310
+            1312:     74(ptr) AccessChain 23 73
+                              Store 1312 1311
+            1313:     84(ptr) AccessChain 23 83
+            1314:   17(fvec3) Load 1313
+            1315:   16(float) CompositeExtract 1314 0
+            1316:   16(float) GroupFAddNonUniformAMD 28 ExclusiveScan 1315
+            1317:   16(float) CompositeExtract 1314 1
+            1318:   16(float) GroupFAddNonUniformAMD 28 ExclusiveScan 1317
+            1319:   16(float) CompositeExtract 1314 2
+            1320:   16(float) GroupFAddNonUniformAMD 28 ExclusiveScan 1319
+            1321:   17(fvec3) CompositeConstruct 1316 1318 1320
+            1322:     84(ptr) AccessChain 23 83
+                              Store 1322 1321
+            1323:     96(ptr) AccessChain 23 95
+            1324:   19(ivec4) Load 1323
+            1325:     18(int) CompositeExtract 1324 0
+            1326:     18(int) GroupIAddNonUniformAMD 28 ExclusiveScan 1325
+            1327:     18(int) CompositeExtract 1324 1
+            1328:     18(int) GroupIAddNonUniformAMD 28 ExclusiveScan 1327
+            1329:     18(int) CompositeExtract 1324 2
+            1330:     18(int) GroupIAddNonUniformAMD 28 ExclusiveScan 1329
+            1331:     18(int) CompositeExtract 1324 3
+            1332:     18(int) GroupIAddNonUniformAMD 28 ExclusiveScan 1331
+            1333:   19(ivec4) CompositeConstruct 1326 1328 1330 1332
+            1334:     96(ptr) AccessChain 23 95
+                              Store 1334 1333
+            1335:    110(ptr) AccessChain 23 109
+            1336:     20(int) Load 1335
+            1337:     20(int) GroupIAddNonUniformAMD 28 ExclusiveScan 1336
+            1338:    110(ptr) AccessChain 23 109
+                              Store 1338 1337
                               Return
                               FunctionEnd
diff --git a/Test/spv.shaderBallotAMD.comp b/Test/spv.shaderBallotAMD.comp
index d6d370aea72749210c37929efbfcfb671c782f23..9cf9546e44b56f8c971ccfb20345e6294a803bfb 100644
--- a/Test/spv.shaderBallotAMD.comp
+++ b/Test/spv.shaderBallotAMD.comp
@@ -2,6 +2,7 @@
 
 #extension GL_ARB_gpu_shader_int64: enable
 #extension GL_AMD_gpu_shader_half_float: enable
+#extension GL_AMD_gpu_shader_int16: enable
 #extension GL_AMD_shader_ballot: enable
 
 layout (local_size_x = 8, local_size_y = 8, local_size_z = 1) in;
@@ -15,17 +16,21 @@ layout(binding = 0) buffer Buffers
     int64_t i64;
     u64vec2 u64v;
     f16vec3 f16v;
+    i16vec4 i16v;
+    uint16_t u16;
 };
 
 void main()
 {
-	i    = minInvocationsAMD(i);
+    i    = minInvocationsAMD(i);
     uv   = minInvocationsAMD(uv);
     fv   = minInvocationsAMD(fv);
     dv   = minInvocationsAMD(dv);
     i64  = minInvocationsAMD(i64);
     u64v = minInvocationsAMD(u64v);
     f16v = minInvocationsAMD(f16v);
+    i16v = minInvocationsAMD(i16v);
+    u16  = minInvocationsAMD(u16);
 
     i    = maxInvocationsAMD(i);
     uv   = maxInvocationsAMD(uv);
@@ -34,6 +39,8 @@ void main()
     i64  = maxInvocationsAMD(i64);
     u64v = maxInvocationsAMD(u64v);
     f16v = maxInvocationsAMD(f16v);
+    i16v = maxInvocationsAMD(i16v);
+    u16  = maxInvocationsAMD(u16);
 
     i    = addInvocationsAMD(i);
     uv   = addInvocationsAMD(uv);
@@ -42,6 +49,8 @@ void main()
     i64  = addInvocationsAMD(i64);
     u64v = addInvocationsAMD(u64v);
     f16v = addInvocationsAMD(f16v);
+    i16v = addInvocationsAMD(i16v);
+    u16  = addInvocationsAMD(u16);
 
 	i    = minInvocationsNonUniformAMD(i);
     uv   = minInvocationsNonUniformAMD(uv);
@@ -50,6 +59,8 @@ void main()
     i64  = minInvocationsNonUniformAMD(i64);
     u64v = minInvocationsNonUniformAMD(u64v);
     f16v = minInvocationsNonUniformAMD(f16v);
+    i16v = minInvocationsNonUniformAMD(i16v);
+    u16  = minInvocationsNonUniformAMD(u16);
 
     i    = maxInvocationsNonUniformAMD(i);
     uv   = maxInvocationsNonUniformAMD(uv);
@@ -58,6 +69,8 @@ void main()
     i64  = maxInvocationsNonUniformAMD(i64);
     u64v = maxInvocationsNonUniformAMD(u64v);
     f16v = maxInvocationsNonUniformAMD(f16v);
+    i16v = maxInvocationsNonUniformAMD(i16v);
+    u16  = maxInvocationsNonUniformAMD(u16);
 
     i    = addInvocationsNonUniformAMD(i);
     uv   = addInvocationsNonUniformAMD(uv);
@@ -66,6 +79,8 @@ void main()
     i64  = addInvocationsNonUniformAMD(i64);
     u64v = addInvocationsNonUniformAMD(u64v);
     f16v = addInvocationsNonUniformAMD(f16v);
+    i16v = addInvocationsNonUniformAMD(i16v);
+    u16  = addInvocationsNonUniformAMD(u16);
 
     i    = minInvocationsInclusiveScanAMD(i);
     uv   = minInvocationsInclusiveScanAMD(uv);
@@ -74,6 +89,8 @@ void main()
     i64  = minInvocationsInclusiveScanAMD(i64);
     u64v = minInvocationsInclusiveScanAMD(u64v);
     f16v = minInvocationsInclusiveScanAMD(f16v);
+    i16v = minInvocationsInclusiveScanAMD(i16v);
+    u16  = minInvocationsInclusiveScanAMD(u16);
 
     i    = maxInvocationsInclusiveScanAMD(i);
     uv   = maxInvocationsInclusiveScanAMD(uv);
@@ -82,6 +99,8 @@ void main()
     i64  = maxInvocationsInclusiveScanAMD(i64);
     u64v = maxInvocationsInclusiveScanAMD(u64v);
     f16v = maxInvocationsInclusiveScanAMD(f16v);
+    i16v = maxInvocationsInclusiveScanAMD(i16v);
+    u16  = maxInvocationsInclusiveScanAMD(u16);
 
     i    = addInvocationsInclusiveScanAMD(i);
     uv   = addInvocationsInclusiveScanAMD(uv);
@@ -90,6 +109,8 @@ void main()
     i64  = addInvocationsInclusiveScanAMD(i64);
     u64v = addInvocationsInclusiveScanAMD(u64v);
     f16v = addInvocationsInclusiveScanAMD(f16v);
+    i16v = addInvocationsInclusiveScanAMD(i16v);
+    u16  = addInvocationsInclusiveScanAMD(u16);
 
     i    = minInvocationsExclusiveScanAMD(i);
     uv   = minInvocationsExclusiveScanAMD(uv);
@@ -98,6 +119,8 @@ void main()
     i64  = minInvocationsExclusiveScanAMD(i64);
     u64v = minInvocationsExclusiveScanAMD(u64v);
     f16v = minInvocationsExclusiveScanAMD(f16v);
+    i16v = minInvocationsExclusiveScanAMD(i16v);
+    u16  = minInvocationsExclusiveScanAMD(u16);
 
     i    = maxInvocationsExclusiveScanAMD(i);
     uv   = maxInvocationsExclusiveScanAMD(uv);
@@ -106,6 +129,8 @@ void main()
     i64  = maxInvocationsExclusiveScanAMD(i64);
     u64v = maxInvocationsExclusiveScanAMD(u64v);
     f16v = maxInvocationsExclusiveScanAMD(f16v);
+    i16v = maxInvocationsExclusiveScanAMD(i16v);
+    u16  = maxInvocationsExclusiveScanAMD(u16);
 
     i    = addInvocationsExclusiveScanAMD(i);
     uv   = addInvocationsExclusiveScanAMD(uv);
@@ -114,6 +139,8 @@ void main()
     i64  = addInvocationsExclusiveScanAMD(i64);
     u64v = addInvocationsExclusiveScanAMD(u64v);
     f16v = addInvocationsExclusiveScanAMD(f16v);
+    i16v = addInvocationsExclusiveScanAMD(i16v);
+    u16  = addInvocationsExclusiveScanAMD(u16);
 
     i    = minInvocationsInclusiveScanNonUniformAMD(i);
     uv   = minInvocationsInclusiveScanNonUniformAMD(uv);
@@ -122,6 +149,8 @@ void main()
     i64  = minInvocationsInclusiveScanNonUniformAMD(i64);
     u64v = minInvocationsInclusiveScanNonUniformAMD(u64v);
     f16v = minInvocationsInclusiveScanNonUniformAMD(f16v);
+    i16v = minInvocationsInclusiveScanNonUniformAMD(i16v);
+    u16  = minInvocationsInclusiveScanNonUniformAMD(u16);
 
     i    = maxInvocationsInclusiveScanNonUniformAMD(i);
     uv   = maxInvocationsInclusiveScanNonUniformAMD(uv);
@@ -130,6 +159,8 @@ void main()
     i64  = maxInvocationsInclusiveScanNonUniformAMD(i64);
     u64v = maxInvocationsInclusiveScanNonUniformAMD(u64v);
     f16v = maxInvocationsInclusiveScanNonUniformAMD(f16v);
+    i16v = maxInvocationsInclusiveScanNonUniformAMD(i16v);
+    u16  = maxInvocationsInclusiveScanNonUniformAMD(u16);
 
     i    = addInvocationsInclusiveScanNonUniformAMD(i);
     uv   = addInvocationsInclusiveScanNonUniformAMD(uv);
@@ -138,6 +169,8 @@ void main()
     i64  = addInvocationsInclusiveScanNonUniformAMD(i64);
     u64v = addInvocationsInclusiveScanNonUniformAMD(u64v);
     f16v = addInvocationsInclusiveScanNonUniformAMD(f16v);
+    i16v = addInvocationsInclusiveScanNonUniformAMD(i16v);
+    u16  = addInvocationsInclusiveScanNonUniformAMD(u16);
 
     i    = minInvocationsExclusiveScanNonUniformAMD(i);
     uv   = minInvocationsExclusiveScanNonUniformAMD(uv);
@@ -146,6 +179,8 @@ void main()
     i64  = minInvocationsExclusiveScanNonUniformAMD(i64);
     u64v = minInvocationsExclusiveScanNonUniformAMD(u64v);
     f16v = minInvocationsExclusiveScanNonUniformAMD(f16v);
+    i16v = minInvocationsExclusiveScanNonUniformAMD(i16v);
+    u16  = minInvocationsExclusiveScanNonUniformAMD(u16);
 
     i    = maxInvocationsExclusiveScanNonUniformAMD(i);
     uv   = maxInvocationsExclusiveScanNonUniformAMD(uv);
@@ -154,6 +189,8 @@ void main()
     i64  = maxInvocationsExclusiveScanNonUniformAMD(i64);
     u64v = maxInvocationsExclusiveScanNonUniformAMD(u64v);
     f16v = maxInvocationsExclusiveScanNonUniformAMD(f16v);
+    i16v = maxInvocationsExclusiveScanNonUniformAMD(i16v);
+    u16  = maxInvocationsExclusiveScanNonUniformAMD(u16);
 
     i    = addInvocationsExclusiveScanNonUniformAMD(i);
     uv   = addInvocationsExclusiveScanNonUniformAMD(uv);
@@ -162,4 +199,6 @@ void main()
     i64  = addInvocationsExclusiveScanNonUniformAMD(i64);
     u64v = addInvocationsExclusiveScanNonUniformAMD(u64v);
     f16v = addInvocationsExclusiveScanNonUniformAMD(f16v);
+    i16v = addInvocationsExclusiveScanNonUniformAMD(i16v);
+    u16  = addInvocationsExclusiveScanNonUniformAMD(u16);
 }
diff --git a/glslang/MachineIndependent/Initialize.cpp b/glslang/MachineIndependent/Initialize.cpp
index 348a16a81e95fc3f45400e1683c8d27b8a954c05..c1b8b6bcd45b1ae8564fdcfb08638e54378d9bfe 100644
--- a/glslang/MachineIndependent/Initialize.cpp
+++ b/glslang/MachineIndependent/Initialize.cpp
@@ -895,6 +895,36 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
             "f16vec3   mid3(f16vec3,   f16vec3,   f16vec3);"
             "f16vec4   mid3(f16vec4,   f16vec4,   f16vec4);"
 
+            "int16_t   min3(int16_t,   int16_t,   int16_t);"
+            "i16vec2   min3(i16vec2,   i16vec2,   i16vec2);"
+            "i16vec3   min3(i16vec3,   i16vec3,   i16vec3);"
+            "i16vec4   min3(i16vec4,   i16vec4,   i16vec4);"
+
+            "int16_t   max3(int16_t,   int16_t,   int16_t);"
+            "i16vec2   max3(i16vec2,   i16vec2,   i16vec2);"
+            "i16vec3   max3(i16vec3,   i16vec3,   i16vec3);"
+            "i16vec4   max3(i16vec4,   i16vec4,   i16vec4);"
+
+            "int16_t   mid3(int16_t,   int16_t,   int16_t);"
+            "i16vec2   mid3(i16vec2,   i16vec2,   i16vec2);"
+            "i16vec3   mid3(i16vec3,   i16vec3,   i16vec3);"
+            "i16vec4   mid3(i16vec4,   i16vec4,   i16vec4);"
+
+            "uint16_t  min3(uint16_t,  uint16_t,  uint16_t);"
+            "u16vec2   min3(u16vec2,   u16vec2,   u16vec2);"
+            "u16vec3   min3(u16vec3,   u16vec3,   u16vec3);"
+            "u16vec4   min3(u16vec4,   u16vec4,   u16vec4);"
+
+            "uint16_t  max3(uint16_t,  uint16_t,  uint16_t);"
+            "u16vec2   max3(u16vec2,   u16vec2,   u16vec2);"
+            "u16vec3   max3(u16vec3,   u16vec3,   u16vec3);"
+            "u16vec4   max3(u16vec4,   u16vec4,   u16vec4);"
+
+            "uint16_t  mid3(uint16_t,  uint16_t,  uint16_t);"
+            "u16vec2   mid3(u16vec2,   u16vec2,   u16vec2);"
+            "u16vec3   mid3(u16vec3,   u16vec3,   u16vec3);"
+            "u16vec4   mid3(u16vec4,   u16vec4,   u16vec4);"
+
             "\n"
         );
     }
@@ -2403,6 +2433,16 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
             "f16vec3   minInvocationsAMD(f16vec3);"
             "f16vec4   minInvocationsAMD(f16vec4);"
 
+            "int16_t minInvocationsAMD(int16_t);"
+            "i16vec2 minInvocationsAMD(i16vec2);"
+            "i16vec3 minInvocationsAMD(i16vec3);"
+            "i16vec4 minInvocationsAMD(i16vec4);"
+
+            "uint16_t minInvocationsAMD(uint16_t);"
+            "u16vec2  minInvocationsAMD(u16vec2);"
+            "u16vec3  minInvocationsAMD(u16vec3);"
+            "u16vec4  minInvocationsAMD(u16vec4);"
+
             "float minInvocationsInclusiveScanAMD(float);"
             "vec2  minInvocationsInclusiveScanAMD(vec2);"
             "vec3  minInvocationsInclusiveScanAMD(vec3);"
@@ -2438,6 +2478,16 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
             "f16vec3   minInvocationsInclusiveScanAMD(f16vec3);"
             "f16vec4   minInvocationsInclusiveScanAMD(f16vec4);"
 
+            "int16_t minInvocationsInclusiveScanAMD(int16_t);"
+            "i16vec2 minInvocationsInclusiveScanAMD(i16vec2);"
+            "i16vec3 minInvocationsInclusiveScanAMD(i16vec3);"
+            "i16vec4 minInvocationsInclusiveScanAMD(i16vec4);"
+
+            "uint16_t minInvocationsInclusiveScanAMD(uint16_t);"
+            "u16vec2  minInvocationsInclusiveScanAMD(u16vec2);"
+            "u16vec3  minInvocationsInclusiveScanAMD(u16vec3);"
+            "u16vec4  minInvocationsInclusiveScanAMD(u16vec4);"
+
             "float minInvocationsExclusiveScanAMD(float);"
             "vec2  minInvocationsExclusiveScanAMD(vec2);"
             "vec3  minInvocationsExclusiveScanAMD(vec3);"
@@ -2473,6 +2523,16 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
             "f16vec3   minInvocationsExclusiveScanAMD(f16vec3);"
             "f16vec4   minInvocationsExclusiveScanAMD(f16vec4);"
 
+            "int16_t minInvocationsExclusiveScanAMD(int16_t);"
+            "i16vec2 minInvocationsExclusiveScanAMD(i16vec2);"
+            "i16vec3 minInvocationsExclusiveScanAMD(i16vec3);"
+            "i16vec4 minInvocationsExclusiveScanAMD(i16vec4);"
+
+            "uint16_t minInvocationsExclusiveScanAMD(uint16_t);"
+            "u16vec2  minInvocationsExclusiveScanAMD(u16vec2);"
+            "u16vec3  minInvocationsExclusiveScanAMD(u16vec3);"
+            "u16vec4  minInvocationsExclusiveScanAMD(u16vec4);"
+
             "float maxInvocationsAMD(float);"
             "vec2  maxInvocationsAMD(vec2);"
             "vec3  maxInvocationsAMD(vec3);"
@@ -2508,6 +2568,16 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
             "f16vec3   maxInvocationsAMD(f16vec3);"
             "f16vec4   maxInvocationsAMD(f16vec4);"
 
+            "int16_t maxInvocationsAMD(int16_t);"
+            "i16vec2 maxInvocationsAMD(i16vec2);"
+            "i16vec3 maxInvocationsAMD(i16vec3);"
+            "i16vec4 maxInvocationsAMD(i16vec4);"
+
+            "uint16_t maxInvocationsAMD(uint16_t);"
+            "u16vec2  maxInvocationsAMD(u16vec2);"
+            "u16vec3  maxInvocationsAMD(u16vec3);"
+            "u16vec4  maxInvocationsAMD(u16vec4);"
+
             "float maxInvocationsInclusiveScanAMD(float);"
             "vec2  maxInvocationsInclusiveScanAMD(vec2);"
             "vec3  maxInvocationsInclusiveScanAMD(vec3);"
@@ -2543,6 +2613,16 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
             "f16vec3   maxInvocationsInclusiveScanAMD(f16vec3);"
             "f16vec4   maxInvocationsInclusiveScanAMD(f16vec4);"
 
+            "int16_t maxInvocationsInclusiveScanAMD(int16_t);"
+            "i16vec2 maxInvocationsInclusiveScanAMD(i16vec2);"
+            "i16vec3 maxInvocationsInclusiveScanAMD(i16vec3);"
+            "i16vec4 maxInvocationsInclusiveScanAMD(i16vec4);"
+
+            "uint16_t maxInvocationsInclusiveScanAMD(uint16_t);"
+            "u16vec2  maxInvocationsInclusiveScanAMD(u16vec2);"
+            "u16vec3  maxInvocationsInclusiveScanAMD(u16vec3);"
+            "u16vec4  maxInvocationsInclusiveScanAMD(u16vec4);"
+
             "float maxInvocationsExclusiveScanAMD(float);"
             "vec2  maxInvocationsExclusiveScanAMD(vec2);"
             "vec3  maxInvocationsExclusiveScanAMD(vec3);"
@@ -2578,6 +2658,16 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
             "f16vec3   maxInvocationsExclusiveScanAMD(f16vec3);"
             "f16vec4   maxInvocationsExclusiveScanAMD(f16vec4);"
 
+            "int16_t maxInvocationsExclusiveScanAMD(int16_t);"
+            "i16vec2 maxInvocationsExclusiveScanAMD(i16vec2);"
+            "i16vec3 maxInvocationsExclusiveScanAMD(i16vec3);"
+            "i16vec4 maxInvocationsExclusiveScanAMD(i16vec4);"
+
+            "uint16_t maxInvocationsExclusiveScanAMD(uint16_t);"
+            "u16vec2  maxInvocationsExclusiveScanAMD(u16vec2);"
+            "u16vec3  maxInvocationsExclusiveScanAMD(u16vec3);"
+            "u16vec4  maxInvocationsExclusiveScanAMD(u16vec4);"
+
             "float addInvocationsAMD(float);"
             "vec2  addInvocationsAMD(vec2);"
             "vec3  addInvocationsAMD(vec3);"
@@ -2613,6 +2703,16 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
             "f16vec3   addInvocationsAMD(f16vec3);"
             "f16vec4   addInvocationsAMD(f16vec4);"
 
+            "int16_t addInvocationsAMD(int16_t);"
+            "i16vec2 addInvocationsAMD(i16vec2);"
+            "i16vec3 addInvocationsAMD(i16vec3);"
+            "i16vec4 addInvocationsAMD(i16vec4);"
+
+            "uint16_t addInvocationsAMD(uint16_t);"
+            "u16vec2  addInvocationsAMD(u16vec2);"
+            "u16vec3  addInvocationsAMD(u16vec3);"
+            "u16vec4  addInvocationsAMD(u16vec4);"
+
             "float addInvocationsInclusiveScanAMD(float);"
             "vec2  addInvocationsInclusiveScanAMD(vec2);"
             "vec3  addInvocationsInclusiveScanAMD(vec3);"
@@ -2648,6 +2748,16 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
             "f16vec3   addInvocationsInclusiveScanAMD(f16vec3);"
             "f16vec4   addInvocationsInclusiveScanAMD(f16vec4);"
 
+            "int16_t addInvocationsInclusiveScanAMD(int16_t);"
+            "i16vec2 addInvocationsInclusiveScanAMD(i16vec2);"
+            "i16vec3 addInvocationsInclusiveScanAMD(i16vec3);"
+            "i16vec4 addInvocationsInclusiveScanAMD(i16vec4);"
+
+            "uint16_t addInvocationsInclusiveScanAMD(uint16_t);"
+            "u16vec2  addInvocationsInclusiveScanAMD(u16vec2);"
+            "u16vec3  addInvocationsInclusiveScanAMD(u16vec3);"
+            "u16vec4  addInvocationsInclusiveScanAMD(u16vec4);"
+
             "float addInvocationsExclusiveScanAMD(float);"
             "vec2  addInvocationsExclusiveScanAMD(vec2);"
             "vec3  addInvocationsExclusiveScanAMD(vec3);"
@@ -2683,6 +2793,16 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
             "f16vec3   addInvocationsExclusiveScanAMD(f16vec3);"
             "f16vec4   addInvocationsExclusiveScanAMD(f16vec4);"
 
+            "int16_t addInvocationsExclusiveScanAMD(int16_t);"
+            "i16vec2 addInvocationsExclusiveScanAMD(i16vec2);"
+            "i16vec3 addInvocationsExclusiveScanAMD(i16vec3);"
+            "i16vec4 addInvocationsExclusiveScanAMD(i16vec4);"
+
+            "uint16_t addInvocationsExclusiveScanAMD(uint16_t);"
+            "u16vec2  addInvocationsExclusiveScanAMD(u16vec2);"
+            "u16vec3  addInvocationsExclusiveScanAMD(u16vec3);"
+            "u16vec4  addInvocationsExclusiveScanAMD(u16vec4);"
+
             "float minInvocationsNonUniformAMD(float);"
             "vec2  minInvocationsNonUniformAMD(vec2);"
             "vec3  minInvocationsNonUniformAMD(vec3);"
@@ -2718,6 +2838,16 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
             "f16vec3   minInvocationsNonUniformAMD(f16vec3);"
             "f16vec4   minInvocationsNonUniformAMD(f16vec4);"
 
+            "int16_t minInvocationsNonUniformAMD(int16_t);"
+            "i16vec2 minInvocationsNonUniformAMD(i16vec2);"
+            "i16vec3 minInvocationsNonUniformAMD(i16vec3);"
+            "i16vec4 minInvocationsNonUniformAMD(i16vec4);"
+
+            "uint16_t minInvocationsNonUniformAMD(uint16_t);"
+            "u16vec2  minInvocationsNonUniformAMD(u16vec2);"
+            "u16vec3  minInvocationsNonUniformAMD(u16vec3);"
+            "u16vec4  minInvocationsNonUniformAMD(u16vec4);"
+
             "float minInvocationsInclusiveScanNonUniformAMD(float);"
             "vec2  minInvocationsInclusiveScanNonUniformAMD(vec2);"
             "vec3  minInvocationsInclusiveScanNonUniformAMD(vec3);"
@@ -2753,6 +2883,16 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
             "f16vec3   minInvocationsInclusiveScanNonUniformAMD(f16vec3);"
             "f16vec4   minInvocationsInclusiveScanNonUniformAMD(f16vec4);"
 
+            "int16_t minInvocationsInclusiveScanNonUniformAMD(int16_t);"
+            "i16vec2 minInvocationsInclusiveScanNonUniformAMD(i16vec2);"
+            "i16vec3 minInvocationsInclusiveScanNonUniformAMD(i16vec3);"
+            "i16vec4 minInvocationsInclusiveScanNonUniformAMD(i16vec4);"
+
+            "uint16_t minInvocationsInclusiveScanNonUniformAMD(uint16_t);"
+            "u16vec2  minInvocationsInclusiveScanNonUniformAMD(u16vec2);"
+            "u16vec3  minInvocationsInclusiveScanNonUniformAMD(u16vec3);"
+            "u16vec4  minInvocationsInclusiveScanNonUniformAMD(u16vec4);"
+
             "float minInvocationsExclusiveScanNonUniformAMD(float);"
             "vec2  minInvocationsExclusiveScanNonUniformAMD(vec2);"
             "vec3  minInvocationsExclusiveScanNonUniformAMD(vec3);"
@@ -2788,6 +2928,16 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
             "f16vec3   minInvocationsExclusiveScanNonUniformAMD(f16vec3);"
             "f16vec4   minInvocationsExclusiveScanNonUniformAMD(f16vec4);"
 
+            "int16_t minInvocationsExclusiveScanNonUniformAMD(int16_t);"
+            "i16vec2 minInvocationsExclusiveScanNonUniformAMD(i16vec2);"
+            "i16vec3 minInvocationsExclusiveScanNonUniformAMD(i16vec3);"
+            "i16vec4 minInvocationsExclusiveScanNonUniformAMD(i16vec4);"
+
+            "uint16_t minInvocationsExclusiveScanNonUniformAMD(uint16_t);"
+            "u16vec2  minInvocationsExclusiveScanNonUniformAMD(u16vec2);"
+            "u16vec3  minInvocationsExclusiveScanNonUniformAMD(u16vec3);"
+            "u16vec4  minInvocationsExclusiveScanNonUniformAMD(u16vec4);"
+
             "float maxInvocationsNonUniformAMD(float);"
             "vec2  maxInvocationsNonUniformAMD(vec2);"
             "vec3  maxInvocationsNonUniformAMD(vec3);"
@@ -2823,6 +2973,16 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
             "f16vec3   maxInvocationsNonUniformAMD(f16vec3);"
             "f16vec4   maxInvocationsNonUniformAMD(f16vec4);"
 
+            "int16_t maxInvocationsNonUniformAMD(int16_t);"
+            "i16vec2 maxInvocationsNonUniformAMD(i16vec2);"
+            "i16vec3 maxInvocationsNonUniformAMD(i16vec3);"
+            "i16vec4 maxInvocationsNonUniformAMD(i16vec4);"
+
+            "uint16_t maxInvocationsNonUniformAMD(uint16_t);"
+            "u16vec2  maxInvocationsNonUniformAMD(u16vec2);"
+            "u16vec3  maxInvocationsNonUniformAMD(u16vec3);"
+            "u16vec4  maxInvocationsNonUniformAMD(u16vec4);"
+
             "float maxInvocationsInclusiveScanNonUniformAMD(float);"
             "vec2  maxInvocationsInclusiveScanNonUniformAMD(vec2);"
             "vec3  maxInvocationsInclusiveScanNonUniformAMD(vec3);"
@@ -2858,6 +3018,16 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
             "f16vec3   maxInvocationsInclusiveScanNonUniformAMD(f16vec3);"
             "f16vec4   maxInvocationsInclusiveScanNonUniformAMD(f16vec4);"
 
+            "int16_t maxInvocationsInclusiveScanNonUniformAMD(int16_t);"
+            "i16vec2 maxInvocationsInclusiveScanNonUniformAMD(i16vec2);"
+            "i16vec3 maxInvocationsInclusiveScanNonUniformAMD(i16vec3);"
+            "i16vec4 maxInvocationsInclusiveScanNonUniformAMD(i16vec4);"
+
+            "uint16_t maxInvocationsInclusiveScanNonUniformAMD(uint16_t);"
+            "u16vec2  maxInvocationsInclusiveScanNonUniformAMD(u16vec2);"
+            "u16vec3  maxInvocationsInclusiveScanNonUniformAMD(u16vec3);"
+            "u16vec4  maxInvocationsInclusiveScanNonUniformAMD(u16vec4);"
+
             "float maxInvocationsExclusiveScanNonUniformAMD(float);"
             "vec2  maxInvocationsExclusiveScanNonUniformAMD(vec2);"
             "vec3  maxInvocationsExclusiveScanNonUniformAMD(vec3);"
@@ -2893,6 +3063,16 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
             "f16vec3   maxInvocationsExclusiveScanNonUniformAMD(f16vec3);"
             "f16vec4   maxInvocationsExclusiveScanNonUniformAMD(f16vec4);"
 
+            "int16_t maxInvocationsExclusiveScanNonUniformAMD(int16_t);"
+            "i16vec2 maxInvocationsExclusiveScanNonUniformAMD(i16vec2);"
+            "i16vec3 maxInvocationsExclusiveScanNonUniformAMD(i16vec3);"
+            "i16vec4 maxInvocationsExclusiveScanNonUniformAMD(i16vec4);"
+
+            "uint16_t maxInvocationsExclusiveScanNonUniformAMD(uint16_t);"
+            "u16vec2  maxInvocationsExclusiveScanNonUniformAMD(u16vec2);"
+            "u16vec3  maxInvocationsExclusiveScanNonUniformAMD(u16vec3);"
+            "u16vec4  maxInvocationsExclusiveScanNonUniformAMD(u16vec4);"
+
             "float addInvocationsNonUniformAMD(float);"
             "vec2  addInvocationsNonUniformAMD(vec2);"
             "vec3  addInvocationsNonUniformAMD(vec3);"
@@ -2928,6 +3108,16 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
             "f16vec3   addInvocationsNonUniformAMD(f16vec3);"
             "f16vec4   addInvocationsNonUniformAMD(f16vec4);"
 
+            "int16_t addInvocationsNonUniformAMD(int16_t);"
+            "i16vec2 addInvocationsNonUniformAMD(i16vec2);"
+            "i16vec3 addInvocationsNonUniformAMD(i16vec3);"
+            "i16vec4 addInvocationsNonUniformAMD(i16vec4);"
+
+            "uint16_t addInvocationsNonUniformAMD(uint16_t);"
+            "u16vec2  addInvocationsNonUniformAMD(u16vec2);"
+            "u16vec3  addInvocationsNonUniformAMD(u16vec3);"
+            "u16vec4  addInvocationsNonUniformAMD(u16vec4);"
+
             "float addInvocationsInclusiveScanNonUniformAMD(float);"
             "vec2  addInvocationsInclusiveScanNonUniformAMD(vec2);"
             "vec3  addInvocationsInclusiveScanNonUniformAMD(vec3);"
@@ -2963,6 +3153,16 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
             "f16vec3   addInvocationsInclusiveScanNonUniformAMD(f16vec3);"
             "f16vec4   addInvocationsInclusiveScanNonUniformAMD(f16vec4);"
 
+            "int16_t addInvocationsInclusiveScanNonUniformAMD(int16_t);"
+            "i16vec2 addInvocationsInclusiveScanNonUniformAMD(i16vec2);"
+            "i16vec3 addInvocationsInclusiveScanNonUniformAMD(i16vec3);"
+            "i16vec4 addInvocationsInclusiveScanNonUniformAMD(i16vec4);"
+
+            "uint16_t addInvocationsInclusiveScanNonUniformAMD(uint16_t);"
+            "u16vec2  addInvocationsInclusiveScanNonUniformAMD(u16vec2);"
+            "u16vec3  addInvocationsInclusiveScanNonUniformAMD(u16vec3);"
+            "u16vec4  addInvocationsInclusiveScanNonUniformAMD(u16vec4);"
+
             "float addInvocationsExclusiveScanNonUniformAMD(float);"
             "vec2  addInvocationsExclusiveScanNonUniformAMD(vec2);"
             "vec3  addInvocationsExclusiveScanNonUniformAMD(vec3);"
@@ -2998,6 +3198,16 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
             "f16vec3   addInvocationsExclusiveScanNonUniformAMD(f16vec3);"
             "f16vec4   addInvocationsExclusiveScanNonUniformAMD(f16vec4);"
 
+            "int16_t addInvocationsExclusiveScanNonUniformAMD(int16_t);"
+            "i16vec2 addInvocationsExclusiveScanNonUniformAMD(i16vec2);"
+            "i16vec3 addInvocationsExclusiveScanNonUniformAMD(i16vec3);"
+            "i16vec4 addInvocationsExclusiveScanNonUniformAMD(i16vec4);"
+
+            "uint16_t addInvocationsExclusiveScanNonUniformAMD(uint16_t);"
+            "u16vec2  addInvocationsExclusiveScanNonUniformAMD(u16vec2);"
+            "u16vec3  addInvocationsExclusiveScanNonUniformAMD(u16vec3);"
+            "u16vec4  addInvocationsExclusiveScanNonUniformAMD(u16vec4);"
+
             "float swizzleInvocationsAMD(float, uvec4);"
             "vec2  swizzleInvocationsAMD(vec2,  uvec4);"
             "vec3  swizzleInvocationsAMD(vec3,  uvec4);"