Index: lib/Basic/Targets.cpp =================================================================== --- lib/Basic/Targets.cpp +++ lib/Basic/Targets.cpp @@ -5347,6 +5347,7 @@ .Cases("cortex-a53", "cortex-a57", "cortex-a72", "cortex-a35", "exynos-m1", true) .Case("cyclone", true) + .Case("kryo", true) .Default(false); return CPUKnown; } Index: lib/Driver/Tools.cpp =================================================================== --- lib/Driver/Tools.cpp +++ lib/Driver/Tools.cpp @@ -2129,7 +2129,8 @@ std::pair Split = Mcpu.split("+"); CPU = Split.first; if (CPU == "cyclone" || CPU == "cortex-a53" || CPU == "cortex-a57" || - CPU == "cortex-a72" || CPU == "cortex-a35" || CPU == "exynos-m1") { + CPU == "cortex-a72" || CPU == "cortex-a35" || CPU == "exynos-m1" || + CPU == "kryo") { Features.push_back("+neon"); Features.push_back("+crc"); Features.push_back("+crypto"); @@ -2188,7 +2189,7 @@ // Handle CPU name is 'native'. if (MtuneLowerCase == "native") MtuneLowerCase = llvm::sys::getHostCPUName(); - if (MtuneLowerCase == "cyclone") { + if (MtuneLowerCase == "cyclone" || MtuneLowerCase == "kryo") { Features.push_back("+zcm"); Features.push_back("+zcz"); } Index: test/Driver/kryo-cpu.c =================================================================== --- /dev/null +++ test/Driver/kryo-cpu.c @@ -0,0 +1,8 @@ +// RUN: %clang -target aarch64-linux-gnu -mcpu=kryo -### -c %s 2>&1 | FileCheck -check-prefix=CHECK-CPUKRYO %s +// CHECK-CPUKRYO: "-target-cpu" "kryo" + +// RUN: %clang -target aarch64-linux-gnu -mcpu=kryo -### -c %s 2>&1 | FileCheck -check-prefix=CHECK-ZCZ %s +// CHECK-ZCZ: "-target-feature" "+zcz" + +// RUN: %clang -target aarch64-linux-gnu -mcpu=kryo -### -c %s 2>&1 | FileCheck -check-prefix=CHECK-ZCM %s +// CHECK-ZCM: "-target-feature" "+zcm"