mirror of
https://github.com/RPCS3/llvm.git
synced 2025-02-13 14:46:15 +00:00
[AARCH64] Add support for Broadcom Vulcan
Adding core tuning support for new Broadcom Vulcan core (ARMv8.1A). Differential Revision: http://reviews.llvm.org/D21500 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@273148 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
7293ea541b
commit
eca908ec2f
@ -65,6 +65,8 @@ AARCH64_CPU_NAME("exynos-m1", AK_ARMV8A, FK_CRYPTO_NEON_FP_ARMV8, false,
|
||||
(AArch64::AEK_SIMD | AArch64::AEK_CRC | AArch64::AEK_CRYPTO))
|
||||
AARCH64_CPU_NAME("kryo", AK_ARMV8A, FK_CRYPTO_NEON_FP_ARMV8, false,
|
||||
(AArch64::AEK_SIMD | AArch64::AEK_CRC | AArch64::AEK_CRYPTO))
|
||||
AARCH64_CPU_NAME("vulcan", AK_ARMV8_1A, FK_CRYPTO_NEON_FP_ARMV8, false,
|
||||
(AArch64::AEK_SIMD | AArch64::AEK_CRC | AArch64::AEK_CRYPTO))
|
||||
// Invalid CPU
|
||||
AARCH64_CPU_NAME("invalid", AK_INVALID, FK_INVALID, true, AArch64::AEK_INVALID)
|
||||
#undef AARCH64_CPU_NAME
|
||||
|
@ -215,6 +215,14 @@ def ProcKryo : SubtargetFeature<"kryo", "ARMProcFamily", "Kryo",
|
||||
FeaturePredictableSelectIsExpensive
|
||||
]>;
|
||||
|
||||
def ProcVulcan : SubtargetFeature<"vulcan", "ARMProcFamily", "Vulcan",
|
||||
"Broadcom Vulcan processors", [
|
||||
FeatureFPARMv8,
|
||||
FeatureNEON,
|
||||
FeatureCrypto,
|
||||
FeatureCRC,
|
||||
HasV8_1aOps]>;
|
||||
|
||||
def : ProcessorModel<"generic", NoSchedModel, [
|
||||
FeatureCRC,
|
||||
FeatureFPARMv8,
|
||||
@ -233,6 +241,7 @@ def : ProcessorModel<"cortex-a73", CortexA57Model, [ProcA57]>;
|
||||
def : ProcessorModel<"cyclone", CycloneModel, [ProcCyclone]>;
|
||||
def : ProcessorModel<"exynos-m1", ExynosM1Model, [ProcExynosM1]>;
|
||||
def : ProcessorModel<"kryo", KryoModel, [ProcKryo]>;
|
||||
def : ProcessorModel<"vulcan", NoSchedModel, [ProcVulcan]>;
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// Assembly parser
|
||||
|
@ -71,6 +71,7 @@ void AArch64Subtarget::initializeProperties() {
|
||||
MaxInterleaveFactor = 4;
|
||||
VectorInsertExtractBaseCost = 2;
|
||||
break;
|
||||
case Vulcan: break;
|
||||
case CortexA35: break;
|
||||
case CortexA53: break;
|
||||
case Others: break;
|
||||
|
@ -41,7 +41,8 @@ public:
|
||||
CortexA57,
|
||||
Cyclone,
|
||||
ExynosM1,
|
||||
Kryo
|
||||
Kryo,
|
||||
Vulcan
|
||||
};
|
||||
|
||||
protected:
|
||||
|
@ -9,6 +9,7 @@
|
||||
; RUN: llc < %s -mtriple=arm64-unknown-unknown -mcpu=cortex-a73 2>&1 | FileCheck %s
|
||||
; RUN: llc < %s -mtriple=arm64-unknown-unknown -mcpu=exynos-m1 2>&1 | FileCheck %s
|
||||
; RUN: llc < %s -mtriple=arm64-unknown-unknown -mcpu=kryo 2>&1 | FileCheck %s
|
||||
; RUN: llc < %s -mtriple=arm64-unknown-unknown -mcpu=vulcan 2>&1 | FileCheck %s
|
||||
; RUN: llc < %s -mtriple=arm64-unknown-unknown -mcpu=invalidcpu 2>&1 | FileCheck %s --check-prefix=INVALID
|
||||
|
||||
; CHECK-NOT: {{.*}} is not a recognized processor for this target
|
||||
|
@ -5,6 +5,7 @@
|
||||
; RUN: llc -mtriple=aarch64-linux-gnuabi -mcpu=cortex-a73 -o - %s | FileCheck %s
|
||||
; RUN: llc -mtriple=aarch64-linux-gnuabi -mcpu=exynos-m1 -o - %s | FileCheck %s
|
||||
; RUN: llc -mtriple=aarch64-linux-gnuabi -mcpu=kryo -o - %s | FileCheck %s
|
||||
; RUN: llc -mtriple=aarch64-linux-gnuabi -mcpu=vulcan -o - %s | FileCheck %s
|
||||
|
||||
%X = type { i64, i64, i64 }
|
||||
declare void @f(%X*)
|
||||
|
Loading…
x
Reference in New Issue
Block a user