[llvm] [GlobalISel] Support vector G_UNMERGE_VALUES in computeKnownBits. (PR #112172)
Matt Arsenault via llvm-commits
llvm-commits at lists.llvm.org
Mon Oct 14 05:24:06 PDT 2024
================
@@ -514,23 +514,33 @@ void GISelKnownBits::computeKnownBitsImpl(Register R, KnownBits &Known,
break;
}
case TargetOpcode::G_UNMERGE_VALUES: {
- if (DstTy.isVector())
- break;
unsigned NumOps = MI.getNumOperands();
Register SrcReg = MI.getOperand(NumOps - 1).getReg();
- if (MRI.getType(SrcReg).isVector())
- return; // TODO: Handle vectors.
+ LLT SrcTy = MRI.getType(SrcReg);
- KnownBits SrcOpKnown;
- computeKnownBitsImpl(SrcReg, SrcOpKnown, DemandedElts, Depth + 1);
+ if (SrcTy.isVector() && SrcTy.getScalarType() != DstTy.getScalarType())
+ return; // TODO: Handle vector->subelement unmerges?
----------------
arsenm wrote:
Yes, should
https://github.com/llvm/llvm-project/pull/112172
More information about the llvm-commits
mailing list