Fix #1360: uint->int width conversions must still be typed as uint.

This commit is contained in:
John Kessenich 2018-06-04 19:11:25 -06:00
parent 14b85d3ff3
commit ad7645f4f5
8 changed files with 662 additions and 701 deletions

View File

@ -190,7 +190,7 @@ protected:
glslang::TBasicType typeProxy); glslang::TBasicType typeProxy);
spv::Id createConversion(glslang::TOperator op, OpDecorations&, spv::Id destTypeId, spv::Id operand, spv::Id createConversion(glslang::TOperator op, OpDecorations&, spv::Id destTypeId, spv::Id operand,
glslang::TBasicType typeProxy); glslang::TBasicType typeProxy);
spv::Id createConversionOperation(glslang::TOperator op, spv::Id operand, int vectorSize); spv::Id createIntWidthConversion(glslang::TOperator op, spv::Id operand, int vectorSize);
spv::Id makeSmearedConstant(spv::Id constant, int vectorSize); spv::Id makeSmearedConstant(spv::Id constant, int vectorSize);
spv::Id createAtomicOperation(glslang::TOperator op, spv::Decoration precision, spv::Id typeId, std::vector<spv::Id>& operands, glslang::TBasicType typeProxy); spv::Id createAtomicOperation(glslang::TOperator op, spv::Decoration precision, spv::Id typeId, std::vector<spv::Id>& operands, glslang::TBasicType typeProxy);
spv::Id createInvocationsOperation(glslang::TOperator op, spv::Id typeId, std::vector<spv::Id>& operands, glslang::TBasicType typeProxy); spv::Id createInvocationsOperation(glslang::TOperator op, spv::Id typeId, std::vector<spv::Id>& operands, glslang::TBasicType typeProxy);
@ -4830,109 +4830,45 @@ spv::Id TGlslangToSpvTraverser::createUnaryMatrixOperation(spv::Op op, OpDecorat
return result; return result;
} }
spv::Id TGlslangToSpvTraverser::createConversionOperation(glslang::TOperator op, spv::Id operand, int vectorSize) // For converting integers where both the bitwidth and the signedness could
// change, but only do the width change here. The caller is still responsible
// for the signedness conversion.
spv::Id TGlslangToSpvTraverser::createIntWidthConversion(glslang::TOperator op, spv::Id operand, int vectorSize)
{ {
spv::Op convOp = spv::OpNop; // Get the result type width, based on the type to convert to.
spv::Id type = 0; int width = 32;
spv::Id result = 0;
switch(op) { switch(op) {
case glslang::EOpConvInt16ToUint8:
case glslang::EOpConvIntToUint8:
case glslang::EOpConvInt64ToUint8:
case glslang::EOpConvUint16ToInt8:
case glslang::EOpConvUintToInt8:
case glslang::EOpConvUint64ToInt8:
width = 8;
break;
case glslang::EOpConvInt8ToUint16: case glslang::EOpConvInt8ToUint16:
convOp = spv::OpSConvert; case glslang::EOpConvIntToUint16:
type = builder.makeIntType(16); case glslang::EOpConvInt64ToUint16:
case glslang::EOpConvUint8ToInt16:
case glslang::EOpConvUintToInt16:
case glslang::EOpConvUint64ToInt16:
width = 16;
break; break;
case glslang::EOpConvInt8ToUint: case glslang::EOpConvInt8ToUint:
convOp = spv::OpSConvert; case glslang::EOpConvInt16ToUint:
type = builder.makeIntType(32); case glslang::EOpConvInt64ToUint:
case glslang::EOpConvUint8ToInt:
case glslang::EOpConvUint16ToInt:
case glslang::EOpConvUint64ToInt:
width = 32;
break; break;
case glslang::EOpConvInt8ToUint64: case glslang::EOpConvInt8ToUint64:
convOp = spv::OpSConvert;
type = builder.makeIntType(64);
break;
case glslang::EOpConvInt16ToUint8:
convOp = spv::OpSConvert;
type = builder.makeIntType(8);
break;
case glslang::EOpConvInt16ToUint:
convOp = spv::OpSConvert;
type = builder.makeIntType(32);
break;
case glslang::EOpConvInt16ToUint64: case glslang::EOpConvInt16ToUint64:
convOp = spv::OpSConvert;
type = builder.makeIntType(64);
break;
case glslang::EOpConvIntToUint8:
convOp = spv::OpSConvert;
type = builder.makeIntType(8);
break;
case glslang::EOpConvIntToUint16:
convOp = spv::OpSConvert;
type = builder.makeIntType(16);
break;
case glslang::EOpConvIntToUint64: case glslang::EOpConvIntToUint64:
convOp = spv::OpSConvert;
type = builder.makeIntType(64);
break;
case glslang::EOpConvInt64ToUint8:
convOp = spv::OpSConvert;
type = builder.makeIntType(8);
break;
case glslang::EOpConvInt64ToUint16:
convOp = spv::OpSConvert;
type = builder.makeIntType(16);
break;
case glslang::EOpConvInt64ToUint:
convOp = spv::OpSConvert;
type = builder.makeIntType(32);
break;
case glslang::EOpConvUint8ToInt16:
convOp = spv::OpUConvert;
type = builder.makeIntType(16);
break;
case glslang::EOpConvUint8ToInt:
convOp = spv::OpUConvert;
type = builder.makeIntType(32);
break;
case glslang::EOpConvUint8ToInt64: case glslang::EOpConvUint8ToInt64:
convOp = spv::OpUConvert;
type = builder.makeIntType(64);
break;
case glslang::EOpConvUint16ToInt8:
convOp = spv::OpUConvert;
type = builder.makeIntType(8);
break;
case glslang::EOpConvUint16ToInt:
convOp = spv::OpUConvert;
type = builder.makeIntType(32);
break;
case glslang::EOpConvUint16ToInt64: case glslang::EOpConvUint16ToInt64:
convOp = spv::OpUConvert;
type = builder.makeIntType(64);
break;
case glslang::EOpConvUintToInt8:
convOp = spv::OpUConvert;
type = builder.makeIntType(8);
break;
case glslang::EOpConvUintToInt16:
convOp = spv::OpUConvert;
type = builder.makeIntType(16);
break;
case glslang::EOpConvUintToInt64: case glslang::EOpConvUintToInt64:
convOp = spv::OpUConvert; width = 64;
type = builder.makeIntType(64);
break;
case glslang::EOpConvUint64ToInt8:
convOp = spv::OpUConvert;
type = builder.makeIntType(8);
break;
case glslang::EOpConvUint64ToInt16:
convOp = spv::OpUConvert;
type = builder.makeIntType(16);
break;
case glslang::EOpConvUint64ToInt:
convOp = spv::OpUConvert;
type = builder.makeIntType(32);
break; break;
default: default:
@ -4940,11 +4876,36 @@ spv::Id TGlslangToSpvTraverser::createConversionOperation(glslang::TOperator op,
break; break;
} }
// Get the conversion operation and result type,
// based on the target width, but the source type.
spv::Id type = spv::NoType;
spv::Op convOp = spv::OpNop;
switch(op) {
case glslang::EOpConvInt8ToUint16:
case glslang::EOpConvInt8ToUint:
case glslang::EOpConvInt8ToUint64:
case glslang::EOpConvInt16ToUint8:
case glslang::EOpConvInt16ToUint:
case glslang::EOpConvInt16ToUint64:
case glslang::EOpConvIntToUint8:
case glslang::EOpConvIntToUint16:
case glslang::EOpConvIntToUint64:
case glslang::EOpConvInt64ToUint8:
case glslang::EOpConvInt64ToUint16:
case glslang::EOpConvInt64ToUint:
convOp = spv::OpSConvert;
type = builder.makeIntType(width);
break;
default:
convOp = spv::OpUConvert;
type = builder.makeUintType(width);
break;
}
if (vectorSize > 0) if (vectorSize > 0)
type = builder.makeVectorType(type, vectorSize); type = builder.makeVectorType(type, vectorSize);
result = builder.createUnaryOp(convOp, type, operand); return builder.createUnaryOp(convOp, type, operand);
return result;
} }
spv::Id TGlslangToSpvTraverser::createConversion(glslang::TOperator op, OpDecorations& decorations, spv::Id destType, spv::Id TGlslangToSpvTraverser::createConversion(glslang::TOperator op, OpDecorations& decorations, spv::Id destType,
@ -5219,7 +5180,7 @@ spv::Id TGlslangToSpvTraverser::createConversion(glslang::TOperator op, OpDecora
case glslang::EOpConvUint64ToInt16: case glslang::EOpConvUint64ToInt16:
case glslang::EOpConvUint64ToInt: case glslang::EOpConvUint64ToInt:
// OpSConvert/OpUConvert + OpBitCast // OpSConvert/OpUConvert + OpBitCast
operand = createConversionOperation(op, operand, vectorSize); operand = createIntWidthConversion(op, operand, vectorSize);
if (builder.isInSpecConstCodeGenMode()) { if (builder.isInSpecConstCodeGenMode()) {
// Build zero scalar or vector for OpIAdd. // Build zero scalar or vector for OpIAdd.

View File

@ -51,13 +51,13 @@ spv.explicittypes.frag
Name 133 "u8v" Name 133 "u8v"
Name 136 "i8v" Name 136 "i8v"
Name 141 "i16v" Name 141 "i16v"
Name 149 "i32v" Name 150 "i32v"
Name 157 "u32v" Name 158 "u32v"
Name 163 "i64v" Name 164 "i64v"
Name 168 "u64v" Name 169 "u64v"
Name 182 "f16v" Name 183 "f16v"
Name 188 "f32v" Name 189 "f32v"
Name 194 "f64v" Name 195 "f64v"
Name 222 "u16v" Name 222 "u16v"
Name 252 "bv" Name 252 "bv"
Name 268 "i32v" Name 268 "i32v"
@ -212,25 +212,25 @@ spv.explicittypes.frag
135: TypePointer Function 134(i8vec2) 135: TypePointer Function 134(i8vec2)
139: TypeVector 77(int16_t) 2 139: TypeVector 77(int16_t) 2
140: TypePointer Function 139(i16vec2) 140: TypePointer Function 139(i16vec2)
147: TypeVector 29(int) 2 145: TypeVector 91(int16_t) 2
148: TypePointer Function 147(ivec2) 148: TypeVector 29(int) 2
155: TypeVector 19(int) 2 149: TypePointer Function 148(ivec2)
156: TypePointer Function 155(ivec2) 154: TypeVector 19(int) 2
161: TypeVector 16(int64_t) 2 157: TypePointer Function 154(ivec2)
162: TypePointer Function 161(i64vec2) 162: TypeVector 16(int64_t) 2
166: TypeVector 38(int64_t) 2 163: TypePointer Function 162(i64vec2)
167: TypePointer Function 166(i64vec2) 167: TypeVector 38(int64_t) 2
179: TypeFloat 16 168: TypePointer Function 167(i64vec2)
180: TypeVector 179(float16_t) 2 180: TypeFloat 16
181: TypePointer Function 180(f16vec2) 181: TypeVector 180(float16_t) 2
185: TypeFloat 32 182: TypePointer Function 181(f16vec2)
186: TypeVector 185(float) 2 186: TypeFloat 32
187: TypePointer Function 186(fvec2) 187: TypeVector 186(float) 2
191: TypeFloat 64 188: TypePointer Function 187(fvec2)
192: TypeVector 191(float64_t) 2 192: TypeFloat 64
193: TypePointer Function 192(f64vec2) 193: TypeVector 192(float64_t) 2
220: TypeVector 91(int16_t) 2 194: TypePointer Function 193(f64vec2)
221: TypePointer Function 220(i16vec2) 221: TypePointer Function 145(i16vec2)
249: TypeBool 249: TypeBool
250: TypeVector 249(bool) 2 250: TypeVector 249(bool) 2
251: TypePointer Function 250(bvec2) 251: TypePointer Function 250(bvec2)
@ -247,23 +247,23 @@ spv.explicittypes.frag
368:139(i16vec2) ConstantComposite 366 366 368:139(i16vec2) ConstantComposite 366 366
371: 91(int16_t) Constant 0 371: 91(int16_t) Constant 0
372: 91(int16_t) Constant 1 372: 91(int16_t) Constant 1
373:220(i16vec2) ConstantComposite 371 371 373:145(i16vec2) ConstantComposite 371 371
374:220(i16vec2) ConstantComposite 372 372 374:145(i16vec2) ConstantComposite 372 372
467: 29(int) Constant 1 467: 29(int) Constant 1
468: 147(ivec2) ConstantComposite 30 30 468: 148(ivec2) ConstantComposite 30 30
469: 147(ivec2) ConstantComposite 467 467 469: 148(ivec2) ConstantComposite 467 467
472: 19(int) Constant 0 472: 19(int) Constant 0
473: 19(int) Constant 1 473: 19(int) Constant 1
474: 155(ivec2) ConstantComposite 472 472 474: 154(ivec2) ConstantComposite 472 472
475: 155(ivec2) ConstantComposite 473 473 475: 154(ivec2) ConstantComposite 473 473
550: 16(int64_t) Constant 0 0 550: 16(int64_t) Constant 0 0
551: 16(int64_t) Constant 1 0 551: 16(int64_t) Constant 1 0
552:161(i64vec2) ConstantComposite 550 550 552:162(i64vec2) ConstantComposite 550 550
553:161(i64vec2) ConstantComposite 551 551 553:162(i64vec2) ConstantComposite 551 551
556: 38(int64_t) Constant 0 0 556: 38(int64_t) Constant 0 0
557: 38(int64_t) Constant 1 0 557: 38(int64_t) Constant 1 0
558:166(i64vec2) ConstantComposite 556 556 558:167(i64vec2) ConstantComposite 556 556
559:166(i64vec2) ConstantComposite 557 557 559:167(i64vec2) ConstantComposite 557 557
565: TypeVector 77(int16_t) 3 565: TypeVector 77(int16_t) 3
566: TypeVector 77(int16_t) 4 566: TypeVector 77(int16_t) 4
567: TypeVector 91(int16_t) 3 567: TypeVector 91(int16_t) 3
@ -272,7 +272,7 @@ spv.explicittypes.frag
570: TypeVector 29(int) 4 570: TypeVector 29(int) 4
571: TypeVector 19(int) 3 571: TypeVector 19(int) 3
572: TypeVector 19(int) 4 572: TypeVector 19(int) 4
573(Block): TypeStruct 77(int16_t) 139(i16vec2) 565(i16vec3) 566(i16vec4) 91(int16_t) 220(i16vec2) 567(i16vec3) 568(i16vec4) 29(int) 147(ivec2) 569(ivec3) 570(ivec4) 19(int) 155(ivec2) 571(ivec3) 572(ivec4) 573(Block): TypeStruct 77(int16_t) 139(i16vec2) 565(i16vec3) 566(i16vec4) 91(int16_t) 145(i16vec2) 567(i16vec3) 568(i16vec4) 29(int) 148(ivec2) 569(ivec3) 570(ivec4) 19(int) 154(ivec2) 571(ivec3) 572(ivec4)
574: TypePointer Uniform 573(Block) 574: TypePointer Uniform 573(Block)
575(block): 574(ptr) Variable Uniform 575(block): 574(ptr) Variable Uniform
4(main): 2 Function None 3 4(main): 2 Function None 3
@ -352,13 +352,13 @@ spv.explicittypes.frag
133(u8v): 132(ptr) Variable Function 133(u8v): 132(ptr) Variable Function
136(i8v): 135(ptr) Variable Function 136(i8v): 135(ptr) Variable Function
141(i16v): 140(ptr) Variable Function 141(i16v): 140(ptr) Variable Function
149(i32v): 148(ptr) Variable Function 150(i32v): 149(ptr) Variable Function
157(u32v): 156(ptr) Variable Function 158(u32v): 157(ptr) Variable Function
163(i64v): 162(ptr) Variable Function 164(i64v): 163(ptr) Variable Function
168(u64v): 167(ptr) Variable Function 169(u64v): 168(ptr) Variable Function
182(f16v): 181(ptr) Variable Function 183(f16v): 182(ptr) Variable Function
188(f32v): 187(ptr) Variable Function 189(f32v): 188(ptr) Variable Function
194(f64v): 193(ptr) Variable Function 195(f64v): 194(ptr) Variable Function
222(u16v): 221(ptr) Variable Function 222(u16v): 221(ptr) Variable Function
252(bv): 251(ptr) Variable Function 252(bv): 251(ptr) Variable Function
137: 134(i8vec2) Load 136(i8v) 137: 134(i8vec2) Load 136(i8v)
@ -368,116 +368,116 @@ spv.explicittypes.frag
143:139(i16vec2) SConvert 142 143:139(i16vec2) SConvert 142
Store 141(i16v) 143 Store 141(i16v) 143
144: 131(i8vec2) Load 133(u8v) 144: 131(i8vec2) Load 133(u8v)
145:139(i16vec2) UConvert 144 146:145(i16vec2) UConvert 144
146:139(i16vec2) Bitcast 145 147:139(i16vec2) Bitcast 146
Store 141(i16v) 146 Store 141(i16v) 147
150: 134(i8vec2) Load 136(i8v) 151: 134(i8vec2) Load 136(i8v)
151: 147(ivec2) SConvert 150 152: 148(ivec2) SConvert 151
Store 149(i32v) 151 Store 150(i32v) 152
152: 131(i8vec2) Load 133(u8v) 153: 131(i8vec2) Load 133(u8v)
153: 147(ivec2) UConvert 152 155: 154(ivec2) UConvert 153
154: 147(ivec2) Bitcast 153 156: 148(ivec2) Bitcast 155
Store 149(i32v) 154 Store 150(i32v) 156
158: 134(i8vec2) Load 136(i8v) 159: 134(i8vec2) Load 136(i8v)
159: 147(ivec2) SConvert 158 160: 148(ivec2) SConvert 159
160: 155(ivec2) Bitcast 159 161: 154(ivec2) Bitcast 160
Store 157(u32v) 160 Store 158(u32v) 161
164: 134(i8vec2) Load 136(i8v) 165: 134(i8vec2) Load 136(i8v)
165:161(i64vec2) SConvert 164 166:162(i64vec2) SConvert 165
Store 163(i64v) 165 Store 164(i64v) 166
169: 134(i8vec2) Load 136(i8v) 170: 134(i8vec2) Load 136(i8v)
170:161(i64vec2) SConvert 169 171:162(i64vec2) SConvert 170
171:166(i64vec2) Bitcast 170 172:167(i64vec2) Bitcast 171
Store 168(u64v) 171 Store 169(u64v) 172
172: 131(i8vec2) Load 133(u8v) 173: 131(i8vec2) Load 133(u8v)
173: 155(ivec2) UConvert 172 174: 154(ivec2) UConvert 173
Store 157(u32v) 173 Store 158(u32v) 174
174: 131(i8vec2) Load 133(u8v) 175: 131(i8vec2) Load 133(u8v)
175:161(i64vec2) UConvert 174 176:167(i64vec2) UConvert 175
176:161(i64vec2) Bitcast 175 177:162(i64vec2) Bitcast 176
Store 163(i64v) 176 Store 164(i64v) 177
177: 131(i8vec2) Load 133(u8v) 178: 131(i8vec2) Load 133(u8v)
178:166(i64vec2) UConvert 177 179:167(i64vec2) UConvert 178
Store 168(u64v) 178 Store 169(u64v) 179
183: 134(i8vec2) Load 136(i8v) 184: 134(i8vec2) Load 136(i8v)
184:180(f16vec2) ConvertSToF 183 185:181(f16vec2) ConvertSToF 184
Store 182(f16v) 184 Store 183(f16v) 185
189: 134(i8vec2) Load 136(i8v) 190: 134(i8vec2) Load 136(i8v)
190: 186(fvec2) ConvertSToF 189 191: 187(fvec2) ConvertSToF 190
Store 188(f32v) 190 Store 189(f32v) 191
195: 134(i8vec2) Load 136(i8v) 196: 134(i8vec2) Load 136(i8v)
196:192(f64vec2) ConvertSToF 195 197:193(f64vec2) ConvertSToF 196
Store 194(f64v) 196 Store 195(f64v) 197
197: 131(i8vec2) Load 133(u8v) 198: 131(i8vec2) Load 133(u8v)
198:180(f16vec2) ConvertUToF 197 199:181(f16vec2) ConvertUToF 198
Store 182(f16v) 198 Store 183(f16v) 199
199: 131(i8vec2) Load 133(u8v) 200: 131(i8vec2) Load 133(u8v)
200: 186(fvec2) ConvertUToF 199 201: 187(fvec2) ConvertUToF 200
Store 188(f32v) 200 Store 189(f32v) 201
201: 131(i8vec2) Load 133(u8v) 202: 131(i8vec2) Load 133(u8v)
202:192(f64vec2) ConvertUToF 201 203:193(f64vec2) ConvertUToF 202
Store 194(f64v) 202 Store 195(f64v) 203
203: 131(i8vec2) Load 133(u8v) 204: 131(i8vec2) Load 133(u8v)
204: 134(i8vec2) Bitcast 203 205: 134(i8vec2) Bitcast 204
Store 136(i8v) 204 Store 136(i8v) 205
205: 134(i8vec2) Load 136(i8v) 206: 134(i8vec2) Load 136(i8v)
206:139(i16vec2) SConvert 205 207:139(i16vec2) SConvert 206
Store 141(i16v) 206 Store 141(i16v) 207
207: 131(i8vec2) Load 133(u8v) 208: 131(i8vec2) Load 133(u8v)
208:139(i16vec2) UConvert 207 209:145(i16vec2) UConvert 208
209:139(i16vec2) Bitcast 208 210:139(i16vec2) Bitcast 209
Store 141(i16v) 209 Store 141(i16v) 210
210: 134(i8vec2) Load 136(i8v) 211: 134(i8vec2) Load 136(i8v)
211: 147(ivec2) SConvert 210 212: 148(ivec2) SConvert 211
Store 149(i32v) 211 Store 150(i32v) 212
212: 131(i8vec2) Load 133(u8v) 213: 131(i8vec2) Load 133(u8v)
213: 147(ivec2) UConvert 212 214: 154(ivec2) UConvert 213
214: 147(ivec2) Bitcast 213 215: 148(ivec2) Bitcast 214
Store 149(i32v) 214 Store 150(i32v) 215
215: 134(i8vec2) Load 136(i8v) 216: 134(i8vec2) Load 136(i8v)
216:161(i64vec2) SConvert 215 217:162(i64vec2) SConvert 216
Store 163(i64v) 216 Store 164(i64v) 217
217: 134(i8vec2) Load 136(i8v) 218: 134(i8vec2) Load 136(i8v)
218:161(i64vec2) SConvert 217 219:162(i64vec2) SConvert 218
219:166(i64vec2) Bitcast 218 220:167(i64vec2) Bitcast 219
Store 168(u64v) 219 Store 169(u64v) 220
223: 134(i8vec2) Load 136(i8v) 223: 134(i8vec2) Load 136(i8v)
224:139(i16vec2) SConvert 223 224:139(i16vec2) SConvert 223
225:220(i16vec2) Bitcast 224 225:145(i16vec2) Bitcast 224
Store 222(u16v) 225 Store 222(u16v) 225
226: 131(i8vec2) Load 133(u8v) 226: 131(i8vec2) Load 133(u8v)
227:220(i16vec2) UConvert 226 227:145(i16vec2) UConvert 226
Store 222(u16v) 227 Store 222(u16v) 227
228: 131(i8vec2) Load 133(u8v) 228: 131(i8vec2) Load 133(u8v)
229: 155(ivec2) UConvert 228 229: 154(ivec2) UConvert 228
Store 157(u32v) 229 Store 158(u32v) 229
230: 131(i8vec2) Load 133(u8v) 230: 131(i8vec2) Load 133(u8v)
231:161(i64vec2) UConvert 230 231:167(i64vec2) UConvert 230
232:161(i64vec2) Bitcast 231 232:162(i64vec2) Bitcast 231
Store 163(i64v) 232 Store 164(i64v) 232
233: 131(i8vec2) Load 133(u8v) 233: 131(i8vec2) Load 133(u8v)
234:161(i64vec2) UConvert 233 234:167(i64vec2) UConvert 233
235:161(i64vec2) Bitcast 234 235:162(i64vec2) Bitcast 234
236:166(i64vec2) Bitcast 235 236:167(i64vec2) Bitcast 235
Store 168(u64v) 236 Store 169(u64v) 236
237: 134(i8vec2) Load 136(i8v) 237: 134(i8vec2) Load 136(i8v)
238:180(f16vec2) ConvertSToF 237 238:181(f16vec2) ConvertSToF 237
Store 182(f16v) 238 Store 183(f16v) 238
239: 134(i8vec2) Load 136(i8v) 239: 134(i8vec2) Load 136(i8v)
240: 186(fvec2) ConvertSToF 239 240: 187(fvec2) ConvertSToF 239
Store 188(f32v) 240 Store 189(f32v) 240
241: 134(i8vec2) Load 136(i8v) 241: 134(i8vec2) Load 136(i8v)
242:192(f64vec2) ConvertSToF 241 242:193(f64vec2) ConvertSToF 241
Store 194(f64v) 242 Store 195(f64v) 242
243: 131(i8vec2) Load 133(u8v) 243: 131(i8vec2) Load 133(u8v)
244:180(f16vec2) ConvertUToF 243 244:181(f16vec2) ConvertUToF 243
Store 182(f16v) 244 Store 183(f16v) 244
245: 131(i8vec2) Load 133(u8v) 245: 131(i8vec2) Load 133(u8v)
246: 186(fvec2) ConvertUToF 245 246: 187(fvec2) ConvertUToF 245
Store 188(f32v) 246 Store 189(f32v) 246
247: 131(i8vec2) Load 133(u8v) 247: 131(i8vec2) Load 133(u8v)
248:192(f64vec2) ConvertUToF 247 248:193(f64vec2) ConvertUToF 247
Store 194(f64v) 248 Store 195(f64v) 248
253: 250(bvec2) Load 252(bv) 253: 250(bvec2) Load 252(bv)
257: 134(i8vec2) Select 253 256 255 257: 134(i8vec2) Select 253 256 255
Store 136(i8v) 257 Store 136(i8v) 257
@ -494,388 +494,388 @@ spv.explicittypes.frag
FunctionEnd FunctionEnd
10(typeCast16(): 2 Function None 3 10(typeCast16(): 2 Function None 3
11: Label 11: Label
268(i32v): 148(ptr) Variable Function 268(i32v): 149(ptr) Variable Function
269(i16v): 140(ptr) Variable Function 269(i16v): 140(ptr) Variable Function
272(u16v): 221(ptr) Variable Function 272(u16v): 221(ptr) Variable Function
278(u32v): 156(ptr) Variable Function 278(u32v): 157(ptr) Variable Function
282(i64v): 162(ptr) Variable Function 282(i64v): 163(ptr) Variable Function
285(u64v): 167(ptr) Variable Function 285(u64v): 168(ptr) Variable Function
296(f16v): 181(ptr) Variable Function 296(f16v): 182(ptr) Variable Function
299(f32v): 187(ptr) Variable Function 299(f32v): 188(ptr) Variable Function
302(f64v): 193(ptr) Variable Function 302(f64v): 194(ptr) Variable Function
347(i8v): 135(ptr) Variable Function 347(i8v): 135(ptr) Variable Function
353(u8v): 132(ptr) Variable Function 353(u8v): 132(ptr) Variable Function
363(bv): 251(ptr) Variable Function 363(bv): 251(ptr) Variable Function
270:139(i16vec2) Load 269(i16v) 270:139(i16vec2) Load 269(i16v)
271: 147(ivec2) SConvert 270 271: 148(ivec2) SConvert 270
Store 268(i32v) 271 Store 268(i32v) 271
273:220(i16vec2) Load 272(u16v) 273:145(i16vec2) Load 272(u16v)
274: 147(ivec2) UConvert 273 274: 154(ivec2) UConvert 273
275: 147(ivec2) Bitcast 274 275: 148(ivec2) Bitcast 274
Store 268(i32v) 275 Store 268(i32v) 275
276:139(i16vec2) Load 269(i16v) 276:139(i16vec2) Load 269(i16v)
277:220(i16vec2) Bitcast 276 277:145(i16vec2) Bitcast 276
Store 272(u16v) 277 Store 272(u16v) 277
279:139(i16vec2) Load 269(i16v) 279:139(i16vec2) Load 269(i16v)
280: 147(ivec2) SConvert 279 280: 148(ivec2) SConvert 279
281: 155(ivec2) Bitcast 280 281: 154(ivec2) Bitcast 280
Store 278(u32v) 281 Store 278(u32v) 281
283:139(i16vec2) Load 269(i16v) 283:139(i16vec2) Load 269(i16v)
284:161(i64vec2) SConvert 283 284:162(i64vec2) SConvert 283
Store 282(i64v) 284 Store 282(i64v) 284
286:139(i16vec2) Load 269(i16v) 286:139(i16vec2) Load 269(i16v)
287:161(i64vec2) SConvert 286 287:162(i64vec2) SConvert 286
288:166(i64vec2) Bitcast 287 288:167(i64vec2) Bitcast 287
Store 285(u64v) 288 Store 285(u64v) 288
289:220(i16vec2) Load 272(u16v) 289:145(i16vec2) Load 272(u16v)
290: 155(ivec2) UConvert 289 290: 154(ivec2) UConvert 289
Store 278(u32v) 290 Store 278(u32v) 290
291:220(i16vec2) Load 272(u16v) 291:145(i16vec2) Load 272(u16v)
292:161(i64vec2) UConvert 291 292:167(i64vec2) UConvert 291
293:161(i64vec2) Bitcast 292 293:162(i64vec2) Bitcast 292
Store 282(i64v) 293 Store 282(i64v) 293
294:220(i16vec2) Load 272(u16v) 294:145(i16vec2) Load 272(u16v)
295:166(i64vec2) UConvert 294 295:167(i64vec2) UConvert 294
Store 285(u64v) 295 Store 285(u64v) 295
297:139(i16vec2) Load 269(i16v) 297:139(i16vec2) Load 269(i16v)
298:180(f16vec2) ConvertSToF 297 298:181(f16vec2) ConvertSToF 297
Store 296(f16v) 298 Store 296(f16v) 298
300:139(i16vec2) Load 269(i16v) 300:139(i16vec2) Load 269(i16v)
301: 186(fvec2) ConvertSToF 300 301: 187(fvec2) ConvertSToF 300
Store 299(f32v) 301 Store 299(f32v) 301
303:139(i16vec2) Load 269(i16v) 303:139(i16vec2) Load 269(i16v)
304:192(f64vec2) ConvertSToF 303 304:193(f64vec2) ConvertSToF 303
Store 302(f64v) 304 Store 302(f64v) 304
305:220(i16vec2) Load 272(u16v) 305:145(i16vec2) Load 272(u16v)
306:180(f16vec2) ConvertUToF 305 306:181(f16vec2) ConvertUToF 305
Store 296(f16v) 306 Store 296(f16v) 306
307:220(i16vec2) Load 272(u16v) 307:145(i16vec2) Load 272(u16v)
308: 186(fvec2) ConvertUToF 307 308: 187(fvec2) ConvertUToF 307
Store 299(f32v) 308 Store 299(f32v) 308
309:220(i16vec2) Load 272(u16v) 309:145(i16vec2) Load 272(u16v)
310:192(f64vec2) ConvertUToF 309 310:193(f64vec2) ConvertUToF 309
Store 302(f64v) 310 Store 302(f64v) 310
311:139(i16vec2) Load 269(i16v) 311:139(i16vec2) Load 269(i16v)
312: 147(ivec2) SConvert 311 312: 148(ivec2) SConvert 311
Store 268(i32v) 312 Store 268(i32v) 312
313:220(i16vec2) Load 272(u16v) 313:145(i16vec2) Load 272(u16v)
314: 147(ivec2) UConvert 313 314: 154(ivec2) UConvert 313
315: 147(ivec2) Bitcast 314 315: 148(ivec2) Bitcast 314
Store 268(i32v) 315 Store 268(i32v) 315
316:139(i16vec2) Load 269(i16v) 316:139(i16vec2) Load 269(i16v)
317:220(i16vec2) Bitcast 316 317:145(i16vec2) Bitcast 316
Store 272(u16v) 317 Store 272(u16v) 317
318:139(i16vec2) Load 269(i16v) 318:139(i16vec2) Load 269(i16v)
319: 147(ivec2) SConvert 318 319: 148(ivec2) SConvert 318
320: 155(ivec2) Bitcast 319 320: 154(ivec2) Bitcast 319
Store 278(u32v) 320 Store 278(u32v) 320
321:139(i16vec2) Load 269(i16v) 321:139(i16vec2) Load 269(i16v)
322:161(i64vec2) SConvert 321 322:162(i64vec2) SConvert 321
Store 282(i64v) 322 Store 282(i64v) 322
323:139(i16vec2) Load 269(i16v) 323:139(i16vec2) Load 269(i16v)
324:161(i64vec2) SConvert 323 324:162(i64vec2) SConvert 323
325:166(i64vec2) Bitcast 324 325:167(i64vec2) Bitcast 324
Store 285(u64v) 325 Store 285(u64v) 325
326:220(i16vec2) Load 272(u16v) 326:145(i16vec2) Load 272(u16v)
327: 155(ivec2) UConvert 326 327: 154(ivec2) UConvert 326
Store 278(u32v) 327 Store 278(u32v) 327
328:220(i16vec2) Load 272(u16v) 328:145(i16vec2) Load 272(u16v)
329:161(i64vec2) UConvert 328 329:167(i64vec2) UConvert 328
330:161(i64vec2) Bitcast 329 330:162(i64vec2) Bitcast 329
Store 282(i64v) 330 Store 282(i64v) 330
331:220(i16vec2) Load 272(u16v) 331:145(i16vec2) Load 272(u16v)
332:161(i64vec2) UConvert 331 332:167(i64vec2) UConvert 331
333:161(i64vec2) Bitcast 332 333:162(i64vec2) Bitcast 332
334:166(i64vec2) Bitcast 333 334:167(i64vec2) Bitcast 333
Store 285(u64v) 334 Store 285(u64v) 334
335:139(i16vec2) Load 269(i16v) 335:139(i16vec2) Load 269(i16v)
336:180(f16vec2) ConvertSToF 335 336:181(f16vec2) ConvertSToF 335
Store 296(f16v) 336 Store 296(f16v) 336
337:139(i16vec2) Load 269(i16v) 337:139(i16vec2) Load 269(i16v)
338: 186(fvec2) ConvertSToF 337 338: 187(fvec2) ConvertSToF 337
Store 299(f32v) 338 Store 299(f32v) 338
339:139(i16vec2) Load 269(i16v) 339:139(i16vec2) Load 269(i16v)
340:192(f64vec2) ConvertSToF 339 340:193(f64vec2) ConvertSToF 339
Store 302(f64v) 340 Store 302(f64v) 340
341:220(i16vec2) Load 272(u16v) 341:145(i16vec2) Load 272(u16v)
342:180(f16vec2) ConvertUToF 341 342:181(f16vec2) ConvertUToF 341
Store 296(f16v) 342 Store 296(f16v) 342
343:220(i16vec2) Load 272(u16v) 343:145(i16vec2) Load 272(u16v)
344: 186(fvec2) ConvertUToF 343 344: 187(fvec2) ConvertUToF 343
Store 299(f32v) 344 Store 299(f32v) 344
345:220(i16vec2) Load 272(u16v) 345:145(i16vec2) Load 272(u16v)
346:192(f64vec2) ConvertUToF 345 346:193(f64vec2) ConvertUToF 345
Store 302(f64v) 346 Store 302(f64v) 346
348:139(i16vec2) Load 269(i16v) 348:139(i16vec2) Load 269(i16v)
349: 134(i8vec2) SConvert 348 349: 134(i8vec2) SConvert 348
Store 347(i8v) 349 Store 347(i8v) 349
350:220(i16vec2) Load 272(u16v) 350:145(i16vec2) Load 272(u16v)
351: 134(i8vec2) UConvert 350 351: 131(i8vec2) UConvert 350
352: 134(i8vec2) Bitcast 351 352: 134(i8vec2) Bitcast 351
Store 347(i8v) 352 Store 347(i8v) 352
354:139(i16vec2) Load 269(i16v) 354:139(i16vec2) Load 269(i16v)
355: 134(i8vec2) SConvert 354 355: 134(i8vec2) SConvert 354
356: 131(i8vec2) Bitcast 355 356: 131(i8vec2) Bitcast 355
Store 353(u8v) 356 Store 353(u8v) 356
357:220(i16vec2) Load 272(u16v) 357:145(i16vec2) Load 272(u16v)
358: 131(i8vec2) UConvert 357 358: 131(i8vec2) UConvert 357
Store 353(u8v) 358 Store 353(u8v) 358
359:220(i16vec2) Load 272(u16v) 359:145(i16vec2) Load 272(u16v)
360: 131(i8vec2) UConvert 359 360: 131(i8vec2) UConvert 359
361:139(i16vec2) UConvert 360 361:145(i16vec2) UConvert 360
362:139(i16vec2) Bitcast 361 362:139(i16vec2) Bitcast 361
Store 269(i16v) 362 Store 269(i16v) 362
364: 250(bvec2) Load 363(bv) 364: 250(bvec2) Load 363(bv)
369:139(i16vec2) Select 364 368 367 369:139(i16vec2) Select 364 368 367
Store 269(i16v) 369 Store 269(i16v) 369
370: 250(bvec2) Load 363(bv) 370: 250(bvec2) Load 363(bv)
375:220(i16vec2) Select 370 374 373 375:145(i16vec2) Select 370 374 373
Store 272(u16v) 375 Store 272(u16v) 375
376:139(i16vec2) Load 269(i16v) 376:139(i16vec2) Load 269(i16v)
377: 250(bvec2) INotEqual 376 373 377: 250(bvec2) INotEqual 376 373
Store 363(bv) 377 Store 363(bv) 377
378:220(i16vec2) Load 272(u16v) 378:145(i16vec2) Load 272(u16v)
379: 250(bvec2) INotEqual 378 373 379: 250(bvec2) INotEqual 378 373
Store 363(bv) 379 Store 363(bv) 379
Return Return
FunctionEnd FunctionEnd
12(typeCast32(): 2 Function None 3 12(typeCast32(): 2 Function None 3
13: Label 13: Label
380(u32v): 156(ptr) Variable Function 380(u32v): 157(ptr) Variable Function
381(i32v): 148(ptr) Variable Function 381(i32v): 149(ptr) Variable Function
384(i64v): 162(ptr) Variable Function 384(i64v): 163(ptr) Variable Function
387(u64v): 167(ptr) Variable Function 387(u64v): 168(ptr) Variable Function
396(f32v): 187(ptr) Variable Function 396(f32v): 188(ptr) Variable Function
399(f64v): 193(ptr) Variable Function 399(f64v): 194(ptr) Variable Function
406(i8v): 135(ptr) Variable Function 406(i8v): 135(ptr) Variable Function
412(i16v): 140(ptr) Variable Function 412(i16v): 140(ptr) Variable Function
429(u8v): 132(ptr) Variable Function 429(u8v): 132(ptr) Variable Function
435(u16v): 221(ptr) Variable Function 435(u16v): 221(ptr) Variable Function
452(f16v): 181(ptr) Variable Function 452(f16v): 182(ptr) Variable Function
465(bv): 251(ptr) Variable Function 465(bv): 251(ptr) Variable Function
382: 147(ivec2) Load 381(i32v) 382: 148(ivec2) Load 381(i32v)
383: 155(ivec2) Bitcast 382 383: 154(ivec2) Bitcast 382
Store 380(u32v) 383 Store 380(u32v) 383
385: 147(ivec2) Load 381(i32v) 385: 148(ivec2) Load 381(i32v)
386:161(i64vec2) SConvert 385 386:162(i64vec2) SConvert 385
Store 384(i64v) 386 Store 384(i64v) 386
388: 147(ivec2) Load 381(i32v) 388: 148(ivec2) Load 381(i32v)
389:161(i64vec2) SConvert 388 389:162(i64vec2) SConvert 388
390:166(i64vec2) Bitcast 389 390:167(i64vec2) Bitcast 389
Store 387(u64v) 390 Store 387(u64v) 390
391: 155(ivec2) Load 380(u32v) 391: 154(ivec2) Load 380(u32v)
392:161(i64vec2) UConvert 391 392:167(i64vec2) UConvert 391
393:161(i64vec2) Bitcast 392 393:162(i64vec2) Bitcast 392
Store 384(i64v) 393 Store 384(i64v) 393
394: 155(ivec2) Load 380(u32v) 394: 154(ivec2) Load 380(u32v)
395:166(i64vec2) UConvert 394 395:167(i64vec2) UConvert 394
Store 387(u64v) 395 Store 387(u64v) 395
397: 147(ivec2) Load 381(i32v) 397: 148(ivec2) Load 381(i32v)
398: 186(fvec2) ConvertSToF 397 398: 187(fvec2) ConvertSToF 397
Store 396(f32v) 398 Store 396(f32v) 398
400: 147(ivec2) Load 381(i32v) 400: 148(ivec2) Load 381(i32v)
401:192(f64vec2) ConvertSToF 400 401:193(f64vec2) ConvertSToF 400
Store 399(f64v) 401 Store 399(f64v) 401
402: 155(ivec2) Load 380(u32v) 402: 154(ivec2) Load 380(u32v)
403: 186(fvec2) ConvertUToF 402 403: 187(fvec2) ConvertUToF 402
Store 396(f32v) 403 Store 396(f32v) 403
404: 155(ivec2) Load 380(u32v) 404: 154(ivec2) Load 380(u32v)
405:192(f64vec2) ConvertUToF 404 405:193(f64vec2) ConvertUToF 404
Store 399(f64v) 405 Store 399(f64v) 405
407: 147(ivec2) Load 381(i32v) 407: 148(ivec2) Load 381(i32v)
408: 134(i8vec2) SConvert 407 408: 134(i8vec2) SConvert 407
Store 406(i8v) 408 Store 406(i8v) 408
409: 155(ivec2) Load 380(u32v) 409: 154(ivec2) Load 380(u32v)
410: 134(i8vec2) UConvert 409 410: 131(i8vec2) UConvert 409
411: 134(i8vec2) Bitcast 410 411: 134(i8vec2) Bitcast 410
Store 406(i8v) 411 Store 406(i8v) 411
413: 147(ivec2) Load 381(i32v) 413: 148(ivec2) Load 381(i32v)
414:139(i16vec2) SConvert 413 414:139(i16vec2) SConvert 413
Store 412(i16v) 414 Store 412(i16v) 414
415: 155(ivec2) Load 380(u32v) 415: 154(ivec2) Load 380(u32v)
416:139(i16vec2) UConvert 415 416:145(i16vec2) UConvert 415
417:139(i16vec2) Bitcast 416 417:139(i16vec2) Bitcast 416
Store 412(i16v) 417 Store 412(i16v) 417
418: 147(ivec2) Load 381(i32v) 418: 148(ivec2) Load 381(i32v)
419: 29(int) CompositeExtract 418 0 419: 29(int) CompositeExtract 418 0
420: 29(int) CompositeExtract 418 1 420: 29(int) CompositeExtract 418 1
421: 147(ivec2) CompositeConstruct 419 420 421: 148(ivec2) CompositeConstruct 419 420
Store 381(i32v) 421 Store 381(i32v) 421
422: 155(ivec2) Load 380(u32v) 422: 154(ivec2) Load 380(u32v)
423: 147(ivec2) Bitcast 422 423: 148(ivec2) Bitcast 422
Store 381(i32v) 423 Store 381(i32v) 423
424: 147(ivec2) Load 381(i32v) 424: 148(ivec2) Load 381(i32v)
425:161(i64vec2) SConvert 424 425:162(i64vec2) SConvert 424
Store 384(i64v) 425 Store 384(i64v) 425
426: 155(ivec2) Load 380(u32v) 426: 154(ivec2) Load 380(u32v)
427:161(i64vec2) UConvert 426 427:167(i64vec2) UConvert 426
428:161(i64vec2) Bitcast 427 428:162(i64vec2) Bitcast 427
Store 384(i64v) 428 Store 384(i64v) 428
430: 147(ivec2) Load 381(i32v) 430: 148(ivec2) Load 381(i32v)
431: 134(i8vec2) SConvert 430 431: 134(i8vec2) SConvert 430
432: 131(i8vec2) Bitcast 431 432: 131(i8vec2) Bitcast 431
Store 429(u8v) 432 Store 429(u8v) 432
433: 155(ivec2) Load 380(u32v) 433: 154(ivec2) Load 380(u32v)
434: 131(i8vec2) UConvert 433 434: 131(i8vec2) UConvert 433
Store 429(u8v) 434 Store 429(u8v) 434
436: 147(ivec2) Load 381(i32v) 436: 148(ivec2) Load 381(i32v)
437:139(i16vec2) SConvert 436 437:139(i16vec2) SConvert 436
438:220(i16vec2) Bitcast 437 438:145(i16vec2) Bitcast 437
Store 435(u16v) 438 Store 435(u16v) 438
439: 155(ivec2) Load 380(u32v) 439: 154(ivec2) Load 380(u32v)
440:220(i16vec2) UConvert 439 440:145(i16vec2) UConvert 439
Store 435(u16v) 440 Store 435(u16v) 440
441: 147(ivec2) Load 381(i32v) 441: 148(ivec2) Load 381(i32v)
442: 155(ivec2) Bitcast 441 442: 154(ivec2) Bitcast 441
Store 380(u32v) 442 Store 380(u32v) 442
443: 155(ivec2) Load 380(u32v) 443: 154(ivec2) Load 380(u32v)
444: 19(int) CompositeExtract 443 0 444: 19(int) CompositeExtract 443 0
445: 19(int) CompositeExtract 443 1 445: 19(int) CompositeExtract 443 1
446: 155(ivec2) CompositeConstruct 444 445 446: 154(ivec2) CompositeConstruct 444 445
Store 380(u32v) 446 Store 380(u32v) 446
447: 147(ivec2) Load 381(i32v) 447: 148(ivec2) Load 381(i32v)
448:161(i64vec2) SConvert 447 448:162(i64vec2) SConvert 447
449:166(i64vec2) Bitcast 448 449:167(i64vec2) Bitcast 448
Store 387(u64v) 449 Store 387(u64v) 449
450: 155(ivec2) Load 380(u32v) 450: 154(ivec2) Load 380(u32v)
451:166(i64vec2) UConvert 450 451:167(i64vec2) UConvert 450
Store 387(u64v) 451 Store 387(u64v) 451
453: 147(ivec2) Load 381(i32v) 453: 148(ivec2) Load 381(i32v)
454:180(f16vec2) ConvertSToF 453 454:181(f16vec2) ConvertSToF 453
Store 452(f16v) 454 Store 452(f16v) 454
455: 147(ivec2) Load 381(i32v) 455: 148(ivec2) Load 381(i32v)
456: 186(fvec2) ConvertSToF 455 456: 187(fvec2) ConvertSToF 455
Store 396(f32v) 456 Store 396(f32v) 456
457: 147(ivec2) Load 381(i32v) 457: 148(ivec2) Load 381(i32v)
458:192(f64vec2) ConvertSToF 457 458:193(f64vec2) ConvertSToF 457
Store 399(f64v) 458 Store 399(f64v) 458
459: 155(ivec2) Load 380(u32v) 459: 154(ivec2) Load 380(u32v)
460:180(f16vec2) ConvertUToF 459 460:181(f16vec2) ConvertUToF 459
Store 452(f16v) 460 Store 452(f16v) 460
461: 155(ivec2) Load 380(u32v) 461: 154(ivec2) Load 380(u32v)
462: 186(fvec2) ConvertUToF 461 462: 187(fvec2) ConvertUToF 461
Store 396(f32v) 462 Store 396(f32v) 462
463: 155(ivec2) Load 380(u32v) 463: 154(ivec2) Load 380(u32v)
464:192(f64vec2) ConvertUToF 463 464:193(f64vec2) ConvertUToF 463
Store 399(f64v) 464 Store 399(f64v) 464
466: 250(bvec2) Load 465(bv) 466: 250(bvec2) Load 465(bv)
470: 147(ivec2) Select 466 469 468 470: 148(ivec2) Select 466 469 468
Store 381(i32v) 470 Store 381(i32v) 470
471: 250(bvec2) Load 465(bv) 471: 250(bvec2) Load 465(bv)
476: 155(ivec2) Select 471 475 474 476: 154(ivec2) Select 471 475 474
Store 380(u32v) 476 Store 380(u32v) 476
477: 147(ivec2) Load 381(i32v) 477: 148(ivec2) Load 381(i32v)
478: 250(bvec2) INotEqual 477 474 478: 250(bvec2) INotEqual 477 474
Store 465(bv) 478 Store 465(bv) 478
479: 155(ivec2) Load 380(u32v) 479: 154(ivec2) Load 380(u32v)
480: 250(bvec2) INotEqual 479 474 480: 250(bvec2) INotEqual 479 474
Store 465(bv) 480 Store 465(bv) 480
Return Return
FunctionEnd FunctionEnd
14(typeCast64(): 2 Function None 3 14(typeCast64(): 2 Function None 3
15: Label 15: Label
481(u64v): 167(ptr) Variable Function 481(u64v): 168(ptr) Variable Function
482(i64v): 162(ptr) Variable Function 482(i64v): 163(ptr) Variable Function
485(f64v): 193(ptr) Variable Function 485(f64v): 194(ptr) Variable Function
490(i8v): 135(ptr) Variable Function 490(i8v): 135(ptr) Variable Function
496(i16v): 140(ptr) Variable Function 496(i16v): 140(ptr) Variable Function
502(i32v): 148(ptr) Variable Function 502(i32v): 149(ptr) Variable Function
510(u8v): 132(ptr) Variable Function 510(u8v): 132(ptr) Variable Function
516(u16v): 221(ptr) Variable Function 516(u16v): 221(ptr) Variable Function
522(u32v): 156(ptr) Variable Function 522(u32v): 157(ptr) Variable Function
534(f16v): 181(ptr) Variable Function 534(f16v): 182(ptr) Variable Function
537(f32v): 187(ptr) Variable Function 537(f32v): 188(ptr) Variable Function
548(bv): 251(ptr) Variable Function 548(bv): 251(ptr) Variable Function
483:161(i64vec2) Load 482(i64v) 483:162(i64vec2) Load 482(i64v)
484:166(i64vec2) Bitcast 483 484:167(i64vec2) Bitcast 483
Store 481(u64v) 484 Store 481(u64v) 484
486:161(i64vec2) Load 482(i64v) 486:162(i64vec2) Load 482(i64v)
487:192(f64vec2) ConvertSToF 486 487:193(f64vec2) ConvertSToF 486
Store 485(f64v) 487 Store 485(f64v) 487
488:166(i64vec2) Load 481(u64v) 488:167(i64vec2) Load 481(u64v)
489:192(f64vec2) ConvertUToF 488 489:193(f64vec2) ConvertUToF 488
Store 485(f64v) 489 Store 485(f64v) 489
491:161(i64vec2) Load 482(i64v) 491:162(i64vec2) Load 482(i64v)
492: 134(i8vec2) SConvert 491 492: 134(i8vec2) SConvert 491
Store 490(i8v) 492 Store 490(i8v) 492
493:166(i64vec2) Load 481(u64v) 493:167(i64vec2) Load 481(u64v)
494: 134(i8vec2) UConvert 493 494: 131(i8vec2) UConvert 493
495: 134(i8vec2) Bitcast 494 495: 134(i8vec2) Bitcast 494
Store 490(i8v) 495 Store 490(i8v) 495
497:161(i64vec2) Load 482(i64v) 497:162(i64vec2) Load 482(i64v)
498:139(i16vec2) SConvert 497 498:139(i16vec2) SConvert 497
Store 496(i16v) 498 Store 496(i16v) 498
499:166(i64vec2) Load 481(u64v) 499:167(i64vec2) Load 481(u64v)
500:139(i16vec2) UConvert 499 500:145(i16vec2) UConvert 499
501:139(i16vec2) Bitcast 500 501:139(i16vec2) Bitcast 500
Store 496(i16v) 501 Store 496(i16v) 501
503:161(i64vec2) Load 482(i64v) 503:162(i64vec2) Load 482(i64v)
504: 147(ivec2) SConvert 503 504: 148(ivec2) SConvert 503
Store 502(i32v) 504 Store 502(i32v) 504
505:166(i64vec2) Load 481(u64v) 505:167(i64vec2) Load 481(u64v)
506: 147(ivec2) UConvert 505 506: 154(ivec2) UConvert 505
507: 147(ivec2) Bitcast 506 507: 148(ivec2) Bitcast 506
Store 502(i32v) 507 Store 502(i32v) 507
508:166(i64vec2) Load 481(u64v) 508:167(i64vec2) Load 481(u64v)
509:161(i64vec2) Bitcast 508 509:162(i64vec2) Bitcast 508
Store 482(i64v) 509 Store 482(i64v) 509
511:161(i64vec2) Load 482(i64v) 511:162(i64vec2) Load 482(i64v)
512: 134(i8vec2) SConvert 511 512: 134(i8vec2) SConvert 511
513: 131(i8vec2) Bitcast 512 513: 131(i8vec2) Bitcast 512
Store 510(u8v) 513 Store 510(u8v) 513
514:166(i64vec2) Load 481(u64v) 514:167(i64vec2) Load 481(u64v)
515: 131(i8vec2) UConvert 514 515: 131(i8vec2) UConvert 514
Store 510(u8v) 515 Store 510(u8v) 515
517:161(i64vec2) Load 482(i64v) 517:162(i64vec2) Load 482(i64v)
518:139(i16vec2) SConvert 517 518:139(i16vec2) SConvert 517
519:220(i16vec2) Bitcast 518 519:145(i16vec2) Bitcast 518
Store 516(u16v) 519 Store 516(u16v) 519
520:166(i64vec2) Load 481(u64v) 520:167(i64vec2) Load 481(u64v)
521:220(i16vec2) UConvert 520 521:145(i16vec2) UConvert 520
Store 516(u16v) 521 Store 516(u16v) 521
523:161(i64vec2) Load 482(i64v) 523:162(i64vec2) Load 482(i64v)
524: 147(ivec2) SConvert 523 524: 148(ivec2) SConvert 523
525: 155(ivec2) Bitcast 524 525: 154(ivec2) Bitcast 524
Store 522(u32v) 525 Store 522(u32v) 525
526:166(i64vec2) Load 481(u64v) 526:167(i64vec2) Load 481(u64v)
527: 155(ivec2) UConvert 526 527: 154(ivec2) UConvert 526
Store 522(u32v) 527 Store 522(u32v) 527
528:161(i64vec2) Load 482(i64v) 528:162(i64vec2) Load 482(i64v)
529:166(i64vec2) Bitcast 528 529:167(i64vec2) Bitcast 528
Store 481(u64v) 529 Store 481(u64v) 529
530:166(i64vec2) Load 481(u64v) 530:167(i64vec2) Load 481(u64v)
531: 38(int64_t) CompositeExtract 530 0 531: 38(int64_t) CompositeExtract 530 0
532: 38(int64_t) CompositeExtract 530 1 532: 38(int64_t) CompositeExtract 530 1
533:166(i64vec2) CompositeConstruct 531 532 533:167(i64vec2) CompositeConstruct 531 532
Store 481(u64v) 533 Store 481(u64v) 533
535:161(i64vec2) Load 482(i64v) 535:162(i64vec2) Load 482(i64v)
536:180(f16vec2) ConvertSToF 535 536:181(f16vec2) ConvertSToF 535
Store 534(f16v) 536 Store 534(f16v) 536
538:161(i64vec2) Load 482(i64v) 538:162(i64vec2) Load 482(i64v)
539: 186(fvec2) ConvertSToF 538 539: 187(fvec2) ConvertSToF 538
Store 537(f32v) 539 Store 537(f32v) 539
540:161(i64vec2) Load 482(i64v) 540:162(i64vec2) Load 482(i64v)
541:192(f64vec2) ConvertSToF 540 541:193(f64vec2) ConvertSToF 540
Store 485(f64v) 541 Store 485(f64v) 541
542:166(i64vec2) Load 481(u64v) 542:167(i64vec2) Load 481(u64v)
543:180(f16vec2) ConvertUToF 542 543:181(f16vec2) ConvertUToF 542
Store 534(f16v) 543 Store 534(f16v) 543
544:166(i64vec2) Load 481(u64v) 544:167(i64vec2) Load 481(u64v)
545: 186(fvec2) ConvertUToF 544 545: 187(fvec2) ConvertUToF 544
Store 537(f32v) 545 Store 537(f32v) 545
546:166(i64vec2) Load 481(u64v) 546:167(i64vec2) Load 481(u64v)
547:192(f64vec2) ConvertUToF 546 547:193(f64vec2) ConvertUToF 546
Store 485(f64v) 547 Store 485(f64v) 547
549: 250(bvec2) Load 548(bv) 549: 250(bvec2) Load 548(bv)
554:161(i64vec2) Select 549 553 552 554:162(i64vec2) Select 549 553 552
Store 482(i64v) 554 Store 482(i64v) 554
555: 250(bvec2) Load 548(bv) 555: 250(bvec2) Load 548(bv)
560:166(i64vec2) Select 555 559 558 560:167(i64vec2) Select 555 559 558
Store 481(u64v) 560 Store 481(u64v) 560
561:161(i64vec2) Load 482(i64v) 561:162(i64vec2) Load 482(i64v)
562: 250(bvec2) INotEqual 561 558 562: 250(bvec2) INotEqual 561 558
Store 548(bv) 562 Store 548(bv) 562
563:166(i64vec2) Load 481(u64v) 563:167(i64vec2) Load 481(u64v)
564: 250(bvec2) INotEqual 563 558 564: 250(bvec2) INotEqual 563 558
Store 548(bv) 564 Store 548(bv) 564
Return Return

View File

@ -143,8 +143,8 @@ spv.int16.amd.frag
205:198(i16vec2) ConstantComposite 203 203 205:198(i16vec2) ConstantComposite 203 203
211: TypeVector 28(int) 2 211: TypeVector 28(int) 2
212: TypePointer Function 211(ivec2) 212: TypePointer Function 211(ivec2)
224: TypeVector 18(int) 2 222: TypeVector 18(int) 2
225: TypePointer Function 224(ivec2) 225: TypePointer Function 222(ivec2)
237: TypeFloat 32 237: TypeFloat 32
238: TypeVector 237(float) 2 238: TypeVector 237(float) 2
239: TypePointer Function 238(fvec2) 239: TypePointer Function 238(fvec2)
@ -157,9 +157,9 @@ spv.int16.amd.frag
273: TypeInt 64 1 273: TypeInt 64 1
274: TypeVector 273(int64_t) 2 274: TypeVector 273(int64_t) 2
275: TypePointer Function 274(i64vec2) 275: TypePointer Function 274(i64vec2)
287: TypeInt 64 0 285: TypeInt 64 0
288: TypeVector 287(int64_t) 2 286: TypeVector 285(int64_t) 2
289: TypePointer Function 288(i64vec2) 289: TypePointer Function 286(i64vec2)
316: 17(int16_t) Constant 4294967295 316: 17(int16_t) Constant 4294967295
317:187(i16vec2) ConstantComposite 316 316 317:187(i16vec2) ConstantComposite 316 316
326: 49(i16vec3) ConstantComposite 202 202 202 326: 49(i16vec3) ConstantComposite 202 202 202
@ -175,7 +175,7 @@ spv.int16.amd.frag
407: TypePointer Function 261(float16_t) 407: TypePointer Function 261(float16_t)
431: TypePointer Function 273(int64_t) 431: TypePointer Function 273(int64_t)
434: TypeVector 17(int16_t) 4 434: TypeVector 17(int16_t) 4
440: TypePointer Function 287(int64_t) 440: TypePointer Function 285(int64_t)
443: TypeVector 14(int16_t) 4 443: TypeVector 14(int16_t) 4
449: TypePointer Function 388(bvec3) 449: TypePointer Function 388(bvec3)
515(Block): TypeStruct 54(i16vec3) 14(int16_t) 515(Block): TypeStruct 54(i16vec3) 14(int16_t)
@ -186,7 +186,7 @@ spv.int16.amd.frag
520: TypePointer Input 17(int16_t) 520: TypePointer Input 17(int16_t)
521(ii16): 520(ptr) Variable Input 521(ii16): 520(ptr) Variable Input
522(si64):273(int64_t) SpecConstant 4294967286 4294967295 522(si64):273(int64_t) SpecConstant 4294967286 4294967295
523(su64):287(int64_t) SpecConstant 20 0 523(su64):285(int64_t) SpecConstant 20 0
524(si): 28(int) SpecConstant 4294967291 524(si): 28(int) SpecConstant 4294967291
525(su): 18(int) SpecConstant 4 525(su): 18(int) SpecConstant 4
526(sb): 125(bool) SpecConstantTrue 526(sb): 125(bool) SpecConstantTrue
@ -197,7 +197,7 @@ spv.int16.amd.frag
531: 17(int16_t) SpecConstantOp 169 526(sb) 53 194 531: 17(int16_t) SpecConstantOp 169 526(sb) 53 194
532: 14(int16_t) SpecConstantOp 169 526(sb) 203 202 532: 14(int16_t) SpecConstantOp 169 526(sb) 203 202
533: 28(int) SpecConstantOp 114 527(si16) 533: 28(int) SpecConstantOp 114 527(si16)
534: 28(int) SpecConstantOp 113 528(su16) 534: 18(int) SpecConstantOp 113 528(su16)
535: 28(int) SpecConstantOp 128 534 128 535: 28(int) SpecConstantOp 128 534 128
536: 17(int16_t) SpecConstantOp 114 524(si) 536: 17(int16_t) SpecConstantOp 114 524(si)
537: 17(int16_t) SpecConstantOp 114 524(si) 537: 17(int16_t) SpecConstantOp 114 524(si)
@ -205,20 +205,20 @@ spv.int16.amd.frag
539: 28(int) SpecConstantOp 114 527(si16) 539: 28(int) SpecConstantOp 114 527(si16)
540: 18(int) SpecConstantOp 128 539 128 540: 18(int) SpecConstantOp 128 539 128
541: 18(int) SpecConstantOp 113 528(su16) 541: 18(int) SpecConstantOp 113 528(su16)
542: 17(int16_t) SpecConstantOp 113 525(su) 542: 14(int16_t) SpecConstantOp 113 525(su)
543: 17(int16_t) SpecConstantOp 128 542 202 543: 17(int16_t) SpecConstantOp 128 542 202
544: 14(int16_t) SpecConstantOp 113 525(su) 544: 14(int16_t) SpecConstantOp 113 525(su)
545:273(int64_t) SpecConstantOp 114 527(si16) 545:273(int64_t) SpecConstantOp 114 527(si16)
546:273(int64_t) SpecConstantOp 113 528(su16) 546:285(int64_t) SpecConstantOp 113 528(su16)
547:287(int64_t) Constant 0 0 547:285(int64_t) Constant 0 0
548:273(int64_t) SpecConstantOp 128 546 547 548:273(int64_t) SpecConstantOp 128 546 547
549: 17(int16_t) SpecConstantOp 114 522(si64) 549: 17(int16_t) SpecConstantOp 114 522(si64)
550: 17(int16_t) SpecConstantOp 114 522(si64) 550: 17(int16_t) SpecConstantOp 114 522(si64)
551: 14(int16_t) SpecConstantOp 128 550 202 551: 14(int16_t) SpecConstantOp 128 550 202
552:273(int64_t) SpecConstantOp 114 527(si16) 552:273(int64_t) SpecConstantOp 114 527(si16)
553:287(int64_t) SpecConstantOp 128 552 547 553:285(int64_t) SpecConstantOp 128 552 547
554:287(int64_t) SpecConstantOp 113 528(su16) 554:285(int64_t) SpecConstantOp 113 528(su16)
555: 17(int16_t) SpecConstantOp 113 523(su64) 555: 14(int16_t) SpecConstantOp 113 523(su64)
556: 17(int16_t) SpecConstantOp 128 555 202 556: 17(int16_t) SpecConstantOp 128 555 202
557: 14(int16_t) SpecConstantOp 113 523(su64) 557: 14(int16_t) SpecConstantOp 113 523(su64)
558: 14(int16_t) SpecConstantOp 128 527(si16) 202 558: 14(int16_t) SpecConstantOp 128 527(si16) 202
@ -450,22 +450,22 @@ spv.int16.amd.frag
220: 211(ivec2) SConvert 219 220: 211(ivec2) SConvert 219
Store 213(iv) 220 Store 213(iv) 220
221:198(i16vec2) Load 200(u16v) 221:198(i16vec2) Load 200(u16v)
222: 211(ivec2) UConvert 221 223: 222(ivec2) UConvert 221
223: 211(ivec2) Bitcast 222 224: 211(ivec2) Bitcast 223
Store 213(iv) 223 Store 213(iv) 224
227: 224(ivec2) Load 226(uv) 227: 222(ivec2) Load 226(uv)
228:187(i16vec2) UConvert 227 228:198(i16vec2) UConvert 227
229:187(i16vec2) Bitcast 228 229:187(i16vec2) Bitcast 228
Store 189(i16v) 229 Store 189(i16v) 229
230: 224(ivec2) Load 226(uv) 230: 222(ivec2) Load 226(uv)
231:198(i16vec2) UConvert 230 231:198(i16vec2) UConvert 230
Store 200(u16v) 231 Store 200(u16v) 231
232:187(i16vec2) Load 189(i16v) 232:187(i16vec2) Load 189(i16v)
233: 211(ivec2) SConvert 232 233: 211(ivec2) SConvert 232
234: 224(ivec2) Bitcast 233 234: 222(ivec2) Bitcast 233
Store 226(uv) 234 Store 226(uv) 234
235:198(i16vec2) Load 200(u16v) 235:198(i16vec2) Load 200(u16v)
236: 224(ivec2) UConvert 235 236: 222(ivec2) UConvert 235
Store 226(uv) 236 Store 226(uv) 236
241: 238(fvec2) Load 240(fv) 241: 238(fvec2) Load 240(fv)
242:187(i16vec2) ConvertFToS 241 242:187(i16vec2) ConvertFToS 241
@ -514,22 +514,22 @@ spv.int16.amd.frag
283:274(i64vec2) SConvert 282 283:274(i64vec2) SConvert 282
Store 276(i64v) 283 Store 276(i64v) 283
284:198(i16vec2) Load 200(u16v) 284:198(i16vec2) Load 200(u16v)
285:274(i64vec2) UConvert 284 287:286(i64vec2) UConvert 284
286:274(i64vec2) Bitcast 285 288:274(i64vec2) Bitcast 287
Store 276(i64v) 286 Store 276(i64v) 288
291:288(i64vec2) Load 290(u64v) 291:286(i64vec2) Load 290(u64v)
292:187(i16vec2) UConvert 291 292:198(i16vec2) UConvert 291
293:187(i16vec2) Bitcast 292 293:187(i16vec2) Bitcast 292
Store 189(i16v) 293 Store 189(i16v) 293
294:288(i64vec2) Load 290(u64v) 294:286(i64vec2) Load 290(u64v)
295:198(i16vec2) UConvert 294 295:198(i16vec2) UConvert 294
Store 200(u16v) 295 Store 200(u16v) 295
296:187(i16vec2) Load 189(i16v) 296:187(i16vec2) Load 189(i16v)
297:274(i64vec2) SConvert 296 297:274(i64vec2) SConvert 296
298:288(i64vec2) Bitcast 297 298:286(i64vec2) Bitcast 297
Store 290(u64v) 298 Store 290(u64v) 298
299:198(i16vec2) Load 200(u16v) 299:198(i16vec2) Load 200(u16v)
300:288(i64vec2) UConvert 299 300:286(i64vec2) UConvert 299
Store 290(u64v) 300 Store 290(u64v) 300
301:198(i16vec2) Load 200(u16v) 301:198(i16vec2) Load 200(u16v)
302:187(i16vec2) Bitcast 301 302:187(i16vec2) Bitcast 301
@ -696,9 +696,9 @@ spv.int16.amd.frag
Store 305(i16v) 439 Store 305(i16v) 439
442: 14(int16_t) Load 321(u16) 442: 14(int16_t) Load 321(u16)
444:443(i16vec4) CompositeConstruct 442 442 442 442 444:443(i16vec4) CompositeConstruct 442 442 442 442
445:287(int64_t) Bitcast 444 445:285(int64_t) Bitcast 444
Store 441(packu64) 445 Store 441(packu64) 445
446:287(int64_t) Load 441(packu64) 446:285(int64_t) Load 441(packu64)
447:443(i16vec4) Bitcast 446 447:443(i16vec4) Bitcast 446
448: 49(i16vec3) VectorShuffle 447 447 0 1 2 448: 49(i16vec3) VectorShuffle 447 447 0 1 2
Store 319(u16v) 448 Store 319(u16v) 448

View File

@ -128,8 +128,8 @@ spv.int16.frag
53: TypePointer Function 52(i16vec2) 53: TypePointer Function 52(i16vec2)
57: TypeVector 36(int16_t) 2 57: TypeVector 36(int16_t) 2
58: TypePointer Function 57(i16vec2) 58: TypePointer Function 57(i16vec2)
65: TypeVector 17(int) 2 61: TypeVector 17(int) 2
66: TypePointer Function 65(ivec2) 66: TypePointer Function 61(ivec2)
71: TypeInt 64 1 71: TypeInt 64 1
72: TypeVector 71(int64_t) 2 72: TypeVector 71(int64_t) 2
73: TypePointer Function 72(i64vec2) 73: TypePointer Function 72(i64vec2)
@ -148,9 +148,9 @@ spv.int16.frag
151: TypeInt 8 1 151: TypeInt 8 1
152: TypeVector 151(int8_t) 2 152: TypeVector 151(int8_t) 2
153: TypePointer Function 152(i8vec2) 153: TypePointer Function 152(i8vec2)
160: TypeInt 8 0 158: TypeInt 8 0
161: TypeVector 160(int8_t) 2 159: TypeVector 158(int8_t) 2
162: TypePointer Function 161(i8vec2) 162: TypePointer Function 159(i8vec2)
173: TypeBool 173: TypeBool
174: TypeVector 173(bool) 2 174: TypeVector 173(bool) 2
175: TypePointer Function 174(bvec2) 175: TypePointer Function 174(bvec2)
@ -235,15 +235,15 @@ spv.int16.frag
56: 49(ivec2) SConvert 55 56: 49(ivec2) SConvert 55
Store 51(i32v) 56 Store 51(i32v) 56
60: 57(i16vec2) Load 59(u16v) 60: 57(i16vec2) Load 59(u16v)
61: 49(ivec2) UConvert 60 62: 61(ivec2) UConvert 60
62: 49(ivec2) Bitcast 61 63: 49(ivec2) Bitcast 62
Store 51(i32v) 62 Store 51(i32v) 63
63: 52(i16vec2) Load 54(i16v) 64: 52(i16vec2) Load 54(i16v)
64: 57(i16vec2) Bitcast 63 65: 57(i16vec2) Bitcast 64
Store 59(u16v) 64 Store 59(u16v) 65
68: 52(i16vec2) Load 54(i16v) 68: 52(i16vec2) Load 54(i16v)
69: 49(ivec2) SConvert 68 69: 49(ivec2) SConvert 68
70: 65(ivec2) Bitcast 69 70: 61(ivec2) Bitcast 69
Store 67(u32v) 70 Store 67(u32v) 70
75: 52(i16vec2) Load 54(i16v) 75: 52(i16vec2) Load 54(i16v)
76: 72(i64vec2) SConvert 75 76: 72(i64vec2) SConvert 75
@ -253,10 +253,10 @@ spv.int16.frag
83: 78(i64vec2) Bitcast 82 83: 78(i64vec2) Bitcast 82
Store 80(u64v) 83 Store 80(u64v) 83
84: 57(i16vec2) Load 59(u16v) 84: 57(i16vec2) Load 59(u16v)
85: 65(ivec2) UConvert 84 85: 61(ivec2) UConvert 84
Store 67(u32v) 85 Store 67(u32v) 85
86: 57(i16vec2) Load 59(u16v) 86: 57(i16vec2) Load 59(u16v)
87: 72(i64vec2) UConvert 86 87: 78(i64vec2) UConvert 86
88: 72(i64vec2) Bitcast 87 88: 72(i64vec2) Bitcast 87
Store 74(i64v) 88 Store 74(i64v) 88
89: 57(i16vec2) Load 59(u16v) 89: 57(i16vec2) Load 59(u16v)
@ -284,7 +284,7 @@ spv.int16.frag
116: 49(ivec2) SConvert 115 116: 49(ivec2) SConvert 115
Store 51(i32v) 116 Store 51(i32v) 116
117: 57(i16vec2) Load 59(u16v) 117: 57(i16vec2) Load 59(u16v)
118: 49(ivec2) UConvert 117 118: 61(ivec2) UConvert 117
119: 49(ivec2) Bitcast 118 119: 49(ivec2) Bitcast 118
Store 51(i32v) 119 Store 51(i32v) 119
120: 52(i16vec2) Load 54(i16v) 120: 52(i16vec2) Load 54(i16v)
@ -292,7 +292,7 @@ spv.int16.frag
Store 59(u16v) 121 Store 59(u16v) 121
122: 52(i16vec2) Load 54(i16v) 122: 52(i16vec2) Load 54(i16v)
123: 49(ivec2) SConvert 122 123: 49(ivec2) SConvert 122
124: 65(ivec2) Bitcast 123 124: 61(ivec2) Bitcast 123
Store 67(u32v) 124 Store 67(u32v) 124
125: 52(i16vec2) Load 54(i16v) 125: 52(i16vec2) Load 54(i16v)
126: 72(i64vec2) SConvert 125 126: 72(i64vec2) SConvert 125
@ -302,14 +302,14 @@ spv.int16.frag
129: 78(i64vec2) Bitcast 128 129: 78(i64vec2) Bitcast 128
Store 80(u64v) 129 Store 80(u64v) 129
130: 57(i16vec2) Load 59(u16v) 130: 57(i16vec2) Load 59(u16v)
131: 65(ivec2) UConvert 130 131: 61(ivec2) UConvert 130
Store 67(u32v) 131 Store 67(u32v) 131
132: 57(i16vec2) Load 59(u16v) 132: 57(i16vec2) Load 59(u16v)
133: 72(i64vec2) UConvert 132 133: 78(i64vec2) UConvert 132
134: 72(i64vec2) Bitcast 133 134: 72(i64vec2) Bitcast 133
Store 74(i64v) 134 Store 74(i64v) 134
135: 57(i16vec2) Load 59(u16v) 135: 57(i16vec2) Load 59(u16v)
136: 72(i64vec2) UConvert 135 136: 78(i64vec2) UConvert 135
137: 72(i64vec2) Bitcast 136 137: 72(i64vec2) Bitcast 136
138: 78(i64vec2) Bitcast 137 138: 78(i64vec2) Bitcast 137
Store 80(u64v) 138 Store 80(u64v) 138
@ -335,19 +335,19 @@ spv.int16.frag
156: 152(i8vec2) SConvert 155 156: 152(i8vec2) SConvert 155
Store 154(i8v) 156 Store 154(i8v) 156
157: 57(i16vec2) Load 59(u16v) 157: 57(i16vec2) Load 59(u16v)
158: 152(i8vec2) UConvert 157 160: 159(i8vec2) UConvert 157
159: 152(i8vec2) Bitcast 158 161: 152(i8vec2) Bitcast 160
Store 154(i8v) 159 Store 154(i8v) 161
164: 52(i16vec2) Load 54(i16v) 164: 52(i16vec2) Load 54(i16v)
165: 152(i8vec2) SConvert 164 165: 152(i8vec2) SConvert 164
166: 161(i8vec2) Bitcast 165 166: 159(i8vec2) Bitcast 165
Store 163(u8v) 166 Store 163(u8v) 166
167: 57(i16vec2) Load 59(u16v) 167: 57(i16vec2) Load 59(u16v)
168: 161(i8vec2) UConvert 167 168: 159(i8vec2) UConvert 167
Store 163(u8v) 168 Store 163(u8v) 168
169: 57(i16vec2) Load 59(u16v) 169: 57(i16vec2) Load 59(u16v)
170: 161(i8vec2) UConvert 169 170: 159(i8vec2) UConvert 169
171: 52(i16vec2) UConvert 170 171: 57(i16vec2) UConvert 170
172: 52(i16vec2) Bitcast 171 172: 52(i16vec2) Bitcast 171
Store 54(i16v) 172 Store 54(i16v) 172
177: 174(bvec2) Load 176(bv) 177: 174(bvec2) Load 176(bv)

View File

@ -42,8 +42,8 @@ spv.int32.frag
Name 78 "f32v" Name 78 "f32v"
Name 84 "f64v" Name 84 "f64v"
Name 94 "i8v" Name 94 "i8v"
Name 103 "i16v" Name 105 "i16v"
Name 123 "u8v" Name 125 "u8v"
Name 132 "u16v" Name 132 "u16v"
Name 152 "f16v" Name 152 "f16v"
Name 168 "bv" Name 168 "bv"
@ -144,15 +144,15 @@ spv.int32.frag
91: TypeInt 8 1 91: TypeInt 8 1
92: TypeVector 91(int8_t) 2 92: TypeVector 91(int8_t) 2
93: TypePointer Function 92(i8vec2) 93: TypePointer Function 92(i8vec2)
100: TypeInt 16 1 98: TypeInt 8 0
101: TypeVector 100(int16_t) 2 99: TypeVector 98(int8_t) 2
102: TypePointer Function 101(i16vec2) 102: TypeInt 16 1
120: TypeInt 8 0 103: TypeVector 102(int16_t) 2
121: TypeVector 120(int8_t) 2 104: TypePointer Function 103(i16vec2)
122: TypePointer Function 121(i8vec2) 109: TypeInt 16 0
129: TypeInt 16 0 110: TypeVector 109(int16_t) 2
130: TypeVector 129(int16_t) 2 124: TypePointer Function 99(i8vec2)
131: TypePointer Function 130(i16vec2) 131: TypePointer Function 110(i16vec2)
149: TypeFloat 16 149: TypeFloat 16
150: TypeVector 149(float16_t) 2 150: TypeVector 149(float16_t) 2
151: TypePointer Function 150(f16vec2) 151: TypePointer Function 150(f16vec2)
@ -181,7 +181,7 @@ spv.int32.frag
395: 394(bvec3) ConstantComposite 381 381 381 395: 394(bvec3) ConstantComposite 381 381 381
397: TypeVector 91(int8_t) 4 397: TypeVector 91(int8_t) 4
398: TypePointer Function 397(i8vec4) 398: TypePointer Function 397(i8vec4)
405: TypeVector 120(int8_t) 4 405: TypeVector 98(int8_t) 4
406: TypePointer Function 405(i8vec4) 406: TypePointer Function 405(i8vec4)
417: TypePointer Function 63(int64_t) 417: TypePointer Function 63(int64_t)
421: TypePointer Function 394(bvec3) 421: TypePointer Function 394(bvec3)
@ -229,8 +229,8 @@ spv.int32.frag
78(f32v): 77(ptr) Variable Function 78(f32v): 77(ptr) Variable Function
84(f64v): 83(ptr) Variable Function 84(f64v): 83(ptr) Variable Function
94(i8v): 93(ptr) Variable Function 94(i8v): 93(ptr) Variable Function
103(i16v): 102(ptr) Variable Function 105(i16v): 104(ptr) Variable Function
123(u8v): 122(ptr) Variable Function 125(u8v): 124(ptr) Variable Function
132(u16v): 131(ptr) Variable Function 132(u16v): 131(ptr) Variable Function
152(f16v): 151(ptr) Variable Function 152(f16v): 151(ptr) Variable Function
168(bv): 167(ptr) Variable Function 168(bv): 167(ptr) Variable Function
@ -245,7 +245,7 @@ spv.int32.frag
69: 64(i64vec2) Bitcast 68 69: 64(i64vec2) Bitcast 68
Store 66(u64v) 69 Store 66(u64v) 69
70: 49(ivec2) Load 51(u32v) 70: 49(ivec2) Load 51(u32v)
71: 58(i64vec2) UConvert 70 71: 64(i64vec2) UConvert 70
72: 58(i64vec2) Bitcast 71 72: 58(i64vec2) Bitcast 71
Store 60(i64v) 72 Store 60(i64v) 72
73: 49(ivec2) Load 51(u32v) 73: 49(ivec2) Load 51(u32v)
@ -267,44 +267,44 @@ spv.int32.frag
96: 92(i8vec2) SConvert 95 96: 92(i8vec2) SConvert 95
Store 94(i8v) 96 Store 94(i8v) 96
97: 49(ivec2) Load 51(u32v) 97: 49(ivec2) Load 51(u32v)
98: 92(i8vec2) UConvert 97 100: 99(i8vec2) UConvert 97
99: 92(i8vec2) Bitcast 98 101: 92(i8vec2) Bitcast 100
Store 94(i8v) 99 Store 94(i8v) 101
104: 52(ivec2) Load 54(i32v) 106: 52(ivec2) Load 54(i32v)
105:101(i16vec2) SConvert 104 107:103(i16vec2) SConvert 106
Store 103(i16v) 105 Store 105(i16v) 107
106: 49(ivec2) Load 51(u32v) 108: 49(ivec2) Load 51(u32v)
107:101(i16vec2) UConvert 106 111:110(i16vec2) UConvert 108
108:101(i16vec2) Bitcast 107 112:103(i16vec2) Bitcast 111
Store 103(i16v) 108 Store 105(i16v) 112
109: 52(ivec2) Load 54(i32v) 113: 52(ivec2) Load 54(i32v)
110: 18(int) CompositeExtract 109 0 114: 18(int) CompositeExtract 113 0
111: 18(int) CompositeExtract 109 1 115: 18(int) CompositeExtract 113 1
112: 52(ivec2) CompositeConstruct 110 111 116: 52(ivec2) CompositeConstruct 114 115
Store 54(i32v) 112 Store 54(i32v) 116
113: 49(ivec2) Load 51(u32v)
114: 52(ivec2) Bitcast 113
Store 54(i32v) 114
115: 52(ivec2) Load 54(i32v)
116: 58(i64vec2) SConvert 115
Store 60(i64v) 116
117: 49(ivec2) Load 51(u32v) 117: 49(ivec2) Load 51(u32v)
118: 58(i64vec2) UConvert 117 118: 52(ivec2) Bitcast 117
119: 58(i64vec2) Bitcast 118 Store 54(i32v) 118
Store 60(i64v) 119 119: 52(ivec2) Load 54(i32v)
124: 52(ivec2) Load 54(i32v) 120: 58(i64vec2) SConvert 119
125: 92(i8vec2) SConvert 124 Store 60(i64v) 120
126: 121(i8vec2) Bitcast 125 121: 49(ivec2) Load 51(u32v)
Store 123(u8v) 126 122: 64(i64vec2) UConvert 121
127: 49(ivec2) Load 51(u32v) 123: 58(i64vec2) Bitcast 122
128: 121(i8vec2) UConvert 127 Store 60(i64v) 123
Store 123(u8v) 128 126: 52(ivec2) Load 54(i32v)
127: 92(i8vec2) SConvert 126
128: 99(i8vec2) Bitcast 127
Store 125(u8v) 128
129: 49(ivec2) Load 51(u32v)
130: 99(i8vec2) UConvert 129
Store 125(u8v) 130
133: 52(ivec2) Load 54(i32v) 133: 52(ivec2) Load 54(i32v)
134:101(i16vec2) SConvert 133 134:103(i16vec2) SConvert 133
135:130(i16vec2) Bitcast 134 135:110(i16vec2) Bitcast 134
Store 132(u16v) 135 Store 132(u16v) 135
136: 49(ivec2) Load 51(u32v) 136: 49(ivec2) Load 51(u32v)
137:130(i16vec2) UConvert 136 137:110(i16vec2) UConvert 136
Store 132(u16v) 137 Store 132(u16v) 137
138: 52(ivec2) Load 54(i32v) 138: 52(ivec2) Load 54(i32v)
139: 49(ivec2) Bitcast 138 139: 49(ivec2) Bitcast 138
@ -519,7 +519,7 @@ spv.int32.frag
325(u32v): 185(ptr) Variable Function 325(u32v): 185(ptr) Variable Function
327(u32): 38(ptr) Variable Function 327(u32): 38(ptr) Variable Function
399(i8v4): 398(ptr) Variable Function 399(i8v4): 398(ptr) Variable Function
402(i16v2): 102(ptr) Variable Function 402(i16v2): 104(ptr) Variable Function
407(u8v4): 406(ptr) Variable Function 407(u8v4): 406(ptr) Variable Function
410(u16v2): 131(ptr) Variable Function 410(u16v2): 131(ptr) Variable Function
413(i64): 226(ptr) Variable Function 413(i64): 226(ptr) Variable Function
@ -621,13 +621,13 @@ spv.int32.frag
400: 397(i8vec4) Load 399(i8v4) 400: 397(i8vec4) Load 399(i8v4)
401: 18(int) Bitcast 400 401: 18(int) Bitcast 400
Store 315(i32) 401 Store 315(i32) 401
403:101(i16vec2) Load 402(i16v2) 403:103(i16vec2) Load 402(i16v2)
404: 18(int) Bitcast 403 404: 18(int) Bitcast 403
Store 315(i32) 404 Store 315(i32) 404
408: 405(i8vec4) Load 407(u8v4) 408: 405(i8vec4) Load 407(u8v4)
409: 14(int) Bitcast 408 409: 14(int) Bitcast 408
Store 327(u32) 409 Store 327(u32) 409
411:130(i16vec2) Load 410(u16v2) 411:110(i16vec2) Load 410(u16v2)
412: 14(int) Bitcast 411 412: 14(int) Bitcast 411
Store 327(u32) 412 Store 327(u32) 412
414: 57(int64_t) Load 413(i64) 414: 57(int64_t) Load 413(i64)

View File

@ -167,13 +167,13 @@ spv.int64.frag
477: 14(int64_t) SpecConstantOp 113 468(su) 477: 14(int64_t) SpecConstantOp 113 468(su)
478: 18(int64_t) SpecConstantOp 128 466(su64) 69 478: 18(int64_t) SpecConstantOp 128 466(su64) 69
479: 14(int64_t) SpecConstantOp 128 465(si64) 69 479: 14(int64_t) SpecConstantOp 128 465(si64) 69
480: 31(int) SpecConstantOp 113 466(su64) 480: 21(int) SpecConstantOp 113 466(su64)
481: 31(int) SpecConstantOp 128 480 227 481: 31(int) SpecConstantOp 128 480 227
482: 18(int64_t) SpecConstantOp 114 467(si) 482: 18(int64_t) SpecConstantOp 114 467(si)
483: 14(int64_t) SpecConstantOp 128 482 69 483: 14(int64_t) SpecConstantOp 128 482 69
484: 31(int) SpecConstantOp 114 465(si64) 484: 31(int) SpecConstantOp 114 465(si64)
485: 21(int) SpecConstantOp 128 484 227 485: 21(int) SpecConstantOp 128 484 227
486: 18(int64_t) SpecConstantOp 113 468(su) 486: 14(int64_t) SpecConstantOp 113 468(su)
487: 18(int64_t) SpecConstantOp 128 486 69 487: 18(int64_t) SpecConstantOp 128 486 69
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
@ -268,11 +268,11 @@ spv.int64.frag
122: 81(ivec2) Bitcast 121 122: 81(ivec2) Bitcast 121
Store 83(uv) 122 Store 83(uv) 122
123: 81(ivec2) Load 83(uv) 123: 81(ivec2) Load 83(uv)
124: 52(i64vec2) UConvert 123 124: 65(i64vec2) UConvert 123
125: 52(i64vec2) Bitcast 124 125: 52(i64vec2) Bitcast 124
Store 54(i64v) 125 Store 54(i64v) 125
126: 65(i64vec2) Load 67(u64v) 126: 65(i64vec2) Load 67(u64v)
127: 74(ivec2) UConvert 126 127: 81(ivec2) UConvert 126
128: 74(ivec2) Bitcast 127 128: 74(ivec2) Bitcast 127
Store 76(iv) 128 Store 76(iv) 128
129: 74(ivec2) Load 76(iv) 129: 74(ivec2) Load 76(iv)

View File

@ -37,13 +37,13 @@ spv.int8.frag
Name 51 "u8v" Name 51 "u8v"
Name 54 "i8v" Name 54 "i8v"
Name 60 "i16v" Name 60 "i16v"
Name 68 "i32v" Name 70 "i32v"
Name 76 "u32v" Name 78 "u32v"
Name 83 "i64v" Name 85 "i64v"
Name 89 "u64v" Name 91 "u64v"
Name 103 "f16v" Name 105 "f16v"
Name 109 "f32v" Name 111 "f32v"
Name 115 "f64v" Name 117 "f64v"
Name 144 "u16v" Name 144 "u16v"
Name 174 "bv" Name 174 "bv"
Name 192 "u8v" Name 192 "u8v"
@ -125,28 +125,28 @@ spv.int8.frag
57: TypeInt 16 1 57: TypeInt 16 1
58: TypeVector 57(int16_t) 2 58: TypeVector 57(int16_t) 2
59: TypePointer Function 58(i16vec2) 59: TypePointer Function 58(i16vec2)
66: TypeVector 27(int) 2 64: TypeInt 16 0
67: TypePointer Function 66(ivec2) 65: TypeVector 64(int16_t) 2
68: TypeVector 27(int) 2
69: TypePointer Function 68(ivec2)
74: TypeVector 17(int) 2 74: TypeVector 17(int) 2
75: TypePointer Function 74(ivec2) 77: TypePointer Function 74(ivec2)
80: TypeInt 64 1 82: TypeInt 64 1
81: TypeVector 80(int64_t) 2 83: TypeVector 82(int64_t) 2
82: TypePointer Function 81(i64vec2) 84: TypePointer Function 83(i64vec2)
86: TypeInt 64 0 88: TypeInt 64 0
87: TypeVector 86(int64_t) 2 89: TypeVector 88(int64_t) 2
88: TypePointer Function 87(i64vec2) 90: TypePointer Function 89(i64vec2)
100: TypeFloat 16 102: TypeFloat 16
101: TypeVector 100(float16_t) 2 103: TypeVector 102(float16_t) 2
102: TypePointer Function 101(f16vec2) 104: TypePointer Function 103(f16vec2)
106: TypeFloat 32 108: TypeFloat 32
107: TypeVector 106(float) 2 109: TypeVector 108(float) 2
108: TypePointer Function 107(fvec2) 110: TypePointer Function 109(fvec2)
112: TypeFloat 64 114: TypeFloat 64
113: TypeVector 112(float64_t) 2 115: TypeVector 114(float64_t) 2
114: TypePointer Function 113(f64vec2) 116: TypePointer Function 115(f64vec2)
141: TypeInt 16 0 143: TypePointer Function 65(i16vec2)
142: TypeVector 141(int16_t) 2
143: TypePointer Function 142(i16vec2)
171: TypeBool 171: TypeBool
172: TypeVector 171(bool) 2 172: TypeVector 171(bool) 2
173: TypePointer Function 172(bvec2) 173: TypePointer Function 172(bvec2)
@ -179,7 +179,7 @@ spv.int8.frag
428: 427(bvec3) ConstantComposite 411 411 411 428: 427(bvec3) ConstantComposite 411 411 411
434: TypeVector 14(int8_t) 4 434: TypeVector 14(int8_t) 4
435: TypePointer Function 434(i8vec4) 435: TypePointer Function 434(i8vec4)
439: TypePointer Function 141(int16_t) 439: TypePointer Function 64(int16_t)
445: TypeVector 36(int8_t) 4 445: TypeVector 36(int8_t) 4
446: TypePointer Function 445(i8vec4) 446: TypePointer Function 445(i8vec4)
458: TypePointer Function 427(bvec3) 458: TypePointer Function 427(bvec3)
@ -217,13 +217,13 @@ spv.int8.frag
51(u8v): 50(ptr) Variable Function 51(u8v): 50(ptr) Variable Function
54(i8v): 53(ptr) Variable Function 54(i8v): 53(ptr) Variable Function
60(i16v): 59(ptr) Variable Function 60(i16v): 59(ptr) Variable Function
68(i32v): 67(ptr) Variable Function 70(i32v): 69(ptr) Variable Function
76(u32v): 75(ptr) Variable Function 78(u32v): 77(ptr) Variable Function
83(i64v): 82(ptr) Variable Function 85(i64v): 84(ptr) Variable Function
89(u64v): 88(ptr) Variable Function 91(u64v): 90(ptr) Variable Function
103(f16v): 102(ptr) Variable Function 105(f16v): 104(ptr) Variable Function
109(f32v): 108(ptr) Variable Function 111(f32v): 110(ptr) Variable Function
115(f64v): 114(ptr) Variable Function 117(f64v): 116(ptr) Variable Function
144(u16v): 143(ptr) Variable Function 144(u16v): 143(ptr) Variable Function
174(bv): 173(ptr) Variable Function 174(bv): 173(ptr) Variable Function
55: 52(i8vec2) Load 54(i8v) 55: 52(i8vec2) Load 54(i8v)
@ -233,116 +233,116 @@ spv.int8.frag
62: 58(i16vec2) SConvert 61 62: 58(i16vec2) SConvert 61
Store 60(i16v) 62 Store 60(i16v) 62
63: 49(i8vec2) Load 51(u8v) 63: 49(i8vec2) Load 51(u8v)
64: 58(i16vec2) UConvert 63 66: 65(i16vec2) UConvert 63
65: 58(i16vec2) Bitcast 64 67: 58(i16vec2) Bitcast 66
Store 60(i16v) 65 Store 60(i16v) 67
69: 52(i8vec2) Load 54(i8v) 71: 52(i8vec2) Load 54(i8v)
70: 66(ivec2) SConvert 69 72: 68(ivec2) SConvert 71
Store 68(i32v) 70 Store 70(i32v) 72
71: 49(i8vec2) Load 51(u8v) 73: 49(i8vec2) Load 51(u8v)
72: 66(ivec2) UConvert 71 75: 74(ivec2) UConvert 73
73: 66(ivec2) Bitcast 72 76: 68(ivec2) Bitcast 75
Store 68(i32v) 73 Store 70(i32v) 76
77: 52(i8vec2) Load 54(i8v) 79: 52(i8vec2) Load 54(i8v)
78: 66(ivec2) SConvert 77 80: 68(ivec2) SConvert 79
79: 74(ivec2) Bitcast 78 81: 74(ivec2) Bitcast 80
Store 76(u32v) 79 Store 78(u32v) 81
84: 52(i8vec2) Load 54(i8v) 86: 52(i8vec2) Load 54(i8v)
85: 81(i64vec2) SConvert 84 87: 83(i64vec2) SConvert 86
Store 83(i64v) 85 Store 85(i64v) 87
90: 52(i8vec2) Load 54(i8v) 92: 52(i8vec2) Load 54(i8v)
91: 81(i64vec2) SConvert 90 93: 83(i64vec2) SConvert 92
92: 87(i64vec2) Bitcast 91 94: 89(i64vec2) Bitcast 93
Store 89(u64v) 92 Store 91(u64v) 94
93: 49(i8vec2) Load 51(u8v)
94: 74(ivec2) UConvert 93
Store 76(u32v) 94
95: 49(i8vec2) Load 51(u8v) 95: 49(i8vec2) Load 51(u8v)
96: 81(i64vec2) UConvert 95 96: 74(ivec2) UConvert 95
97: 81(i64vec2) Bitcast 96 Store 78(u32v) 96
Store 83(i64v) 97 97: 49(i8vec2) Load 51(u8v)
98: 49(i8vec2) Load 51(u8v) 98: 89(i64vec2) UConvert 97
99: 87(i64vec2) UConvert 98 99: 83(i64vec2) Bitcast 98
Store 89(u64v) 99 Store 85(i64v) 99
104: 52(i8vec2) Load 54(i8v) 100: 49(i8vec2) Load 51(u8v)
105:101(f16vec2) ConvertSToF 104 101: 89(i64vec2) UConvert 100
Store 103(f16v) 105 Store 91(u64v) 101
110: 52(i8vec2) Load 54(i8v) 106: 52(i8vec2) Load 54(i8v)
111: 107(fvec2) ConvertSToF 110 107:103(f16vec2) ConvertSToF 106
Store 109(f32v) 111 Store 105(f16v) 107
116: 52(i8vec2) Load 54(i8v) 112: 52(i8vec2) Load 54(i8v)
117:113(f64vec2) ConvertSToF 116 113: 109(fvec2) ConvertSToF 112
Store 115(f64v) 117 Store 111(f32v) 113
118: 49(i8vec2) Load 51(u8v) 118: 52(i8vec2) Load 54(i8v)
119:101(f16vec2) ConvertUToF 118 119:115(f64vec2) ConvertSToF 118
Store 103(f16v) 119 Store 117(f64v) 119
120: 49(i8vec2) Load 51(u8v) 120: 49(i8vec2) Load 51(u8v)
121: 107(fvec2) ConvertUToF 120 121:103(f16vec2) ConvertUToF 120
Store 109(f32v) 121 Store 105(f16v) 121
122: 49(i8vec2) Load 51(u8v) 122: 49(i8vec2) Load 51(u8v)
123:113(f64vec2) ConvertUToF 122 123: 109(fvec2) ConvertUToF 122
Store 115(f64v) 123 Store 111(f32v) 123
124: 49(i8vec2) Load 51(u8v) 124: 49(i8vec2) Load 51(u8v)
125: 52(i8vec2) Bitcast 124 125:115(f64vec2) ConvertUToF 124
Store 54(i8v) 125 Store 117(f64v) 125
126: 52(i8vec2) Load 54(i8v) 126: 49(i8vec2) Load 51(u8v)
127: 58(i16vec2) SConvert 126 127: 52(i8vec2) Bitcast 126
Store 60(i16v) 127 Store 54(i8v) 127
128: 49(i8vec2) Load 51(u8v) 128: 52(i8vec2) Load 54(i8v)
129: 58(i16vec2) UConvert 128 129: 58(i16vec2) SConvert 128
130: 58(i16vec2) Bitcast 129 Store 60(i16v) 129
Store 60(i16v) 130 130: 49(i8vec2) Load 51(u8v)
131: 52(i8vec2) Load 54(i8v) 131: 65(i16vec2) UConvert 130
132: 66(ivec2) SConvert 131 132: 58(i16vec2) Bitcast 131
Store 68(i32v) 132 Store 60(i16v) 132
133: 49(i8vec2) Load 51(u8v) 133: 52(i8vec2) Load 54(i8v)
134: 66(ivec2) UConvert 133 134: 68(ivec2) SConvert 133
135: 66(ivec2) Bitcast 134 Store 70(i32v) 134
Store 68(i32v) 135 135: 49(i8vec2) Load 51(u8v)
136: 52(i8vec2) Load 54(i8v) 136: 74(ivec2) UConvert 135
137: 81(i64vec2) SConvert 136 137: 68(ivec2) Bitcast 136
Store 83(i64v) 137 Store 70(i32v) 137
138: 52(i8vec2) Load 54(i8v) 138: 52(i8vec2) Load 54(i8v)
139: 81(i64vec2) SConvert 138 139: 83(i64vec2) SConvert 138
140: 87(i64vec2) Bitcast 139 Store 85(i64v) 139
Store 89(u64v) 140 140: 52(i8vec2) Load 54(i8v)
141: 83(i64vec2) SConvert 140
142: 89(i64vec2) Bitcast 141
Store 91(u64v) 142
145: 52(i8vec2) Load 54(i8v) 145: 52(i8vec2) Load 54(i8v)
146: 58(i16vec2) SConvert 145 146: 58(i16vec2) SConvert 145
147:142(i16vec2) Bitcast 146 147: 65(i16vec2) Bitcast 146
Store 144(u16v) 147 Store 144(u16v) 147
148: 49(i8vec2) Load 51(u8v) 148: 49(i8vec2) Load 51(u8v)
149:142(i16vec2) UConvert 148 149: 65(i16vec2) UConvert 148
Store 144(u16v) 149 Store 144(u16v) 149
150: 49(i8vec2) Load 51(u8v) 150: 49(i8vec2) Load 51(u8v)
151: 74(ivec2) UConvert 150 151: 74(ivec2) UConvert 150
Store 76(u32v) 151 Store 78(u32v) 151
152: 49(i8vec2) Load 51(u8v) 152: 49(i8vec2) Load 51(u8v)
153: 81(i64vec2) UConvert 152 153: 89(i64vec2) UConvert 152
154: 81(i64vec2) Bitcast 153 154: 83(i64vec2) Bitcast 153
Store 83(i64v) 154 Store 85(i64v) 154
155: 49(i8vec2) Load 51(u8v) 155: 49(i8vec2) Load 51(u8v)
156: 81(i64vec2) UConvert 155 156: 89(i64vec2) UConvert 155
157: 81(i64vec2) Bitcast 156 157: 83(i64vec2) Bitcast 156
158: 87(i64vec2) Bitcast 157 158: 89(i64vec2) Bitcast 157
Store 89(u64v) 158 Store 91(u64v) 158
159: 52(i8vec2) Load 54(i8v) 159: 52(i8vec2) Load 54(i8v)
160:101(f16vec2) ConvertSToF 159 160:103(f16vec2) ConvertSToF 159
Store 103(f16v) 160 Store 105(f16v) 160
161: 52(i8vec2) Load 54(i8v) 161: 52(i8vec2) Load 54(i8v)
162: 107(fvec2) ConvertSToF 161 162: 109(fvec2) ConvertSToF 161
Store 109(f32v) 162 Store 111(f32v) 162
163: 52(i8vec2) Load 54(i8v) 163: 52(i8vec2) Load 54(i8v)
164:113(f64vec2) ConvertSToF 163 164:115(f64vec2) ConvertSToF 163
Store 115(f64v) 164 Store 117(f64v) 164
165: 49(i8vec2) Load 51(u8v) 165: 49(i8vec2) Load 51(u8v)
166:101(f16vec2) ConvertUToF 165 166:103(f16vec2) ConvertUToF 165
Store 103(f16v) 166 Store 105(f16v) 166
167: 49(i8vec2) Load 51(u8v) 167: 49(i8vec2) Load 51(u8v)
168: 107(fvec2) ConvertUToF 167 168: 109(fvec2) ConvertUToF 167
Store 109(f32v) 168 Store 111(f32v) 168
169: 49(i8vec2) Load 51(u8v) 169: 49(i8vec2) Load 51(u8v)
170:113(f64vec2) ConvertUToF 169 170:115(f64vec2) ConvertUToF 169
Store 115(f64v) 170 Store 117(f64v) 170
175: 172(bvec2) Load 174(bv) 175: 172(bvec2) Load 174(bv)
179: 52(i8vec2) Select 175 178 177 179: 52(i8vec2) Select 175 178 177
Store 54(i8v) 179 Store 54(i8v) 179
@ -649,7 +649,7 @@ spv.int8.frag
438: 27(int) Bitcast 437 438: 27(int) Bitcast 437
Store 433(i32) 438 Store 433(i32) 438
442: 49(i8vec2) Load 441(u8v2) 442: 49(i8vec2) Load 441(u8v2)
443:141(int16_t) Bitcast 442 443: 64(int16_t) Bitcast 442
Store 440(u16) 443 Store 440(u16) 443
448: 445(i8vec4) Load 447(u8v4) 448: 445(i8vec4) Load 447(u8v4)
449: 17(int) Bitcast 448 449: 17(int) Bitcast 448
@ -660,7 +660,7 @@ spv.int8.frag
452: 27(int) Load 433(i32) 452: 27(int) Load 433(i32)
453: 434(i8vec4) Bitcast 452 453: 434(i8vec4) Bitcast 452
Store 436(i8v4) 453 Store 436(i8v4) 453
454:141(int16_t) Load 440(u16) 454: 64(int16_t) Load 440(u16)
455: 49(i8vec2) Bitcast 454 455: 49(i8vec2) Bitcast 454
Store 441(u8v2) 455 Store 441(u8v2) 455
456: 17(int) Load 444(u32) 456: 17(int) Load 444(u32)

View File

@ -125,8 +125,8 @@ spv.vulkan110.int16.frag
53: TypePointer Function 52(i16vec2) 53: TypePointer Function 52(i16vec2)
57: TypeVector 36(int16_t) 2 57: TypeVector 36(int16_t) 2
58: TypePointer Function 57(i16vec2) 58: TypePointer Function 57(i16vec2)
65: TypeVector 17(int) 2 61: TypeVector 17(int) 2
66: TypePointer Function 65(ivec2) 66: TypePointer Function 61(ivec2)
71: TypeInt 64 1 71: TypeInt 64 1
72: TypeVector 71(int64_t) 2 72: TypeVector 71(int64_t) 2
73: TypePointer Function 72(i64vec2) 73: TypePointer Function 72(i64vec2)
@ -145,9 +145,9 @@ spv.vulkan110.int16.frag
151: TypeInt 8 1 151: TypeInt 8 1
152: TypeVector 151(int8_t) 2 152: TypeVector 151(int8_t) 2
153: TypePointer Function 152(i8vec2) 153: TypePointer Function 152(i8vec2)
160: TypeInt 8 0 158: TypeInt 8 0
161: TypeVector 160(int8_t) 2 159: TypeVector 158(int8_t) 2
162: TypePointer Function 161(i8vec2) 162: TypePointer Function 159(i8vec2)
173: TypeBool 173: TypeBool
174: TypeVector 173(bool) 2 174: TypeVector 173(bool) 2
175: TypePointer Function 174(bvec2) 175: TypePointer Function 174(bvec2)
@ -232,15 +232,15 @@ spv.vulkan110.int16.frag
56: 49(ivec2) SConvert 55 56: 49(ivec2) SConvert 55
Store 51(i32v) 56 Store 51(i32v) 56
60: 57(i16vec2) Load 59(u16v) 60: 57(i16vec2) Load 59(u16v)
61: 49(ivec2) UConvert 60 62: 61(ivec2) UConvert 60
62: 49(ivec2) Bitcast 61 63: 49(ivec2) Bitcast 62
Store 51(i32v) 62 Store 51(i32v) 63
63: 52(i16vec2) Load 54(i16v) 64: 52(i16vec2) Load 54(i16v)
64: 57(i16vec2) Bitcast 63 65: 57(i16vec2) Bitcast 64
Store 59(u16v) 64 Store 59(u16v) 65
68: 52(i16vec2) Load 54(i16v) 68: 52(i16vec2) Load 54(i16v)
69: 49(ivec2) SConvert 68 69: 49(ivec2) SConvert 68
70: 65(ivec2) Bitcast 69 70: 61(ivec2) Bitcast 69
Store 67(u32v) 70 Store 67(u32v) 70
75: 52(i16vec2) Load 54(i16v) 75: 52(i16vec2) Load 54(i16v)
76: 72(i64vec2) SConvert 75 76: 72(i64vec2) SConvert 75
@ -250,10 +250,10 @@ spv.vulkan110.int16.frag
83: 78(i64vec2) Bitcast 82 83: 78(i64vec2) Bitcast 82
Store 80(u64v) 83 Store 80(u64v) 83
84: 57(i16vec2) Load 59(u16v) 84: 57(i16vec2) Load 59(u16v)
85: 65(ivec2) UConvert 84 85: 61(ivec2) UConvert 84
Store 67(u32v) 85 Store 67(u32v) 85
86: 57(i16vec2) Load 59(u16v) 86: 57(i16vec2) Load 59(u16v)
87: 72(i64vec2) UConvert 86 87: 78(i64vec2) UConvert 86
88: 72(i64vec2) Bitcast 87 88: 72(i64vec2) Bitcast 87
Store 74(i64v) 88 Store 74(i64v) 88
89: 57(i16vec2) Load 59(u16v) 89: 57(i16vec2) Load 59(u16v)
@ -281,7 +281,7 @@ spv.vulkan110.int16.frag
116: 49(ivec2) SConvert 115 116: 49(ivec2) SConvert 115
Store 51(i32v) 116 Store 51(i32v) 116
117: 57(i16vec2) Load 59(u16v) 117: 57(i16vec2) Load 59(u16v)
118: 49(ivec2) UConvert 117 118: 61(ivec2) UConvert 117
119: 49(ivec2) Bitcast 118 119: 49(ivec2) Bitcast 118
Store 51(i32v) 119 Store 51(i32v) 119
120: 52(i16vec2) Load 54(i16v) 120: 52(i16vec2) Load 54(i16v)
@ -289,7 +289,7 @@ spv.vulkan110.int16.frag
Store 59(u16v) 121 Store 59(u16v) 121
122: 52(i16vec2) Load 54(i16v) 122: 52(i16vec2) Load 54(i16v)
123: 49(ivec2) SConvert 122 123: 49(ivec2) SConvert 122
124: 65(ivec2) Bitcast 123 124: 61(ivec2) Bitcast 123
Store 67(u32v) 124 Store 67(u32v) 124
125: 52(i16vec2) Load 54(i16v) 125: 52(i16vec2) Load 54(i16v)
126: 72(i64vec2) SConvert 125 126: 72(i64vec2) SConvert 125
@ -299,14 +299,14 @@ spv.vulkan110.int16.frag
129: 78(i64vec2) Bitcast 128 129: 78(i64vec2) Bitcast 128
Store 80(u64v) 129 Store 80(u64v) 129
130: 57(i16vec2) Load 59(u16v) 130: 57(i16vec2) Load 59(u16v)
131: 65(ivec2) UConvert 130 131: 61(ivec2) UConvert 130
Store 67(u32v) 131 Store 67(u32v) 131
132: 57(i16vec2) Load 59(u16v) 132: 57(i16vec2) Load 59(u16v)
133: 72(i64vec2) UConvert 132 133: 78(i64vec2) UConvert 132
134: 72(i64vec2) Bitcast 133 134: 72(i64vec2) Bitcast 133
Store 74(i64v) 134 Store 74(i64v) 134
135: 57(i16vec2) Load 59(u16v) 135: 57(i16vec2) Load 59(u16v)
136: 72(i64vec2) UConvert 135 136: 78(i64vec2) UConvert 135
137: 72(i64vec2) Bitcast 136 137: 72(i64vec2) Bitcast 136
138: 78(i64vec2) Bitcast 137 138: 78(i64vec2) Bitcast 137
Store 80(u64v) 138 Store 80(u64v) 138
@ -332,19 +332,19 @@ spv.vulkan110.int16.frag
156: 152(i8vec2) SConvert 155 156: 152(i8vec2) SConvert 155
Store 154(i8v) 156 Store 154(i8v) 156
157: 57(i16vec2) Load 59(u16v) 157: 57(i16vec2) Load 59(u16v)
158: 152(i8vec2) UConvert 157 160: 159(i8vec2) UConvert 157
159: 152(i8vec2) Bitcast 158 161: 152(i8vec2) Bitcast 160
Store 154(i8v) 159 Store 154(i8v) 161
164: 52(i16vec2) Load 54(i16v) 164: 52(i16vec2) Load 54(i16v)
165: 152(i8vec2) SConvert 164 165: 152(i8vec2) SConvert 164
166: 161(i8vec2) Bitcast 165 166: 159(i8vec2) Bitcast 165
Store 163(u8v) 166 Store 163(u8v) 166
167: 57(i16vec2) Load 59(u16v) 167: 57(i16vec2) Load 59(u16v)
168: 161(i8vec2) UConvert 167 168: 159(i8vec2) UConvert 167
Store 163(u8v) 168 Store 163(u8v) 168
169: 57(i16vec2) Load 59(u16v) 169: 57(i16vec2) Load 59(u16v)
170: 161(i8vec2) UConvert 169 170: 159(i8vec2) UConvert 169
171: 52(i16vec2) UConvert 170 171: 57(i16vec2) UConvert 170
172: 52(i16vec2) Bitcast 171 172: 52(i16vec2) Bitcast 171
Store 54(i16v) 172 Store 54(i16v) 172
177: 174(bvec2) Load 176(bv) 177: 174(bvec2) Load 176(bv)