Skip to content

Commit cb34bb2

Browse files
committed
[GlobalISel][AArch64] Allow vector ptr to int unmerges
Vector pointer -> scalar integer unmerges are already legal. This loosens the verifier check for vector-of-pointers -> vectors.
1 parent 3d4d033 commit cb34bb2

File tree

3 files changed

+486
-1
lines changed

3 files changed

+486
-1
lines changed

llvm/lib/CodeGen/MachineVerifier.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1487,7 +1487,9 @@ void MachineVerifier::verifyPreISelGenericInstruction(const MachineInstr *MI) {
14871487
LLT SrcTy = MRI->getType(MI->getOperand(NumDsts).getReg());
14881488
if (DstTy.isVector()) {
14891489
// This case is the converse of G_CONCAT_VECTORS.
1490-
if (!SrcTy.isVector() || SrcTy.getScalarType() != DstTy.getScalarType() ||
1490+
if (!SrcTy.isVector() ||
1491+
(SrcTy.getScalarType() != DstTy.getScalarType() &&
1492+
!SrcTy.isPointerVector()) ||
14911493
SrcTy.isScalableVector() != DstTy.isScalableVector() ||
14921494
SrcTy.getSizeInBits() != NumDsts * DstTy.getSizeInBits())
14931495
report("G_UNMERGE_VALUES source operand does not match vector "

0 commit comments

Comments
 (0)