mirror of
https://github.com/KhronosGroup/glslang
synced 2024-09-18 19:59:54 +00:00
SPV testing: Add missing test case.
This commit is contained in:
parent
55e7d11ce8
commit
085371d9d4
359
Test/baseResults/spv.intOps.vert.out
Normal file
359
Test/baseResults/spv.intOps.vert.out
Normal file
@ -0,0 +1,359 @@
|
||||
spv.intOps.vert
|
||||
Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
|
||||
|
||||
|
||||
Linked vertex stage:
|
||||
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 270
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Vertex 4 "main" 47 26 173 67 121 142 100 247 156 146 182 83 15 9 21 268 269
|
||||
Source ESSL 310
|
||||
Name 4 "main"
|
||||
Name 9 "iout"
|
||||
Name 15 "uout"
|
||||
Name 21 "fout"
|
||||
Name 26 "u2"
|
||||
Name 30 "u2out"
|
||||
Name 31 "ResType"
|
||||
Name 47 "u1"
|
||||
Name 51 "u1out"
|
||||
Name 52 "ResType"
|
||||
Name 67 "u4"
|
||||
Name 71 "u4outHi"
|
||||
Name 72 "u4outLow"
|
||||
Name 73 "ResType"
|
||||
Name 83 "i4"
|
||||
Name 87 "i4outHi"
|
||||
Name 88 "i4outLow"
|
||||
Name 89 "ResType"
|
||||
Name 100 "v3"
|
||||
Name 104 "i3out"
|
||||
Name 105 "ResType"
|
||||
Name 121 "v1"
|
||||
Name 124 "i1out"
|
||||
Name 125 "ResType"
|
||||
Name 142 "v2"
|
||||
Name 146 "i2"
|
||||
Name 156 "i1"
|
||||
Name 173 "u3"
|
||||
Name 182 "i3"
|
||||
Name 247 "v4"
|
||||
Name 268 "gl_VertexID"
|
||||
Name 269 "gl_InstanceID"
|
||||
Decorate 268(gl_VertexID) BuiltIn VertexId
|
||||
Decorate 269(gl_InstanceID) BuiltIn InstanceId
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeInt 32 1
|
||||
7: TypeVector 6(int) 4
|
||||
8: TypePointer Output 7(ivec4)
|
||||
9(iout): 8(ptr) Variable Output
|
||||
10: 6(int) Constant 0
|
||||
11: 7(ivec4) ConstantComposite 10 10 10 10
|
||||
12: TypeInt 32 0
|
||||
13: TypeVector 12(int) 4
|
||||
14: TypePointer Output 13(ivec4)
|
||||
15(uout): 14(ptr) Variable Output
|
||||
16: 12(int) Constant 0
|
||||
17: 13(ivec4) ConstantComposite 16 16 16 16
|
||||
18: TypeFloat 32
|
||||
19: TypeVector 18(float) 4
|
||||
20: TypePointer Output 19(fvec4)
|
||||
21(fout): 20(ptr) Variable Output
|
||||
22: 18(float) Constant 0
|
||||
23: 19(fvec4) ConstantComposite 22 22 22 22
|
||||
24: TypeVector 12(int) 2
|
||||
25: TypePointer Input 24(ivec2)
|
||||
26(u2): 25(ptr) Variable Input
|
||||
29: TypePointer Function 24(ivec2)
|
||||
31(ResType): TypeStruct 24(ivec2) 24(ivec2)
|
||||
46: TypePointer Input 12(int)
|
||||
47(u1): 46(ptr) Variable Input
|
||||
50: TypePointer Function 12(int)
|
||||
52(ResType): TypeStruct 12(int) 12(int)
|
||||
56: TypePointer Output 12(int)
|
||||
66: TypePointer Input 13(ivec4)
|
||||
67(u4): 66(ptr) Variable Input
|
||||
70: TypePointer Function 13(ivec4)
|
||||
73(ResType): TypeStruct 13(ivec4) 13(ivec4)
|
||||
82: TypePointer Input 7(ivec4)
|
||||
83(i4): 82(ptr) Variable Input
|
||||
86: TypePointer Function 7(ivec4)
|
||||
89(ResType): TypeStruct 7(ivec4) 7(ivec4)
|
||||
98: TypeVector 18(float) 3
|
||||
99: TypePointer Input 98(fvec3)
|
||||
100(v3): 99(ptr) Variable Input
|
||||
102: TypeVector 6(int) 3
|
||||
103: TypePointer Function 102(ivec3)
|
||||
105(ResType): TypeStruct 98(fvec3) 102(ivec3)
|
||||
120: TypePointer Input 18(float)
|
||||
121(v1): 120(ptr) Variable Input
|
||||
123: TypePointer Function 6(int)
|
||||
125(ResType): TypeStruct 18(float) 6(int)
|
||||
129: TypePointer Output 18(float)
|
||||
135: TypePointer Output 6(int)
|
||||
140: TypeVector 18(float) 2
|
||||
141: TypePointer Input 140(fvec2)
|
||||
142(v2): 141(ptr) Variable Input
|
||||
144: TypeVector 6(int) 2
|
||||
145: TypePointer Input 144(ivec2)
|
||||
146(i2): 145(ptr) Variable Input
|
||||
155: TypePointer Input 6(int)
|
||||
156(i1): 155(ptr) Variable Input
|
||||
164: 6(int) Constant 4
|
||||
165: 6(int) Constant 5
|
||||
171: TypeVector 12(int) 3
|
||||
172: TypePointer Input 171(ivec3)
|
||||
173(u3): 172(ptr) Variable Input
|
||||
181: TypePointer Input 102(ivec3)
|
||||
182(i3): 181(ptr) Variable Input
|
||||
246: TypePointer Input 19(fvec4)
|
||||
247(v4): 246(ptr) Variable Input
|
||||
268(gl_VertexID): 155(ptr) Variable Input
|
||||
269(gl_InstanceID): 155(ptr) Variable Input
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
30(u2out): 29(ptr) Variable Function
|
||||
51(u1out): 50(ptr) Variable Function
|
||||
71(u4outHi): 70(ptr) Variable Function
|
||||
72(u4outLow): 70(ptr) Variable Function
|
||||
87(i4outHi): 86(ptr) Variable Function
|
||||
88(i4outLow): 86(ptr) Variable Function
|
||||
104(i3out): 103(ptr) Variable Function
|
||||
124(i1out): 123(ptr) Variable Function
|
||||
Store 9(iout) 11
|
||||
Store 15(uout) 17
|
||||
Store 21(fout) 23
|
||||
27: 24(ivec2) Load 26(u2)
|
||||
28: 24(ivec2) Load 26(u2)
|
||||
32: 31(ResType) IAddCarry 27 28
|
||||
33: 24(ivec2) CompositeExtract 32 1
|
||||
Store 30(u2out) 33
|
||||
34: 24(ivec2) CompositeExtract 32 0
|
||||
35: 13(ivec4) Load 15(uout)
|
||||
36: 24(ivec2) VectorShuffle 35 35 0 1
|
||||
37: 24(ivec2) IAdd 36 34
|
||||
38: 13(ivec4) Load 15(uout)
|
||||
39: 13(ivec4) VectorShuffle 38 37 4 5 2 3
|
||||
Store 15(uout) 39
|
||||
40: 24(ivec2) Load 30(u2out)
|
||||
41: 13(ivec4) Load 15(uout)
|
||||
42: 24(ivec2) VectorShuffle 41 41 0 1
|
||||
43: 24(ivec2) IAdd 42 40
|
||||
44: 13(ivec4) Load 15(uout)
|
||||
45: 13(ivec4) VectorShuffle 44 43 4 5 2 3
|
||||
Store 15(uout) 45
|
||||
48: 12(int) Load 47(u1)
|
||||
49: 12(int) Load 47(u1)
|
||||
53: 52(ResType) ISubBorrow 48 49
|
||||
54: 12(int) CompositeExtract 53 1
|
||||
Store 51(u1out) 54
|
||||
55: 12(int) CompositeExtract 53 0
|
||||
57: 56(ptr) AccessChain 15(uout) 16
|
||||
58: 12(int) Load 57
|
||||
59: 12(int) IAdd 58 55
|
||||
60: 56(ptr) AccessChain 15(uout) 16
|
||||
Store 60 59
|
||||
61: 12(int) Load 51(u1out)
|
||||
62: 56(ptr) AccessChain 15(uout) 16
|
||||
63: 12(int) Load 62
|
||||
64: 12(int) IAdd 63 61
|
||||
65: 56(ptr) AccessChain 15(uout) 16
|
||||
Store 65 64
|
||||
68: 13(ivec4) Load 67(u4)
|
||||
69: 13(ivec4) Load 67(u4)
|
||||
74: 73(ResType) UMulExtended 68 69
|
||||
75: 13(ivec4) CompositeExtract 74 0
|
||||
Store 72(u4outLow) 75
|
||||
76: 13(ivec4) CompositeExtract 74 1
|
||||
Store 71(u4outHi) 76
|
||||
77: 13(ivec4) Load 71(u4outHi)
|
||||
78: 13(ivec4) Load 72(u4outLow)
|
||||
79: 13(ivec4) IAdd 77 78
|
||||
80: 13(ivec4) Load 15(uout)
|
||||
81: 13(ivec4) IAdd 80 79
|
||||
Store 15(uout) 81
|
||||
84: 7(ivec4) Load 83(i4)
|
||||
85: 7(ivec4) Load 83(i4)
|
||||
90: 89(ResType) SMulExtended 84 85
|
||||
91: 7(ivec4) CompositeExtract 90 0
|
||||
Store 88(i4outLow) 91
|
||||
92: 7(ivec4) CompositeExtract 90 1
|
||||
Store 87(i4outHi) 92
|
||||
93: 7(ivec4) Load 88(i4outLow)
|
||||
94: 7(ivec4) Load 87(i4outHi)
|
||||
95: 7(ivec4) IAdd 93 94
|
||||
96: 7(ivec4) Load 9(iout)
|
||||
97: 7(ivec4) IAdd 96 95
|
||||
Store 9(iout) 97
|
||||
101: 98(fvec3) Load 100(v3)
|
||||
106:105(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 101 104(i3out)
|
||||
107: 102(ivec3) CompositeExtract 106 1
|
||||
Store 104(i3out) 107
|
||||
108: 98(fvec3) CompositeExtract 106 0
|
||||
109: 19(fvec4) Load 21(fout)
|
||||
110: 98(fvec3) VectorShuffle 109 109 0 1 2
|
||||
111: 98(fvec3) FAdd 110 108
|
||||
112: 19(fvec4) Load 21(fout)
|
||||
113: 19(fvec4) VectorShuffle 112 111 4 5 6 3
|
||||
Store 21(fout) 113
|
||||
114: 102(ivec3) Load 104(i3out)
|
||||
115: 7(ivec4) Load 9(iout)
|
||||
116: 102(ivec3) VectorShuffle 115 115 0 1 2
|
||||
117: 102(ivec3) IAdd 116 114
|
||||
118: 7(ivec4) Load 9(iout)
|
||||
119: 7(ivec4) VectorShuffle 118 117 4 5 6 3
|
||||
Store 9(iout) 119
|
||||
122: 18(float) Load 121(v1)
|
||||
126:125(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 122 124(i1out)
|
||||
127: 6(int) CompositeExtract 126 1
|
||||
Store 124(i1out) 127
|
||||
128: 18(float) CompositeExtract 126 0
|
||||
130: 129(ptr) AccessChain 21(fout) 16
|
||||
131: 18(float) Load 130
|
||||
132: 18(float) FAdd 131 128
|
||||
133: 129(ptr) AccessChain 21(fout) 16
|
||||
Store 133 132
|
||||
134: 6(int) Load 124(i1out)
|
||||
136: 135(ptr) AccessChain 9(iout) 16
|
||||
137: 6(int) Load 136
|
||||
138: 6(int) IAdd 137 134
|
||||
139: 135(ptr) AccessChain 9(iout) 16
|
||||
Store 139 138
|
||||
143: 140(fvec2) Load 142(v2)
|
||||
147: 144(ivec2) Load 146(i2)
|
||||
148: 140(fvec2) ExtInst 1(GLSL.std.450) 53(Ldexp) 143 147
|
||||
149: 19(fvec4) Load 21(fout)
|
||||
150: 140(fvec2) VectorShuffle 149 149 0 1
|
||||
151: 140(fvec2) FAdd 150 148
|
||||
152: 19(fvec4) Load 21(fout)
|
||||
153: 19(fvec4) VectorShuffle 152 151 4 5 2 3
|
||||
Store 21(fout) 153
|
||||
154: 18(float) Load 121(v1)
|
||||
157: 6(int) Load 156(i1)
|
||||
158: 18(float) ExtInst 1(GLSL.std.450) 53(Ldexp) 154 157
|
||||
159: 129(ptr) AccessChain 21(fout) 16
|
||||
160: 18(float) Load 159
|
||||
161: 18(float) FAdd 160 158
|
||||
162: 129(ptr) AccessChain 21(fout) 16
|
||||
Store 162 161
|
||||
163: 6(int) Load 156(i1)
|
||||
166: 6(int) BitFieldSExtract 163 164 165
|
||||
167: 135(ptr) AccessChain 9(iout) 16
|
||||
168: 6(int) Load 167
|
||||
169: 6(int) IAdd 168 166
|
||||
170: 135(ptr) AccessChain 9(iout) 16
|
||||
Store 170 169
|
||||
174: 171(ivec3) Load 173(u3)
|
||||
175: 171(ivec3) BitFieldUExtract 174 164 165
|
||||
176: 13(ivec4) Load 15(uout)
|
||||
177: 171(ivec3) VectorShuffle 176 176 0 1 2
|
||||
178: 171(ivec3) IAdd 177 175
|
||||
179: 13(ivec4) Load 15(uout)
|
||||
180: 13(ivec4) VectorShuffle 179 178 4 5 6 3
|
||||
Store 15(uout) 180
|
||||
183: 102(ivec3) Load 182(i3)
|
||||
184: 102(ivec3) Load 182(i3)
|
||||
185: 102(ivec3) BitFieldInsert 183 184 164 165
|
||||
186: 7(ivec4) Load 9(iout)
|
||||
187: 102(ivec3) VectorShuffle 186 186 0 1 2
|
||||
188: 102(ivec3) IAdd 187 185
|
||||
189: 7(ivec4) Load 9(iout)
|
||||
190: 7(ivec4) VectorShuffle 189 188 4 5 6 3
|
||||
Store 9(iout) 190
|
||||
191: 12(int) Load 47(u1)
|
||||
192: 12(int) Load 47(u1)
|
||||
193: 12(int) BitFieldInsert 191 192 164 165
|
||||
194: 56(ptr) AccessChain 15(uout) 16
|
||||
195: 12(int) Load 194
|
||||
196: 12(int) IAdd 195 193
|
||||
197: 56(ptr) AccessChain 15(uout) 16
|
||||
Store 197 196
|
||||
198: 144(ivec2) Load 146(i2)
|
||||
199: 144(ivec2) BitReverse 198
|
||||
200: 7(ivec4) Load 9(iout)
|
||||
201: 144(ivec2) VectorShuffle 200 200 0 1
|
||||
202: 144(ivec2) IAdd 201 199
|
||||
203: 7(ivec4) Load 9(iout)
|
||||
204: 7(ivec4) VectorShuffle 203 202 4 5 2 3
|
||||
Store 9(iout) 204
|
||||
205: 13(ivec4) Load 67(u4)
|
||||
206: 13(ivec4) BitReverse 205
|
||||
207: 13(ivec4) Load 15(uout)
|
||||
208: 13(ivec4) IAdd 207 206
|
||||
Store 15(uout) 208
|
||||
209: 6(int) Load 156(i1)
|
||||
210: 6(int) BitCount 209
|
||||
211: 135(ptr) AccessChain 9(iout) 16
|
||||
212: 6(int) Load 211
|
||||
213: 6(int) IAdd 212 210
|
||||
214: 135(ptr) AccessChain 9(iout) 16
|
||||
Store 214 213
|
||||
215: 171(ivec3) Load 173(u3)
|
||||
216: 102(ivec3) BitCount 215
|
||||
217: 7(ivec4) Load 9(iout)
|
||||
218: 102(ivec3) VectorShuffle 217 217 0 1 2
|
||||
219: 102(ivec3) IAdd 218 216
|
||||
220: 7(ivec4) Load 9(iout)
|
||||
221: 7(ivec4) VectorShuffle 220 219 4 5 6 3
|
||||
Store 9(iout) 221
|
||||
222: 144(ivec2) Load 146(i2)
|
||||
223: 144(ivec2) ExtInst 1(GLSL.std.450) 73(FindILsb) 222
|
||||
224: 7(ivec4) Load 9(iout)
|
||||
225: 144(ivec2) VectorShuffle 224 224 0 1
|
||||
226: 144(ivec2) IAdd 225 223
|
||||
227: 7(ivec4) Load 9(iout)
|
||||
228: 7(ivec4) VectorShuffle 227 226 4 5 2 3
|
||||
Store 9(iout) 228
|
||||
229: 13(ivec4) Load 67(u4)
|
||||
230: 7(ivec4) ExtInst 1(GLSL.std.450) 73(FindILsb) 229
|
||||
231: 7(ivec4) Load 9(iout)
|
||||
232: 7(ivec4) IAdd 231 230
|
||||
Store 9(iout) 232
|
||||
233: 6(int) Load 156(i1)
|
||||
234: 6(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 233
|
||||
235: 135(ptr) AccessChain 9(iout) 16
|
||||
236: 6(int) Load 235
|
||||
237: 6(int) IAdd 236 234
|
||||
238: 135(ptr) AccessChain 9(iout) 16
|
||||
Store 238 237
|
||||
239: 24(ivec2) Load 26(u2)
|
||||
240: 144(ivec2) ExtInst 1(GLSL.std.450) 75(FindUMsb) 239
|
||||
241: 7(ivec4) Load 9(iout)
|
||||
242: 144(ivec2) VectorShuffle 241 241 0 1
|
||||
243: 144(ivec2) IAdd 242 240
|
||||
244: 7(ivec4) Load 9(iout)
|
||||
245: 7(ivec4) VectorShuffle 244 243 4 5 2 3
|
||||
Store 9(iout) 245
|
||||
248: 19(fvec4) Load 247(v4)
|
||||
249: 12(int) ExtInst 1(GLSL.std.450) 55(PackUnorm4x8) 248
|
||||
250: 56(ptr) AccessChain 15(uout) 16
|
||||
251: 12(int) Load 250
|
||||
252: 12(int) IAdd 251 249
|
||||
253: 56(ptr) AccessChain 15(uout) 16
|
||||
Store 253 252
|
||||
254: 19(fvec4) Load 247(v4)
|
||||
255: 12(int) ExtInst 1(GLSL.std.450) 54(PackSnorm4x8) 254
|
||||
256: 56(ptr) AccessChain 15(uout) 16
|
||||
257: 12(int) Load 256
|
||||
258: 12(int) IAdd 257 255
|
||||
259: 56(ptr) AccessChain 15(uout) 16
|
||||
Store 259 258
|
||||
260: 12(int) Load 47(u1)
|
||||
261: 19(fvec4) ExtInst 1(GLSL.std.450) 64(UnpackUnorm4x8) 260
|
||||
262: 19(fvec4) Load 21(fout)
|
||||
263: 19(fvec4) FAdd 262 261
|
||||
Store 21(fout) 263
|
||||
264: 12(int) Load 47(u1)
|
||||
265: 19(fvec4) ExtInst 1(GLSL.std.450) 63(UnpackSnorm4x8) 264
|
||||
266: 19(fvec4) Load 21(fout)
|
||||
267: 19(fvec4) FAdd 266 265
|
||||
Store 21(fout) 267
|
||||
Return
|
||||
FunctionEnd
|
72
Test/spv.intOps.vert
Normal file
72
Test/spv.intOps.vert
Normal file
@ -0,0 +1,72 @@
|
||||
#version 310 es
|
||||
|
||||
in uint u1;
|
||||
in uvec2 u2;
|
||||
in uvec3 u3;
|
||||
in uvec4 u4;
|
||||
|
||||
in float v1;
|
||||
in vec2 v2;
|
||||
in vec3 v3;
|
||||
in vec4 v4;
|
||||
|
||||
in int i1;
|
||||
in ivec2 i2;
|
||||
in ivec3 i3;
|
||||
in ivec4 i4;
|
||||
|
||||
out uvec4 uout;
|
||||
out ivec4 iout;
|
||||
out vec4 fout;
|
||||
|
||||
void main()
|
||||
{
|
||||
iout = ivec4(0);
|
||||
uout = uvec4(0);
|
||||
fout = vec4(0.0);
|
||||
|
||||
uvec2 u2out;
|
||||
uout.xy += uaddCarry(u2, u2, u2out);
|
||||
uout.xy += u2out;
|
||||
|
||||
uint u1out;
|
||||
uout.x += usubBorrow(u1, u1, u1out);
|
||||
uout.x += u1out;
|
||||
|
||||
uvec4 u4outHi, u4outLow;
|
||||
umulExtended(u4, u4, u4outHi, u4outLow);
|
||||
uout += u4outHi + u4outLow;
|
||||
|
||||
ivec4 i4outHi, i4outLow;
|
||||
imulExtended(i4, i4, i4outHi, i4outLow);
|
||||
iout += i4outLow + i4outHi;
|
||||
|
||||
ivec3 i3out;
|
||||
fout.xyz += frexp(v3, i3out);
|
||||
iout.xyz += i3out;
|
||||
int i1out;
|
||||
fout.x += frexp(v1, i1out);
|
||||
iout.x += i1out;
|
||||
|
||||
fout.xy += ldexp(v2, i2);
|
||||
fout.x += ldexp(v1, i1);
|
||||
|
||||
iout.x += bitfieldExtract(i1, 4, 5);
|
||||
uout.xyz += bitfieldExtract(u3, 4, 5);
|
||||
iout.xyz += bitfieldInsert(i3, i3, 4, 5);
|
||||
uout.x += bitfieldInsert(u1, u1, 4, 5);
|
||||
iout.xy += bitfieldReverse(i2);
|
||||
uout += bitfieldReverse(u4);
|
||||
iout.x += bitCount(i1);
|
||||
iout.xyz += bitCount(u3);
|
||||
|
||||
iout.xy += findLSB(i2);
|
||||
iout += findLSB(u4);
|
||||
iout.x += findMSB(i1);
|
||||
iout.xy += findMSB(u2);
|
||||
|
||||
uout.x += packUnorm4x8(v4);
|
||||
uout.x += packSnorm4x8(v4);
|
||||
fout += unpackUnorm4x8(u1);
|
||||
fout += unpackSnorm4x8(u1);
|
||||
}
|
@ -2,5 +2,5 @@
|
||||
// For the version, it uses the latest git tag followed by the number of commits.
|
||||
// For the date, it uses the current date (when then script is run).
|
||||
|
||||
#define GLSLANG_REVISION "3.0.798"
|
||||
#define GLSLANG_DATE "15-Nov-2015"
|
||||
#define GLSLANG_REVISION "SPIRV99.798"
|
||||
#define GLSLANG_DATE "16-Nov-2015"
|
||||
|
Loading…
Reference in New Issue
Block a user