Index: lib/CodeGen/MachineVerifier.cpp =================================================================== --- lib/CodeGen/MachineVerifier.cpp +++ lib/CodeGen/MachineVerifier.cpp @@ -1784,6 +1784,12 @@ const LiveRange::Segment &S = *I; const VNInfo *VNI = S.valno; assert(VNI && "Live segment has no valno"); + + if(TargetRegisterInfo::isPhysicalRegister(Reg)) { + MCRegUnitRootIterator Roots(Reg, TRI); + if(isReserved(*Roots)) + return; + } if (VNI->id >= LR.getNumValNums() || VNI != LR.getValNumInfo(VNI->id)) { report("Foreign valno in live segment", MF); Index: test/CodeGen/Mips/no-odd-spreg-msa.ll =================================================================== --- test/CodeGen/Mips/no-odd-spreg-msa.ll +++ test/CodeGen/Mips/no-odd-spreg-msa.ll @@ -1,8 +1,8 @@ ; RUN: llc -march=mipsel -mcpu=mips32 -mattr=+fp64,+msa,-nooddspreg \ -; RUN: -no-integrated-as -relocation-model=pic < %s | \ +; RUN: -no-integrated-as -verify-machineinstrs -relocation-model=pic < %s | \ ; RUN: FileCheck %s -check-prefixes=ALL,ODDSPREG ; RUN: llc -march=mipsel -mcpu=mips32 -mattr=+fp64,+msa,+nooddspreg \ -; RUN: -no-integrated-as -relocation-model=pic < %s | \ +; RUN: -no-integrated-as -verify-machineinstrs -relocation-model=pic < %s | \ ; RUN: FileCheck %s -check-prefixes=ALL,NOODDSPREG @v4f32 = global <4 x float> zeroinitializer