diff --git a/sycl/source/detail/device_filter.cpp b/sycl/source/detail/device_filter.cpp index c35d6e4fd59a2..72bd18006ecb3 100644 --- a/sycl/source/detail/device_filter.cpp +++ b/sycl/source/detail/device_filter.cpp @@ -237,10 +237,13 @@ ods_target_list::ods_target_list(const std::string &envStr) { // 1. Filter backend is '*' which means ANY backend. // 2. Filter backend match exactly with the given 'Backend' bool ods_target_list::backendCompatible(backend Backend) { + + bool isESIMD = Backend == backend::ext_intel_esimd_emulator; return std::any_of( TargetList.begin(), TargetList.end(), [&](ods_target &Target) { backend TargetBackend = Target.Backend.value_or(backend::all); - return (TargetBackend == Backend) || (TargetBackend == backend::all); + return (TargetBackend == Backend) || + (TargetBackend == backend::all && !isESIMD); }); }