1 //===- lit-cpuid.cpp - Get CPU feature flags for lit exported features ----===// 2 // 3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4 // See https://llvm.org/LICENSE.txt for license information. 5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6 // 7 //===----------------------------------------------------------------------===// 8 // 9 // lit-cpuid obtains the feature list for the currently running CPU, and outputs 10 // those flags that are interesting for LLDB lit tests. 11 // 12 //===----------------------------------------------------------------------===// 13 14 #include "llvm/ADT/StringMap.h" 15 #include "llvm/Support/Host.h" 16 #include "llvm/Support/raw_ostream.h" 17 18 using namespace llvm; 19 main(int argc,char ** argv)20int main(int argc, char **argv) { 21 #if defined(__i386__) || defined(_M_IX86) || \ 22 defined(__x86_64__) || defined(_M_X64) 23 StringMap<bool> features; 24 25 if (!sys::getHostCPUFeatures(features)) 26 return 1; 27 28 if (features["sse"]) 29 outs() << "sse\n"; 30 if (features["avx"]) 31 outs() << "avx\n"; 32 if (features["avx512f"]) 33 outs() << "avx512f\n"; 34 #endif 35 36 return 0; 37 } 38