From 0aa0ebe2ee3e6042e14f49d5d0fbbe5592d34253 Mon Sep 17 00:00:00 2001 From: Tony Tye Date: Mon, 18 Jan 2021 15:47:19 +0000 Subject: [PATCH] Correct isa lookup for targets that do not support a target feature Change-Id: I130070a53162e5d9fcc6a64a4bdda7869179be82 [ROCm/ROCR-Runtime commit: 26fe26e415ff3d658836e26267ce26205282fcbf] --- .../runtime/hsa-runtime/core/runtime/isa.cpp | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/projects/rocr-runtime/runtime/hsa-runtime/core/runtime/isa.cpp b/projects/rocr-runtime/runtime/hsa-runtime/core/runtime/isa.cpp index 4f244c0b3f..9481b1d593 100755 --- a/projects/rocr-runtime/runtime/hsa-runtime/core/runtime/isa.cpp +++ b/projects/rocr-runtime/runtime/hsa-runtime/core/runtime/isa.cpp @@ -204,11 +204,14 @@ const Isa *IsaRegistry::GetIsa(const std::string &full_name) { } const Isa *IsaRegistry::GetIsa(const Isa::Version &version, IsaFeature sramecc, IsaFeature xnack) { - auto isareg_iter = std::find_if( - supported_isas_.begin(), supported_isas_.end(), [&](const IsaMap::value_type& isareg) { - return isareg.second.GetVersion() == version && isareg.second.GetSramecc() == sramecc && - isareg.second.GetXnack() == xnack; - }); + auto isareg_iter = std::find_if(supported_isas_.begin(), supported_isas_.end(), + [&](const IsaMap::value_type& isareg) { + return isareg.second.GetVersion() == version && + (isareg.second.GetSramecc() == IsaFeature::Unsupported || + isareg.second.GetSramecc() == sramecc) && + (isareg.second.GetSramecc() == IsaFeature::Unsupported || + isareg.second.GetXnack() == xnack); + }); return isareg_iter == supported_isas_.end() ? nullptr : &isareg_iter->second; }