Refine the code and address comments

This commit is contained in:
qining
2016-04-12 23:16:20 -04:00
parent e24aa5edbb
commit 189b2033a4
3 changed files with 7 additions and 16 deletions

View File

@@ -3306,22 +3306,11 @@ spv::Id TGlslangToSpvTraverser::createConversion(glslang::TOperator op, spv::Dec
break;
case glslang::EOpConvUintToInt:
if (builder.isInSpecConstCodeGenMode()) {
// Build zero scalar or vector for OpIAdd to do the conversion when
// generating for OpSpecConstantOp instruction.
zero = builder.makeIntConstant(0);
zero = makeSmearedConstant(zero, vectorSize);
}
// Don't 'break' here as this case should be grouped together with
// EOpConvIntToUint when generating normal run-time conversion
// instruction.
case glslang::EOpConvIntToUint:
if (builder.isInSpecConstCodeGenMode()) {
// Build zero scalar or vector for OpIAdd.
if (zero == 0) {
zero = builder.makeUintConstant(0);
zero = makeSmearedConstant(zero, vectorSize);
}
zero = builder.makeUintConstant(0);
zero = makeSmearedConstant(zero, vectorSize);
// Use OpIAdd, instead of OpBitcast to do the conversion when
// generating for OpSpecConstantOp instruction.
return builder.createBinOp(spv::OpIAdd, destType, operand, zero);