Home | History | Annotate | Download | only in baseResults
      1 hlsl.structbuffer.atomics.frag
      2 Shader version: 500
      3 gl_FragCoord origin is upper left
      4 0:? Sequence
      5 0:5  Function Definition: @main(u1; ( temp 4-component vector of float)
      6 0:5    Function Parameters: 
      7 0:5      'pos' ( in uint)
      8 0:?     Sequence
      9 0:8      AtomicAdd ( temp uint)
     10 0:8        indirect index (layout( row_major std430) buffer uint)
     11 0:8          @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
     12 0:8            'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
     13 0:8            Constant:
     14 0:8              0 (const uint)
     15 0:8          right-shift ( temp int)
     16 0:8            Constant:
     17 0:8              8 (const int)
     18 0:8            Constant:
     19 0:8              2 (const int)
     20 0:8        Constant:
     21 0:8          1 (const int)
     22 0:9      move second child to first child ( temp uint)
     23 0:9        'u' ( temp uint)
     24 0:9        AtomicAdd ( temp uint)
     25 0:9          indirect index (layout( row_major std430) buffer uint)
     26 0:9            @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
     27 0:9              'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
     28 0:9              Constant:
     29 0:9                0 (const uint)
     30 0:9            right-shift ( temp int)
     31 0:9              Constant:
     32 0:9                8 (const int)
     33 0:9              Constant:
     34 0:9                2 (const int)
     35 0:9          Constant:
     36 0:9            1 (const int)
     37 0:10      AtomicAnd ( temp uint)
     38 0:10        indirect index (layout( row_major std430) buffer uint)
     39 0:10          @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
     40 0:10            'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
     41 0:10            Constant:
     42 0:10              0 (const uint)
     43 0:10          right-shift ( temp int)
     44 0:10            Constant:
     45 0:10              8 (const int)
     46 0:10            Constant:
     47 0:10              2 (const int)
     48 0:10        Constant:
     49 0:10          1 (const int)
     50 0:11      move second child to first child ( temp uint)
     51 0:11        'u' ( temp uint)
     52 0:11        AtomicAnd ( temp uint)
     53 0:11          indirect index (layout( row_major std430) buffer uint)
     54 0:11            @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
     55 0:11              'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
     56 0:11              Constant:
     57 0:11                0 (const uint)
     58 0:11            right-shift ( temp int)
     59 0:11              Constant:
     60 0:11                8 (const int)
     61 0:11              Constant:
     62 0:11                2 (const int)
     63 0:11          Constant:
     64 0:11            1 (const int)
     65 0:12      move second child to first child ( temp uint)
     66 0:12        'u' ( temp uint)
     67 0:12        Convert int to uint ( temp uint)
     68 0:12          AtomicCompSwap ( temp int)
     69 0:12            indirect index (layout( row_major std430) buffer uint)
     70 0:12              @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
     71 0:12                'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
     72 0:12                Constant:
     73 0:12                  0 (const uint)
     74 0:12              right-shift ( temp int)
     75 0:12                Constant:
     76 0:12                  8 (const int)
     77 0:12                Constant:
     78 0:12                  2 (const int)
     79 0:12            Constant:
     80 0:12              1 (const int)
     81 0:12            Constant:
     82 0:12              2 (const int)
     83 0:14      move second child to first child ( temp uint)
     84 0:14        'u' ( temp uint)
     85 0:14        AtomicExchange ( temp uint)
     86 0:14          indirect index (layout( row_major std430) buffer uint)
     87 0:14            @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
     88 0:14              'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
     89 0:14              Constant:
     90 0:14                0 (const uint)
     91 0:14            right-shift ( temp int)
     92 0:14              Constant:
     93 0:14                8 (const int)
     94 0:14              Constant:
     95 0:14                2 (const int)
     96 0:14          Constant:
     97 0:14            1 (const int)
     98 0:15      AtomicMax ( temp uint)
     99 0:15        indirect index (layout( row_major std430) buffer uint)
    100 0:15          @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
    101 0:15            'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
    102 0:15            Constant:
    103 0:15              0 (const uint)
    104 0:15          right-shift ( temp int)
    105 0:15            Constant:
    106 0:15              8 (const int)
    107 0:15            Constant:
    108 0:15              2 (const int)
    109 0:15        Constant:
    110 0:15          1 (const int)
    111 0:16      move second child to first child ( temp uint)
    112 0:16        'u' ( temp uint)
    113 0:16        AtomicMax ( temp uint)
    114 0:16          indirect index (layout( row_major std430) buffer uint)
    115 0:16            @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
    116 0:16              'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
    117 0:16              Constant:
    118 0:16                0 (const uint)
    119 0:16            right-shift ( temp int)
    120 0:16              Constant:
    121 0:16                8 (const int)
    122 0:16              Constant:
    123 0:16                2 (const int)
    124 0:16          Constant:
    125 0:16            1 (const int)
    126 0:17      AtomicMin ( temp uint)
    127 0:17        indirect index (layout( row_major std430) buffer uint)
    128 0:17          @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
    129 0:17            'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
    130 0:17            Constant:
    131 0:17              0 (const uint)
    132 0:17          right-shift ( temp int)
    133 0:17            Constant:
    134 0:17              8 (const int)
    135 0:17            Constant:
    136 0:17              2 (const int)
    137 0:17        Constant:
    138 0:17          1 (const int)
    139 0:18      move second child to first child ( temp uint)
    140 0:18        'u' ( temp uint)
    141 0:18        AtomicMin ( temp uint)
    142 0:18          indirect index (layout( row_major std430) buffer uint)
    143 0:18            @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
    144 0:18              'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
    145 0:18              Constant:
    146 0:18                0 (const uint)
    147 0:18            right-shift ( temp int)
    148 0:18              Constant:
    149 0:18                8 (const int)
    150 0:18              Constant:
    151 0:18                2 (const int)
    152 0:18          Constant:
    153 0:18            1 (const int)
    154 0:19      AtomicOr ( temp uint)
    155 0:19        indirect index (layout( row_major std430) buffer uint)
    156 0:19          @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
    157 0:19            'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
    158 0:19            Constant:
    159 0:19              0 (const uint)
    160 0:19          right-shift ( temp int)
    161 0:19            Constant:
    162 0:19              8 (const int)
    163 0:19            Constant:
    164 0:19              2 (const int)
    165 0:19        Constant:
    166 0:19          1 (const int)
    167 0:20      move second child to first child ( temp uint)
    168 0:20        'u' ( temp uint)
    169 0:20        AtomicOr ( temp uint)
    170 0:20          indirect index (layout( row_major std430) buffer uint)
    171 0:20            @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
    172 0:20              'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
    173 0:20              Constant:
    174 0:20                0 (const uint)
    175 0:20            right-shift ( temp int)
    176 0:20              Constant:
    177 0:20                8 (const int)
    178 0:20              Constant:
    179 0:20                2 (const int)
    180 0:20          Constant:
    181 0:20            1 (const int)
    182 0:21      AtomicXor ( temp uint)
    183 0:21        indirect index (layout( row_major std430) buffer uint)
    184 0:21          @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
    185 0:21            'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
    186 0:21            Constant:
    187 0:21              0 (const uint)
    188 0:21          right-shift ( temp int)
    189 0:21            Constant:
    190 0:21              8 (const int)
    191 0:21            Constant:
    192 0:21              2 (const int)
    193 0:21        Constant:
    194 0:21          1 (const int)
    195 0:22      move second child to first child ( temp uint)
    196 0:22        'u' ( temp uint)
    197 0:22        AtomicXor ( temp uint)
    198 0:22          indirect index (layout( row_major std430) buffer uint)
    199 0:22            @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
    200 0:22              'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
    201 0:22              Constant:
    202 0:22                0 (const uint)
    203 0:22            right-shift ( temp int)
    204 0:22              Constant:
    205 0:22                8 (const int)
    206 0:22              Constant:
    207 0:22                2 (const int)
    208 0:22          Constant:
    209 0:22            1 (const int)
    210 0:24      Branch: Return with expression
    211 0:24        Construct vec4 ( temp 4-component vector of float)
    212 0:24          Convert uint to float ( temp float)
    213 0:24            indirect index (layout( row_major std430) buffer uint)
    214 0:24              @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
    215 0:24                'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
    216 0:24                Constant:
    217 0:24                  0 (const uint)
    218 0:24              right-shift ( temp int)
    219 0:24                'pos' ( in uint)
    220 0:24                Constant:
    221 0:24                  2 (const int)
    222 0:5  Function Definition: main( ( temp void)
    223 0:5    Function Parameters: 
    224 0:?     Sequence
    225 0:5      move second child to first child ( temp uint)
    226 0:?         'pos' ( temp uint)
    227 0:?         'pos' (layout( location=0) flat in uint)
    228 0:5      move second child to first child ( temp 4-component vector of float)
    229 0:?         '@entryPointOutput' (layout( location=0) out 4-component vector of float)
    230 0:5        Function Call: @main(u1; ( temp 4-component vector of float)
    231 0:?           'pos' ( temp uint)
    232 0:?   Linker Objects
    233 0:?     'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
    234 0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
    235 0:?     'pos' (layout( location=0) flat in uint)
    236 
    237 
    238 Linked fragment stage:
    239 
    240 
    241 Shader version: 500
    242 gl_FragCoord origin is upper left
    243 0:? Sequence
    244 0:5  Function Definition: @main(u1; ( temp 4-component vector of float)
    245 0:5    Function Parameters: 
    246 0:5      'pos' ( in uint)
    247 0:?     Sequence
    248 0:8      AtomicAdd ( temp uint)
    249 0:8        indirect index (layout( row_major std430) buffer uint)
    250 0:8          @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
    251 0:8            'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
    252 0:8            Constant:
    253 0:8              0 (const uint)
    254 0:8          right-shift ( temp int)
    255 0:8            Constant:
    256 0:8              8 (const int)
    257 0:8            Constant:
    258 0:8              2 (const int)
    259 0:8        Constant:
    260 0:8          1 (const int)
    261 0:9      move second child to first child ( temp uint)
    262 0:9        'u' ( temp uint)
    263 0:9        AtomicAdd ( temp uint)
    264 0:9          indirect index (layout( row_major std430) buffer uint)
    265 0:9            @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
    266 0:9              'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
    267 0:9              Constant:
    268 0:9                0 (const uint)
    269 0:9            right-shift ( temp int)
    270 0:9              Constant:
    271 0:9                8 (const int)
    272 0:9              Constant:
    273 0:9                2 (const int)
    274 0:9          Constant:
    275 0:9            1 (const int)
    276 0:10      AtomicAnd ( temp uint)
    277 0:10        indirect index (layout( row_major std430) buffer uint)
    278 0:10          @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
    279 0:10            'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
    280 0:10            Constant:
    281 0:10              0 (const uint)
    282 0:10          right-shift ( temp int)
    283 0:10            Constant:
    284 0:10              8 (const int)
    285 0:10            Constant:
    286 0:10              2 (const int)
    287 0:10        Constant:
    288 0:10          1 (const int)
    289 0:11      move second child to first child ( temp uint)
    290 0:11        'u' ( temp uint)
    291 0:11        AtomicAnd ( temp uint)
    292 0:11          indirect index (layout( row_major std430) buffer uint)
    293 0:11            @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
    294 0:11              'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
    295 0:11              Constant:
    296 0:11                0 (const uint)
    297 0:11            right-shift ( temp int)
    298 0:11              Constant:
    299 0:11                8 (const int)
    300 0:11              Constant:
    301 0:11                2 (const int)
    302 0:11          Constant:
    303 0:11            1 (const int)
    304 0:12      move second child to first child ( temp uint)
    305 0:12        'u' ( temp uint)
    306 0:12        Convert int to uint ( temp uint)
    307 0:12          AtomicCompSwap ( temp int)
    308 0:12            indirect index (layout( row_major std430) buffer uint)
    309 0:12              @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
    310 0:12                'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
    311 0:12                Constant:
    312 0:12                  0 (const uint)
    313 0:12              right-shift ( temp int)
    314 0:12                Constant:
    315 0:12                  8 (const int)
    316 0:12                Constant:
    317 0:12                  2 (const int)
    318 0:12            Constant:
    319 0:12              1 (const int)
    320 0:12            Constant:
    321 0:12              2 (const int)
    322 0:14      move second child to first child ( temp uint)
    323 0:14        'u' ( temp uint)
    324 0:14        AtomicExchange ( temp uint)
    325 0:14          indirect index (layout( row_major std430) buffer uint)
    326 0:14            @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
    327 0:14              'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
    328 0:14              Constant:
    329 0:14                0 (const uint)
    330 0:14            right-shift ( temp int)
    331 0:14              Constant:
    332 0:14                8 (const int)
    333 0:14              Constant:
    334 0:14                2 (const int)
    335 0:14          Constant:
    336 0:14            1 (const int)
    337 0:15      AtomicMax ( temp uint)
    338 0:15        indirect index (layout( row_major std430) buffer uint)
    339 0:15          @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
    340 0:15            'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
    341 0:15            Constant:
    342 0:15              0 (const uint)
    343 0:15          right-shift ( temp int)
    344 0:15            Constant:
    345 0:15              8 (const int)
    346 0:15            Constant:
    347 0:15              2 (const int)
    348 0:15        Constant:
    349 0:15          1 (const int)
    350 0:16      move second child to first child ( temp uint)
    351 0:16        'u' ( temp uint)
    352 0:16        AtomicMax ( temp uint)
    353 0:16          indirect index (layout( row_major std430) buffer uint)
    354 0:16            @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
    355 0:16              'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
    356 0:16              Constant:
    357 0:16                0 (const uint)
    358 0:16            right-shift ( temp int)
    359 0:16              Constant:
    360 0:16                8 (const int)
    361 0:16              Constant:
    362 0:16                2 (const int)
    363 0:16          Constant:
    364 0:16            1 (const int)
    365 0:17      AtomicMin ( temp uint)
    366 0:17        indirect index (layout( row_major std430) buffer uint)
    367 0:17          @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
    368 0:17            'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
    369 0:17            Constant:
    370 0:17              0 (const uint)
    371 0:17          right-shift ( temp int)
    372 0:17            Constant:
    373 0:17              8 (const int)
    374 0:17            Constant:
    375 0:17              2 (const int)
    376 0:17        Constant:
    377 0:17          1 (const int)
    378 0:18      move second child to first child ( temp uint)
    379 0:18        'u' ( temp uint)
    380 0:18        AtomicMin ( temp uint)
    381 0:18          indirect index (layout( row_major std430) buffer uint)
    382 0:18            @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
    383 0:18              'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
    384 0:18              Constant:
    385 0:18                0 (const uint)
    386 0:18            right-shift ( temp int)
    387 0:18              Constant:
    388 0:18                8 (const int)
    389 0:18              Constant:
    390 0:18                2 (const int)
    391 0:18          Constant:
    392 0:18            1 (const int)
    393 0:19      AtomicOr ( temp uint)
    394 0:19        indirect index (layout( row_major std430) buffer uint)
    395 0:19          @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
    396 0:19            'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
    397 0:19            Constant:
    398 0:19              0 (const uint)
    399 0:19          right-shift ( temp int)
    400 0:19            Constant:
    401 0:19              8 (const int)
    402 0:19            Constant:
    403 0:19              2 (const int)
    404 0:19        Constant:
    405 0:19          1 (const int)
    406 0:20      move second child to first child ( temp uint)
    407 0:20        'u' ( temp uint)
    408 0:20        AtomicOr ( temp uint)
    409 0:20          indirect index (layout( row_major std430) buffer uint)
    410 0:20            @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
    411 0:20              'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
    412 0:20              Constant:
    413 0:20                0 (const uint)
    414 0:20            right-shift ( temp int)
    415 0:20              Constant:
    416 0:20                8 (const int)
    417 0:20              Constant:
    418 0:20                2 (const int)
    419 0:20          Constant:
    420 0:20            1 (const int)
    421 0:21      AtomicXor ( temp uint)
    422 0:21        indirect index (layout( row_major std430) buffer uint)
    423 0:21          @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
    424 0:21            'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
    425 0:21            Constant:
    426 0:21              0 (const uint)
    427 0:21          right-shift ( temp int)
    428 0:21            Constant:
    429 0:21              8 (const int)
    430 0:21            Constant:
    431 0:21              2 (const int)
    432 0:21        Constant:
    433 0:21          1 (const int)
    434 0:22      move second child to first child ( temp uint)
    435 0:22        'u' ( temp uint)
    436 0:22        AtomicXor ( temp uint)
    437 0:22          indirect index (layout( row_major std430) buffer uint)
    438 0:22            @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
    439 0:22              'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
    440 0:22              Constant:
    441 0:22                0 (const uint)
    442 0:22            right-shift ( temp int)
    443 0:22              Constant:
    444 0:22                8 (const int)
    445 0:22              Constant:
    446 0:22                2 (const int)
    447 0:22          Constant:
    448 0:22            1 (const int)
    449 0:24      Branch: Return with expression
    450 0:24        Construct vec4 ( temp 4-component vector of float)
    451 0:24          Convert uint to float ( temp float)
    452 0:24            indirect index (layout( row_major std430) buffer uint)
    453 0:24              @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
    454 0:24                'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
    455 0:24                Constant:
    456 0:24                  0 (const uint)
    457 0:24              right-shift ( temp int)
    458 0:24                'pos' ( in uint)
    459 0:24                Constant:
    460 0:24                  2 (const int)
    461 0:5  Function Definition: main( ( temp void)
    462 0:5    Function Parameters: 
    463 0:?     Sequence
    464 0:5      move second child to first child ( temp uint)
    465 0:?         'pos' ( temp uint)
    466 0:?         'pos' (layout( location=0) flat in uint)
    467 0:5      move second child to first child ( temp 4-component vector of float)
    468 0:?         '@entryPointOutput' (layout( location=0) out 4-component vector of float)
    469 0:5        Function Call: @main(u1; ( temp 4-component vector of float)
    470 0:?           'pos' ( temp uint)
    471 0:?   Linker Objects
    472 0:?     'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
    473 0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
    474 0:?     'pos' (layout( location=0) flat in uint)
    475 
    476 Validation failed
    477 // Module Version 10000
    478 // Generated by (magic number): 80007
    479 // Id's are bound by 87
    480 
    481                               Capability Shader
    482                1:             ExtInstImport  "GLSL.std.450"
    483                               MemoryModel Logical GLSL450
    484                               EntryPoint Fragment 4  "main" 80 83
    485                               ExecutionMode 4 OriginUpperLeft
    486                               Source HLSL 500
    487                               Name 4  "main"
    488                               Name 12  "@main(u1;"
    489                               Name 11  "pos"
    490                               Name 15  "sbuf"
    491                               MemberName 15(sbuf) 0  "@data"
    492                               Name 17  "sbuf"
    493                               Name 29  "u"
    494                               Name 78  "pos"
    495                               Name 80  "pos"
    496                               Name 83  "@entryPointOutput"
    497                               Name 84  "param"
    498                               Decorate 14 ArrayStride 4
    499                               MemberDecorate 15(sbuf) 0 Offset 0
    500                               Decorate 15(sbuf) BufferBlock
    501                               Decorate 17(sbuf) DescriptorSet 0
    502                               Decorate 17(sbuf) Binding 0
    503                               Decorate 80(pos) Flat
    504                               Decorate 80(pos) Location 0
    505                               Decorate 83(@entryPointOutput) Location 0
    506                2:             TypeVoid
    507                3:             TypeFunction 2
    508                6:             TypeInt 32 0
    509                7:             TypePointer Function 6(int)
    510                8:             TypeFloat 32
    511                9:             TypeVector 8(float) 4
    512               10:             TypeFunction 9(fvec4) 7(ptr)
    513               14:             TypeRuntimeArray 6(int)
    514         15(sbuf):             TypeStruct 14
    515               16:             TypePointer Uniform 15(sbuf)
    516         17(sbuf):     16(ptr) Variable Uniform
    517               18:             TypeInt 32 1
    518               19:     18(int) Constant 0
    519               20:     18(int) Constant 8
    520               21:     18(int) Constant 2
    521               23:             TypePointer Uniform 6(int)
    522               25:     18(int) Constant 1
    523               26:      6(int) Constant 1
    524               27:      6(int) Constant 0
    525               79:             TypePointer Input 6(int)
    526          80(pos):     79(ptr) Variable Input
    527               82:             TypePointer Output 9(fvec4)
    528 83(@entryPointOutput):     82(ptr) Variable Output
    529          4(main):           2 Function None 3
    530                5:             Label
    531          78(pos):      7(ptr) Variable Function
    532        84(param):      7(ptr) Variable Function
    533               81:      6(int) Load 80(pos)
    534                               Store 78(pos) 81
    535               85:      6(int) Load 78(pos)
    536                               Store 84(param) 85
    537               86:    9(fvec4) FunctionCall 12(@main(u1;) 84(param)
    538                               Store 83(@entryPointOutput) 86
    539                               Return
    540                               FunctionEnd
    541    12(@main(u1;):    9(fvec4) Function None 10
    542          11(pos):      7(ptr) FunctionParameter
    543               13:             Label
    544            29(u):      7(ptr) Variable Function
    545               22:     18(int) ShiftRightArithmetic 20 21
    546               24:     23(ptr) AccessChain 17(sbuf) 19 22
    547               28:      6(int) AtomicIAdd 24 26 27 25
    548               30:     18(int) ShiftRightArithmetic 20 21
    549               31:     23(ptr) AccessChain 17(sbuf) 19 30
    550               32:      6(int) AtomicIAdd 31 26 27 25
    551                               Store 29(u) 32
    552               33:     18(int) ShiftRightArithmetic 20 21
    553               34:     23(ptr) AccessChain 17(sbuf) 19 33
    554               35:      6(int) AtomicAnd 34 26 27 25
    555               36:     18(int) ShiftRightArithmetic 20 21
    556               37:     23(ptr) AccessChain 17(sbuf) 19 36
    557               38:      6(int) AtomicAnd 37 26 27 25
    558                               Store 29(u) 38
    559               39:     18(int) ShiftRightArithmetic 20 21
    560               40:     23(ptr) AccessChain 17(sbuf) 19 39
    561               41:     18(int) AtomicCompareExchange 40 26 27 27 21 25
    562               42:      6(int) Bitcast 41
    563                               Store 29(u) 42
    564               43:     18(int) ShiftRightArithmetic 20 21
    565               44:     23(ptr) AccessChain 17(sbuf) 19 43
    566               45:      6(int) AtomicExchange 44 26 27 25
    567                               Store 29(u) 45
    568               46:     18(int) ShiftRightArithmetic 20 21
    569               47:     23(ptr) AccessChain 17(sbuf) 19 46
    570               48:      6(int) AtomicUMax 47 26 27 25
    571               49:     18(int) ShiftRightArithmetic 20 21
    572               50:     23(ptr) AccessChain 17(sbuf) 19 49
    573               51:      6(int) AtomicUMax 50 26 27 25
    574                               Store 29(u) 51
    575               52:     18(int) ShiftRightArithmetic 20 21
    576               53:     23(ptr) AccessChain 17(sbuf) 19 52
    577               54:      6(int) AtomicUMin 53 26 27 25
    578               55:     18(int) ShiftRightArithmetic 20 21
    579               56:     23(ptr) AccessChain 17(sbuf) 19 55
    580               57:      6(int) AtomicUMin 56 26 27 25
    581                               Store 29(u) 57
    582               58:     18(int) ShiftRightArithmetic 20 21
    583               59:     23(ptr) AccessChain 17(sbuf) 19 58
    584               60:      6(int) AtomicOr 59 26 27 25
    585               61:     18(int) ShiftRightArithmetic 20 21
    586               62:     23(ptr) AccessChain 17(sbuf) 19 61
    587               63:      6(int) AtomicOr 62 26 27 25
    588                               Store 29(u) 63
    589               64:     18(int) ShiftRightArithmetic 20 21
    590               65:     23(ptr) AccessChain 17(sbuf) 19 64
    591               66:      6(int) AtomicXor 65 26 27 25
    592               67:     18(int) ShiftRightArithmetic 20 21
    593               68:     23(ptr) AccessChain 17(sbuf) 19 67
    594               69:      6(int) AtomicXor 68 26 27 25
    595                               Store 29(u) 69
    596               70:      6(int) Load 11(pos)
    597               71:     18(int) ShiftRightLogical 70 21
    598               72:     23(ptr) AccessChain 17(sbuf) 19 71
    599               73:      6(int) Load 72
    600               74:    8(float) ConvertUToF 73
    601               75:    9(fvec4) CompositeConstruct 74 74 74 74
    602                               ReturnValue 75
    603                               FunctionEnd
    604