AMDGPU/GlobalISel: Work around a selector crash
authorMatt Arsenault <Matthew.Arsenault@amd.com>
Wed, 15 Apr 2020 18:37:31 +0000 (14:37 -0400)
committerMatt Arsenault <Matthew.Arsenault@amd.com>
Wed, 15 Apr 2020 18:38:50 +0000 (14:38 -0400)
Ideally types without a corresponding register class wouldn't reach
here, but we're currently missing some (in particular a 192-bit class
is missing).

llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp

index a52816d..f1bb8f3 100644 (file)
@@ -1627,6 +1627,8 @@ bool AMDGPUInstructionSelector::selectG_TRUNC(MachineInstr &I) const {
     = TRI.getRegClassForSizeOnBank(SrcSize, *SrcRB, *MRI);
   const TargetRegisterClass *DstRC
     = TRI.getRegClassForSizeOnBank(DstSize, *DstRB, *MRI);
+  if (!SrcRC || !DstRC)
+    return false;
 
   if (!RBI.constrainGenericRegister(SrcReg, *SrcRC, *MRI) ||
       !RBI.constrainGenericRegister(DstReg, *DstRC, *MRI)) {