Don't remove SPIR-V blocks before codegen.
[platform/upstream/glslang.git] / Test / baseResults / spv.atomic.comp.out
index ae3ee49..bdf16fe 100755 (executable)
-spv.atomic.comp\r
-Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.\r
-\r
-\r
-Linked compute stage:\r
-\r
-\r
-TBD functionality: Is atomic_uint an opaque handle in the uniform storage class, or an addresses in the atomic storage class?\r
-// Module Version 10000\r
-// Generated by (magic number): 80001\r
-// Id's are bound by 74\r
-\r
-                              Capability Shader\r
-               1:             ExtInstImport  "GLSL.std.450"\r
-                              MemoryModel Logical GLSL450\r
-                              EntryPoint GLCompute 4  "main"\r
-                              ExecutionMode 4 LocalSize 1 1 1\r
-                              Source ESSL 310\r
-                              Name 4  "main"\r
-                              Name 10  "func(au1;"\r
-                              Name 9  "c"\r
-                              Name 12  "atoms("\r
-                              Name 20  "counter"\r
-                              Name 21  "param"\r
-                              Name 24  "val"\r
-                              Name 28  "countArr"\r
-                              Name 35  "origi"\r
-                              Name 37  "atomi"\r
-                              Name 40  "origu"\r
-                              Name 42  "atomu"\r
-                              Name 44  "value"\r
-                              Name 61  "dataSSB"\r
-                              MemberName 61(dataSSB) 0  "f"\r
-                              MemberName 61(dataSSB) 1  "n_frames_rendered"\r
-                              Name 63  "result"\r
-                              Name 71  "arrX"\r
-                              Name 72  "arrY"\r
-                              Name 73  "arrZ"\r
-                              Decorate 20(counter) Binding 0\r
-                              Decorate 28(countArr) Binding 0\r
-                              MemberDecorate 61(dataSSB) 0 Offset 0\r
-                              MemberDecorate 61(dataSSB) 1 Offset 16\r
-                              Decorate 61(dataSSB) BufferBlock\r
-                              Decorate 63(result) Binding 0\r
-               2:             TypeVoid\r
-               3:             TypeFunction 2\r
-               6:             TypeInt 32 0\r
-               7:             TypePointer Function 6(int)\r
-               8:             TypeFunction 6(int) 7(ptr)\r
-              14:      6(int) Constant 1\r
-              15:      6(int) Constant 0\r
-              18:      6(int) Constant 1024\r
-              19:             TypePointer AtomicCounter 6(int)\r
-     20(counter):     19(ptr) Variable AtomicCounter\r
-              25:      6(int) Constant 4\r
-              26:             TypeArray 6(int) 25\r
-              27:             TypePointer AtomicCounter 26\r
-    28(countArr):     27(ptr) Variable AtomicCounter\r
-              29:             TypeInt 32 1\r
-              30:     29(int) Constant 2\r
-              34:             TypePointer Function 29(int)\r
-              36:             TypePointer Workgroup 29(int)\r
-       37(atomi):     36(ptr) Variable Workgroup\r
-              38:     29(int) Constant 3\r
-              41:             TypePointer Workgroup 6(int)\r
-       42(atomu):     41(ptr) Variable Workgroup\r
-              43:             TypePointer UniformConstant 6(int)\r
-       44(value):     43(ptr) Variable UniformConstant\r
-              47:      6(int) Constant 7\r
-              52:     29(int) Constant 7\r
-              56:      6(int) Constant 10\r
-              59:             TypeFloat 32\r
-              60:             TypeVector 29(int) 4\r
-     61(dataSSB):             TypeStruct 59(float) 60(ivec4)\r
-              62:             TypePointer Uniform 61(dataSSB)\r
-      63(result):     62(ptr) Variable Uniform\r
-              64:     29(int) Constant 1\r
-              65:      6(int) Constant 2\r
-              66:             TypePointer Uniform 29(int)\r
-              69:             TypeArray 29(int) 14\r
-              70:             TypePointer Private 69\r
-        71(arrX):     70(ptr) Variable Private\r
-        72(arrY):     70(ptr) Variable Private\r
-        73(arrZ):     70(ptr) Variable Private\r
-         4(main):           2 Function None 3\r
-               5:             Label\r
-       21(param):      7(ptr) Variable Function\r
-         24(val):      7(ptr) Variable Function\r
-                              MemoryBarrier 14 18\r
-              22:      6(int) Load 20(counter)\r
-                              Store 21(param) 22\r
-              23:      6(int) FunctionCall 10(func(au1;) 21(param)\r
-              31:     19(ptr) AccessChain 28(countArr) 30\r
-              32:      6(int) AtomicLoad 31 14 15\r
-                              Store 24(val) 32\r
-              33:      6(int) AtomicIDecrement 20(counter) 14 15\r
-                              Return\r
-                              FunctionEnd\r
-   10(func(au1;):      6(int) Function None 8\r
-            9(c):      7(ptr) FunctionParameter\r
-              11:             Label\r
-              16:      6(int) AtomicIIncrement 9(c) 14 15\r
-                              ReturnValue 16\r
-                              FunctionEnd\r
-      12(atoms():           2 Function None 3\r
-              13:             Label\r
-       35(origi):     34(ptr) Variable Function\r
-       40(origu):      7(ptr) Variable Function\r
-              39:     29(int) AtomicIAdd 37(atomi) 14 15 38\r
-                              Store 35(origi) 39\r
-              45:      6(int) Load 44(value)\r
-              46:      6(int) AtomicAnd 42(atomu) 14 15 45\r
-                              Store 40(origu) 46\r
-              48:      6(int) AtomicOr 42(atomu) 14 15 47\r
-                              Store 40(origu) 48\r
-              49:      6(int) AtomicXor 42(atomu) 14 15 47\r
-                              Store 40(origu) 49\r
-              50:      6(int) Load 44(value)\r
-              51:      6(int) AtomicUMin 42(atomu) 14 15 50\r
-                              Store 40(origu) 51\r
-              53:     29(int) AtomicSMax 37(atomi) 14 15 52\r
-                              Store 35(origi) 53\r
-              54:     29(int) Load 35(origi)\r
-              55:     29(int) AtomicExchange 37(atomi) 14 15 54\r
-                              Store 35(origi) 55\r
-              57:      6(int) Load 44(value)\r
-              58:      6(int) AtomicCompareExchange 42(atomu) 14 15 15 57 56\r
-                              Store 40(origu) 58\r
-              67:     66(ptr) AccessChain 63(result) 64 65\r
-              68:     29(int) AtomicIAdd 67 14 15 64\r
-                              Return\r
-                              FunctionEnd\r
+spv.atomic.comp
+Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
+
+
+Linked compute stage:
+
+
+TBD functionality: Is atomic_uint an opaque handle in the uniform storage class, or an addresses in the atomic storage class?
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 75
+
+                              Capability Shader
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint GLCompute 4  "main"
+                              ExecutionMode 4 LocalSize 1 1 1
+                              Source ESSL 310
+                              Name 4  "main"
+                              Name 10  "func(au1;"
+                              Name 9  "c"
+                              Name 12  "atoms("
+                              Name 21  "counter"
+                              Name 22  "param"
+                              Name 25  "val"
+                              Name 29  "countArr"
+                              Name 36  "origi"
+                              Name 38  "atomi"
+                              Name 41  "origu"
+                              Name 43  "atomu"
+                              Name 45  "value"
+                              Name 62  "dataSSB"
+                              MemberName 62(dataSSB) 0  "f"
+                              MemberName 62(dataSSB) 1  "n_frames_rendered"
+                              Name 64  "result"
+                              Name 72  "arrX"
+                              Name 73  "arrY"
+                              Name 74  "arrZ"
+                              Decorate 21(counter) Binding 0
+                              Decorate 29(countArr) Binding 0
+                              MemberDecorate 62(dataSSB) 0 Offset 0
+                              MemberDecorate 62(dataSSB) 1 Offset 16
+                              Decorate 62(dataSSB) BufferBlock
+                              Decorate 64(result) Binding 0
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeInt 32 0
+               7:             TypePointer Function 6(int)
+               8:             TypeFunction 6(int) 7(ptr)
+              14:      6(int) Constant 1
+              15:      6(int) Constant 0
+              19:      6(int) Constant 1024
+              20:             TypePointer AtomicCounter 6(int)
+     21(counter):     20(ptr) Variable AtomicCounter
+              26:      6(int) Constant 4
+              27:             TypeArray 6(int) 26
+              28:             TypePointer AtomicCounter 27
+    29(countArr):     28(ptr) Variable AtomicCounter
+              30:             TypeInt 32 1
+              31:     30(int) Constant 2
+              35:             TypePointer Function 30(int)
+              37:             TypePointer Workgroup 30(int)
+       38(atomi):     37(ptr) Variable Workgroup
+              39:     30(int) Constant 3
+              42:             TypePointer Workgroup 6(int)
+       43(atomu):     42(ptr) Variable Workgroup
+              44:             TypePointer UniformConstant 6(int)
+       45(value):     44(ptr) Variable UniformConstant
+              48:      6(int) Constant 7
+              53:     30(int) Constant 7
+              57:      6(int) Constant 10
+              60:             TypeFloat 32
+              61:             TypeVector 30(int) 4
+     62(dataSSB):             TypeStruct 60(float) 61(ivec4)
+              63:             TypePointer Uniform 62(dataSSB)
+      64(result):     63(ptr) Variable Uniform
+              65:     30(int) Constant 1
+              66:      6(int) Constant 2
+              67:             TypePointer Uniform 30(int)
+              70:             TypeArray 30(int) 14
+              71:             TypePointer Private 70
+        72(arrX):     71(ptr) Variable Private
+        73(arrY):     71(ptr) Variable Private
+        74(arrZ):     71(ptr) Variable Private
+         4(main):           2 Function None 3
+               5:             Label
+       22(param):      7(ptr) Variable Function
+         25(val):      7(ptr) Variable Function
+                              MemoryBarrier 14 19
+              23:      6(int) Load 21(counter)
+                              Store 22(param) 23
+              24:      6(int) FunctionCall 10(func(au1;) 22(param)
+              32:     20(ptr) AccessChain 29(countArr) 31
+              33:      6(int) AtomicLoad 32 14 15
+                              Store 25(val) 33
+              34:      6(int) AtomicIDecrement 21(counter) 14 15
+                              Return
+                              FunctionEnd
+   10(func(au1;):      6(int) Function None 8
+            9(c):      7(ptr) FunctionParameter
+              11:             Label
+              16:      6(int) AtomicIIncrement 9(c) 14 15
+                              ReturnValue 16
+                              FunctionEnd
+      12(atoms():           2 Function None 3
+              13:             Label
+       36(origi):     35(ptr) Variable Function
+       41(origu):      7(ptr) Variable Function
+              40:     30(int) AtomicIAdd 38(atomi) 14 15 39
+                              Store 36(origi) 40
+              46:      6(int) Load 45(value)
+              47:      6(int) AtomicAnd 43(atomu) 14 15 46
+                              Store 41(origu) 47
+              49:      6(int) AtomicOr 43(atomu) 14 15 48
+                              Store 41(origu) 49
+              50:      6(int) AtomicXor 43(atomu) 14 15 48
+                              Store 41(origu) 50
+              51:      6(int) Load 45(value)
+              52:      6(int) AtomicUMin 43(atomu) 14 15 51
+                              Store 41(origu) 52
+              54:     30(int) AtomicSMax 38(atomi) 14 15 53
+                              Store 36(origi) 54
+              55:     30(int) Load 36(origi)
+              56:     30(int) AtomicExchange 38(atomi) 14 15 55
+                              Store 36(origi) 56
+              58:      6(int) Load 45(value)
+              59:      6(int) AtomicCompareExchange 43(atomu) 14 15 15 58 57
+                              Store 41(origu) 59
+              68:     67(ptr) AccessChain 64(result) 65 66
+              69:     30(int) AtomicIAdd 68 14 15 65
+                              Return
+                              FunctionEnd