After construction, the Loop is effectively const. This perturbs the IDs in SPIR-V tests because the body block is created before generating any of the loop code, rather than only when the body is first referenced.
198 lines
9.0 KiB
Plaintext
198 lines
9.0 KiB
Plaintext
spv.forLoop.frag
|
|
|
|
Linked fragment stage:
|
|
|
|
|
|
// Module Version 99
|
|
// Generated by (magic number): 51a00bb
|
|
// Id's are bound by 123
|
|
|
|
Source GLSL 130
|
|
1: ExtInstImport "GLSL.std.450"
|
|
MemoryModel Logical GLSL450
|
|
EntryPoint Fragment 4
|
|
Name 4 "main"
|
|
Name 10 "color"
|
|
Name 12 "BaseColor"
|
|
Name 16 "i"
|
|
Name 23 "Count"
|
|
Name 28 "bigColor"
|
|
Name 36 "gl_FragColor"
|
|
Name 39 "sum"
|
|
Name 41 "i"
|
|
Name 51 "v4"
|
|
Name 60 "i"
|
|
Name 66 "tv4"
|
|
Name 84 "r"
|
|
Name 90 "i"
|
|
Name 98 "f"
|
|
Name 111 "i"
|
|
Decorate 12(BaseColor) Smooth
|
|
Decorate 36(gl_FragColor) BuiltIn FragColor
|
|
Decorate 98(f) Smooth
|
|
2: TypeVoid
|
|
3: TypeFunction 2
|
|
7: TypeFloat 32
|
|
8: TypeVector 7(float) 4
|
|
9: TypePointer Function 8(fvec4)
|
|
11: TypePointer Input 8(fvec4)
|
|
12(BaseColor): 11(ptr) Variable Input
|
|
14: TypeInt 32 1
|
|
15: TypePointer Function 14(int)
|
|
17: 14(int) Constant 0
|
|
22: TypePointer UniformConstant 14(int)
|
|
23(Count): 22(ptr) Variable UniformConstant
|
|
25: TypeBool
|
|
27: TypePointer UniformConstant 8(fvec4)
|
|
28(bigColor): 27(ptr) Variable UniformConstant
|
|
33: 14(int) Constant 1
|
|
35: TypePointer Output 8(fvec4)
|
|
36(gl_FragColor): 35(ptr) Variable Output
|
|
38: TypePointer Function 7(float)
|
|
40: 7(float) Constant 0
|
|
46: 14(int) Constant 4
|
|
48: TypeInt 32 0
|
|
49: TypeVector 48(int) 4
|
|
50: TypePointer UniformConstant 49(ivec4)
|
|
51(v4): 50(ptr) Variable UniformConstant
|
|
71: 48(int) Constant 4
|
|
86: TypeVector 7(float) 3
|
|
97: TypePointer Input 7(float)
|
|
98(f): 97(ptr) Variable Input
|
|
116: 14(int) Constant 16
|
|
4(main): 2 Function None 3
|
|
5: Label
|
|
10(color): 9(ptr) Variable Function
|
|
16(i): 15(ptr) Variable Function
|
|
39(sum): 38(ptr) Variable Function
|
|
41(i): 15(ptr) Variable Function
|
|
60(i): 15(ptr) Variable Function
|
|
66(tv4): 9(ptr) Variable Function
|
|
84(r): 9(ptr) Variable Function
|
|
90(i): 15(ptr) Variable Function
|
|
111(i): 15(ptr) Variable Function
|
|
13: 8(fvec4) Load 12(BaseColor)
|
|
Store 10(color) 13
|
|
Store 16(i) 17
|
|
Branch 18
|
|
18: Label
|
|
21: 14(int) Load 16(i)
|
|
24: 14(int) Load 23(Count)
|
|
26: 25(bool) SLessThan 21 24
|
|
LoopMerge 19 None
|
|
BranchConditional 26 20 19
|
|
20: Label
|
|
29: 8(fvec4) Load 28(bigColor)
|
|
30: 8(fvec4) Load 10(color)
|
|
31: 8(fvec4) FAdd 30 29
|
|
Store 10(color) 31
|
|
32: 14(int) Load 16(i)
|
|
34: 14(int) IAdd 32 33
|
|
Store 16(i) 34
|
|
Branch 18
|
|
19: Label
|
|
37: 8(fvec4) Load 10(color)
|
|
Store 36(gl_FragColor) 37
|
|
Store 39(sum) 40
|
|
Store 41(i) 17
|
|
Branch 42
|
|
42: Label
|
|
45: 14(int) Load 41(i)
|
|
47: 25(bool) SLessThan 45 46
|
|
LoopMerge 43 None
|
|
BranchConditional 47 44 43
|
|
44: Label
|
|
52: 14(int) Load 41(i)
|
|
53: 49(ivec4) Load 51(v4)
|
|
54: 48(int) VectorExtractDynamic 53 52
|
|
55: 7(float) ConvertUToF 54
|
|
56: 7(float) Load 39(sum)
|
|
57: 7(float) FAdd 56 55
|
|
Store 39(sum) 57
|
|
58: 14(int) Load 41(i)
|
|
59: 14(int) IAdd 58 33
|
|
Store 41(i) 59
|
|
Branch 42
|
|
43: Label
|
|
Store 60(i) 17
|
|
Branch 61
|
|
61: Label
|
|
64: 14(int) Load 60(i)
|
|
65: 25(bool) SLessThan 64 46
|
|
LoopMerge 62 None
|
|
BranchConditional 65 63 62
|
|
63: Label
|
|
67: 14(int) Load 60(i)
|
|
68: 14(int) Load 60(i)
|
|
69: 49(ivec4) Load 51(v4)
|
|
70: 48(int) VectorExtractDynamic 69 68
|
|
72: 48(int) IMul 70 71
|
|
73: 7(float) ConvertUToF 72
|
|
74: 8(fvec4) Load 66(tv4)
|
|
75: 8(fvec4) VectorInsertDynamic 74 73 67
|
|
Store 66(tv4) 75
|
|
76: 14(int) Load 60(i)
|
|
77: 14(int) IAdd 76 33
|
|
Store 60(i) 77
|
|
Branch 61
|
|
62: Label
|
|
78: 7(float) Load 39(sum)
|
|
79: 8(fvec4) CompositeConstruct 78 78 78 78
|
|
80: 8(fvec4) Load 66(tv4)
|
|
81: 8(fvec4) FAdd 79 80
|
|
82: 8(fvec4) Load 36(gl_FragColor)
|
|
83: 8(fvec4) FAdd 82 81
|
|
Store 36(gl_FragColor) 83
|
|
85: 8(fvec4) Load 12(BaseColor)
|
|
87: 86(fvec3) VectorShuffle 85 85 0 1 2
|
|
88: 8(fvec4) Load 84(r)
|
|
89: 8(fvec4) VectorShuffle 88 87 4 5 6 3
|
|
Store 84(r) 89
|
|
Store 90(i) 17
|
|
Branch 91
|
|
91: Label
|
|
94: 14(int) Load 90(i)
|
|
95: 14(int) Load 23(Count)
|
|
96: 25(bool) SLessThan 94 95
|
|
LoopMerge 92 None
|
|
BranchConditional 96 93 92
|
|
93: Label
|
|
99: 7(float) Load 98(f)
|
|
100: 8(fvec4) Load 84(r)
|
|
101: 8(fvec4) CompositeInsert 99 100 3
|
|
Store 84(r) 101
|
|
102: 14(int) Load 90(i)
|
|
103: 14(int) IAdd 102 33
|
|
Store 90(i) 103
|
|
Branch 91
|
|
92: Label
|
|
104: 8(fvec4) Load 84(r)
|
|
105: 86(fvec3) VectorShuffle 104 104 0 1 2
|
|
106: 8(fvec4) Load 36(gl_FragColor)
|
|
107: 86(fvec3) VectorShuffle 106 106 0 1 2
|
|
108: 86(fvec3) FAdd 107 105
|
|
109: 8(fvec4) Load 36(gl_FragColor)
|
|
110: 8(fvec4) VectorShuffle 109 108 4 5 6 3
|
|
Store 36(gl_FragColor) 110
|
|
Store 111(i) 17
|
|
Branch 112
|
|
112: Label
|
|
115: 14(int) Load 111(i)
|
|
117: 25(bool) SLessThan 115 116
|
|
LoopMerge 113 None
|
|
BranchConditional 117 114 113
|
|
114: Label
|
|
118: 7(float) Load 98(f)
|
|
119: 8(fvec4) Load 36(gl_FragColor)
|
|
120: 8(fvec4) VectorTimesScalar 119 118
|
|
Store 36(gl_FragColor) 120
|
|
121: 14(int) Load 111(i)
|
|
122: 14(int) IAdd 121 46
|
|
Store 111(i) 122
|
|
Branch 112
|
|
113: Label
|
|
Branch 6
|
|
6: Label
|
|
Return
|
|
FunctionEnd
|