nv50/ir: handle U8/U16 integers converting to U64
We can't directly convert from unsigned integers smaller than 64 bit to unsigned 64 bit integers. Hence, converting from 32 bit to 64 bit is handled by just merging with 0. To support U8/U16 integers handle them just the same way. Reviewed-by: Karol Herbst <kherbst@redhat.com> Signed-off-by: Danilo Krummrich <dakr@redhat.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18109>
This commit is contained in:
@@ -154,9 +154,11 @@ LoweringHelper::handleCVT(Instruction *insn)
|
||||
return true;
|
||||
}
|
||||
|
||||
if (dTy == TYPE_U64 && sTy == TYPE_U32) {
|
||||
if (dTy == TYPE_U64 && isUnsignedIntType(sTy) && typeSizeof(sTy) <= 4) {
|
||||
insn->op = OP_MERGE;
|
||||
insn->setSrc(1, bld.loadImm(bld.getSSA(), 0));
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
return true;
|
||||
|
||||
Reference in New Issue
Block a user