diff options
author | Bradley Smith <bradley.smith@arm.com> | 2016-01-15 10:24:39 +0000 |
---|---|---|
committer | Bradley Smith <bradley.smith@arm.com> | 2016-01-15 10:24:39 +0000 |
commit | e26f7994222ab7113990d23b11a5fd4db733498f (patch) | |
tree | 0acd9596f5313ad7abac08ee7f42b6764c456250 /llvm/test | |
parent | 4c21cba72bc51e8f5b16efd6c2d9ca7ff88886f4 (diff) | |
download | bcm5719-llvm-e26f7994222ab7113990d23b11a5fd4db733498f.tar.gz bcm5719-llvm-e26f7994222ab7113990d23b11a5fd4db733498f.zip |
[ARM] Add ARMv8-M Baseline/Mainline LLVM targeting
llvm-svn: 257878
Diffstat (limited to 'llvm/test')
-rw-r--r-- | llvm/test/CodeGen/ARM/build-attributes.ll | 19 | ||||
-rw-r--r-- | llvm/test/MC/ARM/thumbv8m.s | 22 |
2 files changed, 41 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/ARM/build-attributes.ll b/llvm/test/CodeGen/ARM/build-attributes.ll index a74b3e441a1..28fbcd7edc5 100644 --- a/llvm/test/CodeGen/ARM/build-attributes.ll +++ b/llvm/test/CodeGen/ARM/build-attributes.ll @@ -27,6 +27,8 @@ ; RUN: llc < %s -mtriple=armv8-linux-gnueabi -mattr=-fp-armv8,-crypto | FileCheck %s --check-prefix=V8-NEON ; RUN: llc < %s -mtriple=armv8-linux-gnueabi -mattr=-crypto | FileCheck %s --check-prefix=V8-FPARMv8-NEON ; RUN: llc < %s -mtriple=armv8-linux-gnueabi | FileCheck %s --check-prefix=V8-FPARMv8-NEON-CRYPTO +; RUN: llc < %s -mtriple=thumbv8m.base-linux-gnueabi | FileCheck %s --check-prefix=V8MBASELINE +; RUN: llc < %s -mtriple=thumbv8m.main-linux-gnueabi | FileCheck %s --check-prefix=V8MMAINLINE ; RUN: llc < %s -mtriple=armv7-linux-gnueabi -mcpu=cortex-a5 | FileCheck %s --check-prefix=CORTEX-A5-DEFAULT ; RUN: llc < %s -mtriple=armv7-linux-gnueabi -mcpu=cortex-a5 -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-A5-DEFAULT-FAST ; RUN: llc < %s -mtriple=armv7-linux-gnueabi -mcpu=cortex-a5 -enable-sign-dependent-rounding-fp-math | FileCheck %s --check-prefix=DYN-ROUNDING @@ -373,6 +375,23 @@ ; V8-FPARMv8-NEON-CRYPTO: .fpu crypto-neon-fp-armv8 ; V8-FPARMv8-NEON-CRYPTO: .eabi_attribute 12, 3 +; V8MBASELINE: .syntax unified +; '6' is Tag_CPU_arch, '16' is ARM v8-M Baseline +; V8MBASELINE: .eabi_attribute 6, 16 +; '7' is Tag_CPU_arch_profile, '77' is 'M' +; V8MBASELINE: .eabi_attribute 7, 77 +; '8' is Tag_ARM_ISA_use +; V8MBASELINE: .eabi_attribute 8, 0 +; '9' is Tag_Thumb_ISA_use +; V8MBASELINE: .eabi_attribute 9, 3 + +; V8MMAINLINE: .syntax unified +; '6' is Tag_CPU_arch, '17' is ARM v8-M Mainline +; V8MMAINLINE: .eabi_attribute 6, 17 +; V8MMAINLINE: .eabi_attribute 7, 77 +; V8MMAINLINE: .eabi_attribute 8, 0 +; V8MMAINLINE: .eabi_attribute 9, 3 + ; Tag_CPU_unaligned_access ; NO-STRICT-ALIGN: .eabi_attribute 34, 1 ; STRICT-ALIGN: .eabi_attribute 34, 0 diff --git a/llvm/test/MC/ARM/thumbv8m.s b/llvm/test/MC/ARM/thumbv8m.s new file mode 100644 index 00000000000..8a76ae7776e --- /dev/null +++ b/llvm/test/MC/ARM/thumbv8m.s @@ -0,0 +1,22 @@ +// RUN: not llvm-mc -triple=thumbv8m.base -show-encoding < %s 2>%t \ +// RUN: | FileCheck --check-prefix=CHECK %s +// RUN: FileCheck --check-prefix=UNDEF-BASELINE --check-prefix=UNDEF < %t %s +// RUN: not llvm-mc -triple=thumbv8m.main -show-encoding < %s 2>%t \ +// RUN: | FileCheck --check-prefix=CHECK %s +// RUN: FileCheck --check-prefix=UNDEF-MAINLINE --check-prefix=UNDEF < %t %s + +// Simple check that baseline is v6M and mainline is v7M +// UNDEF-BASELINE: error: instruction requires: thumb2 +// UNDEF-MAINLINE-NOT: error: instruction requires: +mov.w r0, r0 + +// Check that .arm is invalid +// UNDEF: target does not support ARM mode +.arm + +// Instruction availibility checks + +// 'Barrier instructions' + +// CHECK: isb sy @ encoding: [0xbf,0xf3,0x6f,0x8f] +isb sy |