mirror of
https://github.com/RPCS3/llvm.git
synced 2024-12-16 16:37:42 +00:00
Adding support to LLVM for targeting Cortex-A72
Currently, Cortex-A72 is modelled as an Cortex-A57 except the fp load balancing pass isn't enabled for Cortex-A72 as it's not profitable to have it enabled for this core. Patch by Ranjeet Singh. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@228140 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
27f1ced481
commit
0966a4e370
@ -91,6 +91,8 @@ def : ProcessorModel<"generic", NoSchedModel, [FeatureFPARMv8,
|
||||
|
||||
def : ProcessorModel<"cortex-a53", CortexA53Model, [ProcA53]>;
|
||||
def : ProcessorModel<"cortex-a57", CortexA57Model, [ProcA57]>;
|
||||
// FIXME: Cortex-A72 is currently modelled as an Cortex-A57.
|
||||
def : ProcessorModel<"cortex-a72", CortexA57Model, [ProcA57]>;
|
||||
def : ProcessorModel<"cyclone", CycloneModel, [ProcCyclone]>;
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
@ -416,6 +416,10 @@ def : ProcNoItin<"cortex-a53", [ProcA53, HasV8Ops, FeatureAClass,
|
||||
def : ProcNoItin<"cortex-a57", [ProcA57, HasV8Ops, FeatureAClass,
|
||||
FeatureDB, FeatureFPARMv8,
|
||||
FeatureNEON, FeatureDSPThumb2]>;
|
||||
// FIXME: Cortex-A72 is currently modelled as an Cortex-A57.
|
||||
def : ProcNoItin<"cortex-a72", [ProcA57, HasV8Ops, FeatureAClass,
|
||||
FeatureDB, FeatureFPARMv8,
|
||||
FeatureNEON, FeatureDSPThumb2]>;
|
||||
|
||||
// Cyclone is very similar to swift
|
||||
def : ProcessorModel<"cyclone", SwiftModel,
|
||||
|
@ -4,6 +4,7 @@
|
||||
; RUN: llc < %s -mtriple=arm64-unknown-unknown -mcpu=generic 2>&1 | FileCheck %s
|
||||
; RUN: llc < %s -mtriple=arm64-unknown-unknown -mcpu=cortex-a53 2>&1 | FileCheck %s
|
||||
; RUN: llc < %s -mtriple=arm64-unknown-unknown -mcpu=cortex-a57 2>&1 | FileCheck %s
|
||||
; RUN: llc < %s -mtriple=arm64-unknown-unknown -mcpu=cortex-a72 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
|
||||
|
@ -1,5 +1,6 @@
|
||||
; RUN: llc -mtriple=aarch64-linux-gnuabi -mcpu=cortex-a57 -o - %s | FileCheck %s
|
||||
; RUN: llc -mtriple=aarch64-linux-gnuabi -mcpu=cortex-a53 -o - %s | FileCheck %s
|
||||
; RUN: llc -mtriple=aarch64-linux-gnuabi -mcpu=cortex-a72 -o - %s | FileCheck %s
|
||||
|
||||
%X = type { i64, i64, i64 }
|
||||
declare void @f(%X*)
|
||||
|
@ -76,6 +76,9 @@
|
||||
; RUN: llc < %s -mtriple=armv8-linux-gnueabi -mcpu=cortex-a57 | FileCheck %s --check-prefix=CORTEX-A57
|
||||
; RUN: llc < %s -mtriple=armv8-linux-gnueabi -mcpu=cortex-a57 -enable-unsafe-fp-math -disable-fp-elim -enable-no-infs-fp-math -enable-no-nans-fp-math -fp-contract=fast | FileCheck %s --check-prefix=CORTEX-A57-FAST
|
||||
; RUN: llc < %s -mtriple=armv8-linux-gnueabi -mcpu=cortex-a57 -enable-sign-dependent-rounding-fp-math | FileCheck %s --check-prefix=DYN-ROUNDING
|
||||
; RUN: llc < %s -mtriple=armv8-linux-gnueabi -mcpu=cortex-a72 | FileCheck %s --check-prefix=CORTEX-A72
|
||||
; RUN: llc < %s -mtriple=armv8-linux-gnueabi -mcpu=cortex-a72 -enable-unsafe-fp-math -disable-fp-elim -enable-no-infs-fp-math -enable-no-nans-fp-math -fp-contract=fast | FileCheck %s --check-prefix=CORTEX-A72-FAST
|
||||
; RUN: llc < %s -mtriple=armv8-linux-gnueabi -mcpu=cortex-a72 -enable-sign-dependent-rounding-fp-math | FileCheck %s --check-prefix=DYN-ROUNDING
|
||||
; RUN: llc < %s -mtriple=armv7-none-linux-gnueabi -mcpu=cortex-a7 | FileCheck %s --check-prefix=CORTEX-A7-CHECK
|
||||
; RUN: llc < %s -mtriple=armv7-none-linux-gnueabi -mcpu=cortex-a7 -enable-unsafe-fp-math -disable-fp-elim -enable-no-infs-fp-math -enable-no-nans-fp-math -fp-contract=fast | FileCheck %s --check-prefix=CORTEX-A7-CHECK-FAST
|
||||
; RUN: llc < %s -mtriple=armv7-none-linux-gnueabi -mcpu=cortex-a7 -mattr=-vfp2,-vfp3,-vfp4,-neon | FileCheck %s --check-prefix=CORTEX-A7-NOFPU
|
||||
@ -96,6 +99,9 @@
|
||||
; RUN: llc < %s -mtriple=armv8-none-linux-gnueabi -mcpu=cortex-a57 -arm-no-strict-align | FileCheck %s --check-prefix=NO-STRICT-ALIGN
|
||||
; RUN: llc < %s -mtriple=armv8-none-linux-gnueabi -mcpu=cortex-a57 -arm-strict-align | FileCheck %s --check-prefix=STRICT-ALIGN
|
||||
; RUN: llc < %s -mtriple=armv8-none-linux-gnueabi -mcpu=cortex-a57 | FileCheck %s --check-prefix=NO-STRICT-ALIGN
|
||||
; RUN: llc < %s -mtriple=armv8-none-linux-gnueabi -mcpu=cortex-a72 -arm-no-strict-align | FileCheck %s --check-prefix=NO-STRICT-ALIGN
|
||||
; RUN: llc < %s -mtriple=armv8-none-linux-gnueabi -mcpu=cortex-a72 -arm-strict-align | FileCheck %s --check-prefix=STRICT-ALIGN
|
||||
; RUN: llc < %s -mtriple=armv8-none-linux-gnueabi -mcpu=cortex-a72 | FileCheck %s --check-prefix=NO-STRICT-ALIGN
|
||||
; ARMv7a
|
||||
; RUN: llc < %s -mtriple=armv7-none-linux-gnueabi -mcpu=cortex-a7 -arm-no-strict-align | FileCheck %s --check-prefix=NO-STRICT-ALIGN
|
||||
; RUN: llc < %s -mtriple=armv7-none-linux-gnueabi -mcpu=cortex-a7 -arm-strict-align | FileCheck %s --check-prefix=STRICT-ALIGN
|
||||
@ -938,6 +944,36 @@
|
||||
; CORTEX-A57-FAST-NOT: .eabi_attribute 22
|
||||
; CORTEX-A57-FAST: .eabi_attribute 23, 1
|
||||
|
||||
; CORTEX-A72: .cpu cortex-a72
|
||||
; CORTEX-A72: .eabi_attribute 6, 14
|
||||
; CORTEX-A72: .eabi_attribute 7, 65
|
||||
; CORTEX-A72: .eabi_attribute 8, 1
|
||||
; CORTEX-A72: .eabi_attribute 9, 2
|
||||
; CORTEX-A72: .fpu crypto-neon-fp-armv8
|
||||
; CORTEX-A72: .eabi_attribute 12, 3
|
||||
; CORTEX-A72-NOT: .eabi_attribute 19
|
||||
;; We default to IEEE 754 compliance
|
||||
; CORTEX-A72: .eabi_attribute 20, 1
|
||||
; CORTEX-A72: .eabi_attribute 21, 1
|
||||
; CORTEX-A72-NOT: .eabi_attribute 22
|
||||
; CORTEX-A72: .eabi_attribute 23, 3
|
||||
; CORTEX-A72: .eabi_attribute 24, 1
|
||||
; CORTEX-A72: .eabi_attribute 25, 1
|
||||
; CORTEX-A72-NOT: .eabi_attribute 27
|
||||
; CORTEX-A72-NOT: .eabi_attribute 28
|
||||
; CORTEX-A72: .eabi_attribute 36, 1
|
||||
; CORTEX-A72: .eabi_attribute 38, 1
|
||||
; CORTEX-A72: .eabi_attribute 42, 1
|
||||
; CORTEX-A72-NOT: .eabi_attribute 44
|
||||
; CORTEX-A72: .eabi_attribute 68, 3
|
||||
|
||||
; CORTEX-A72-FAST-NOT: .eabi_attribute 19
|
||||
;; The A72 has the ARMv8 FP unit, which always flushes preserving sign.
|
||||
; CORTEX-A72-FAST: .eabi_attribute 20, 2
|
||||
; CORTEX-A72-FAST-NOT: .eabi_attribute 21
|
||||
; CORTEX-A72-FAST-NOT: .eabi_attribute 22
|
||||
; CORTEX-A72-FAST: .eabi_attribute 23, 1
|
||||
|
||||
; RELOC-PIC: .eabi_attribute 15, 1
|
||||
; RELOC-PIC: .eabi_attribute 16, 1
|
||||
; RELOC-PIC: .eabi_attribute 17, 2
|
||||
|
Loading…
Reference in New Issue
Block a user