================
@@ -6695,9 +6709,22 @@ bool AMDGPUAsmParser::ParseDirectiveISAVersion() {
   std::optional<AMDGPU::TargetID> MaybeParsed =
       AMDGPU::TargetID::parseTargetIDString(TargetIDDirective);
   if (!MaybeParsed)
-    return Error(getParser().getTok().getLoc(), "malformed target id");
+    return Error(getParser().getTok().getLoc(),
+                 "malformed target id '" + TargetIDDirective + "'");
 
   const AMDGPU::TargetID &ParsedTargetID = *MaybeParsed;
+  const Triple &TT = getSTI().getTargetTriple();
+
+  // The processor named in the target id must be covered by the triple's
+  // subarch.
+  if (!AMDGPU::isCPUValidForSubArch(TT.getSubArch(),
+                                    ParsedTargetID.getGPUKind())) {
+    return Error(getParser().getTok().getLoc(),
----------------
slinder1 wrote:

Nit: Maybe not worth factoring it out, but this seems to be the exact error 
from ParseDirectiveAMDGCNTarget, just formatted slightly differently

https://github.com/llvm/llvm-project/pull/206480
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to