Move to revision 31 of SPIR-V.

This commit is contained in:
John Kessenich
2015-08-06 22:53:06 -06:00
parent e24a74c320
commit 5e4b1242bf
77 changed files with 6050 additions and 5450 deletions

196
Test/baseResults/spv.atomic.comp.out Normal file → Executable file
View File

@@ -8,88 +8,80 @@ 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 99
// Generated by (magic number): 51a00bb
// Id's are bound by 75
// Id's are bound by 77
Source ESSL 310
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint GLCompute 4
EntryPoint GLCompute 4 "main"
Name 4 "main"
Name 11 "func(au1;"
Name 10 "c"
Name 13 "atoms("
Name 20 "counter"
Name 21 "param"
Name 24 "val"
Name 28 "countArr"
Name 38 "origi"
Name 40 "atomi"
Name 44 "origu"
Name 46 "atomu"
Name 48 "value"
Name 72 "arrX"
Name 73 "arrY"
Name 74 "arrZ"
Decorate 20(counter) PrecisionHigh
Decorate 20(counter) Binding 0
Decorate 24(val) PrecisionHigh
Decorate 28(countArr) PrecisionHigh
Decorate 28(countArr) Binding 0
Decorate 38(origi) PrecisionHigh
Decorate 40(atomi) PrecisionHigh
Decorate 44(origu) PrecisionHigh
Decorate 46(atomu) PrecisionHigh
Decorate 48(value) PrecisionHigh
Decorate 72(arrX) PrecisionHigh
Decorate 72(arrX) NoStaticUse
Decorate 73(arrY) PrecisionHigh
Decorate 73(arrY) NoStaticUse
Decorate 74(arrZ) PrecisionHigh
Decorate 74(arrZ) NoStaticUse
Name 23 "counter"
Name 24 "param"
Name 27 "val"
Name 31 "countArr"
Name 41 "origi"
Name 43 "atomi"
Name 47 "origu"
Name 49 "atomu"
Name 51 "value"
Name 74 "arrX"
Name 75 "arrY"
Name 76 "arrZ"
Decorate 23(counter) Binding 0
Decorate 31(countArr) Binding 0
Decorate 74(arrX) NoStaticUse
Decorate 75(arrY) NoStaticUse
Decorate 76(arrZ) NoStaticUse
2: TypeVoid
3: TypeFunction 2
3: TypeFunction 2
7: TypeInt 32 0
8: TypePointer Function 7(int)
9: TypeFunction 7(int) 8(ptr)
19: TypePointer UniformConstant 7(int)
20(counter): 19(ptr) Variable UniformConstant
25: 7(int) Constant 4
26: TypeArray 7(int) 25
27: TypePointer UniformConstant 26
28(countArr): 27(ptr) Variable UniformConstant
29: TypeInt 32 1
30: 29(int) Constant 2
37: TypePointer Function 29(int)
39: TypePointer WorkgroupLocal 29(int)
40(atomi): 39(ptr) Variable WorkgroupLocal
42: 29(int) Constant 3
45: TypePointer WorkgroupLocal 7(int)
46(atomu): 45(ptr) Variable WorkgroupLocal
48(value): 19(ptr) Variable UniformConstant
52: 7(int) Constant 7
60: 29(int) Constant 7
66: 7(int) Constant 10
69: 7(int) Constant 1
70: TypeArray 29(int) 69
71: TypePointer PrivateGlobal 70
72(arrX): 71(ptr) Variable PrivateGlobal
73(arrY): 71(ptr) Variable PrivateGlobal
74(arrZ): 71(ptr) Variable PrivateGlobal
16: 7(int) Constant 1
17: 7(int) Constant 0
21: 7(int) Constant 256
22: TypePointer UniformConstant 7(int)
23(counter): 22(ptr) Variable UniformConstant
28: 7(int) Constant 4
29: TypeArray 7(int) 28
30: TypePointer UniformConstant 29
31(countArr): 30(ptr) Variable UniformConstant
32: TypeInt 32 1
33: 32(int) Constant 2
40: TypePointer Function 32(int)
42: TypePointer WorkgroupLocal 32(int)
43(atomi): 42(ptr) Variable WorkgroupLocal
45: 32(int) Constant 3
48: TypePointer WorkgroupLocal 7(int)
49(atomu): 48(ptr) Variable WorkgroupLocal
51(value): 22(ptr) Variable UniformConstant
55: 7(int) Constant 7
63: 32(int) Constant 7
69: 7(int) Constant 10
72: TypeArray 32(int) 16
73: TypePointer PrivateGlobal 72
74(arrX): 73(ptr) Variable PrivateGlobal
75(arrY): 73(ptr) Variable PrivateGlobal
76(arrZ): 73(ptr) Variable PrivateGlobal
4(main): 2 Function None 3
5: Label
21(param): 8(ptr) Variable Function
24(val): 8(ptr) Variable Function
MemoryBarrier Device AtomicCounterMemory
22: 7(int) Load 20(counter)
Store 21(param) 22
23: 7(int) FunctionCall 11(func(au1;) 21(param)
31: 19(ptr) AccessChain 28(countArr) 30
32: 7(int) Load 31
33: 7(int) AtomicLoad 32 Device None
34: 7(int) Load 31
Store 24(val) 34
35: 7(int) Load 20(counter)
36: 7(int) AtomicIDecrement 35 Device None
24(param): 8(ptr) Variable Function
27(val): 8(ptr) Variable Function
MemoryBarrier 16 21
25: 7(int) Load 23(counter)
Store 24(param) 25
26: 7(int) FunctionCall 11(func(au1;) 24(param)
34: 22(ptr) AccessChain 31(countArr) 33
35: 7(int) Load 34
36: 7(int) AtomicLoad 35 16 17
37: 7(int) Load 34
Store 27(val) 37
38: 7(int) Load 23(counter)
39: 7(int) AtomicIDecrement 38 16 17
Branch 6
6: Label
Return
@@ -97,42 +89,42 @@ TBD functionality: Is atomic_uint an opaque handle in the uniform storage class,
11(func(au1;): 7(int) Function None 9
10(c): 8(ptr) FunctionParameter
12: Label
15: 7(int) Load 10(c)
16: 7(int) AtomicIIncrement 15 Device None
17: 7(int) Load 10(c)
ReturnValue 17
15: 7(int) Load 10(c)
18: 7(int) AtomicIIncrement 15 16 17
19: 7(int) Load 10(c)
ReturnValue 19
FunctionEnd
13(atoms(): 2 Function None 3
14: Label
38(origi): 37(ptr) Variable Function
44(origu): 8(ptr) Variable Function
41: 29(int) Load 40(atomi)
43: 29(int) AtomicIAdd 41 Device None 42
Store 38(origi) 43
47: 7(int) Load 46(atomu)
49: 7(int) Load 48(value)
50: 7(int) AtomicAnd 47 Device None 49
Store 44(origu) 50
51: 7(int) Load 46(atomu)
53: 7(int) AtomicOr 51 Device None 52
Store 44(origu) 53
54: 7(int) Load 46(atomu)
55: 7(int) AtomicXor 54 Device None 52
Store 44(origu) 55
56: 7(int) Load 46(atomu)
57: 7(int) Load 48(value)
58: 7(int) AtomicIMin 56 Device None 57
Store 44(origu) 58
59: 29(int) Load 40(atomi)
61: 29(int) AtomicIMax 59 Device None 60
Store 38(origi) 61
62: 29(int) Load 40(atomi)
63: 29(int) Load 38(origi)
64: 29(int) AtomicExchange 62 Device None 63
Store 38(origi) 64
65: 7(int) Load 46(atomu)
67: 7(int) Load 48(value)
68: 7(int) AtomicCompareExchange 65 Device None 66 67
Store 44(origu) 68
41(origi): 40(ptr) Variable Function
47(origu): 8(ptr) Variable Function
44: 32(int) Load 43(atomi)
46: 32(int) AtomicIAdd 44 16 17 45
Store 41(origi) 46
50: 7(int) Load 49(atomu)
52: 7(int) Load 51(value)
53: 7(int) AtomicAnd 50 16 17 52
Store 47(origu) 53
54: 7(int) Load 49(atomu)
56: 7(int) AtomicOr 54 16 17 55
Store 47(origu) 56
57: 7(int) Load 49(atomu)
58: 7(int) AtomicXor 57 16 17 55
Store 47(origu) 58
59: 7(int) Load 49(atomu)
60: 7(int) Load 51(value)
61: 7(int) AtomicSMin 59 16 17 60
Store 47(origu) 61
62: 32(int) Load 43(atomi)
64: 32(int) AtomicSMax 62 16 17 63
Store 41(origi) 64
65: 32(int) Load 43(atomi)
66: 32(int) Load 41(origi)
67: 32(int) AtomicExchange 65 16 17 66
Store 41(origi) 67
68: 7(int) Load 49(atomu)
70: 7(int) Load 51(value)
71: 7(int) AtomicCompareExchange 68 16 17 69 70
Store 47(origu) 71
Return
FunctionEnd