216 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			216 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
spv.atomicInt64.comp
 | 
						|
// Module Version 10000
 | 
						|
// Generated by (magic number): 8000a
 | 
						|
// Id's are bound by 149
 | 
						|
 | 
						|
                              Capability Shader
 | 
						|
                              Capability Int64
 | 
						|
                              Capability Int64Atomics
 | 
						|
               1:             ExtInstImport  "GLSL.std.450"
 | 
						|
                              MemoryModel Logical GLSL450
 | 
						|
                              EntryPoint GLCompute 4  "main"
 | 
						|
                              ExecutionMode 4 LocalSize 16 16 1
 | 
						|
                              Source GLSL 450
 | 
						|
                              SourceExtension  "GL_ARB_gpu_shader_int64"
 | 
						|
                              SourceExtension  "GL_NV_shader_atomic_int64"
 | 
						|
                              Name 4  "main"
 | 
						|
                              Name 8  "i64"
 | 
						|
                              Name 12  "u64"
 | 
						|
                              Name 14  "Buffer"
 | 
						|
                              MemberName 14(Buffer) 0  "i64"
 | 
						|
                              MemberName 14(Buffer) 1  "u64"
 | 
						|
                              Name 16  "buf"
 | 
						|
                              Name 84  "Struct"
 | 
						|
                              MemberName 84(Struct) 0  "i64"
 | 
						|
                              MemberName 84(Struct) 1  "u64"
 | 
						|
                              Name 86  "s"
 | 
						|
                              MemberDecorate 14(Buffer) 0 Offset 0
 | 
						|
                              MemberDecorate 14(Buffer) 1 Offset 8
 | 
						|
                              Decorate 14(Buffer) BufferBlock
 | 
						|
                              Decorate 16(buf) DescriptorSet 0
 | 
						|
                              Decorate 16(buf) Binding 0
 | 
						|
                              Decorate 148 BuiltIn WorkgroupSize
 | 
						|
               2:             TypeVoid
 | 
						|
               3:             TypeFunction 2
 | 
						|
               6:             TypeInt 64 1
 | 
						|
               7:             TypePointer Function 6(int64_t)
 | 
						|
               9:  6(int64_t) Constant 0 0
 | 
						|
              10:             TypeInt 64 0
 | 
						|
              11:             TypePointer Function 10(int64_t)
 | 
						|
              13: 10(int64_t) Constant 0 0
 | 
						|
      14(Buffer):             TypeStruct 6(int64_t) 10(int64_t)
 | 
						|
              15:             TypePointer Uniform 14(Buffer)
 | 
						|
         16(buf):     15(ptr) Variable Uniform
 | 
						|
              17:             TypeInt 32 1
 | 
						|
              18:     17(int) Constant 0
 | 
						|
              19:             TypePointer Uniform 6(int64_t)
 | 
						|
              21:  6(int64_t) Constant 4294967272 4294967295
 | 
						|
              22:             TypeInt 32 0
 | 
						|
              23:     22(int) Constant 1
 | 
						|
              24:     22(int) Constant 0
 | 
						|
              28:     17(int) Constant 1
 | 
						|
              29:             TypePointer Uniform 10(int64_t)
 | 
						|
              31: 10(int64_t) Constant 15 240
 | 
						|
      84(Struct):             TypeStruct 6(int64_t) 10(int64_t)
 | 
						|
              85:             TypePointer Workgroup 84(Struct)
 | 
						|
           86(s):     85(ptr) Variable Workgroup
 | 
						|
              87:             TypePointer Workgroup 6(int64_t)
 | 
						|
              92:             TypePointer Workgroup 10(int64_t)
 | 
						|
             146:             TypeVector 22(int) 3
 | 
						|
             147:     22(int) Constant 16
 | 
						|
             148:  146(ivec3) ConstantComposite 147 147 23
 | 
						|
         4(main):           2 Function None 3
 | 
						|
               5:             Label
 | 
						|
          8(i64):      7(ptr) Variable Function
 | 
						|
         12(u64):     11(ptr) Variable Function
 | 
						|
                              Store 8(i64) 9
 | 
						|
                              Store 12(u64) 13
 | 
						|
              20:     19(ptr) AccessChain 16(buf) 18
 | 
						|
              25:  6(int64_t) AtomicSMin 20 23 24 21
 | 
						|
              26:  6(int64_t) Load 8(i64)
 | 
						|
              27:  6(int64_t) IAdd 26 25
 | 
						|
                              Store 8(i64) 27
 | 
						|
              30:     29(ptr) AccessChain 16(buf) 28
 | 
						|
              32: 10(int64_t) AtomicUMin 30 23 24 31
 | 
						|
              33: 10(int64_t) Load 12(u64)
 | 
						|
              34: 10(int64_t) IAdd 33 32
 | 
						|
                              Store 12(u64) 34
 | 
						|
              35:     19(ptr) AccessChain 16(buf) 18
 | 
						|
              36:  6(int64_t) AtomicSMax 35 23 24 21
 | 
						|
              37:  6(int64_t) Load 8(i64)
 | 
						|
              38:  6(int64_t) IAdd 37 36
 | 
						|
                              Store 8(i64) 38
 | 
						|
              39:     29(ptr) AccessChain 16(buf) 28
 | 
						|
              40: 10(int64_t) AtomicUMax 39 23 24 31
 | 
						|
              41: 10(int64_t) Load 12(u64)
 | 
						|
              42: 10(int64_t) IAdd 41 40
 | 
						|
                              Store 12(u64) 42
 | 
						|
              43:     19(ptr) AccessChain 16(buf) 18
 | 
						|
              44:  6(int64_t) AtomicAnd 43 23 24 21
 | 
						|
              45:  6(int64_t) Load 8(i64)
 | 
						|
              46:  6(int64_t) IAdd 45 44
 | 
						|
                              Store 8(i64) 46
 | 
						|
              47:     29(ptr) AccessChain 16(buf) 28
 | 
						|
              48: 10(int64_t) AtomicAnd 47 23 24 31
 | 
						|
              49: 10(int64_t) Load 12(u64)
 | 
						|
              50: 10(int64_t) IAdd 49 48
 | 
						|
                              Store 12(u64) 50
 | 
						|
              51:     19(ptr) AccessChain 16(buf) 18
 | 
						|
              52:  6(int64_t) AtomicOr 51 23 24 21
 | 
						|
              53:  6(int64_t) Load 8(i64)
 | 
						|
              54:  6(int64_t) IAdd 53 52
 | 
						|
                              Store 8(i64) 54
 | 
						|
              55:     29(ptr) AccessChain 16(buf) 28
 | 
						|
              56: 10(int64_t) AtomicOr 55 23 24 31
 | 
						|
              57: 10(int64_t) Load 12(u64)
 | 
						|
              58: 10(int64_t) IAdd 57 56
 | 
						|
                              Store 12(u64) 58
 | 
						|
              59:     19(ptr) AccessChain 16(buf) 18
 | 
						|
              60:  6(int64_t) AtomicXor 59 23 24 21
 | 
						|
              61:  6(int64_t) Load 8(i64)
 | 
						|
              62:  6(int64_t) IAdd 61 60
 | 
						|
                              Store 8(i64) 62
 | 
						|
              63:     29(ptr) AccessChain 16(buf) 28
 | 
						|
              64: 10(int64_t) AtomicXor 63 23 24 31
 | 
						|
              65: 10(int64_t) Load 12(u64)
 | 
						|
              66: 10(int64_t) IAdd 65 64
 | 
						|
                              Store 12(u64) 66
 | 
						|
              67:     19(ptr) AccessChain 16(buf) 18
 | 
						|
              68:  6(int64_t) AtomicIAdd 67 23 24 21
 | 
						|
              69:  6(int64_t) Load 8(i64)
 | 
						|
              70:  6(int64_t) IAdd 69 68
 | 
						|
                              Store 8(i64) 70
 | 
						|
              71:     19(ptr) AccessChain 16(buf) 18
 | 
						|
              72:  6(int64_t) AtomicExchange 71 23 24 21
 | 
						|
              73:  6(int64_t) Load 8(i64)
 | 
						|
              74:  6(int64_t) IAdd 73 72
 | 
						|
                              Store 8(i64) 74
 | 
						|
              75:     19(ptr) AccessChain 16(buf) 18
 | 
						|
              76:  6(int64_t) Load 8(i64)
 | 
						|
              77:  6(int64_t) AtomicCompareExchange 75 23 24 24 76 21
 | 
						|
              78:  6(int64_t) Load 8(i64)
 | 
						|
              79:  6(int64_t) IAdd 78 77
 | 
						|
                              Store 8(i64) 79
 | 
						|
              80:  6(int64_t) Load 8(i64)
 | 
						|
              81:     19(ptr) AccessChain 16(buf) 18
 | 
						|
                              Store 81 80
 | 
						|
              82: 10(int64_t) Load 12(u64)
 | 
						|
              83:     29(ptr) AccessChain 16(buf) 28
 | 
						|
                              Store 83 82
 | 
						|
                              Store 8(i64) 9
 | 
						|
                              Store 12(u64) 13
 | 
						|
              88:     87(ptr) AccessChain 86(s) 18
 | 
						|
              89:  6(int64_t) AtomicSMin 88 23 24 21
 | 
						|
              90:  6(int64_t) Load 8(i64)
 | 
						|
              91:  6(int64_t) IAdd 90 89
 | 
						|
                              Store 8(i64) 91
 | 
						|
              93:     92(ptr) AccessChain 86(s) 28
 | 
						|
              94: 10(int64_t) AtomicUMin 93 23 24 31
 | 
						|
              95: 10(int64_t) Load 12(u64)
 | 
						|
              96: 10(int64_t) IAdd 95 94
 | 
						|
                              Store 12(u64) 96
 | 
						|
              97:     87(ptr) AccessChain 86(s) 18
 | 
						|
              98:  6(int64_t) AtomicSMax 97 23 24 21
 | 
						|
              99:  6(int64_t) Load 8(i64)
 | 
						|
             100:  6(int64_t) IAdd 99 98
 | 
						|
                              Store 8(i64) 100
 | 
						|
             101:     92(ptr) AccessChain 86(s) 28
 | 
						|
             102: 10(int64_t) AtomicUMax 101 23 24 31
 | 
						|
             103: 10(int64_t) Load 12(u64)
 | 
						|
             104: 10(int64_t) IAdd 103 102
 | 
						|
                              Store 12(u64) 104
 | 
						|
             105:     87(ptr) AccessChain 86(s) 18
 | 
						|
             106:  6(int64_t) AtomicAnd 105 23 24 21
 | 
						|
             107:  6(int64_t) Load 8(i64)
 | 
						|
             108:  6(int64_t) IAdd 107 106
 | 
						|
                              Store 8(i64) 108
 | 
						|
             109:     92(ptr) AccessChain 86(s) 28
 | 
						|
             110: 10(int64_t) AtomicAnd 109 23 24 31
 | 
						|
             111: 10(int64_t) Load 12(u64)
 | 
						|
             112: 10(int64_t) IAdd 111 110
 | 
						|
                              Store 12(u64) 112
 | 
						|
             113:     87(ptr) AccessChain 86(s) 18
 | 
						|
             114:  6(int64_t) AtomicOr 113 23 24 21
 | 
						|
             115:  6(int64_t) Load 8(i64)
 | 
						|
             116:  6(int64_t) IAdd 115 114
 | 
						|
                              Store 8(i64) 116
 | 
						|
             117:     92(ptr) AccessChain 86(s) 28
 | 
						|
             118: 10(int64_t) AtomicOr 117 23 24 31
 | 
						|
             119: 10(int64_t) Load 12(u64)
 | 
						|
             120: 10(int64_t) IAdd 119 118
 | 
						|
                              Store 12(u64) 120
 | 
						|
             121:     87(ptr) AccessChain 86(s) 18
 | 
						|
             122:  6(int64_t) AtomicXor 121 23 24 21
 | 
						|
             123:  6(int64_t) Load 8(i64)
 | 
						|
             124:  6(int64_t) IAdd 123 122
 | 
						|
                              Store 8(i64) 124
 | 
						|
             125:     92(ptr) AccessChain 86(s) 28
 | 
						|
             126: 10(int64_t) AtomicXor 125 23 24 31
 | 
						|
             127: 10(int64_t) Load 12(u64)
 | 
						|
             128: 10(int64_t) IAdd 127 126
 | 
						|
                              Store 12(u64) 128
 | 
						|
             129:     87(ptr) AccessChain 86(s) 18
 | 
						|
             130:  6(int64_t) AtomicIAdd 129 23 24 21
 | 
						|
             131:  6(int64_t) Load 8(i64)
 | 
						|
             132:  6(int64_t) IAdd 131 130
 | 
						|
                              Store 8(i64) 132
 | 
						|
             133:     87(ptr) AccessChain 86(s) 18
 | 
						|
             134:  6(int64_t) AtomicExchange 133 23 24 21
 | 
						|
             135:  6(int64_t) Load 8(i64)
 | 
						|
             136:  6(int64_t) IAdd 135 134
 | 
						|
                              Store 8(i64) 136
 | 
						|
             137:     87(ptr) AccessChain 86(s) 18
 | 
						|
             138:  6(int64_t) Load 8(i64)
 | 
						|
             139:  6(int64_t) AtomicCompareExchange 137 23 24 24 138 21
 | 
						|
             140:  6(int64_t) Load 8(i64)
 | 
						|
             141:  6(int64_t) IAdd 140 139
 | 
						|
                              Store 8(i64) 141
 | 
						|
             142:  6(int64_t) Load 8(i64)
 | 
						|
             143:     87(ptr) AccessChain 86(s) 18
 | 
						|
                              Store 143 142
 | 
						|
             144: 10(int64_t) Load 12(u64)
 | 
						|
             145:     92(ptr) AccessChain 86(s) 28
 | 
						|
                              Store 145 144
 | 
						|
                              Return
 | 
						|
                              FunctionEnd
 |