HLSL: Wrap the entry-point; need to write 'in' args, and support 'inout' args.

This needs some render testing, but is destined to be part of master.

This also leads to a variety of other simplifications.
 - IO are global symbols, so only need one list of linkage nodes (deferred)
 - no longer need parse-context-wide 'inEntryPoint' state, entry-point is localized
 - several parts of splitting/flattening are now localized
This commit is contained in:
John Kessenich
2017-01-19 15:41:47 -07:00
parent 18adbdbbb8
commit 02467d8d94
171 changed files with 37604 additions and 32679 deletions

View File

@@ -168,7 +168,7 @@ gl_FragCoord origin is upper left
0:87 'r33' (temp 4X4 matrix of uint)
0:87 transpose (temp 4X4 matrix of uint)
0:87 'u4x4' (temp 4X4 matrix of uint)
0:93 Function Definition: main( (temp structure{temp 4-component vector of float color})
0:93 Function Definition: @main( (temp structure{temp 4-component vector of float color})
0:93 Function Parameters:
0:? Sequence
0:95 move second child to first child (temp 4-component vector of float)
@@ -181,15 +181,18 @@ gl_FragCoord origin is upper left
0:? 0.000000
0:? 0.000000
0:? 0.000000
0:96 Sequence
0:96 Sequence
0:96 move second child to first child (temp 4-component vector of float)
0:? 'color' (layout(location=0 ) out 4-component vector of float)
0:96 color: direct index for structure (temp 4-component vector of float)
0:96 'ps_output' (temp structure{temp 4-component vector of float color})
0:96 Constant:
0:96 0 (const int)
0:96 Branch: Return
0:96 Branch: Return with expression
0:96 'ps_output' (temp structure{temp 4-component vector of float color})
0:93 Function Definition: main( (temp void)
0:93 Function Parameters:
0:? Sequence
0:93 Sequence
0:93 move second child to first child (temp 4-component vector of float)
0:? 'color' (layout(location=0 ) out 4-component vector of float)
0:93 color: direct index for structure (temp 4-component vector of float)
0:93 Function Call: @main( (temp structure{temp 4-component vector of float color})
0:93 Constant:
0:93 0 (const int)
0:? Linker Objects
0:? 'color' (layout(location=0 ) out 4-component vector of float)
@@ -366,7 +369,7 @@ gl_FragCoord origin is upper left
0:87 'r33' (temp 4X4 matrix of uint)
0:87 transpose (temp 4X4 matrix of uint)
0:87 'u4x4' (temp 4X4 matrix of uint)
0:93 Function Definition: main( (temp structure{temp 4-component vector of float color})
0:93 Function Definition: @main( (temp structure{temp 4-component vector of float color})
0:93 Function Parameters:
0:? Sequence
0:95 move second child to first child (temp 4-component vector of float)
@@ -379,360 +382,370 @@ gl_FragCoord origin is upper left
0:? 0.000000
0:? 0.000000
0:? 0.000000
0:96 Sequence
0:96 Sequence
0:96 move second child to first child (temp 4-component vector of float)
0:? 'color' (layout(location=0 ) out 4-component vector of float)
0:96 color: direct index for structure (temp 4-component vector of float)
0:96 'ps_output' (temp structure{temp 4-component vector of float color})
0:96 Constant:
0:96 0 (const int)
0:96 Branch: Return
0:96 Branch: Return with expression
0:96 'ps_output' (temp structure{temp 4-component vector of float color})
0:93 Function Definition: main( (temp void)
0:93 Function Parameters:
0:? Sequence
0:93 Sequence
0:93 move second child to first child (temp 4-component vector of float)
0:? 'color' (layout(location=0 ) out 4-component vector of float)
0:93 color: direct index for structure (temp 4-component vector of float)
0:93 Function Call: @main( (temp structure{temp 4-component vector of float color})
0:93 Constant:
0:93 0 (const int)
0:? Linker Objects
0:? 'color' (layout(location=0 ) out 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 227
// Id's are bound by 232
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 223
EntryPoint Fragment 4 "main" 229
ExecutionMode 4 OriginUpperLeft
Name 4 "main"
Name 6 "TestIntMatTypes("
Name 8 "TestUintMatTypes("
Name 14 "r00"
Name 15 "i1x1"
Name 21 "r01"
Name 24 "i2x1"
Name 30 "r02"
Name 33 "i3x1"
Name 39 "r03"
Name 42 "i4x1"
Name 45 "r10"
Name 46 "i1x2"
Name 51 "r11"
Name 52 "i2x2"
Name 57 "r12"
Name 60 "i3x2"
Name 65 "r13"
Name 68 "i4x2"
Name 71 "r20"
Name 72 "i1x3"
Name 75 "r21"
Name 76 "i2x3"
Name 81 "r22"
Name 82 "i3x3"
Name 87 "r23"
Name 90 "i4x3"
Name 93 "r30"
Name 94 "i1x4"
Name 97 "r31"
Name 98 "i2x4"
Name 101 "r32"
Name 102 "i3x4"
Name 107 "r33"
Name 108 "i4x4"
Name 115 "r00"
Name 116 "u1x1"
Name 122 "r01"
Name 125 "u2x1"
Name 131 "r02"
Name 134 "u3x1"
Name 140 "r03"
Name 143 "u4x1"
Name 146 "r10"
Name 147 "u1x2"
Name 152 "r11"
Name 153 "u2x2"
Name 158 "r12"
Name 161 "u3x2"
Name 166 "r13"
Name 169 "u4x2"
Name 172 "r20"
Name 173 "u1x3"
Name 176 "r21"
Name 177 "u2x3"
Name 182 "r22"
Name 183 "u3x3"
Name 188 "r23"
Name 191 "u4x3"
Name 194 "r30"
Name 195 "u1x4"
Name 198 "r31"
Name 199 "u2x4"
Name 202 "r32"
Name 203 "u3x4"
Name 208 "r33"
Name 209 "u4x4"
Name 214 "PS_OUTPUT"
MemberName 214(PS_OUTPUT) 0 "color"
Name 216 "ps_output"
Name 223 "color"
Decorate 223(color) Location 0
Name 12 "PS_OUTPUT"
MemberName 12(PS_OUTPUT) 0 "color"
Name 14 "@main("
Name 20 "r00"
Name 21 "i1x1"
Name 27 "r01"
Name 30 "i2x1"
Name 36 "r02"
Name 39 "i3x1"
Name 45 "r03"
Name 48 "i4x1"
Name 51 "r10"
Name 52 "i1x2"
Name 57 "r11"
Name 58 "i2x2"
Name 63 "r12"
Name 66 "i3x2"
Name 71 "r13"
Name 74 "i4x2"
Name 77 "r20"
Name 78 "i1x3"
Name 81 "r21"
Name 82 "i2x3"
Name 87 "r22"
Name 88 "i3x3"
Name 93 "r23"
Name 96 "i4x3"
Name 99 "r30"
Name 100 "i1x4"
Name 103 "r31"
Name 104 "i2x4"
Name 107 "r32"
Name 108 "i3x4"
Name 113 "r33"
Name 114 "i4x4"
Name 121 "r00"
Name 122 "u1x1"
Name 128 "r01"
Name 131 "u2x1"
Name 137 "r02"
Name 140 "u3x1"
Name 146 "r03"
Name 149 "u4x1"
Name 152 "r10"
Name 153 "u1x2"
Name 158 "r11"
Name 159 "u2x2"
Name 164 "r12"
Name 167 "u3x2"
Name 172 "r13"
Name 175 "u4x2"
Name 178 "r20"
Name 179 "u1x3"
Name 182 "r21"
Name 183 "u2x3"
Name 188 "r22"
Name 189 "u3x3"
Name 194 "r23"
Name 197 "u4x3"
Name 200 "r30"
Name 201 "u1x4"
Name 204 "r31"
Name 205 "u2x4"
Name 208 "r32"
Name 209 "u3x4"
Name 214 "r33"
Name 215 "u4x4"
Name 219 "ps_output"
Name 229 "color"
Decorate 229(color) Location 0
2: TypeVoid
3: TypeFunction 2
10: TypeInt 32 1
11: TypeVector 10(int) 1
12: TypeMatrix 11(ivec) 1
13: TypePointer Function 12
18: TypeVector 10(int) 2
19: TypeMatrix 18(ivec2) 1
20: TypePointer Function 19
22: TypeMatrix 11(ivec) 2
23: TypePointer Function 22
27: TypeVector 10(int) 3
28: TypeMatrix 27(ivec3) 1
10: TypeFloat 32
11: TypeVector 10(float) 4
12(PS_OUTPUT): TypeStruct 11(fvec4)
13: TypeFunction 12(PS_OUTPUT)
16: TypeInt 32 1
17: TypeVector 16(int) 1
18: TypeMatrix 17(ivec) 1
19: TypePointer Function 18
24: TypeVector 16(int) 2
25: TypeMatrix 24(ivec2) 1
26: TypePointer Function 25
28: TypeMatrix 17(ivec) 2
29: TypePointer Function 28
31: TypeMatrix 11(ivec) 3
32: TypePointer Function 31
36: TypeVector 10(int) 4
37: TypeMatrix 36(ivec4) 1
33: TypeVector 16(int) 3
34: TypeMatrix 33(ivec3) 1
35: TypePointer Function 34
37: TypeMatrix 17(ivec) 3
38: TypePointer Function 37
40: TypeMatrix 11(ivec) 4
41: TypePointer Function 40
49: TypeMatrix 18(ivec2) 2
50: TypePointer Function 49
55: TypeMatrix 27(ivec3) 2
42: TypeVector 16(int) 4
43: TypeMatrix 42(ivec4) 1
44: TypePointer Function 43
46: TypeMatrix 17(ivec) 4
47: TypePointer Function 46
55: TypeMatrix 24(ivec2) 2
56: TypePointer Function 55
58: TypeMatrix 18(ivec2) 3
59: TypePointer Function 58
63: TypeMatrix 36(ivec4) 2
64: TypePointer Function 63
66: TypeMatrix 18(ivec2) 4
67: TypePointer Function 66
79: TypeMatrix 27(ivec3) 3
80: TypePointer Function 79
85: TypeMatrix 36(ivec4) 3
61: TypeMatrix 33(ivec3) 2
62: TypePointer Function 61
64: TypeMatrix 24(ivec2) 3
65: TypePointer Function 64
69: TypeMatrix 42(ivec4) 2
70: TypePointer Function 69
72: TypeMatrix 24(ivec2) 4
73: TypePointer Function 72
85: TypeMatrix 33(ivec3) 3
86: TypePointer Function 85
88: TypeMatrix 27(ivec3) 4
89: TypePointer Function 88
105: TypeMatrix 36(ivec4) 4
106: TypePointer Function 105
111: TypeInt 32 0
112: TypeVector 111(int) 1
113: TypeMatrix 112(ivec) 1
114: TypePointer Function 113
119: TypeVector 111(int) 2
120: TypeMatrix 119(ivec2) 1
121: TypePointer Function 120
123: TypeMatrix 112(ivec) 2
124: TypePointer Function 123
128: TypeVector 111(int) 3
129: TypeMatrix 128(ivec3) 1
91: TypeMatrix 42(ivec4) 3
92: TypePointer Function 91
94: TypeMatrix 33(ivec3) 4
95: TypePointer Function 94
111: TypeMatrix 42(ivec4) 4
112: TypePointer Function 111
117: TypeInt 32 0
118: TypeVector 117(int) 1
119: TypeMatrix 118(ivec) 1
120: TypePointer Function 119
125: TypeVector 117(int) 2
126: TypeMatrix 125(ivec2) 1
127: TypePointer Function 126
129: TypeMatrix 118(ivec) 2
130: TypePointer Function 129
132: TypeMatrix 112(ivec) 3
133: TypePointer Function 132
137: TypeVector 111(int) 4
138: TypeMatrix 137(ivec4) 1
134: TypeVector 117(int) 3
135: TypeMatrix 134(ivec3) 1
136: TypePointer Function 135
138: TypeMatrix 118(ivec) 3
139: TypePointer Function 138
141: TypeMatrix 112(ivec) 4
142: TypePointer Function 141
150: TypeMatrix 119(ivec2) 2
151: TypePointer Function 150
156: TypeMatrix 128(ivec3) 2
143: TypeVector 117(int) 4
144: TypeMatrix 143(ivec4) 1
145: TypePointer Function 144
147: TypeMatrix 118(ivec) 4
148: TypePointer Function 147
156: TypeMatrix 125(ivec2) 2
157: TypePointer Function 156
159: TypeMatrix 119(ivec2) 3
160: TypePointer Function 159
164: TypeMatrix 137(ivec4) 2
165: TypePointer Function 164
167: TypeMatrix 119(ivec2) 4
168: TypePointer Function 167
180: TypeMatrix 128(ivec3) 3
181: TypePointer Function 180
186: TypeMatrix 137(ivec4) 3
162: TypeMatrix 134(ivec3) 2
163: TypePointer Function 162
165: TypeMatrix 125(ivec2) 3
166: TypePointer Function 165
170: TypeMatrix 143(ivec4) 2
171: TypePointer Function 170
173: TypeMatrix 125(ivec2) 4
174: TypePointer Function 173
186: TypeMatrix 134(ivec3) 3
187: TypePointer Function 186
189: TypeMatrix 128(ivec3) 4
190: TypePointer Function 189
206: TypeMatrix 137(ivec4) 4
207: TypePointer Function 206
212: TypeFloat 32
213: TypeVector 212(float) 4
214(PS_OUTPUT): TypeStruct 213(fvec4)
215: TypePointer Function 214(PS_OUTPUT)
217: 10(int) Constant 0
218: 212(float) Constant 0
219: 213(fvec4) ConstantComposite 218 218 218 218
220: TypePointer Function 213(fvec4)
222: TypePointer Output 213(fvec4)
223(color): 222(ptr) Variable Output
192: TypeMatrix 143(ivec4) 3
193: TypePointer Function 192
195: TypeMatrix 134(ivec3) 4
196: TypePointer Function 195
212: TypeMatrix 143(ivec4) 4
213: TypePointer Function 212
218: TypePointer Function 12(PS_OUTPUT)
220: 16(int) Constant 0
221: 10(float) Constant 0
222: 11(fvec4) ConstantComposite 221 221 221 221
223: TypePointer Function 11(fvec4)
228: TypePointer Output 11(fvec4)
229(color): 228(ptr) Variable Output
4(main): 2 Function None 3
5: Label
216(ps_output): 215(ptr) Variable Function
221: 220(ptr) AccessChain 216(ps_output) 217
Store 221 219
224: 220(ptr) AccessChain 216(ps_output) 217
225: 213(fvec4) Load 224
Store 223(color) 225
230:12(PS_OUTPUT) FunctionCall 14(@main()
231: 11(fvec4) CompositeExtract 230 0
Store 229(color) 231
Return
FunctionEnd
6(TestIntMatTypes(): 2 Function None 3
7: Label
14(r00): 13(ptr) Variable Function
15(i1x1): 13(ptr) Variable Function
21(r01): 20(ptr) Variable Function
24(i2x1): 23(ptr) Variable Function
30(r02): 29(ptr) Variable Function
33(i3x1): 32(ptr) Variable Function
39(r03): 38(ptr) Variable Function
42(i4x1): 41(ptr) Variable Function
45(r10): 23(ptr) Variable Function
46(i1x2): 20(ptr) Variable Function
51(r11): 50(ptr) Variable Function
52(i2x2): 50(ptr) Variable Function
57(r12): 56(ptr) Variable Function
60(i3x2): 59(ptr) Variable Function
65(r13): 64(ptr) Variable Function
68(i4x2): 67(ptr) Variable Function
71(r20): 32(ptr) Variable Function
72(i1x3): 29(ptr) Variable Function
75(r21): 59(ptr) Variable Function
76(i2x3): 56(ptr) Variable Function
81(r22): 80(ptr) Variable Function
82(i3x3): 80(ptr) Variable Function
87(r23): 86(ptr) Variable Function
90(i4x3): 89(ptr) Variable Function
93(r30): 41(ptr) Variable Function
94(i1x4): 38(ptr) Variable Function
97(r31): 67(ptr) Variable Function
98(i2x4): 64(ptr) Variable Function
101(r32): 89(ptr) Variable Function
102(i3x4): 86(ptr) Variable Function
107(r33): 106(ptr) Variable Function
108(i4x4): 106(ptr) Variable Function
16: 12 Load 15(i1x1)
17: 12 Transpose 16
Store 14(r00) 17
25: 22 Load 24(i2x1)
26: 19 Transpose 25
Store 21(r01) 26
34: 31 Load 33(i3x1)
35: 28 Transpose 34
Store 30(r02) 35
43: 40 Load 42(i4x1)
44: 37 Transpose 43
Store 39(r03) 44
47: 19 Load 46(i1x2)
48: 22 Transpose 47
Store 45(r10) 48
53: 49 Load 52(i2x2)
54: 49 Transpose 53
Store 51(r11) 54
61: 58 Load 60(i3x2)
62: 55 Transpose 61
Store 57(r12) 62
69: 66 Load 68(i4x2)
70: 63 Transpose 69
Store 65(r13) 70
73: 28 Load 72(i1x3)
74: 31 Transpose 73
Store 71(r20) 74
77: 55 Load 76(i2x3)
78: 58 Transpose 77
Store 75(r21) 78
83: 79 Load 82(i3x3)
84: 79 Transpose 83
Store 81(r22) 84
91: 88 Load 90(i4x3)
92: 85 Transpose 91
Store 87(r23) 92
95: 37 Load 94(i1x4)
96: 40 Transpose 95
Store 93(r30) 96
99: 63 Load 98(i2x4)
100: 66 Transpose 99
Store 97(r31) 100
103: 85 Load 102(i3x4)
104: 88 Transpose 103
Store 101(r32) 104
109: 105 Load 108(i4x4)
110: 105 Transpose 109
Store 107(r33) 110
20(r00): 19(ptr) Variable Function
21(i1x1): 19(ptr) Variable Function
27(r01): 26(ptr) Variable Function
30(i2x1): 29(ptr) Variable Function
36(r02): 35(ptr) Variable Function
39(i3x1): 38(ptr) Variable Function
45(r03): 44(ptr) Variable Function
48(i4x1): 47(ptr) Variable Function
51(r10): 29(ptr) Variable Function
52(i1x2): 26(ptr) Variable Function
57(r11): 56(ptr) Variable Function
58(i2x2): 56(ptr) Variable Function
63(r12): 62(ptr) Variable Function
66(i3x2): 65(ptr) Variable Function
71(r13): 70(ptr) Variable Function
74(i4x2): 73(ptr) Variable Function
77(r20): 38(ptr) Variable Function
78(i1x3): 35(ptr) Variable Function
81(r21): 65(ptr) Variable Function
82(i2x3): 62(ptr) Variable Function
87(r22): 86(ptr) Variable Function
88(i3x3): 86(ptr) Variable Function
93(r23): 92(ptr) Variable Function
96(i4x3): 95(ptr) Variable Function
99(r30): 47(ptr) Variable Function
100(i1x4): 44(ptr) Variable Function
103(r31): 73(ptr) Variable Function
104(i2x4): 70(ptr) Variable Function
107(r32): 95(ptr) Variable Function
108(i3x4): 92(ptr) Variable Function
113(r33): 112(ptr) Variable Function
114(i4x4): 112(ptr) Variable Function
22: 18 Load 21(i1x1)
23: 18 Transpose 22
Store 20(r00) 23
31: 28 Load 30(i2x1)
32: 25 Transpose 31
Store 27(r01) 32
40: 37 Load 39(i3x1)
41: 34 Transpose 40
Store 36(r02) 41
49: 46 Load 48(i4x1)
50: 43 Transpose 49
Store 45(r03) 50
53: 25 Load 52(i1x2)
54: 28 Transpose 53
Store 51(r10) 54
59: 55 Load 58(i2x2)
60: 55 Transpose 59
Store 57(r11) 60
67: 64 Load 66(i3x2)
68: 61 Transpose 67
Store 63(r12) 68
75: 72 Load 74(i4x2)
76: 69 Transpose 75
Store 71(r13) 76
79: 34 Load 78(i1x3)
80: 37 Transpose 79
Store 77(r20) 80
83: 61 Load 82(i2x3)
84: 64 Transpose 83
Store 81(r21) 84
89: 85 Load 88(i3x3)
90: 85 Transpose 89
Store 87(r22) 90
97: 94 Load 96(i4x3)
98: 91 Transpose 97
Store 93(r23) 98
101: 43 Load 100(i1x4)
102: 46 Transpose 101
Store 99(r30) 102
105: 69 Load 104(i2x4)
106: 72 Transpose 105
Store 103(r31) 106
109: 91 Load 108(i3x4)
110: 94 Transpose 109
Store 107(r32) 110
115: 111 Load 114(i4x4)
116: 111 Transpose 115
Store 113(r33) 116
Return
FunctionEnd
8(TestUintMatTypes(): 2 Function None 3
9: Label
115(r00): 114(ptr) Variable Function
116(u1x1): 114(ptr) Variable Function
122(r01): 121(ptr) Variable Function
125(u2x1): 124(ptr) Variable Function
131(r02): 130(ptr) Variable Function
134(u3x1): 133(ptr) Variable Function
140(r03): 139(ptr) Variable Function
143(u4x1): 142(ptr) Variable Function
146(r10): 124(ptr) Variable Function
147(u1x2): 121(ptr) Variable Function
152(r11): 151(ptr) Variable Function
153(u2x2): 151(ptr) Variable Function
158(r12): 157(ptr) Variable Function
161(u3x2): 160(ptr) Variable Function
166(r13): 165(ptr) Variable Function
169(u4x2): 168(ptr) Variable Function
172(r20): 133(ptr) Variable Function
173(u1x3): 130(ptr) Variable Function
176(r21): 160(ptr) Variable Function
177(u2x3): 157(ptr) Variable Function
182(r22): 181(ptr) Variable Function
183(u3x3): 181(ptr) Variable Function
188(r23): 187(ptr) Variable Function
191(u4x3): 190(ptr) Variable Function
194(r30): 142(ptr) Variable Function
195(u1x4): 139(ptr) Variable Function
198(r31): 168(ptr) Variable Function
199(u2x4): 165(ptr) Variable Function
202(r32): 190(ptr) Variable Function
203(u3x4): 187(ptr) Variable Function
208(r33): 207(ptr) Variable Function
209(u4x4): 207(ptr) Variable Function
117: 113 Load 116(u1x1)
118: 113 Transpose 117
Store 115(r00) 118
126: 123 Load 125(u2x1)
127: 120 Transpose 126
Store 122(r01) 127
135: 132 Load 134(u3x1)
136: 129 Transpose 135
Store 131(r02) 136
144: 141 Load 143(u4x1)
145: 138 Transpose 144
Store 140(r03) 145
148: 120 Load 147(u1x2)
149: 123 Transpose 148
Store 146(r10) 149
154: 150 Load 153(u2x2)
155: 150 Transpose 154
Store 152(r11) 155
162: 159 Load 161(u3x2)
163: 156 Transpose 162
Store 158(r12) 163
170: 167 Load 169(u4x2)
171: 164 Transpose 170
Store 166(r13) 171
174: 129 Load 173(u1x3)
175: 132 Transpose 174
Store 172(r20) 175
178: 156 Load 177(u2x3)
179: 159 Transpose 178
Store 176(r21) 179
184: 180 Load 183(u3x3)
185: 180 Transpose 184
Store 182(r22) 185
192: 189 Load 191(u4x3)
193: 186 Transpose 192
Store 188(r23) 193
196: 138 Load 195(u1x4)
197: 141 Transpose 196
Store 194(r30) 197
200: 164 Load 199(u2x4)
201: 167 Transpose 200
Store 198(r31) 201
204: 186 Load 203(u3x4)
205: 189 Transpose 204
Store 202(r32) 205
210: 206 Load 209(u4x4)
211: 206 Transpose 210
Store 208(r33) 211
121(r00): 120(ptr) Variable Function
122(u1x1): 120(ptr) Variable Function
128(r01): 127(ptr) Variable Function
131(u2x1): 130(ptr) Variable Function
137(r02): 136(ptr) Variable Function
140(u3x1): 139(ptr) Variable Function
146(r03): 145(ptr) Variable Function
149(u4x1): 148(ptr) Variable Function
152(r10): 130(ptr) Variable Function
153(u1x2): 127(ptr) Variable Function
158(r11): 157(ptr) Variable Function
159(u2x2): 157(ptr) Variable Function
164(r12): 163(ptr) Variable Function
167(u3x2): 166(ptr) Variable Function
172(r13): 171(ptr) Variable Function
175(u4x2): 174(ptr) Variable Function
178(r20): 139(ptr) Variable Function
179(u1x3): 136(ptr) Variable Function
182(r21): 166(ptr) Variable Function
183(u2x3): 163(ptr) Variable Function
188(r22): 187(ptr) Variable Function
189(u3x3): 187(ptr) Variable Function
194(r23): 193(ptr) Variable Function
197(u4x3): 196(ptr) Variable Function
200(r30): 148(ptr) Variable Function
201(u1x4): 145(ptr) Variable Function
204(r31): 174(ptr) Variable Function
205(u2x4): 171(ptr) Variable Function
208(r32): 196(ptr) Variable Function
209(u3x4): 193(ptr) Variable Function
214(r33): 213(ptr) Variable Function
215(u4x4): 213(ptr) Variable Function
123: 119 Load 122(u1x1)
124: 119 Transpose 123
Store 121(r00) 124
132: 129 Load 131(u2x1)
133: 126 Transpose 132
Store 128(r01) 133
141: 138 Load 140(u3x1)
142: 135 Transpose 141
Store 137(r02) 142
150: 147 Load 149(u4x1)
151: 144 Transpose 150
Store 146(r03) 151
154: 126 Load 153(u1x2)
155: 129 Transpose 154
Store 152(r10) 155
160: 156 Load 159(u2x2)
161: 156 Transpose 160
Store 158(r11) 161
168: 165 Load 167(u3x2)
169: 162 Transpose 168
Store 164(r12) 169
176: 173 Load 175(u4x2)
177: 170 Transpose 176
Store 172(r13) 177
180: 135 Load 179(u1x3)
181: 138 Transpose 180
Store 178(r20) 181
184: 162 Load 183(u2x3)
185: 165 Transpose 184
Store 182(r21) 185
190: 186 Load 189(u3x3)
191: 186 Transpose 190
Store 188(r22) 191
198: 195 Load 197(u4x3)
199: 192 Transpose 198
Store 194(r23) 199
202: 144 Load 201(u1x4)
203: 147 Transpose 202
Store 200(r30) 203
206: 170 Load 205(u2x4)
207: 173 Transpose 206
Store 204(r31) 207
210: 192 Load 209(u3x4)
211: 195 Transpose 210
Store 208(r32) 211
216: 212 Load 215(u4x4)
217: 212 Transpose 216
Store 214(r33) 217
Return
FunctionEnd
14(@main():12(PS_OUTPUT) Function None 13
15: Label
219(ps_output): 218(ptr) Variable Function
224: 223(ptr) AccessChain 219(ps_output) 220
Store 224 222
225:12(PS_OUTPUT) Load 219(ps_output)
ReturnValue 225
FunctionEnd