AMDGPU: Fix crash with dispatch.ptr intrinsic with non-HSA target
[oota-llvm.git] / lib / Target / AMDGPU / SIISelLowering.cpp
index e85d78a69ee6a6620d8f04f754bfd8acb13b581b..c251752bb0dddf8528d5d30fa90b664b90e87894 100644 (file)
@@ -1157,6 +1157,13 @@ SDValue SITargetLowering::LowerINTRINSIC_WO_CHAIN(SDValue Op,
 
   switch (IntrinsicID) {
   case Intrinsic::amdgcn_dispatch_ptr:
+    if (!Subtarget->isAmdHsaOS()) {
+      DiagnosticInfoUnsupported BadIntrin(*MF.getFunction(),
+                                          "hsa intrinsic without hsa target");
+      DAG.getContext()->diagnose(BadIntrin);
+      return DAG.getUNDEF(VT);
+    }
+
     return CreateLiveInRegister(DAG, &AMDGPU::SReg_64RegClass,
       TRI->getPreloadedValue(MF, SIRegisterInfo::DISPATCH_PTR), VT);