swr/rast: jit PRINT improvements.

Sign-extend integer types to 32bit when specifying "%d" and add new %u
which zero-extends to 32bit. Improves  printing of sub 32bit integer types
(i1 specifically).

Reviewed-by: Bruce Cherniak <bruce.cherniak@intel.com>
This commit is contained in:
George Kyriazis 2018-04-23 16:34:44 -05:00
parent 5d403178e6
commit edc41f73b8

View file

@ -416,9 +416,20 @@ namespace SwrJit
{
tempStr.insert(pos, std::string("%d "));
pos += 3;
printCallArgs.push_back(VEXTRACT(pArg, C(i)));
printCallArgs.push_back(S_EXT(VEXTRACT(pArg, C(i)), Type::getInt32Ty(JM()->mContext)));
}
printCallArgs.push_back(VEXTRACT(pArg, C(i)));
printCallArgs.push_back(S_EXT(VEXTRACT(pArg, C(i)), Type::getInt32Ty(JM()->mContext)));
}
else if ((tempStr[pos + 1] == 'u') && (pContainedType->isIntegerTy()))
{
uint32_t i = 0;
for (; i < (pArg->getType()->getVectorNumElements()) - 1; i++)
{
tempStr.insert(pos, std::string("%d "));
pos += 3;
printCallArgs.push_back(Z_EXT(VEXTRACT(pArg, C(i)), Type::getInt32Ty(JM()->mContext)));
}
printCallArgs.push_back(Z_EXT(VEXTRACT(pArg, C(i)), Type::getInt32Ty(JM()->mContext)));
}
}
else