HLSL: Turn on tests for groupshared.
authorJohn Kessenich <cepheus@frii.com>
Sun, 16 Oct 2016 18:22:20 +0000 (12:22 -0600)
committerJohn Kessenich <cepheus@frii.com>
Sun, 16 Oct 2016 18:22:20 +0000 (12:22 -0600)
Test/baseResults/hlsl.basic.comp.out
Test/baseResults/hlsl.intrinsics.comp.out
Test/baseResults/hlsl.intrinsics.frag.out
Test/hlsl.basic.comp
Test/hlsl.intrinsics.comp
Test/hlsl.intrinsics.frag
glslang/Include/revision.h

index 1948ec3..c6dc3e5 100755 (executable)
@@ -2,15 +2,14 @@ hlsl.basic.comp
 Shader version: 450
 local_size = (1, 1, 1)
 0:? Sequence
-0:4  Function Definition: main( (temp void)
+0:4  Function Definition: main(i1; (temp void)
 0:4    Function Parameters: 
+0:4      'dti' (in int LocalInvocationID)
 0:?     Sequence
-0:5      dti: direct index for structure (layout(offset=0 ) uniform int LocalInvocationID)
-0:5        'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int LocalInvocationID dti})
-0:5        Constant:
-0:5          0 (const uint)
+0:5      'dti' (in int LocalInvocationID)
 0:?   Linker Objects
-0:?     'anon@0' (uniform block{layout(offset=0 ) uniform int LocalInvocationID dti})
+0:?     'a' (shared 100-element array of 4-component vector of float)
+0:?     'dti' (in int LocalInvocationID)
 
 
 Linked compute stage:
@@ -19,40 +18,40 @@ Linked compute stage:
 Shader version: 450
 local_size = (1, 1, 1)
 0:? Sequence
-0:4  Function Definition: main( (temp void)
+0:4  Function Definition: main(i1; (temp void)
 0:4    Function Parameters: 
+0:4      'dti' (in int LocalInvocationID)
 0:?     Sequence
-0:5      dti: direct index for structure (layout(offset=0 ) uniform int LocalInvocationID)
-0:5        'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int LocalInvocationID dti})
-0:5        Constant:
-0:5          0 (const uint)
+0:5      'dti' (in int LocalInvocationID)
 0:?   Linker Objects
-0:?     'anon@0' (uniform block{layout(offset=0 ) uniform int LocalInvocationID dti})
+0:?     'a' (shared 100-element array of 4-component vector of float)
+0:?     'dti' (in int LocalInvocationID)
 
 // Module Version 10000
 // Generated by (magic number): 80001
-// Id's are bound by 11
+// Id's are bound by 16
 
                               Capability Shader
                1:             ExtInstImport  "GLSL.std.450"
                               MemoryModel Logical GLSL450
-                              EntryPoint GLCompute 4  "main"
+                              EntryPoint GLCompute 4  "main" 8
                               ExecutionMode 4 LocalSize 1 1 1
                               Name 4  "main"
-                              Name 7  "$Global"
-                              MemberName 7($Global) 0  "dti"
-                              Name 9  ""
-                              MemberDecorate 7($Global) 0 Offset 0
-                              MemberDecorate 7($Global) 0 BuiltIn LocalInvocationId
-                              Decorate 7($Global) Block
-                              Decorate 9 DescriptorSet 0
+                              Name 8  "dti"
+                              Name 15  "a"
+                              Decorate 8(dti) BuiltIn LocalInvocationId
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeInt 32 1
-      7($Global):             TypeStruct 6(int)
-               8:             TypePointer Uniform 7($Global)
-               9:      8(ptr) Variable Uniform
-              10:      6(int) Constant 0
+               7:             TypePointer Input 6(int)
+          8(dti):      7(ptr) Variable Input
+               9:             TypeFloat 32
+              10:             TypeVector 9(float) 4
+              11:             TypeInt 32 0
+              12:     11(int) Constant 100
+              13:             TypeArray 10(fvec4) 12
+              14:             TypePointer Workgroup 13
+           15(a):     14(ptr) Variable Workgroup
          4(main):           2 Function None 3
                5:             Label
                               Return
index f733975..cd366fc 100644 (file)
@@ -13,64 +13,64 @@ local_size = (1, 1, 1)
 0:21      all (global bool)
 0:21        'inF0' (in float)
 0:24      AtomicAdd (global void)
-0:24        'gs_ua' (global uint)
-0:24        'gs_ub' (global uint)
+0:24        'gs_ua' (shared uint)
+0:24        'gs_ub' (shared uint)
 0:25      move second child to first child (temp uint)
 0:25        'out_u1' (temp uint)
 0:25        AtomicAdd (temp uint)
-0:25          'gs_ua' (global uint)
-0:25          'gs_ub' (global uint)
+0:25          'gs_ua' (shared uint)
+0:25          'gs_ub' (shared uint)
 0:26      AtomicAnd (global void)
-0:26        'gs_ua' (global uint)
-0:26        'gs_ub' (global uint)
+0:26        'gs_ua' (shared uint)
+0:26        'gs_ub' (shared uint)
 0:27      move second child to first child (temp uint)
 0:27        'out_u1' (temp uint)
 0:27        AtomicAnd (temp uint)
-0:27          'gs_ua' (global uint)
-0:27          'gs_ub' (global uint)
+0:27          'gs_ua' (shared uint)
+0:27          'gs_ub' (shared uint)
 0:28      move second child to first child (temp uint)
 0:28        'out_u1' (temp uint)
 0:28        AtomicCompSwap (temp uint)
-0:28          'gs_ua' (global uint)
-0:28          'gs_ub' (global uint)
-0:28          'gs_uc' (global uint)
+0:28          'gs_ua' (shared uint)
+0:28          'gs_ub' (shared uint)
+0:28          'gs_uc' (shared uint)
 0:29      move second child to first child (temp uint)
 0:29        'out_u1' (temp uint)
 0:29        AtomicExchange (temp uint)
-0:29          'gs_ua' (global uint)
-0:29          'gs_ub' (global uint)
+0:29          'gs_ua' (shared uint)
+0:29          'gs_ub' (shared uint)
 0:30      AtomicMax (global void)
-0:30        'gs_ua' (global uint)
-0:30        'gs_ub' (global uint)
+0:30        'gs_ua' (shared uint)
+0:30        'gs_ub' (shared uint)
 0:31      move second child to first child (temp uint)
 0:31        'out_u1' (temp uint)
 0:31        AtomicMax (temp uint)
-0:31          'gs_ua' (global uint)
-0:31          'gs_ub' (global uint)
+0:31          'gs_ua' (shared uint)
+0:31          'gs_ub' (shared uint)
 0:32      AtomicMin (global void)
-0:32        'gs_ua' (global uint)
-0:32        'gs_ub' (global uint)
+0:32        'gs_ua' (shared uint)
+0:32        'gs_ub' (shared uint)
 0:33      move second child to first child (temp uint)
 0:33        'out_u1' (temp uint)
 0:33        AtomicMin (temp uint)
-0:33          'gs_ua' (global uint)
-0:33          'gs_ub' (global uint)
+0:33          'gs_ua' (shared uint)
+0:33          'gs_ub' (shared uint)
 0:34      AtomicOr (global void)
-0:34        'gs_ua' (global uint)
-0:34        'gs_ub' (global uint)
+0:34        'gs_ua' (shared uint)
+0:34        'gs_ub' (shared uint)
 0:35      move second child to first child (temp uint)
 0:35        'out_u1' (temp uint)
 0:35        AtomicOr (temp uint)
-0:35          'gs_ua' (global uint)
-0:35          'gs_ub' (global uint)
+0:35          'gs_ua' (shared uint)
+0:35          'gs_ub' (shared uint)
 0:36      AtomicXor (global void)
-0:36        'gs_ua' (global uint)
-0:36        'gs_ub' (global uint)
+0:36        'gs_ua' (shared uint)
+0:36        'gs_ub' (shared uint)
 0:37      move second child to first child (temp uint)
 0:37        'out_u1' (temp uint)
 0:37        AtomicXor (temp uint)
-0:37          'gs_ua' (global uint)
-0:37          'gs_ub' (global uint)
+0:37          'gs_ua' (shared uint)
+0:37          'gs_ub' (shared uint)
 0:41      Branch: Return with expression
 0:41        Constant:
 0:41          0.000000
@@ -94,64 +94,64 @@ local_size = (1, 1, 1)
 0:55      all (global bool)
 0:55        'inF0' (in 2-component vector of float)
 0:58      AtomicAdd (global void)
-0:58        'gs_ua2' (global 2-component vector of uint)
-0:58        'gs_ub2' (global 2-component vector of uint)
+0:58        'gs_ua2' (shared 2-component vector of uint)
+0:58        'gs_ub2' (shared 2-component vector of uint)
 0:59      move second child to first child (temp 2-component vector of uint)
 0:59        'out_u2' (temp 2-component vector of uint)
 0:59        AtomicAdd (temp 2-component vector of uint)
-0:59          'gs_ua2' (global 2-component vector of uint)
-0:59          'gs_ub2' (global 2-component vector of uint)
+0:59          'gs_ua2' (shared 2-component vector of uint)
+0:59          'gs_ub2' (shared 2-component vector of uint)
 0:60      AtomicAnd (global void)
-0:60        'gs_ua2' (global 2-component vector of uint)
-0:60        'gs_ub2' (global 2-component vector of uint)
+0:60        'gs_ua2' (shared 2-component vector of uint)
+0:60        'gs_ub2' (shared 2-component vector of uint)
 0:61      move second child to first child (temp 2-component vector of uint)
 0:61        'out_u2' (temp 2-component vector of uint)
 0:61        AtomicAnd (temp 2-component vector of uint)
-0:61          'gs_ua2' (global 2-component vector of uint)
-0:61          'gs_ub2' (global 2-component vector of uint)
+0:61          'gs_ua2' (shared 2-component vector of uint)
+0:61          'gs_ub2' (shared 2-component vector of uint)
 0:62      move second child to first child (temp 2-component vector of uint)
 0:62        'out_u2' (temp 2-component vector of uint)
 0:62        AtomicCompSwap (temp 2-component vector of uint)
-0:62          'gs_ua2' (global 2-component vector of uint)
-0:62          'gs_ub2' (global 2-component vector of uint)
-0:62          'gs_uc2' (global 2-component vector of uint)
+0:62          'gs_ua2' (shared 2-component vector of uint)
+0:62          'gs_ub2' (shared 2-component vector of uint)
+0:62          'gs_uc2' (shared 2-component vector of uint)
 0:63      move second child to first child (temp 2-component vector of uint)
 0:63        'out_u2' (temp 2-component vector of uint)
 0:63        AtomicExchange (temp 2-component vector of uint)
-0:63          'gs_ua2' (global 2-component vector of uint)
-0:63          'gs_ub2' (global 2-component vector of uint)
+0:63          'gs_ua2' (shared 2-component vector of uint)
+0:63          'gs_ub2' (shared 2-component vector of uint)
 0:64      AtomicMax (global void)
-0:64        'gs_ua2' (global 2-component vector of uint)
-0:64        'gs_ub2' (global 2-component vector of uint)
+0:64        'gs_ua2' (shared 2-component vector of uint)
+0:64        'gs_ub2' (shared 2-component vector of uint)
 0:65      move second child to first child (temp 2-component vector of uint)
 0:65        'out_u2' (temp 2-component vector of uint)
 0:65        AtomicMax (temp 2-component vector of uint)
-0:65          'gs_ua2' (global 2-component vector of uint)
-0:65          'gs_ub2' (global 2-component vector of uint)
+0:65          'gs_ua2' (shared 2-component vector of uint)
+0:65          'gs_ub2' (shared 2-component vector of uint)
 0:66      AtomicMin (global void)
-0:66        'gs_ua2' (global 2-component vector of uint)
-0:66        'gs_ub2' (global 2-component vector of uint)
+0:66        'gs_ua2' (shared 2-component vector of uint)
+0:66        'gs_ub2' (shared 2-component vector of uint)
 0:67      move second child to first child (temp 2-component vector of uint)
 0:67        'out_u2' (temp 2-component vector of uint)
 0:67        AtomicMin (temp 2-component vector of uint)
-0:67          'gs_ua2' (global 2-component vector of uint)
-0:67          'gs_ub2' (global 2-component vector of uint)
+0:67          'gs_ua2' (shared 2-component vector of uint)
+0:67          'gs_ub2' (shared 2-component vector of uint)
 0:68      AtomicOr (global void)
-0:68        'gs_ua2' (global 2-component vector of uint)
-0:68        'gs_ub2' (global 2-component vector of uint)
+0:68        'gs_ua2' (shared 2-component vector of uint)
+0:68        'gs_ub2' (shared 2-component vector of uint)
 0:69      move second child to first child (temp 2-component vector of uint)
 0:69        'out_u2' (temp 2-component vector of uint)
 0:69        AtomicOr (temp 2-component vector of uint)
-0:69          'gs_ua2' (global 2-component vector of uint)
-0:69          'gs_ub2' (global 2-component vector of uint)
+0:69          'gs_ua2' (shared 2-component vector of uint)
+0:69          'gs_ub2' (shared 2-component vector of uint)
 0:70      AtomicXor (global void)
-0:70        'gs_ua2' (global 2-component vector of uint)
-0:70        'gs_ub2' (global 2-component vector of uint)
+0:70        'gs_ua2' (shared 2-component vector of uint)
+0:70        'gs_ub2' (shared 2-component vector of uint)
 0:71      move second child to first child (temp 2-component vector of uint)
 0:71        'out_u2' (temp 2-component vector of uint)
 0:71        AtomicXor (temp 2-component vector of uint)
-0:71          'gs_ua2' (global 2-component vector of uint)
-0:71          'gs_ub2' (global 2-component vector of uint)
+0:71          'gs_ua2' (shared 2-component vector of uint)
+0:71          'gs_ub2' (shared 2-component vector of uint)
 0:74      Branch: Return with expression
 0:?         Constant:
 0:?           1.000000
@@ -167,64 +167,64 @@ local_size = (1, 1, 1)
 0:82      all (global bool)
 0:82        'inF0' (in 3-component vector of float)
 0:85      AtomicAdd (global void)
-0:85        'gs_ua3' (global 3-component vector of uint)
-0:85        'gs_ub3' (global 3-component vector of uint)
+0:85        'gs_ua3' (shared 3-component vector of uint)
+0:85        'gs_ub3' (shared 3-component vector of uint)
 0:86      move second child to first child (temp 3-component vector of uint)
 0:86        'out_u3' (temp 3-component vector of uint)
 0:86        AtomicAdd (temp 3-component vector of uint)
-0:86          'gs_ua3' (global 3-component vector of uint)
-0:86          'gs_ub3' (global 3-component vector of uint)
+0:86          'gs_ua3' (shared 3-component vector of uint)
+0:86          'gs_ub3' (shared 3-component vector of uint)
 0:87      AtomicAnd (global void)
-0:87        'gs_ua3' (global 3-component vector of uint)
-0:87        'gs_ub3' (global 3-component vector of uint)
+0:87        'gs_ua3' (shared 3-component vector of uint)
+0:87        'gs_ub3' (shared 3-component vector of uint)
 0:88      move second child to first child (temp 3-component vector of uint)
 0:88        'out_u3' (temp 3-component vector of uint)
 0:88        AtomicAnd (temp 3-component vector of uint)
-0:88          'gs_ua3' (global 3-component vector of uint)
-0:88          'gs_ub3' (global 3-component vector of uint)
+0:88          'gs_ua3' (shared 3-component vector of uint)
+0:88          'gs_ub3' (shared 3-component vector of uint)
 0:89      move second child to first child (temp 3-component vector of uint)
 0:89        'out_u3' (temp 3-component vector of uint)
 0:89        AtomicCompSwap (temp 3-component vector of uint)
-0:89          'gs_ua3' (global 3-component vector of uint)
-0:89          'gs_ub3' (global 3-component vector of uint)
-0:89          'gs_uc3' (global 3-component vector of uint)
+0:89          'gs_ua3' (shared 3-component vector of uint)
+0:89          'gs_ub3' (shared 3-component vector of uint)
+0:89          'gs_uc3' (shared 3-component vector of uint)
 0:90      move second child to first child (temp 3-component vector of uint)
 0:90        'out_u3' (temp 3-component vector of uint)
 0:90        AtomicExchange (temp 3-component vector of uint)
-0:90          'gs_ua3' (global 3-component vector of uint)
-0:90          'gs_ub3' (global 3-component vector of uint)
+0:90          'gs_ua3' (shared 3-component vector of uint)
+0:90          'gs_ub3' (shared 3-component vector of uint)
 0:91      AtomicMax (global void)
-0:91        'gs_ua3' (global 3-component vector of uint)
-0:91        'gs_ub3' (global 3-component vector of uint)
+0:91        'gs_ua3' (shared 3-component vector of uint)
+0:91        'gs_ub3' (shared 3-component vector of uint)
 0:92      move second child to first child (temp 3-component vector of uint)
 0:92        'out_u3' (temp 3-component vector of uint)
 0:92        AtomicMax (temp 3-component vector of uint)
-0:92          'gs_ua3' (global 3-component vector of uint)
-0:92          'gs_ub3' (global 3-component vector of uint)
+0:92          'gs_ua3' (shared 3-component vector of uint)
+0:92          'gs_ub3' (shared 3-component vector of uint)
 0:93      AtomicMin (global void)
-0:93        'gs_ua3' (global 3-component vector of uint)
-0:93        'gs_ub3' (global 3-component vector of uint)
+0:93        'gs_ua3' (shared 3-component vector of uint)
+0:93        'gs_ub3' (shared 3-component vector of uint)
 0:94      move second child to first child (temp 3-component vector of uint)
 0:94        'out_u3' (temp 3-component vector of uint)
 0:94        AtomicMin (temp 3-component vector of uint)
-0:94          'gs_ua3' (global 3-component vector of uint)
-0:94          'gs_ub3' (global 3-component vector of uint)
+0:94          'gs_ua3' (shared 3-component vector of uint)
+0:94          'gs_ub3' (shared 3-component vector of uint)
 0:95      AtomicOr (global void)
-0:95        'gs_ua3' (global 3-component vector of uint)
-0:95        'gs_ub3' (global 3-component vector of uint)
+0:95        'gs_ua3' (shared 3-component vector of uint)
+0:95        'gs_ub3' (shared 3-component vector of uint)
 0:96      move second child to first child (temp 3-component vector of uint)
 0:96        'out_u3' (temp 3-component vector of uint)
 0:96        AtomicOr (temp 3-component vector of uint)
-0:96          'gs_ua3' (global 3-component vector of uint)
-0:96          'gs_ub3' (global 3-component vector of uint)
+0:96          'gs_ua3' (shared 3-component vector of uint)
+0:96          'gs_ub3' (shared 3-component vector of uint)
 0:97      AtomicXor (global void)
-0:97        'gs_ua3' (global 3-component vector of uint)
-0:97        'gs_ub3' (global 3-component vector of uint)
+0:97        'gs_ua3' (shared 3-component vector of uint)
+0:97        'gs_ub3' (shared 3-component vector of uint)
 0:98      move second child to first child (temp 3-component vector of uint)
 0:98        'out_u3' (temp 3-component vector of uint)
 0:98        AtomicXor (temp 3-component vector of uint)
-0:98          'gs_ua3' (global 3-component vector of uint)
-0:98          'gs_ub3' (global 3-component vector of uint)
+0:98          'gs_ua3' (shared 3-component vector of uint)
+0:98          'gs_ub3' (shared 3-component vector of uint)
 0:101      Branch: Return with expression
 0:?         Constant:
 0:?           1.000000
@@ -241,64 +241,64 @@ local_size = (1, 1, 1)
 0:109      all (global bool)
 0:109        'inF0' (layout(location=0 ) in 4-component vector of float)
 0:112      AtomicAdd (global void)
-0:112        'gs_ua4' (global 4-component vector of uint)
-0:112        'gs_ub4' (global 4-component vector of uint)
+0:112        'gs_ua4' (shared 4-component vector of uint)
+0:112        'gs_ub4' (shared 4-component vector of uint)
 0:113      move second child to first child (temp 4-component vector of uint)
 0:113        'out_u4' (temp 4-component vector of uint)
 0:113        AtomicAdd (temp 4-component vector of uint)
-0:113          'gs_ua4' (global 4-component vector of uint)
-0:113          'gs_ub4' (global 4-component vector of uint)
+0:113          'gs_ua4' (shared 4-component vector of uint)
+0:113          'gs_ub4' (shared 4-component vector of uint)
 0:114      AtomicAnd (global void)
-0:114        'gs_ua4' (global 4-component vector of uint)
-0:114        'gs_ub4' (global 4-component vector of uint)
+0:114        'gs_ua4' (shared 4-component vector of uint)
+0:114        'gs_ub4' (shared 4-component vector of uint)
 0:115      move second child to first child (temp 4-component vector of uint)
 0:115        'out_u4' (temp 4-component vector of uint)
 0:115        AtomicAnd (temp 4-component vector of uint)
-0:115          'gs_ua4' (global 4-component vector of uint)
-0:115          'gs_ub4' (global 4-component vector of uint)
+0:115          'gs_ua4' (shared 4-component vector of uint)
+0:115          'gs_ub4' (shared 4-component vector of uint)
 0:116      move second child to first child (temp 4-component vector of uint)
 0:116        'out_u4' (temp 4-component vector of uint)
 0:116        AtomicCompSwap (temp 4-component vector of uint)
-0:116          'gs_ua4' (global 4-component vector of uint)
-0:116          'gs_ub4' (global 4-component vector of uint)
-0:116          'gs_uc4' (global 4-component vector of uint)
+0:116          'gs_ua4' (shared 4-component vector of uint)
+0:116          'gs_ub4' (shared 4-component vector of uint)
+0:116          'gs_uc4' (shared 4-component vector of uint)
 0:117      move second child to first child (temp 4-component vector of uint)
 0:117        'out_u4' (temp 4-component vector of uint)
 0:117        AtomicExchange (temp 4-component vector of uint)
-0:117          'gs_ua4' (global 4-component vector of uint)
-0:117          'gs_ub4' (global 4-component vector of uint)
+0:117          'gs_ua4' (shared 4-component vector of uint)
+0:117          'gs_ub4' (shared 4-component vector of uint)
 0:118      AtomicMax (global void)
-0:118        'gs_ua4' (global 4-component vector of uint)
-0:118        'gs_ub4' (global 4-component vector of uint)
+0:118        'gs_ua4' (shared 4-component vector of uint)
+0:118        'gs_ub4' (shared 4-component vector of uint)
 0:119      move second child to first child (temp 4-component vector of uint)
 0:119        'out_u4' (temp 4-component vector of uint)
 0:119        AtomicMax (temp 4-component vector of uint)
-0:119          'gs_ua4' (global 4-component vector of uint)
-0:119          'gs_ub4' (global 4-component vector of uint)
+0:119          'gs_ua4' (shared 4-component vector of uint)
+0:119          'gs_ub4' (shared 4-component vector of uint)
 0:120      AtomicMin (global void)
-0:120        'gs_ua4' (global 4-component vector of uint)
-0:120        'gs_ub4' (global 4-component vector of uint)
+0:120        'gs_ua4' (shared 4-component vector of uint)
+0:120        'gs_ub4' (shared 4-component vector of uint)
 0:121      move second child to first child (temp 4-component vector of uint)
 0:121        'out_u4' (temp 4-component vector of uint)
 0:121        AtomicMin (temp 4-component vector of uint)
-0:121          'gs_ua4' (global 4-component vector of uint)
-0:121          'gs_ub4' (global 4-component vector of uint)
+0:121          'gs_ua4' (shared 4-component vector of uint)
+0:121          'gs_ub4' (shared 4-component vector of uint)
 0:122      AtomicOr (global void)
-0:122        'gs_ua4' (global 4-component vector of uint)
-0:122        'gs_ub4' (global 4-component vector of uint)
+0:122        'gs_ua4' (shared 4-component vector of uint)
+0:122        'gs_ub4' (shared 4-component vector of uint)
 0:123      move second child to first child (temp 4-component vector of uint)
 0:123        'out_u4' (temp 4-component vector of uint)
 0:123        AtomicOr (temp 4-component vector of uint)
-0:123          'gs_ua4' (global 4-component vector of uint)
-0:123          'gs_ub4' (global 4-component vector of uint)
+0:123          'gs_ua4' (shared 4-component vector of uint)
+0:123          'gs_ub4' (shared 4-component vector of uint)
 0:124      AtomicXor (global void)
-0:124        'gs_ua4' (global 4-component vector of uint)
-0:124        'gs_ub4' (global 4-component vector of uint)
+0:124        'gs_ua4' (shared 4-component vector of uint)
+0:124        'gs_ub4' (shared 4-component vector of uint)
 0:125      move second child to first child (temp 4-component vector of uint)
 0:125        'out_u4' (temp 4-component vector of uint)
 0:125        AtomicXor (temp 4-component vector of uint)
-0:125          'gs_ua4' (global 4-component vector of uint)
-0:125          'gs_ub4' (global 4-component vector of uint)
+0:125          'gs_ua4' (shared 4-component vector of uint)
+0:125          'gs_ub4' (shared 4-component vector of uint)
 0:128      Sequence
 0:128        move second child to first child (temp 4-component vector of float)
 0:?           '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
@@ -309,18 +309,18 @@ local_size = (1, 1, 1)
 0:?             4.000000
 0:128        Branch: Return
 0:?   Linker Objects
-0:?     'gs_ua' (global uint)
-0:?     'gs_ub' (global uint)
-0:?     'gs_uc' (global uint)
-0:?     'gs_ua2' (global 2-component vector of uint)
-0:?     'gs_ub2' (global 2-component vector of uint)
-0:?     'gs_uc2' (global 2-component vector of uint)
-0:?     'gs_ua3' (global 3-component vector of uint)
-0:?     'gs_ub3' (global 3-component vector of uint)
-0:?     'gs_uc3' (global 3-component vector of uint)
-0:?     'gs_ua4' (global 4-component vector of uint)
-0:?     'gs_ub4' (global 4-component vector of uint)
-0:?     'gs_uc4' (global 4-component vector of uint)
+0:?     'gs_ua' (shared uint)
+0:?     'gs_ub' (shared uint)
+0:?     'gs_uc' (shared uint)
+0:?     'gs_ua2' (shared 2-component vector of uint)
+0:?     'gs_ub2' (shared 2-component vector of uint)
+0:?     'gs_uc2' (shared 2-component vector of uint)
+0:?     'gs_ua3' (shared 3-component vector of uint)
+0:?     'gs_ub3' (shared 3-component vector of uint)
+0:?     'gs_uc3' (shared 3-component vector of uint)
+0:?     'gs_ua4' (shared 4-component vector of uint)
+0:?     'gs_ub4' (shared 4-component vector of uint)
+0:?     'gs_uc4' (shared 4-component vector of uint)
 0:?     '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
 0:?     'inF0' (layout(location=0 ) in 4-component vector of float)
 0:?     'inF1' (layout(location=1 ) in 4-component vector of float)
@@ -346,64 +346,64 @@ local_size = (1, 1, 1)
 0:21      all (global bool)
 0:21        'inF0' (in float)
 0:24      AtomicAdd (global void)
-0:24        'gs_ua' (global uint)
-0:24        'gs_ub' (global uint)
+0:24        'gs_ua' (shared uint)
+0:24        'gs_ub' (shared uint)
 0:25      move second child to first child (temp uint)
 0:25        'out_u1' (temp uint)
 0:25        AtomicAdd (temp uint)
-0:25          'gs_ua' (global uint)
-0:25          'gs_ub' (global uint)
+0:25          'gs_ua' (shared uint)
+0:25          'gs_ub' (shared uint)
 0:26      AtomicAnd (global void)
-0:26        'gs_ua' (global uint)
-0:26        'gs_ub' (global uint)
+0:26        'gs_ua' (shared uint)
+0:26        'gs_ub' (shared uint)
 0:27      move second child to first child (temp uint)
 0:27        'out_u1' (temp uint)
 0:27        AtomicAnd (temp uint)
-0:27          'gs_ua' (global uint)
-0:27          'gs_ub' (global uint)
+0:27          'gs_ua' (shared uint)
+0:27          'gs_ub' (shared uint)
 0:28      move second child to first child (temp uint)
 0:28        'out_u1' (temp uint)
 0:28        AtomicCompSwap (temp uint)
-0:28          'gs_ua' (global uint)
-0:28          'gs_ub' (global uint)
-0:28          'gs_uc' (global uint)
+0:28          'gs_ua' (shared uint)
+0:28          'gs_ub' (shared uint)
+0:28          'gs_uc' (shared uint)
 0:29      move second child to first child (temp uint)
 0:29        'out_u1' (temp uint)
 0:29        AtomicExchange (temp uint)
-0:29          'gs_ua' (global uint)
-0:29          'gs_ub' (global uint)
+0:29          'gs_ua' (shared uint)
+0:29          'gs_ub' (shared uint)
 0:30      AtomicMax (global void)
-0:30        'gs_ua' (global uint)
-0:30        'gs_ub' (global uint)
+0:30        'gs_ua' (shared uint)
+0:30        'gs_ub' (shared uint)
 0:31      move second child to first child (temp uint)
 0:31        'out_u1' (temp uint)
 0:31        AtomicMax (temp uint)
-0:31          'gs_ua' (global uint)
-0:31          'gs_ub' (global uint)
+0:31          'gs_ua' (shared uint)
+0:31          'gs_ub' (shared uint)
 0:32      AtomicMin (global void)
-0:32        'gs_ua' (global uint)
-0:32        'gs_ub' (global uint)
+0:32        'gs_ua' (shared uint)
+0:32        'gs_ub' (shared uint)
 0:33      move second child to first child (temp uint)
 0:33        'out_u1' (temp uint)
 0:33        AtomicMin (temp uint)
-0:33          'gs_ua' (global uint)
-0:33          'gs_ub' (global uint)
+0:33          'gs_ua' (shared uint)
+0:33          'gs_ub' (shared uint)
 0:34      AtomicOr (global void)
-0:34        'gs_ua' (global uint)
-0:34        'gs_ub' (global uint)
+0:34        'gs_ua' (shared uint)
+0:34        'gs_ub' (shared uint)
 0:35      move second child to first child (temp uint)
 0:35        'out_u1' (temp uint)
 0:35        AtomicOr (temp uint)
-0:35          'gs_ua' (global uint)
-0:35          'gs_ub' (global uint)
+0:35          'gs_ua' (shared uint)
+0:35          'gs_ub' (shared uint)
 0:36      AtomicXor (global void)
-0:36        'gs_ua' (global uint)
-0:36        'gs_ub' (global uint)
+0:36        'gs_ua' (shared uint)
+0:36        'gs_ub' (shared uint)
 0:37      move second child to first child (temp uint)
 0:37        'out_u1' (temp uint)
 0:37        AtomicXor (temp uint)
-0:37          'gs_ua' (global uint)
-0:37          'gs_ub' (global uint)
+0:37          'gs_ua' (shared uint)
+0:37          'gs_ub' (shared uint)
 0:41      Branch: Return with expression
 0:41        Constant:
 0:41          0.000000
@@ -427,64 +427,64 @@ local_size = (1, 1, 1)
 0:55      all (global bool)
 0:55        'inF0' (in 2-component vector of float)
 0:58      AtomicAdd (global void)
-0:58        'gs_ua2' (global 2-component vector of uint)
-0:58        'gs_ub2' (global 2-component vector of uint)
+0:58        'gs_ua2' (shared 2-component vector of uint)
+0:58        'gs_ub2' (shared 2-component vector of uint)
 0:59      move second child to first child (temp 2-component vector of uint)
 0:59        'out_u2' (temp 2-component vector of uint)
 0:59        AtomicAdd (temp 2-component vector of uint)
-0:59          'gs_ua2' (global 2-component vector of uint)
-0:59          'gs_ub2' (global 2-component vector of uint)
+0:59          'gs_ua2' (shared 2-component vector of uint)
+0:59          'gs_ub2' (shared 2-component vector of uint)
 0:60      AtomicAnd (global void)
-0:60        'gs_ua2' (global 2-component vector of uint)
-0:60        'gs_ub2' (global 2-component vector of uint)
+0:60        'gs_ua2' (shared 2-component vector of uint)
+0:60        'gs_ub2' (shared 2-component vector of uint)
 0:61      move second child to first child (temp 2-component vector of uint)
 0:61        'out_u2' (temp 2-component vector of uint)
 0:61        AtomicAnd (temp 2-component vector of uint)
-0:61          'gs_ua2' (global 2-component vector of uint)
-0:61          'gs_ub2' (global 2-component vector of uint)
+0:61          'gs_ua2' (shared 2-component vector of uint)
+0:61          'gs_ub2' (shared 2-component vector of uint)
 0:62      move second child to first child (temp 2-component vector of uint)
 0:62        'out_u2' (temp 2-component vector of uint)
 0:62        AtomicCompSwap (temp 2-component vector of uint)
-0:62          'gs_ua2' (global 2-component vector of uint)
-0:62          'gs_ub2' (global 2-component vector of uint)
-0:62          'gs_uc2' (global 2-component vector of uint)
+0:62          'gs_ua2' (shared 2-component vector of uint)
+0:62          'gs_ub2' (shared 2-component vector of uint)
+0:62          'gs_uc2' (shared 2-component vector of uint)
 0:63      move second child to first child (temp 2-component vector of uint)
 0:63        'out_u2' (temp 2-component vector of uint)
 0:63        AtomicExchange (temp 2-component vector of uint)
-0:63          'gs_ua2' (global 2-component vector of uint)
-0:63          'gs_ub2' (global 2-component vector of uint)
+0:63          'gs_ua2' (shared 2-component vector of uint)
+0:63          'gs_ub2' (shared 2-component vector of uint)
 0:64      AtomicMax (global void)
-0:64        'gs_ua2' (global 2-component vector of uint)
-0:64        'gs_ub2' (global 2-component vector of uint)
+0:64        'gs_ua2' (shared 2-component vector of uint)
+0:64        'gs_ub2' (shared 2-component vector of uint)
 0:65      move second child to first child (temp 2-component vector of uint)
 0:65        'out_u2' (temp 2-component vector of uint)
 0:65        AtomicMax (temp 2-component vector of uint)
-0:65          'gs_ua2' (global 2-component vector of uint)
-0:65          'gs_ub2' (global 2-component vector of uint)
+0:65          'gs_ua2' (shared 2-component vector of uint)
+0:65          'gs_ub2' (shared 2-component vector of uint)
 0:66      AtomicMin (global void)
-0:66        'gs_ua2' (global 2-component vector of uint)
-0:66        'gs_ub2' (global 2-component vector of uint)
+0:66        'gs_ua2' (shared 2-component vector of uint)
+0:66        'gs_ub2' (shared 2-component vector of uint)
 0:67      move second child to first child (temp 2-component vector of uint)
 0:67        'out_u2' (temp 2-component vector of uint)
 0:67        AtomicMin (temp 2-component vector of uint)
-0:67          'gs_ua2' (global 2-component vector of uint)
-0:67          'gs_ub2' (global 2-component vector of uint)
+0:67          'gs_ua2' (shared 2-component vector of uint)
+0:67          'gs_ub2' (shared 2-component vector of uint)
 0:68      AtomicOr (global void)
-0:68        'gs_ua2' (global 2-component vector of uint)
-0:68        'gs_ub2' (global 2-component vector of uint)
+0:68        'gs_ua2' (shared 2-component vector of uint)
+0:68        'gs_ub2' (shared 2-component vector of uint)
 0:69      move second child to first child (temp 2-component vector of uint)
 0:69        'out_u2' (temp 2-component vector of uint)
 0:69        AtomicOr (temp 2-component vector of uint)
-0:69          'gs_ua2' (global 2-component vector of uint)
-0:69          'gs_ub2' (global 2-component vector of uint)
+0:69          'gs_ua2' (shared 2-component vector of uint)
+0:69          'gs_ub2' (shared 2-component vector of uint)
 0:70      AtomicXor (global void)
-0:70        'gs_ua2' (global 2-component vector of uint)
-0:70        'gs_ub2' (global 2-component vector of uint)
+0:70        'gs_ua2' (shared 2-component vector of uint)
+0:70        'gs_ub2' (shared 2-component vector of uint)
 0:71      move second child to first child (temp 2-component vector of uint)
 0:71        'out_u2' (temp 2-component vector of uint)
 0:71        AtomicXor (temp 2-component vector of uint)
-0:71          'gs_ua2' (global 2-component vector of uint)
-0:71          'gs_ub2' (global 2-component vector of uint)
+0:71          'gs_ua2' (shared 2-component vector of uint)
+0:71          'gs_ub2' (shared 2-component vector of uint)
 0:74      Branch: Return with expression
 0:?         Constant:
 0:?           1.000000
@@ -500,64 +500,64 @@ local_size = (1, 1, 1)
 0:82      all (global bool)
 0:82        'inF0' (in 3-component vector of float)
 0:85      AtomicAdd (global void)
-0:85        'gs_ua3' (global 3-component vector of uint)
-0:85        'gs_ub3' (global 3-component vector of uint)
+0:85        'gs_ua3' (shared 3-component vector of uint)
+0:85        'gs_ub3' (shared 3-component vector of uint)
 0:86      move second child to first child (temp 3-component vector of uint)
 0:86        'out_u3' (temp 3-component vector of uint)
 0:86        AtomicAdd (temp 3-component vector of uint)
-0:86          'gs_ua3' (global 3-component vector of uint)
-0:86          'gs_ub3' (global 3-component vector of uint)
+0:86          'gs_ua3' (shared 3-component vector of uint)
+0:86          'gs_ub3' (shared 3-component vector of uint)
 0:87      AtomicAnd (global void)
-0:87        'gs_ua3' (global 3-component vector of uint)
-0:87        'gs_ub3' (global 3-component vector of uint)
+0:87        'gs_ua3' (shared 3-component vector of uint)
+0:87        'gs_ub3' (shared 3-component vector of uint)
 0:88      move second child to first child (temp 3-component vector of uint)
 0:88        'out_u3' (temp 3-component vector of uint)
 0:88        AtomicAnd (temp 3-component vector of uint)
-0:88          'gs_ua3' (global 3-component vector of uint)
-0:88          'gs_ub3' (global 3-component vector of uint)
+0:88          'gs_ua3' (shared 3-component vector of uint)
+0:88          'gs_ub3' (shared 3-component vector of uint)
 0:89      move second child to first child (temp 3-component vector of uint)
 0:89        'out_u3' (temp 3-component vector of uint)
 0:89        AtomicCompSwap (temp 3-component vector of uint)
-0:89          'gs_ua3' (global 3-component vector of uint)
-0:89          'gs_ub3' (global 3-component vector of uint)
-0:89          'gs_uc3' (global 3-component vector of uint)
+0:89          'gs_ua3' (shared 3-component vector of uint)
+0:89          'gs_ub3' (shared 3-component vector of uint)
+0:89          'gs_uc3' (shared 3-component vector of uint)
 0:90      move second child to first child (temp 3-component vector of uint)
 0:90        'out_u3' (temp 3-component vector of uint)
 0:90        AtomicExchange (temp 3-component vector of uint)
-0:90          'gs_ua3' (global 3-component vector of uint)
-0:90          'gs_ub3' (global 3-component vector of uint)
+0:90          'gs_ua3' (shared 3-component vector of uint)
+0:90          'gs_ub3' (shared 3-component vector of uint)
 0:91      AtomicMax (global void)
-0:91        'gs_ua3' (global 3-component vector of uint)
-0:91        'gs_ub3' (global 3-component vector of uint)
+0:91        'gs_ua3' (shared 3-component vector of uint)
+0:91        'gs_ub3' (shared 3-component vector of uint)
 0:92      move second child to first child (temp 3-component vector of uint)
 0:92        'out_u3' (temp 3-component vector of uint)
 0:92        AtomicMax (temp 3-component vector of uint)
-0:92          'gs_ua3' (global 3-component vector of uint)
-0:92          'gs_ub3' (global 3-component vector of uint)
+0:92          'gs_ua3' (shared 3-component vector of uint)
+0:92          'gs_ub3' (shared 3-component vector of uint)
 0:93      AtomicMin (global void)
-0:93        'gs_ua3' (global 3-component vector of uint)
-0:93        'gs_ub3' (global 3-component vector of uint)
+0:93        'gs_ua3' (shared 3-component vector of uint)
+0:93        'gs_ub3' (shared 3-component vector of uint)
 0:94      move second child to first child (temp 3-component vector of uint)
 0:94        'out_u3' (temp 3-component vector of uint)
 0:94        AtomicMin (temp 3-component vector of uint)
-0:94          'gs_ua3' (global 3-component vector of uint)
-0:94          'gs_ub3' (global 3-component vector of uint)
+0:94          'gs_ua3' (shared 3-component vector of uint)
+0:94          'gs_ub3' (shared 3-component vector of uint)
 0:95      AtomicOr (global void)
-0:95        'gs_ua3' (global 3-component vector of uint)
-0:95        'gs_ub3' (global 3-component vector of uint)
+0:95        'gs_ua3' (shared 3-component vector of uint)
+0:95        'gs_ub3' (shared 3-component vector of uint)
 0:96      move second child to first child (temp 3-component vector of uint)
 0:96        'out_u3' (temp 3-component vector of uint)
 0:96        AtomicOr (temp 3-component vector of uint)
-0:96          'gs_ua3' (global 3-component vector of uint)
-0:96          'gs_ub3' (global 3-component vector of uint)
+0:96          'gs_ua3' (shared 3-component vector of uint)
+0:96          'gs_ub3' (shared 3-component vector of uint)
 0:97      AtomicXor (global void)
-0:97        'gs_ua3' (global 3-component vector of uint)
-0:97        'gs_ub3' (global 3-component vector of uint)
+0:97        'gs_ua3' (shared 3-component vector of uint)
+0:97        'gs_ub3' (shared 3-component vector of uint)
 0:98      move second child to first child (temp 3-component vector of uint)
 0:98        'out_u3' (temp 3-component vector of uint)
 0:98        AtomicXor (temp 3-component vector of uint)
-0:98          'gs_ua3' (global 3-component vector of uint)
-0:98          'gs_ub3' (global 3-component vector of uint)
+0:98          'gs_ua3' (shared 3-component vector of uint)
+0:98          'gs_ub3' (shared 3-component vector of uint)
 0:101      Branch: Return with expression
 0:?         Constant:
 0:?           1.000000
@@ -574,64 +574,64 @@ local_size = (1, 1, 1)
 0:109      all (global bool)
 0:109        'inF0' (layout(location=0 ) in 4-component vector of float)
 0:112      AtomicAdd (global void)
-0:112        'gs_ua4' (global 4-component vector of uint)
-0:112        'gs_ub4' (global 4-component vector of uint)
+0:112        'gs_ua4' (shared 4-component vector of uint)
+0:112        'gs_ub4' (shared 4-component vector of uint)
 0:113      move second child to first child (temp 4-component vector of uint)
 0:113        'out_u4' (temp 4-component vector of uint)
 0:113        AtomicAdd (temp 4-component vector of uint)
-0:113          'gs_ua4' (global 4-component vector of uint)
-0:113          'gs_ub4' (global 4-component vector of uint)
+0:113          'gs_ua4' (shared 4-component vector of uint)
+0:113          'gs_ub4' (shared 4-component vector of uint)
 0:114      AtomicAnd (global void)
-0:114        'gs_ua4' (global 4-component vector of uint)
-0:114        'gs_ub4' (global 4-component vector of uint)
+0:114        'gs_ua4' (shared 4-component vector of uint)
+0:114        'gs_ub4' (shared 4-component vector of uint)
 0:115      move second child to first child (temp 4-component vector of uint)
 0:115        'out_u4' (temp 4-component vector of uint)
 0:115        AtomicAnd (temp 4-component vector of uint)
-0:115          'gs_ua4' (global 4-component vector of uint)
-0:115          'gs_ub4' (global 4-component vector of uint)
+0:115          'gs_ua4' (shared 4-component vector of uint)
+0:115          'gs_ub4' (shared 4-component vector of uint)
 0:116      move second child to first child (temp 4-component vector of uint)
 0:116        'out_u4' (temp 4-component vector of uint)
 0:116        AtomicCompSwap (temp 4-component vector of uint)
-0:116          'gs_ua4' (global 4-component vector of uint)
-0:116          'gs_ub4' (global 4-component vector of uint)
-0:116          'gs_uc4' (global 4-component vector of uint)
+0:116          'gs_ua4' (shared 4-component vector of uint)
+0:116          'gs_ub4' (shared 4-component vector of uint)
+0:116          'gs_uc4' (shared 4-component vector of uint)
 0:117      move second child to first child (temp 4-component vector of uint)
 0:117        'out_u4' (temp 4-component vector of uint)
 0:117        AtomicExchange (temp 4-component vector of uint)
-0:117          'gs_ua4' (global 4-component vector of uint)
-0:117          'gs_ub4' (global 4-component vector of uint)
+0:117          'gs_ua4' (shared 4-component vector of uint)
+0:117          'gs_ub4' (shared 4-component vector of uint)
 0:118      AtomicMax (global void)
-0:118        'gs_ua4' (global 4-component vector of uint)
-0:118        'gs_ub4' (global 4-component vector of uint)
+0:118        'gs_ua4' (shared 4-component vector of uint)
+0:118        'gs_ub4' (shared 4-component vector of uint)
 0:119      move second child to first child (temp 4-component vector of uint)
 0:119        'out_u4' (temp 4-component vector of uint)
 0:119        AtomicMax (temp 4-component vector of uint)
-0:119          'gs_ua4' (global 4-component vector of uint)
-0:119          'gs_ub4' (global 4-component vector of uint)
+0:119          'gs_ua4' (shared 4-component vector of uint)
+0:119          'gs_ub4' (shared 4-component vector of uint)
 0:120      AtomicMin (global void)
-0:120        'gs_ua4' (global 4-component vector of uint)
-0:120        'gs_ub4' (global 4-component vector of uint)
+0:120        'gs_ua4' (shared 4-component vector of uint)
+0:120        'gs_ub4' (shared 4-component vector of uint)
 0:121      move second child to first child (temp 4-component vector of uint)
 0:121        'out_u4' (temp 4-component vector of uint)
 0:121        AtomicMin (temp 4-component vector of uint)
-0:121          'gs_ua4' (global 4-component vector of uint)
-0:121          'gs_ub4' (global 4-component vector of uint)
+0:121          'gs_ua4' (shared 4-component vector of uint)
+0:121          'gs_ub4' (shared 4-component vector of uint)
 0:122      AtomicOr (global void)
-0:122        'gs_ua4' (global 4-component vector of uint)
-0:122        'gs_ub4' (global 4-component vector of uint)
+0:122        'gs_ua4' (shared 4-component vector of uint)
+0:122        'gs_ub4' (shared 4-component vector of uint)
 0:123      move second child to first child (temp 4-component vector of uint)
 0:123        'out_u4' (temp 4-component vector of uint)
 0:123        AtomicOr (temp 4-component vector of uint)
-0:123          'gs_ua4' (global 4-component vector of uint)
-0:123          'gs_ub4' (global 4-component vector of uint)
+0:123          'gs_ua4' (shared 4-component vector of uint)
+0:123          'gs_ub4' (shared 4-component vector of uint)
 0:124      AtomicXor (global void)
-0:124        'gs_ua4' (global 4-component vector of uint)
-0:124        'gs_ub4' (global 4-component vector of uint)
+0:124        'gs_ua4' (shared 4-component vector of uint)
+0:124        'gs_ub4' (shared 4-component vector of uint)
 0:125      move second child to first child (temp 4-component vector of uint)
 0:125        'out_u4' (temp 4-component vector of uint)
 0:125        AtomicXor (temp 4-component vector of uint)
-0:125          'gs_ua4' (global 4-component vector of uint)
-0:125          'gs_ub4' (global 4-component vector of uint)
+0:125          'gs_ua4' (shared 4-component vector of uint)
+0:125          'gs_ub4' (shared 4-component vector of uint)
 0:128      Sequence
 0:128        move second child to first child (temp 4-component vector of float)
 0:?           '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
@@ -642,18 +642,18 @@ local_size = (1, 1, 1)
 0:?             4.000000
 0:128        Branch: Return
 0:?   Linker Objects
-0:?     'gs_ua' (global uint)
-0:?     'gs_ub' (global uint)
-0:?     'gs_uc' (global uint)
-0:?     'gs_ua2' (global 2-component vector of uint)
-0:?     'gs_ub2' (global 2-component vector of uint)
-0:?     'gs_uc2' (global 2-component vector of uint)
-0:?     'gs_ua3' (global 3-component vector of uint)
-0:?     'gs_ub3' (global 3-component vector of uint)
-0:?     'gs_uc3' (global 3-component vector of uint)
-0:?     'gs_ua4' (global 4-component vector of uint)
-0:?     'gs_ub4' (global 4-component vector of uint)
-0:?     'gs_uc4' (global 4-component vector of uint)
+0:?     'gs_ua' (shared uint)
+0:?     'gs_ub' (shared uint)
+0:?     'gs_uc' (shared uint)
+0:?     'gs_ua2' (shared 2-component vector of uint)
+0:?     'gs_ub2' (shared 2-component vector of uint)
+0:?     'gs_uc2' (shared 2-component vector of uint)
+0:?     'gs_ua3' (shared 3-component vector of uint)
+0:?     'gs_ub3' (shared 3-component vector of uint)
+0:?     'gs_uc3' (shared 3-component vector of uint)
+0:?     'gs_ua4' (shared 4-component vector of uint)
+0:?     'gs_ub4' (shared 4-component vector of uint)
+0:?     'gs_uc4' (shared 4-component vector of uint)
 0:?     '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
 0:?     'inF0' (layout(location=0 ) in 4-component vector of float)
 0:?     'inF1' (layout(location=1 ) in 4-component vector of float)
@@ -740,35 +740,35 @@ local_size = (1, 1, 1)
               39:             TypePointer Function 38(ivec3)
               40:             TypeFunction 36(fvec3) 37(ptr) 37(ptr) 37(ptr) 39(ptr) 39(ptr)
               49:             TypeBool
-              51:             TypePointer Private 8(int)
-       52(gs_ua):     51(ptr) Variable Private
-       53(gs_ub):     51(ptr) Variable Private
+              51:             TypePointer Workgroup 8(int)
+       52(gs_ua):     51(ptr) Variable Workgroup
+       53(gs_ub):     51(ptr) Variable Workgroup
               55:      8(int) Constant 1
               56:      8(int) Constant 0
-       66(gs_uc):     51(ptr) Variable Private
+       66(gs_uc):     51(ptr) Variable Workgroup
               87:    6(float) Constant 0
-              94:             TypePointer Private 26(ivec2)
-      95(gs_ua2):     94(ptr) Variable Private
-      96(gs_ub2):     94(ptr) Variable Private
-     107(gs_uc2):     94(ptr) Variable Private
+              94:             TypePointer Workgroup 26(ivec2)
+      95(gs_ua2):     94(ptr) Variable Workgroup
+      96(gs_ub2):     94(ptr) Variable Workgroup
+     107(gs_uc2):     94(ptr) Variable Workgroup
              128:    6(float) Constant 1065353216
              129:    6(float) Constant 1073741824
              130:   24(fvec2) ConstantComposite 128 129
-             135:             TypePointer Private 38(ivec3)
-     136(gs_ua3):    135(ptr) Variable Private
-     137(gs_ub3):    135(ptr) Variable Private
-     148(gs_uc3):    135(ptr) Variable Private
+             135:             TypePointer Workgroup 38(ivec3)
+     136(gs_ua3):    135(ptr) Variable Workgroup
+     137(gs_ub3):    135(ptr) Variable Workgroup
+     148(gs_uc3):    135(ptr) Variable Workgroup
              169:    6(float) Constant 1077936128
              170:   36(fvec3) ConstantComposite 128 129 169
              173:             TypeVector 6(float) 4
              174:             TypePointer Input 173(fvec4)
        175(inF0):    174(ptr) Variable Input
              178:             TypeVector 8(int) 4
-             179:             TypePointer Private 178(ivec4)
-     180(gs_ua4):    179(ptr) Variable Private
-     181(gs_ub4):    179(ptr) Variable Private
+             179:             TypePointer Workgroup 178(ivec4)
+     180(gs_ua4):    179(ptr) Variable Workgroup
+     181(gs_ub4):    179(ptr) Variable Workgroup
              184:             TypePointer Function 178(ivec4)
-     193(gs_uc4):    179(ptr) Variable Private
+     193(gs_uc4):    179(ptr) Variable Workgroup
              214:             TypePointer Output 173(fvec4)
 215(@entryPointOutput):    214(ptr) Variable Output
              216:    6(float) Constant 1082130432
index 4009d8d..d5a0f99 100644 (file)
@@ -2782,18 +2782,18 @@ gl_FragCoord origin is upper left
 0:492                0 (const int)
 0:492        Branch: Return
 0:?   Linker Objects
-0:?     'gs_ua' (global uint)
-0:?     'gs_ub' (global uint)
-0:?     'gs_uc' (global uint)
-0:?     'gs_ua2' (global 2-component vector of uint)
-0:?     'gs_ub2' (global 2-component vector of uint)
-0:?     'gs_uc2' (global 2-component vector of uint)
-0:?     'gs_ua3' (global 3-component vector of uint)
-0:?     'gs_ub3' (global 3-component vector of uint)
-0:?     'gs_uc3' (global 3-component vector of uint)
-0:?     'gs_ua4' (global 4-component vector of uint)
-0:?     'gs_ub4' (global 4-component vector of uint)
-0:?     'gs_uc4' (global 4-component vector of uint)
+0:?     'gs_ua' (shared uint)
+0:?     'gs_ub' (shared uint)
+0:?     'gs_uc' (shared uint)
+0:?     'gs_ua2' (shared 2-component vector of uint)
+0:?     'gs_ub2' (shared 2-component vector of uint)
+0:?     'gs_uc2' (shared 2-component vector of uint)
+0:?     'gs_ua3' (shared 3-component vector of uint)
+0:?     'gs_ub3' (shared 3-component vector of uint)
+0:?     'gs_uc3' (shared 3-component vector of uint)
+0:?     'gs_ua4' (shared 4-component vector of uint)
+0:?     'gs_ub4' (shared 4-component vector of uint)
+0:?     'gs_uc4' (shared 4-component vector of uint)
 0:?     'color' (layout(location=0 ) out 4-component vector of float)
 
 
@@ -5583,18 +5583,18 @@ gl_FragCoord origin is upper left
 0:492                0 (const int)
 0:492        Branch: Return
 0:?   Linker Objects
-0:?     'gs_ua' (global uint)
-0:?     'gs_ub' (global uint)
-0:?     'gs_uc' (global uint)
-0:?     'gs_ua2' (global 2-component vector of uint)
-0:?     'gs_ub2' (global 2-component vector of uint)
-0:?     'gs_uc2' (global 2-component vector of uint)
-0:?     'gs_ua3' (global 3-component vector of uint)
-0:?     'gs_ub3' (global 3-component vector of uint)
-0:?     'gs_uc3' (global 3-component vector of uint)
-0:?     'gs_ua4' (global 4-component vector of uint)
-0:?     'gs_ub4' (global 4-component vector of uint)
-0:?     'gs_uc4' (global 4-component vector of uint)
+0:?     'gs_ua' (shared uint)
+0:?     'gs_ub' (shared uint)
+0:?     'gs_uc' (shared uint)
+0:?     'gs_ua2' (shared 2-component vector of uint)
+0:?     'gs_ub2' (shared 2-component vector of uint)
+0:?     'gs_uc2' (shared 2-component vector of uint)
+0:?     'gs_ua3' (shared 3-component vector of uint)
+0:?     'gs_ub3' (shared 3-component vector of uint)
+0:?     'gs_uc3' (shared 3-component vector of uint)
+0:?     'gs_ua4' (shared 4-component vector of uint)
+0:?     'gs_ub4' (shared 4-component vector of uint)
+0:?     'gs_uc4' (shared 4-component vector of uint)
 0:?     'color' (layout(location=0 ) out 4-component vector of float)
 
 // Module Version 10000
@@ -6250,22 +6250,22 @@ gl_FragCoord origin is upper left
             1802:   48(fvec4) ConstantComposite 284 284 284 284
             1804:             TypePointer Output 48(fvec4)
      1805(color):   1804(ptr) Variable Output
-            1809:             TypePointer Private 8(int)
-     1810(gs_ua):   1809(ptr) Variable Private
-     1811(gs_ub):   1809(ptr) Variable Private
-     1812(gs_uc):   1809(ptr) Variable Private
-            1813:             TypePointer Private 26(ivec2)
-    1814(gs_ua2):   1813(ptr) Variable Private
-    1815(gs_ub2):   1813(ptr) Variable Private
-    1816(gs_uc2):   1813(ptr) Variable Private
-            1817:             TypePointer Private 38(ivec3)
-    1818(gs_ua3):   1817(ptr) Variable Private
-    1819(gs_ub3):   1817(ptr) Variable Private
-    1820(gs_uc3):   1817(ptr) Variable Private
-            1821:             TypePointer Private 50(ivec4)
-    1822(gs_ua4):   1821(ptr) Variable Private
-    1823(gs_ub4):   1821(ptr) Variable Private
-    1824(gs_uc4):   1821(ptr) Variable Private
+            1809:             TypePointer Workgroup 8(int)
+     1810(gs_ua):   1809(ptr) Variable Workgroup
+     1811(gs_ub):   1809(ptr) Variable Workgroup
+     1812(gs_uc):   1809(ptr) Variable Workgroup
+            1813:             TypePointer Workgroup 26(ivec2)
+    1814(gs_ua2):   1813(ptr) Variable Workgroup
+    1815(gs_ub2):   1813(ptr) Variable Workgroup
+    1816(gs_uc2):   1813(ptr) Variable Workgroup
+            1817:             TypePointer Workgroup 38(ivec3)
+    1818(gs_ua3):   1817(ptr) Variable Workgroup
+    1819(gs_ub3):   1817(ptr) Variable Workgroup
+    1820(gs_uc3):   1817(ptr) Variable Workgroup
+            1821:             TypePointer Workgroup 50(ivec4)
+    1822(gs_ua4):   1821(ptr) Variable Workgroup
+    1823(gs_ub4):   1821(ptr) Variable Workgroup
+    1824(gs_uc4):   1821(ptr) Variable Workgroup
          4(main):           2 Function None 3
                5:             Label
  1800(ps_output):   1799(ptr) Variable Function
index 5e43510..8a65a59 100644 (file)
@@ -1,6 +1,6 @@
-int dti : SV_DispatchThreadID;\r
+groupshared float4 a[100];\r
 \r
-void main()\r
+void main(int dti : SV_DispatchThreadID)\r
 {\r
     dti;\r
 }\r
index 12b7caa..bce2d27 100644 (file)
@@ -1,17 +1,17 @@
 
-#define gs static    // TODO: define as groupshared when available in the grammar
-gs uint gs_ua;
-gs uint gs_ub;
-gs uint gs_uc;
-gs uint2 gs_ua2;
-gs uint2 gs_ub2;
-gs uint2 gs_uc2;
-gs uint3 gs_ua3;
-gs uint3 gs_ub3;
-gs uint3 gs_uc3;
-gs uint4 gs_ua4;
-gs uint4 gs_ub4;
-gs uint4 gs_uc4;
+
+groupshared uint gs_ua;
+groupshared uint gs_ub;
+groupshared uint gs_uc;
+groupshared uint2 gs_ua2;
+groupshared uint2 gs_ub2;
+groupshared uint2 gs_uc2;
+groupshared uint3 gs_ua3;
+groupshared uint3 gs_ub3;
+groupshared uint3 gs_uc3;
+groupshared uint4 gs_ua4;
+groupshared uint4 gs_ub4;
+groupshared uint4 gs_uc4;
 
 float ComputeShaderFunctionS(float inF0, float inF1, float inF2, uint inU0, uint inU1)
 {
index 90387cc..03e7ed3 100644 (file)
@@ -1,17 +1,17 @@
 
-#define gs static     // TODO: define as groupshared when available in the grammar
-gs uint gs_ua;
-gs uint gs_ub;
-gs uint gs_uc;
-gs uint2 gs_ua2;
-gs uint2 gs_ub2;
-gs uint2 gs_uc2;
-gs uint3 gs_ua3;
-gs uint3 gs_ub3;
-gs uint3 gs_uc3;
-gs uint4 gs_ua4;
-gs uint4 gs_ub4;
-gs uint4 gs_uc4;
+
+groupshared uint gs_ua;
+groupshared uint gs_ub;
+groupshared uint gs_uc;
+groupshared uint2 gs_ua2;
+groupshared uint2 gs_ub2;
+groupshared uint2 gs_uc2;
+groupshared uint3 gs_ua3;
+groupshared uint3 gs_ub3;
+groupshared uint3 gs_uc3;
+groupshared uint4 gs_ua4;
+groupshared uint4 gs_ub4;
+groupshared uint4 gs_uc4;
 
 float PixelShaderFunctionS(float inF0, float inF1, float inF2, uint inU0, uint inU1)
 {
index 882a2d0..c8b1b10 100644 (file)
@@ -2,5 +2,5 @@
 // For the version, it uses the latest git tag followed by the number of commits.
 // For the date, it uses the current date (when then script is run).
 
-#define GLSLANG_REVISION "Overload400-PrecQual.1602"
+#define GLSLANG_REVISION "Overload400-PrecQual.1603"
 #define GLSLANG_DATE "16-Oct-2016"