From e68e4cbcc50ba7ab8df5e09023f15e6cc2223bef Mon Sep 17 00:00:00 2001 From: Eli Friedman Date: Mon, 13 Jan 2020 15:32:45 -0800 Subject: [GlobalISel] Change representation of shuffle masks in MachineOperand. We're planning to remove the shufflemask operand from ShuffleVectorInst (D72467); fix GlobalISel so it doesn't depend on that Constant. The change to prelegalizercombiner-shuffle-vector.mir happens because the input contains a literal "-1" in the mask (so the parser/verifier weren't really handling it properly). We now treat it as equivalent to "undef" in all contexts. Differential Revision: https://reviews.llvm.org/D72663 --- llvm/lib/CodeGen/MachineVerifier.cpp | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) (limited to 'llvm/lib/CodeGen/MachineVerifier.cpp') diff --git a/llvm/lib/CodeGen/MachineVerifier.cpp b/llvm/lib/CodeGen/MachineVerifier.cpp index b2534c2..6c0402d 100644 --- a/llvm/lib/CodeGen/MachineVerifier.cpp +++ b/llvm/lib/CodeGen/MachineVerifier.cpp @@ -1407,18 +1407,6 @@ void MachineVerifier::verifyPreISelGenericInstruction(const MachineInstr *MI) { break; } - const Constant *Mask = MaskOp.getShuffleMask(); - auto *MaskVT = dyn_cast(Mask->getType()); - if (!MaskVT || !MaskVT->getElementType()->isIntegerTy(32)) { - report("Invalid shufflemask constant type", MI); - break; - } - - if (!Mask->getAggregateElement(0u)) { - report("Invalid shufflemask constant type", MI); - break; - } - LLT DstTy = MRI->getType(MI->getOperand(0).getReg()); LLT Src0Ty = MRI->getType(MI->getOperand(1).getReg()); LLT Src1Ty = MRI->getType(MI->getOperand(2).getReg()); @@ -1434,8 +1422,7 @@ void MachineVerifier::verifyPreISelGenericInstruction(const MachineInstr *MI) { int SrcNumElts = Src0Ty.isVector() ? Src0Ty.getNumElements() : 1; int DstNumElts = DstTy.isVector() ? DstTy.getNumElements() : 1; - SmallVector MaskIdxes; - ShuffleVectorInst::getShuffleMask(Mask, MaskIdxes); + ArrayRef MaskIdxes = MaskOp.getShuffleMask(); if (static_cast(MaskIdxes.size()) != DstNumElts) report("Wrong result type for shufflemask", MI); -- cgit v1.1