summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/ARM/build-attributes.ll
diff options
context:
space:
mode:
authorJaved Absar <javed.absar@arm.com>2017-02-01 11:55:03 +0000
committerJaved Absar <javed.absar@arm.com>2017-02-01 11:55:03 +0000
commite5ad87e9395568ba5d0387e6907bc6d1dd9b4042 (patch)
tree35b876d0b1c6ef63e5e2750b7c60f29e7f58f561 /llvm/test/CodeGen/ARM/build-attributes.ll
parent43c882c6f8e06ba37181f63dee84c8c710f50c78 (diff)
downloadbcm5719-llvm-e5ad87e9395568ba5d0387e6907bc6d1dd9b4042.tar.gz
bcm5719-llvm-e5ad87e9395568ba5d0387e6907bc6d1dd9b4042.zip
[ARM] Enable Cortex-M23 and Cortex-M33 support.
Add both cores to the target parser and TableGen. Test that eabi attributes are set correctly for both cores. Additionally, test the absence and presence of MOVT in Cortex-M23 and Cortex-M33, respectively. Committed on behalf of Sanne Wouda. Reviewers : rengolin, olista01. Differential Revision: https://reviews.llvm.org/D29073 llvm-svn: 293761
Diffstat (limited to 'llvm/test/CodeGen/ARM/build-attributes.ll')
-rw-r--r--llvm/test/CodeGen/ARM/build-attributes.ll59
1 files changed, 59 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/ARM/build-attributes.ll b/llvm/test/CodeGen/ARM/build-attributes.ll
index b1b3b46dce2..eccf9addf0d 100644
--- a/llvm/test/CodeGen/ARM/build-attributes.ll
+++ b/llvm/test/CodeGen/ARM/build-attributes.ll
@@ -102,6 +102,10 @@
; RUN: llc < %s -mtriple=thumbv7em-linux-gnueabi -mcpu=cortex-m7 -mattr=+fp-only-sp -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-M7-FAST
; RUN: llc < %s -mtriple=thumbv7em-linux-gnueabi -mcpu=cortex-m7 | FileCheck %s --check-prefix=CORTEX-M7-DOUBLE
; RUN: llc < %s -mtriple=thumbv7em-linux-gnueabi -mcpu=cortex-m7 -enable-sign-dependent-rounding-fp-math | FileCheck %s --check-prefix=DYN-ROUNDING
+; RUN: llc < %s -mtriple=thumbv8-linux-gnueabi -mcpu=cortex-m23 | FileCheck %s --check-prefix=CORTEX-M23
+; RUN: llc < %s -mtriple=thumbv8-linux-gnueabi -mcpu=cortex-m33 | FileCheck %s --check-prefix=CORTEX-M33
+; RUN: llc < %s -mtriple=thumbv8-linux-gnueabi -mcpu=cortex-m33 -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-M33-FAST
+; RUN: llc < %s -mtriple=thumbv8-linux-gnueabi -mcpu=cortex-m33 -enable-sign-dependent-rounding-fp-math | FileCheck %s --check-prefix=DYN-ROUNDING
; RUN: llc < %s -mtriple=armv7r-linux-gnueabi -mcpu=cortex-r4 | FileCheck %s --check-prefix=CORTEX-R4
; RUN: llc < %s -mtriple=armv7r-linux-gnueabi -mcpu=cortex-r4f | FileCheck %s --check-prefix=CORTEX-R4F
; RUN: llc < %s -mtriple=armv7r-linux-gnueabi -mcpu=cortex-r5 | FileCheck %s --check-prefix=CORTEX-R5
@@ -210,6 +214,12 @@
; RUN: llc < %s -mtriple=arm-none-none-eabi -mcpu=cortex-r52 -mattr=-neon,+fp-only-sp,+d16 | FileCheck %s --check-prefix=ARMv8R --check-prefix=ARMv8R-SP
; RUN: llc < %s -mtriple=arm-none-none-eabi -mcpu=cortex-r52 | FileCheck %s --check-prefix=ARMv8R --check-prefix=ARMv8R-NEON
+; ARMv8-M
+; RUN: llc < %s -mtriple=thumbv8-none-none-eabi -mcpu=cortex-m23 | FileCheck %s --check-prefix=NO-STRICT-ALIGN
+; RUN: llc < %s -mtriple=thumbv8-none-none-eabi -mcpu=cortex-m23 -mattr=+strict-align | FileCheck %s --check-prefix=STRICT-ALIGN
+; RUN: llc < %s -mtriple=thumbv8-none-none-eabi -mcpu=cortex-m33 | FileCheck %s --check-prefix=NO-STRICT-ALIGN
+; RUN: llc < %s -mtriple=thumbv8-none-none-eabi -mcpu=cortex-m33 -mattr=+strict-align | FileCheck %s --check-prefix=STRICT-ALIGN
+
; XSCALE: .eabi_attribute 6, 5
; XSCALE: .eabi_attribute 8, 1
; XSCALE: .eabi_attribute 9, 1
@@ -1310,6 +1320,55 @@
; CORTEX-A32-FAST-NOT: .eabi_attribute 22
; CORTEX-A32-FAST: .eabi_attribute 23, 1
+; CORTEX-M23: .cpu cortex-m23
+; CORTEX-M23: .eabi_attribute 6, 16
+; CORTEX-M23: .eabi_attribute 7, 77
+; CORTEX-M23: .eabi_attribute 8, 0
+; CORTEX-M23: .eabi_attribute 9, 3
+; CORTEX-M23: .eabi_attribute 17, 1
+;; We default to IEEE 754 compliance
+; CORTEX-M23-NOT: .eabi_attribute 19
+; CORTEX-M23: .eabi_attribute 20, 1
+; CORTEX-M23: .eabi_attribute 21, 1
+; CORTEX-M23: .eabi_attribute 23, 3
+; CORTEX-M23: .eabi_attribute 34, 1
+; CORTEX-M23: .eabi_attribute 24, 1
+; CORTEX-M23-NOT: .eabi_attribute 27
+; CORTEX-M23-NOT: .eabi_attribute 28
+; CORTEX-M23: .eabi_attribute 25, 1
+; CORTEX-M23: .eabi_attribute 38, 1
+; CORTEX-M23: .eabi_attribute 14, 0
+; CORTEX-M23-NOT: .eabi_attribute 44
+
+; CORTEX-M33: .cpu cortex-m33
+; CORTEX-M33: .eabi_attribute 6, 17
+; CORTEX-M33: .eabi_attribute 7, 77
+; CORTEX-M33: .eabi_attribute 8, 0
+; CORTEX-M33: .eabi_attribute 9, 3
+; CORTEX-M33: .fpu fpv5-sp-d16
+; CORTEX-M33: .eabi_attribute 17, 1
+;; We default to IEEE 754 compliance
+; CORTEX-M23-NOT: .eabi_attribute 19
+; CORTEX-M33: .eabi_attribute 20, 1
+; CORTEX-M33: .eabi_attribute 21, 1
+; CORTEX-M33: .eabi_attribute 23, 3
+; CORTEX-M33: .eabi_attribute 34, 1
+; CORTEX-M33: .eabi_attribute 24, 1
+; CORTEX-M33: .eabi_attribute 25, 1
+; CORTEX-M33: .eabi_attribute 27, 1
+; CORTEX-M33-NOT: .eabi_attribute 28
+; CORTEX-M33: .eabi_attribute 36, 1
+; CORTEX-M33: .eabi_attribute 38, 1
+; CORTEX-M33: .eabi_attribute 46, 1
+; CORTEX-M33-NOT: .eabi_attribute 44
+; CORTEX-M33: .eabi_attribute 14, 0
+
+; CORTEX-M33-FAST-NOT: .eabi_attribute 19
+; CORTEX-M33-FAST: .eabi_attribute 20, 2
+; CORTEX-M33-FAST-NOT: .eabi_attribute 21
+; CORTEX-M33-FAST-NOT: .eabi_attribute 22
+; CORTEX-M33-FAST: .eabi_attribute 23, 1
+
; CORTEX-A35: .cpu cortex-a35
; CORTEX-A35: .eabi_attribute 6, 14
; CORTEX-A35: .eabi_attribute 7, 65
OpenPOWER on IntegriCloud