|  | // Copyright 2024 The IREE Authors | 
|  | // | 
|  | // Licensed under the Apache License v2.0 with LLVM Exceptions. | 
|  | // See https://llvm.org/LICENSE.txt for license information. | 
|  | // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception | 
|  |  | 
|  | #ifndef IREE_COMPILER_PLUGINS_TARGET_LLVMCPU_RESOLVECPUANDCPUFEATURES_H_ | 
|  | #define IREE_COMPILER_PLUGINS_TARGET_LLVMCPU_RESOLVECPUANDCPUFEATURES_H_ | 
|  |  | 
|  | #include <string> | 
|  | #include <string_view> | 
|  |  | 
|  | namespace mlir::iree_compiler::IREE::HAL { | 
|  |  | 
|  | enum class ResolveCPUAndCPUFeaturesStatus { | 
|  | OK, | 
|  | InconsistentHost, | 
|  | UnimplementedMapping, | 
|  | ImplicitGenericFallback | 
|  | }; | 
|  |  | 
|  | // Given an input `triple` and the input-output parameters `cpu` and | 
|  | // `cpuFeatures`, which may be empty or the special "host" value, this function | 
|  | // populates `cpu` and `cpuFeatures` with all the information that is known. | 
|  | ResolveCPUAndCPUFeaturesStatus | 
|  | resolveCPUAndCPUFeatures(std::string_view triple, std::string &cpu, | 
|  | std::string &cpuFeatures); | 
|  |  | 
|  | std::string getMessage(ResolveCPUAndCPUFeaturesStatus status, | 
|  | std::string_view triple); | 
|  |  | 
|  | } // namespace mlir::iree_compiler::IREE::HAL | 
|  |  | 
|  | #endif // IREE_COMPILER_PLUGINS_TARGET_LLVMCPU_RESOLVECPUANDCPUFEATURES_H_ |